sepadd Model
- Flows
- Subflows
- Supporting Libraries
Flows
Process To Scheme Message
Flow Properties
Flow Name: |
Process To Scheme Message |
Version: |
0 |
Description: |
Processing flow for messages to be sent to the SEPA DD Scheme |
Global State Set: |
States
| Name | Description | Global State | Is Terminal | Not Recoverable | Is Passivating |
|---|---|---|---|---|---|
Validating Message |
PENDING |
No |
No |
No |
|
Generating Pacs.002 Response to indicate status to the client after IPF validation |
PENDING |
No |
No |
No |
|
Sending Pacs.002 Response to indicate status to the client after processing verification from the scheme |
PENDING |
No |
No |
No |
|
Generating name of the bulk to which transaction will be sent |
PENDING |
No |
No |
No |
|
Send transaction to bulker |
PENDING |
No |
No |
No |
|
Storing correlation between bulker and transaction that was sent to it |
PENDING |
No |
No |
No |
|
Transaction is submitted or failed to submit |
PENDING |
No |
No |
No |
|
Waiting For Scheme Response Notifications |
PENDING |
No |
No |
No |
|
Sending pacs.002 Response |
PENDING |
No |
No |
No |
|
Processing has failed during validation in to scheme processing |
REJECTED |
Yes |
No |
No |
|
Waiting for settlement response from scheme |
PENDING |
No |
No |
No |
|
Processing has failed during submission in to scheme processing |
REJECTED |
Yes |
No |
No |
|
Processing has completed and requires no further settlement processing |
ACCEPTED |
Yes |
No |
No |
|
Check if the pacs.002 group status is REJECTED |
PENDING |
No |
No |
No |
|
Sending Settlement pacs.002 response |
PENDING |
No |
No |
No |
|
Processing has failed during settlement in to schem processing |
REJECTED |
Yes |
No |
No |
|
Payment has been successfully |
ACCEPTED |
Yes |
No |
No |
|
Generated state |
none |
No |
No |
No |
|
Generated state |
none |
No |
No |
No |
|
Generated state |
none |
No |
No |
No |
|
Generated state |
none |
No |
No |
No |
|
Generated state |
none |
No |
No |
No |
|
Generated state |
none |
No |
No |
No |
|
Performing pacs003 duplicate check |
PENDING |
No |
No |
No |
|
Performing camt056 duplicate check |
PENDING |
No |
No |
No |
|
Performing pacs007 duplicate check |
PENDING |
No |
No |
No |
|
Performing pacs003 transaction level duplicate check |
PENDING |
No |
No |
No |
|
Generated state |
none |
No |
No |
No |
Events
Input Behaviour
| Input | Response Code | Event Selection |
|---|---|---|
none |
||
Accepted |
||
Rejected |
||
Accepted |
||
Rejected |
||
Accepted |
||
Rejected |
||
none |
||
Accepted |
||
Rejected |
||
Accepted |
||
Rejected |
||
Accepted |
||
Rejected |
||
none |
||
Accepted |
||
Rejected |
||
Accepted |
||
Rejected |
||
none |
||
Accepted |
||
Rejected |
||
Accepted |
||
Rejected |
||
DUPLICATE |
||
NOT_DUPLICATE |
||
ERROR |
||
CONTAINS_DUPLICATES |
||
ERROR |
||
NO_DUPLICATES |
Input Enrichers
| On Input | With Response Code | Call Mapping Function |
|---|---|---|
DUPLICATE |
||
ERROR |
||
CONTAINS_DUPLICATES |
||
ERROR |
Event Behaviour
| Given State | Criteria | Events | New State | Perform Actions | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
On |
|
|||||||||||||
On |
Call Decision 1: Duplicate Checking Type and then: On PACS_003_MSG_DUPLICATE_CHECK raise event Duplicate Checking Duplicate Checking Type PACS_003_MSG_DUPLICATE_CHECK |
|||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
||||||||||||||
On |
||||||||||||||
On |
Call Decision 1: Check Pacs.002 Group Status Rejected and then: On YES raise event Check Pacs.002 Group Status Rejected YES On NO raise event Check Pacs.002 Group Status Rejected NO |
|||||||||||||
On |
||||||||||||||
On |
|
|||||||||||||
On |
Call Decision 1: More Transactions To Be Bulked and then: On YES call function Increment Submit Transaction Counter On NO raise event All Transactions Processed |
|||||||||||||
On |
|
|||||||||||||
On |
Call Decision 1: Message Contains Transactions and then: On YES raise event Message Contains Transactions YES On NO raise event Message Contains Transactions NO |
|||||||||||||
On |
||||||||||||||
On |
||||||||||||||
On |
|
|||||||||||||
On |
Call Decision 1: More Transactions To Be Bulked and then: On YES call function Increment Submit Transaction Counter On NO raise event All Transactions Processed |
|||||||||||||
On any of |
Call Decision 1: More Transactions To Be Bulked and then: On YES call function Increment Submit Transaction Counter On NO raise event All Transactions Processed |
|||||||||||||
On |
Call Decision 1: Expecting More DD Scheme Responses and then: On NO call function Generate Scheme Pacs.002 On YES raise event Scheme Response Processed |
|||||||||||||
On |
||||||||||||||
On |
|
|||||||||||||
On |
Call Decision 1: Check Pacs.002 Group Status Rejected and then: On YES raise event Check Pacs.002 Group Status Rejected YES On NO raise event Check Pacs.002 Group Status Rejected NO |
|||||||||||||
On |
||||||||||||||
On |
|
|||||||||||||
On |
Call Decision 1: More Transactions To Be Bulked and then: On YES call function Increment Submit Transaction Counter On NO raise event All Transactions Processed |
|||||||||||||
On |
||||||||||||||
On |
Call Decision 1: Settlement Required and then: On YES raise event Settlement Required YES On NO raise event Settlement Required NO |
|||||||||||||
On |
||||||||||||||
On |
||||||||||||||
On |
||||||||||||||
On |
|
|||||||||||||
On |
Call Decision 1: Expecting More DD Scheme Settlement Responses and then: On NO call function Generate Settlement Pacs.002 On YES raise event Scheme Response Processed |
|||||||||||||
On |
|
|||||||||||||
On |
||||||||||||||
On |
||||||||||||||
On |
Call Decision 1: Check Pacs.002 Group Status Rejected and then: On YES raise event Check Pacs.002 Group Status Rejected YES On NO raise event Check Pacs.002 Group Status Rejected NO |
|||||||||||||
On |
||||||||||||||
On |
||||||||||||||
On |
||||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
|
FIToFIPmtStsRptS2 Processing
States
| Name | Description | Global State | Is Terminal | Not Recoverable | Is Passivating |
|---|---|---|---|---|---|
The flow has completed |
ACCEPTED |
Yes |
No |
No |
|
Message Processing Failed |
REJECTED |
Yes |
No |
No |
|
Transactions are being processed |
PENDING |
No |
No |
No |
|
Call to Extension Point made, waiting for response |
PENDING |
No |
No |
No |
|
Retrieving the number of correlations associated to this FITOFIPmtStsRptS2 |
PENDING |
No |
No |
No |
|
Generated state |
none |
No |
No |
No |
Events
| Name | Description | Business Data |
|---|---|---|
The flow has been successfully started. |
||
Successfully initiated transaction correlation processing to respond to request |
none |
|
Failed initiating transaction correlation processing to respond to request |
none |
|
Extension Point responded with a positive response, proceed with processing |
none |
|
Extension Point responded with a negative response, do not proceed |
none |
|
Persisted when flow is ready to process more transactions |
none |
|
All transactions have been processed |
none |
|
Total number of correlations to process for this flow |
||
Could not retrieve number of transactions from correlation store |
none |
|
none |
||
none |
Input Behaviour
| Input | Response Code | Event Selection |
|---|---|---|
none |
||
Accepted |
||
Rejected |
||
Accepted |
||
Rejected |
||
Accepted |
||
Rejected |
Event Behaviour
| Given State | Criteria | Events | New State | Perform Actions | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
On |
Call Decision 1: Extension Point Enabled and then: On YES raise event Extension Point Enabled YES On NO raise event Extension Point Enabled NO |
|||||||||||||
On any of |
Call Decision 1: More Transactions to Process and then: On NO raise event All Transactions Processed On YES raise event Ready To Process Transactions |
|||||||||||||
On |
||||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
||||||||||||||
On |
||||||||||||||
On |
||||||||||||||
On |
|
DVF Processing
States
| Name | Description | Global State | Is Terminal | Not Recoverable | Is Passivating |
|---|---|---|---|---|---|
DVF processing completed successfully |
ACCEPTED |
Yes |
No |
No |
|
Triggered message processing flows, awaiting response |
PENDING |
No |
No |
No |
|
DVF processing has failed |
REJECTED |
Yes |
No |
No |
|
Generated state |
none |
No |
No |
No |
Events
| Name | Description | Business Data |
|---|---|---|
The flow has been successfully started. |
||
Auto generated ack |
||
An event to signify that the call to initiate flow 'FIToFIPmtStsRptS2 Processing' has been successfully completed. |
||
An event to signify that the call to initiate flow 'FIToFIPmtStsRptS2 Processing' has been successfully completed. |
Input Behaviour
| Input | Response Code | Event Selection |
|---|---|---|
none |
||
none |
||
FIToFIPmtStsRptS2 Processing Complete |
||
FIToFIPmtStsRptS2 Processing Failed |
Event Behaviour
| Given State | Criteria | Events | New State | Perform Actions | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
On |
|
|||||||||||||
On |
||||||||||||||
On any of |
Call Decision 1: IPF Threshold Check and then: On Passed With Errors raise event Threshold Passed With Errors On Do Nothing On Passed raise event Threshold Passed On Failed raise event Threshold Failed |
|||||||||||||
On |
|
|||||||||||||
On any of |
|
RSF Processing
States
| Name | Description | Global State | Is Terminal | Not Recoverable | Is Passivating |
|---|---|---|---|---|---|
RSF processing completed successfully |
ACCEPTED |
Yes |
No |
No |
|
Triggered message processing flows, awaiting response |
PENDING |
No |
No |
No |
|
RSF processing has failed |
REJECTED |
Yes |
No |
No |
|
Generated state |
none |
No |
No |
No |
Events
| Name | Description | Business Data |
|---|---|---|
The flow has been successfully started. |
||
Auto generated ack |
||
An event to signify that the call to initiate flow 'FIToFIPmtStsRptS2 Processing' has been successfully completed. |
||
An event to signify that the call to initiate flow 'FIToFIPmtStsRptS2 Processing' has been successfully completed. |
Input Behaviour
| Input | Response Code | Event Selection |
|---|---|---|
none |
||
none |
||
FIToFIPmtStsRptS2 Processing Complete |
||
FIToFIPmtStsRptS2 Processing Failed |
Event Behaviour
| Given State | Criteria | Events | New State | Perform Actions | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
On |
|
|||||||||||||
On |
||||||||||||||
On any of |
Call Decision 1: IPF Threshold Check and then: On Passed With Errors raise event Threshold Passed With Errors On Do Nothing On Passed raise event Threshold Passed On Failed raise event Threshold Failed |
|||||||||||||
On |
|
|||||||||||||
On any of |
|
Subflows
Duplicate Checking
States
| Name | Description | Global State | Is Terminal | Not Recoverable | Is Passivating |
|---|---|---|---|---|---|
The duplicate check has completed successfully |
ACCEPTED |
Yes |
No |
No |
|
Performing pacs003 duplicate check |
PENDING |
No |
No |
No |
|
Performing camt056 duplicate check |
PENDING |
No |
No |
No |
|
Performing pacs007 duplicate check |
PENDING |
No |
No |
No |
|
Performing pacs003 transaction level duplicate check |
PENDING |
No |
No |
No |
|
The duplicate check has failed |
REJECTED |
Yes |
No |
No |
Events
| Name | Description | Business Data |
|---|---|---|
Duplicate check passed |
none |
|
Duplicate check failed |
||
Transaction duplicate check failed |
||
Transaction duplicate check passed |
none |
Input Behaviour
| Input | Response Code | Event Selection |
|---|---|---|
DUPLICATE |
||
NOT_DUPLICATE |
||
ERROR |
||
CONTAINS_DUPLICATES |
||
ERROR |
||
NO_DUPLICATES |
Input Enrichers
| On Input | With Response Code | Call Mapping Function |
|---|---|---|
DUPLICATE |
||
ERROR |
||
ERROR |
||
CONTAINS_DUPLICATES |
Event Behaviour
| Given State | Criteria | Events | New State | Perform Actions | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
|
|||||||||||||
On |
||||||||||||||
On |
||||||||||||||
Perform Camt056 Message ValidationPerform Pacs007 Message Validation |
On |
|||||||||||||
Perform Pacs003 Message ValidationPerform Camt056 Message ValidationPerform Pacs007 Message Validation |
On |
Supporting Libraries
Business Data Libraries
Sepa Direct Debit Data Library
Business Data Elements
| Name | Description | Data Type | Data Category |
|---|---|---|---|
What type of duplicate check to perform |
java.lang.String |
||
RSF Response Notification |
com.iconsolutions.ipf.payments.csm.sepa.common.SchemeResponseNotification |
PROCESSING_DATA_STRUCTURE |
|
Processing counter for transactions which have failed |
java.lang.Integer |
PROCESSING_DATA_STRUCTURE |
|
Processing counter for transactions which have succeeded |
java.lang.Integer |
PROCESSING_DATA_STRUCTURE |
|
Total number of transaction in message |
java.lang.Integer |
PROCESSING_DATA_STRUCTURE |
|
The number of scheme responses received |
java.lang.Integer |
PROCESSING_DATA_STRUCTURE |
External Domains
SEPA Scheme
Contains messages exchanged with the SEPA direct debit scheme
Client Processing
Functions related to processing to be performed by the client
Requests
| Name | Description | Business Data | Response | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Call out to an interface which will allow clients to implement a service to potentially pass or fail the processing at the message level |
|
Transaction Processing
Mapping Functions
Debulk Mapping Functions
Process To Scheme Message
Mapping Functions
| Name | Description | Input Data | Output Data |
|---|---|---|---|
Set Message Duplicate Processing Indicator |
Set indicator for message duplicate check |
||
Set TxInfAndSts |
Set TxInfAndSts and maintain scheme counter for each scheme response received. This has to be a mapping function to maintain counts accurately. |
||
Set TxInfAndSts For Settlement |
Set TxInfAndSts for settlement and maintain scheme counter for each scheme response received. This has to be a mapping function to maintain counts accurately. |
||
Duplicate Map for SEPA message |
Mapping function for creating duplicate check key |
||
Duplicate Response Code Mapping |
Map the appropriate response code for validation failures |
||
Duplicate Map for SEPA transactions |
Mapping function for creating duplicate check key |
||
Duplicate Response Code Mapping for Multiple Response |
Mapping function for creating duplicate multiple response |
Decision Libraries
Sepa Direct Debit Decision
Decisions
| Name | Description | Business Data | Outcomes |
|---|---|---|---|
Set message type of duplicate check so that they are stored under a dedicated transaction key |
|||
Is message level extension point enabled |
none |
||
Are there more transactions to process |
|||
Does this message type require settlement processing |
|||
Check if more scheme responses are expected |
|||
Check if more settlement scheme responses are expected |
Domain Function Libraries
Message Validation
Domain Functions
| Name | Description | Business Data | Response | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Performs all validations (transaction and message level) on the input message |
|
||||||||||||||
Generate a pacs002 to indicate if the status of message validation |
|
||||||||||||||
Send Pacs.002 To Client |
|
Message Submission
Domain Functions
| Name | Description | Business Data | Response | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Generate a bulk name to which the transaction will be sent |
|
||||||||||||||
Send Transaction to Bulker |
|
||||||||||||||
Increments counter so that the next transaction can be processed |
|
||||||||||||||
Register correlation entry for bulk name, transaction and flow |
|
||||||||||||||
Generate a pacs.002 to indicate the status after scheme verification |
|
||||||||||||||
Send pacs.002 to client |
|
||||||||||||||
Get number of total correlated transactions |
|
Settlement Response
Domain Functions
| Name | Description | Business Data | Response | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Generate a pacs002 to indicate the status of the payment after scheme settlement |
|
||||||||||||||
Send settlement pacs.002 back to the client |
|
Reason Code Libraries
SEPA DD Reason Codes
Reason Codes
| Name | Description | Text |
|---|---|---|
AM05 |
Duplication |
none |
DT01 |
Invalid date |
none |
B00 |
Bulk/batch entirely valid |
none |
B01 |
Bulk/batch partially valid |
none |
B03 |
Invalid Number of Transactions |
none |
B05 |
Interbank Settlement Amount does not match the sum of individual transactions |
none |
B09 |
All transactions rejected |
none |
B10 |
Instructing Agent mismatch or not valid |
none |
B13 |
Total Interbank Settlement Amount is Zero |
none |
B14 |
Payment is a duplicate of another payment |
none |
B15 |
Invalid Interbank Settlement Date |
none |
B16 |
Invalid Settlement Info details |
none |
XT13 |
Unsupported XML field |
none |
XT33 |
Invalid data format |
none |
XT73 |
Invalid country code |
none |
XT91 |
Not Allowed in SEPACOM |
none |
FF01 |
Invalid File Format |
none |
BE07 |
MissingDebtorAddress |
none |
BE04 |
MissingCreditorAddress |
none |