Generic Transaction Patterns
Preface
This section contains information about how to use this document.
Conventions Used in This Document
The following conventions are used in this document to identify the specified types of information
Elements of the API, such as resources
Boldface
/authorization
Variables
Italics within curly brackets
{ID}
Glossary terms
Italics on first occurrence; defined in Glossary
The purpose of the API is to enable interoperable financial transactions between a Payer (a payer of electronic funds in a payment transaction) located in one FSP (an entity that provides a digital financial service to an end user) and a Payee (a recipient of electronic funds in a payment transaction) located in another FSP.
Library documents
Italics
User information should, in general, not be used by API deployments; the security measures detailed in API Signature and API Encryption should be used instead.
Document Version Information
1.0
2018-03-13
Initial version
Introduction
This document introduces the four generic transaction patterns that are supported in a logical version of the Interoperability API. Additionally, all logical services that are part of the API are presented on a high-level.
Open API for FSP Interoperability Specification
The Open API for FSP Interoperability Specification includes the following documents.
Logical Documents
Asynchronous REST Binding Documents
Data Integrity, Confidentiality, and Non-Repudiation
General Documents
Logical API Services
The Interoperability API consists of a number of logical API resources. Each resource defines one or more services that clients can use to connect to a server that has implemented the API. This section introduces these services.
For example, some services are used for provisioning of information, are part of error cases, or are for retrieving information that is not necessary in a generic transaction pattern.
Common Functionality
This section introduces functionality that is used by more than one logical API resource or service.
Party Addressing
A Party is an entity such as an individual, a business, an organization that has a financial account in one of the FSPs. A party is addressed by a combination of an ID type and an ID, and possibly also a subtype or sub ID. Some examples of ID type and ID combinations are:
ID type: MSISDN, ID: +123456789
ID type: Email, ID: john@doe.com
Interledger
API Resource Participants
In the API, a Participant is the same as an FSP that is participating in an Interoperability Scheme. The primary purpose of the logical API resource Participants is for FSPs to find out in which other FSP a counterparty in an interoperable financial transaction is located. There are also services defined for the FSPs to provision information to a common system.
Requests
This section identifies the logical API service requests that can be sent from a client to a server.
Lookup Participant Information
The logical API service request Lookup Participant Information
is used from an FSP to request from another system, which could be another FSP or a common system, information regarding in which FSP a counterparty in an interoperable financial transaction is located.
Create Participant Information
The logical API service request Create Participant Information
is used to provision information regarding in which FSP a party is located.
Create Bulk Participant Information
The logical API service request Create Bulk Participant Information
is used to provision information regarding in which FSP one or more parties are located.
Delete Participant Information
The logical API service request Delete Participant Information
is used to remove information regarding in which FSP a party is located.
Responses
This section identifies the logical API service responses that can be sent back to a client from a server.
Return Participant Information
Return Bulk Participant Information
Error Responses
This section identifies the logical API service error responses that can be sent back to a client from a server.
Return Participant Information Error
Return Bulk Participant Information Error
API Resource Parties
In the API, a Party is an individual, a business, an organization, or a similar entity, that has a financial account in one of the FSPs. The primary purpose of the logical API resource Parties is for FSPs to ascertain information regarding a counterparty in an interoperable financial transaction, such as name and birth date of the Party.
Requests
This section identifies the logical API service requests that can be sent from a client to a server.
Lookup Party Information
The logical API service request Lookup Party Information
is used by an FSP to request from another FSP information regarding a counterparty in an interoperable financial transaction.
Responses
This section identifies the logical API service responses that can be sent back to a client from a server.
Return Party Information
Error Responses
This section identifies the logical API service error responses that can be sent back to a client from a server.
Return Party Information Error
API Resource Transaction Requests
In the API, a Transaction Request is a request from a Payee to a Payer to transfer electronic funds to the Payee, which the Payer can accept or reject. The primary purpose of the logical API resource Transaction Requests is for a Payee FSP to send the request to transfer to the Payer FSP.
Requests
This section identifies the logical API service requests that can be sent from a client to a server.
Perform Transaction Request
The logical API service request Perform Transaction Request
is used to send a Transaction Request from a Payee FSP to the Payer FSP; that is, to ask if a Payer will accept or reject a transaction from the Payer to the Payee.
Retrieve Transaction Request Information
The logical API service request Retrieve Transaction Request Information
is used from a Payee FSP to a Payer FSP to request information regarding a previously-sent Transaction Request.
Responses
This section identifies the logical API service responses that can be sent back to a client from a server.
Return Transaction Request Information
Error Responses
This section identifies the logical API service error responses that can be sent back to a client from a server.
Return Transaction Request Information Error
API Resource Quotes
In the API, a Quote is the price for performing an interoperable financial transaction from the Payer FSP to the Payee FSP. The primary purpose of the logical API resource Quotes is for a Payer FSP to request a Payee FSP to calculate the Payee FSP's part of the quote.
Requests
This section identifies the logical API service requests that can be sent from a client to a server.
Calculate Quote
Retrieve Quote Information
Responses
This section identifies the logical API service responses that can be sent back to a client from a server.
Return Quote Information
Error Responses
This section identifies the logical API service error responses that can be sent back to a client from a server.
Return Quote Information Error
API Resource Authorizations
In the API, an Authorization is an approval from a Payer to perform an interoperable financial transaction by entering the applicable credentials in a Payee FSP system. An example where this kind of approval is used, is when a Payer is using an ATM that is managed by another FSP. The primary purpose of the logical API resource Authorizations is for a Payer FSP to request a Payee FSP to ask the Payer to enter the credentials.
Requests
This section identifies the logical API service requests that can be sent from a client to a server.
Perform Authorization
The logical API service request Perform Authorization
is used from a Payer FSP to ask a Payee FSP to enter the applicable credentials to approve an interoperable financial transaction.
Responses
This section identifies the logical API service responses that can be sent back to a client from a server.
Return Authorization Result
Error Responses
This section identifies the logical API service error responses that can be sent back to a client from a server.
Return Authorization Error
API Resource Transfers
The transfer also contains information regarding the end-to-end interoperable financial transaction. The primary purpose of the logical API resource Transfers is for an FSP or Switch to request that the next entity in the chain of the ILP Payment perform the transfer involved in the interoperable financial transaction.
Requests
This section identifies the logical API service requests that can be sent from a client to a server.
Perform Transfer
The logical API service request Perform Transfer
is used by an FSP or Switch to request the next entity in the chain of the ILP Payment to reserve the transfer involved in an interoperable financial transaction.
Retrieve Transfer Information
The logical API service request Retrieve Transfer Information
is used by an FSP or Switch to request the next entity in the chain of the ILP Payment for information regarding the transfer involved in an interoperable financial transaction.
Responses
This section identifies the logical API service responses that can be sent back to a client from a server.
Return Transfer Information
Error Responses
This section identifies the logical API service error responses that can be sent back to a client from a server.
Return Transfer Information Error
API Resource Transactions
In the API, a Transaction is an end-to-end interoperable financial transaction between the Payer FSP and Payee FSP. The primary purpose of the logical API resource Transactions is for a Payer FSP to request end-to-end information from the Payee FSP regarding an interoperable financial transaction; for example, in order to get a token or code that the Payer can use to redeem a service or product.
Requests
This section identifies the logical API service requests that can be sent from a client to a server.
Retrieve Transaction Information
Responses
This section identifies the logical API service responses that can be sent back to a client from a server.
Return Transaction Information
Error Responses
This section identifies the logical API service error responses that can be sent back to a client from a server.
Return Transaction Information Error
API Resource Bulk Quotes
The primary purpose of the logical API resource Bulk Quotes is for a Payer FSP to request a Payee FSP to calculate the Payee FSP's part of the bulk quote.
Requests
This section identifies the logical API service requests that can be sent from a client to a server.
Calculate Bulk Quote
The logical API service request Calculate Bulk Quote
is used by a Payer FSP to request that a Payee FSP calculate the Payee FSP's part of the quotes to perform more than one interoperable financial transaction.
Retrieve Bulk Quote Information
Responses
This section identifies the logical API service responses that can be sent back to a client from a server.
Return Bulk Quote Information
Error Responses
This section identifies the logical API service error responses that can be sent back to a client from a server.
Return Bulk Quote Information Error
API Resource Bulk Transfers
The primary purpose of the logical API resource Bulk Transfers is to enable an FSP or Switch to request that the next entity in the chain of the ILP Payment perform the transfers involved in the interoperable financial transactions.
Requests
This section identifies the logical API service requests that can be sent from a client to a server.
Perform Bulk Transfer
The logical API service request Perform Bulk Transfer
is used by an FSP or Switch to request that the next entity in the chain of the ILP Payment reserve the transfer involved in an interoperable financial transaction.
Retrieve Bulk Transfer Information
The logical API service request Retrieve Bulk Transfer Information
is used from an FSP or Switch to request that the next entity in the chain of the ILP Payment for information regarding the transfer involved in an interoperable financial transaction.
Responses
This section identifies the logical API service responses that can be sent back to a client from a server.
Return Bulk Transfer Information
Error Responses
This section identifies the logical API service error responses that can be sent back to a client from a server.
Return Bulk Transfer Information Error
Generic Transaction Patterns
This section provides information about the three primary transaction patterns defined in the Interoperability API:
Each transaction pattern defines how funds can be transferred from a Payer located in one Financial Service Provider (FSP) to a Payee located in another FSP.
Additionally, the section provides high-level information about all logical services that are part of the API.
Payer-Initiated Transaction
In a Payer-Initiated Transaction, the Payer
initiates the transaction.
Business Process Pattern Description
The Payer-Initiated Transaction pattern should be used whenever a Payer
would like to transfer funds to another party whose account is not located in the same FSP.
In most implementations, Payee
involvement is limited to receiving a notification in the event of a successful transaction. Exceptions in which the Payee is more involved are:
In countries that require the
Payee
to confirm receipt of funds.Cases in which the
Payee
should accept the terms of the transaction (for example, Agent-Initiated Cash-In).
Participants and Roles
The actors in a Payer-Initiated Transaction are:
Payer -- The payer of funds in a financial transaction.
Payee -- The recipient of funds in a financial transaction.
The intermediary objects used in a Payer-Initiated Transaction to perform the transaction are:
Payer FSP -- The FSP in which the Payer's account is located.
Switch (optional) -- An optional entity used for routing of requests between different FSPs. This object can be removed if requests should be routed directly between a Payer and Payee FSP.
Account Lookup System -- An entity used for retrieving information regarding accounts or participants. Could be hosted in a separate server, in the Switch, or in the different FSPs.
Payee FSP -- The FSP in which the Payee's account is located.
Business Process Sequence Diagram
Figure 1 shows the UML sequence diagram for a Payer-Initiated Transaction.
Figure 1 -- Payer-Initiated Transaction
Internal Processing Steps
Lookup Counterparty
Description
The
Payer
initiates the transaction by requesting to send funds to aPayee
, using thePayer FSP
's front-end API (outside the scope of this API).Assumptions
None.
Description
Assumptions
Description
Assumptions
An
Account Lookup System
is assumed to exist in a different server than theSwitch
. It is possible that theAccount Lookup System
is in the same system as theSwitch
.Description
Assumptions
The
Payee
can be found by theAccount Lookup System
.Description
Assumptions
None.
Description
Assumptions
None.
Description
Assumptions
None.
Description
Assumptions
None.
Calculate Quote
Description
Assumptions
Description
Assumptions
None.
Description
Assumptions
None.
Optional procedure: Quote Confirmation by Payee
a. Description
Depending on the use case and the fee model used, the
Payee
might be informed of the quote in order to confirm the proposed financial transaction. The quote is in that case sent to thePayee
using a front-end API (outside the scope of this API). ThePayee
receives the quote including information regarding the transaction including fees and optionallyPayer
name. ThePayee
then confirms the quote using a front-end API (outside the scope of this API), and thePayee FSP
receives the confirmation from thePayee
.Assumptions
The
Payee
is assumed to accept and confirm the quote. If thePayee
would reject the quote, an error response would be sent from thePayee
FSP to thePayer FSP
via theSwitch
to inform about the rejected quote.End of Optional procedure
Description
Assumptions
None.
Description
Assumptions
None.
Description
Assumptions
The total quote can be calculated by the
Payer FSP
. Also, thePayee
name was allowed to be sent during the counterparty lookup (depending on regulation on privacy laws).Description
The
Payer
receives the transaction information including fees, taxes and optionallyPayee
name. If thePayer
rejects the transaction, the sequence ends here.Assumptions
The
Payer
is assumed to approve the transaction in this sequence. If thePayer
would reject the transaction at this stage, no response regarding the rejection is sent to thePayee FSP
. The created quote at thePayee FSP
should have an expiry time, at which time it is automatically deleted.
Perform Transfer
Description
Assumptions
Description
Assumptions
Internal validations and reservation are successful.
Description
Assumptions
Internal validations and transfer of funds are successful.
Description
The
Payee
receives a transaction notification containing information about the successfully performed transaction.Assumptions
None.
Description
Assumptions
The fulfilment is assumed to be correctly validated.
Description
Assumptions
The fulfilment is assumed to be correctly validated.
Optional fragment: Get Transaction Details
Description
Assumptions
None.
Description
Assumptions
None.
Description
Assumptions
The transaction with the provided ID can be found in the
Payee FSP
.Description
Assumptions
None.
Description
Assumptions
None.
End of Optional fragment
Description
The
Payer FSP
sends a transaction notification to thePayee
using a front-end API (out of scope of this API), optionally including transaction details retrieved from thePayee FSP
.Assumptions
None.
Description
The
Payer
receives a transaction notification containing information about the successfully performed transaction.Assumptions
None.
Payee-Initiated Transaction
In a Payee-Initiated Transaction, the Payee
(that is, the recipient of electronic funds) initiates the transaction.
Business Process Pattern Description
The pattern should be used whenever a Payee
would like to receive funds from another party whose account is not located in the same FSP.
In all alternatives to this pattern, the Payer
must in some way confirm the request of funds. Some possible alternatives for confirming the request are:
Manual approval -- A transaction request is routed from the Payee to the Payer, the Payer can then either approve or reject the transaction.
Pre-approval of Payee -- A Payer can pre-approve a specific Payee to request funds, used for automatic approval of, for example, school fees or electric bills.
Participants and Roles
The actors in a Payee-Initiated Transaction are:
Payer -- The payer of funds in a financial transaction.
Payee -- The recipient of funds in a financial transaction.
The intermediary objects used in a Payee-Initiated Transaction to perform the transaction are:
Payer FSP -- The FSP in which the Payer's account is located.
Switch (optional) -- An optional entity used for routing of requests between different FSPs. This object can be removed if requests should be routed directly between a Payer and Payee FSP.
Account Lookup System -- An entity used for retrieving information regarding accounts or participants. Could be hosted in a separate server, in the Switch, or in the different FSPs.
Payee FSP -- The FSP in which the Payee's account is located.
Business Process Sequence Diagram
Figure 2 shows the UML sequence diagram for a Payee-Initiated Transaction.
Figure 2 -- Payee-Initiated Transaction
Internal Processing Steps
This section provides descriptions of and assumptions made for all steps in the sequence shown in Figure 2 above.
Lookup Counterparty
Description
The
Payee
initiates the transaction by requesting to receive funds from aPayer
, using thePayee FSP
's front-end API (outside the scope of this API).Assumptions
None.
Description
The
Payee FSP
tries to find the Payer within the FSP system. Because thePayer
cannot be found in thePayee FSP
system, thePayee FSP
sends the request to the optionalAccount Lookup System
to get information regarding in which FSP thePayer
is located.Assumptions
The
Payer
is assumed to be located in a different FSP than thePayee
. Also, anAccount Lookup System
is assumed to exist.Description
Assumptions
The
Payer
can be found by theAccount Lookup System
.Description
Assumptions
None.
Transaction Request
Description
Assumptions
Description
Assumptions
None.
Description
Assumptions
The optional validation succeeds.
Description
Assumptions
None.
Description
Assumptions
None.
Calculate Quote
Description
Assumptions
Description
Assumptions
None.
Description
Assumptions
None
Description
Depending on use case and the fee model used, the
Payee
might be informed of the quote so that thePayee
can confirm the proposed financial transaction. The quote is in that case sent to thePayee
using a front-end API (outside the scope of this API). ThePayee
receives the quote including information regarding the transaction including fees and optionally Payer name. ThePayee
then confirms the quote using a front-end API (outside the scope of this API). ThePayee FSP
receives the confirmation from thePayee
.Assumptions
The quote is assumed to be sent to the
Payer
for confirmation, and thePayee
is assumed to accept and confirm the quote. If thePayee
would reject the quote, an error response would be sent from thePayee FSP
to thePayer FSP
via theSwitch
to inform about the rejected quote.End of Optional fragment
Description
Assumptions
None.
Description
Assumptions
None.
Description
Assumptions
The total quote can be calculated by the
Payer FSP
. Also, thePayee
name was allowed to be sent during the counterparty lookup (depending on regulation on privacy laws).Description
The
Payer
receives the transaction request information including fees, taxes and optionallyPayee
name.Assumptions
If the
Payer
rejects the transaction request, the sequence proceeds to Step 18. If thePayer
approves the transaction request, the sequence proceeds to Step 22.Alternative: Transaction Rejection
Description
Assumptions
The
Payer
is assumed to reject the transaction request in Step 17.Description
Assumptions
None.
Description
Assumptions
None.
Description
The
Payee
receives the notification that the transaction was rejected. The process ends here as the transaction request was rejected and thePayee
has been informed of the decision.Assumptions
None.
Alternative: Perform Transfer
Description
Assumptions
Description
Assumptions
Internal validations and reservation are successful.
Description
Assumptions
Internal validations and transfer of funds are successful.
Description
The
Payee
receives a transaction notification containing information about the successfully performed transaction.Assumptions
None.
Description
Assumptions
The fulfilment is assumed to be correctly validated.
Description
Assumptions
The fulfilment is assumed to be correctly validated.
Optional fragment: Get Transaction Details
Description
Assumptions
None.
Description
Assumptions
None.
Description
Assumptions
The transaction with the provided ID can be found in the Payee FSP.
Description
Assumptions
None.
Description
Assumptions
None.
End of Optional fragment
Description
The
Payer FSP
sends a transaction notification to thePayee
using a front-end API (out of scope of this API), optionally including transaction details retrieved from thePayee FSP
.Assumptions
None.
Description
The
Payer
receives a transaction notification containing information about the successfully performed transaction.Assumptions
None.
Payee-Initiated Transaction using OTP
Business Process Pattern Description
The pattern should be used when a Payee
would like to receive funds from another party whose account is not located in the same FSP, and both the transaction information (including fees and taxes) and approval is shown/entered on a Payee
device instead.
Approval using OTP -- A
Payer
can approve a transaction by first creating an OTP in his/her FSP. An alternative to user- initiated creation of OTP is that the OTP is automatically generated and sent by thePayer FSP
. The same OTP is then entered by thePayer
in aPayee
device, usually a POS device or an ATM. The OTP in the transaction request is automatically matched by thePayer FSP
to either approve or reject the transaction. The OTP does not need to be encrypted as it should only be valid once during a short time period.
Participants and Roles
The actors in a Payee-Initiated Transaction using OTP are:
Payer -- The payer of funds in a financial transaction.
Payee -- The recipient of funds in a financial transaction.
The intermediary objects used in a Payee-Initiated Transaction using OTP to perform the transaction are:
Payer FSP -- The FSP in which the Payer's account is located.
Switch (optional) -- An optional entity used for routing of requests between different FSPs. This object can be removed if requests should be routed directly between a Payer and Payee FSP.
Account Lookup System -- An entity used for retrieving information regarding accounts or participants. Could be hosted in a separate server, in the Switch, or in the different FSPs.
Payee FSP -- The FSP in which the Payee's account is located.
Business Process Sequence Diagram
Figure 3 shows the UML sequence diagram for a Payee-Initiated Transaction using OTP.
Figure 3 -- Payee-Initiated Transaction using OTP
Internal Processing Steps
This section provides descriptions of and assumptions made for all steps in the sequence shown in Figure 3 above.
Optional fragment: Manual OTP request
Description
The
Payer
requests that an OTP be generated, using thePayer FSP
's front-end API (outside the scope of this API).Assumptions
There are two alternatives for generating an OTP; either it is generated upon request by the
Payer
(this option), or it is automatically generated in Step 19.Description
The
Payer FSP
receives the request to generate an OTP and returns a generated OTP to thePayer
, using thePayer FSP
's front-end API (outside the scope of this API).Assumptions
None.
Description
Payer
receives the generated OTP. The OTP can then be used by thePayer
in Step 25 for automatic approval.Assumptions
None.
End of Optional fragment
Lookup Counterparty
Description
The
Payee
initiates the transaction by requesting to receive funds from aPayer
, using thePayee FSP
's front-end API (outside the scope of this API).Assumptions
None.
Description
The
Payee FSP
tries to find thePayer
within the FSP system. Because thePayer
cannot be found in thePayee FSP
system, the request Lookup Participant Information is sent by thePayee FSP
to the optional Account Lookup System to get information regarding in which FSP the Payer is located.Assumptions
Description
Assumptions
The
Payer
can be found by theAccount Lookup System
.Description
Assumptions
None.
Transaction Request
Description
Assumptions
Description
Assumptions
None.
Description
Assumptions
The optional validation succeeds.
Description
Assumptions:
None.
Description
Assumptions
None.
Calculate Quote
Description
Assumptions
Description
Assumptions
None.
Description
Assumptions
None.
Optional fragment: Quote Confirmation by Payee
Description
Depending on the fee model used and which use case it is, the
Payee
might be informed of the quote to be able to confirm the proposed financial transaction. The quote is in that case sent to thePayee
using a front- end API (outside the scope of this API. ThePayee
receives the quote including information regarding the transaction including fees and optionallyPayer
name. ThePayee
then confirms the quote using a front-end API (outside the scope of this API). ThePayee FSP
receives the confirmation from thePayee
.Assumptions
The quote is assumed to be sent to the Payer for confirmation, and the
Payee
is assumed to accept and confirm the quote. If thePayee
would reject the quote, an error response would be sent from thePayee FSP
to thePayer FSP
via theSwitch
to inform about the rejected quote.End of Optional fragment
Description
Assumptions
None.
Description
Assumptions
None.
Description
Assumptions
The total quote can be calculated by the
Payer FSP
.Optional fragment: Automatic OTP generation
Description
The
Payer FSP
automatically generates an OTP and sends it to thePayer
, using thePayer FSP
's front-end API (outside the scope of this API).Assumptions
There are two alternatives for generating the OTP. Either it is generated upon request by the
Payer
(Step 1), or it is automatically generated (this option).Description
The
Payer
receives the automatically-generated OTP.Assumptions
None.
End of Optional fragment
Description
Assumptions
None.
Description
Assumptions
None.
Description
Assumptions
None.
Description
The
Payee
device receives the authorization request, and thePayer
can see the amount that will be withdrawn from his or her account. ThePayer
then uses the OTP received in Step 3 or Step 21, depending on whether the OTP was manually requested or automatically generated. The entered or scanned OTP is then sent to thePayee FSP
using thePayee FSP
's front-end API (outside the scope of this API).Assumptions
The
Payer
has received the OTP in Step 3 or Step 21.Description
Assumptions
None.
Description
Assumptions
None.
Description
Assumptions
None.
Alternative: OTP validation failed
Description
Assumptions
The OTP validation in Step 28 is assumed to fail and no more retries remains for the Payer.
Description
Assumptions
None.
Description
Assumptions
None.
Description
The
Payee
receives the notification that the transaction was rejected. The process ends here as the transaction request was rejected and thePayee
has been informed of the decision. ThePayer
is also assumed to receive the notification via thePayee
device.Assumptions
None.
Alternative: OTP validation succeed
Description
Assumptions
Description
Assumptions
Internal validations and reservation are successful.
Description
Assumptions
Internal validations and transfer of funds are successful.
Description
The
Payee
receives a transaction notification containing information about the successfully performed transaction.Assumptions
None.
Description
Assumptions
The fulfilment is assumed to be correctly validated.
Description
Assumptions
The fulfilment is assumed to be correctly validated.
Optional fragment: Get Transaction Details
Description
Assumptions
None.
Description
Assumptions
None.
Description
Assumptions
The transaction with the provided ID can be found in the
Payee FSP
.Description
Assumptions
None.
Description
Assumptions
None.
End of Optional fragment
Description
The
Payer FSP
sends a transaction notification to thePayee
using a front-end API (out of scope of this API), optionally including transaction details retrieved from thePayee FSP
.Assumptions
None.
Description
The
Payer
receives a transaction notification containing information about the successfully performed transaction.Assumptions
None.
Bulk Transactions
In a Bulk Transaction, the Payer
(that is, the sender of funds) initiates multiple transactions to multiple Payees, potentially located in different FSPs.
Business Process Pattern Description
The pattern should be used whenever a Payer
would like to transfer funds to multiple Payees in the same transaction. The Payees can potentially be located in different FSPs.
Participants and Roles
The actors in a Bulk Transaction are:
Payer -- The sender of funds.
Payees -- The recipients of funds. There should be multiple Payees in a Bulk Transaction.
The intermediary objects used in a Bulk Transaction to perform the transaction are:
Payer FSP -- The FSP in which the Payer's account is located.
Switch (optional) -- An optional entity used for routing of transactions between different FSPs. This object can be removed if transactions should be routed directly between a Payer and
Payee FSP
.Account Lookup System -- An entity used for retrieving information regarding accounts or participants. Could be hosted in a separate server, in the Switch, or in the different FSPs.
Payee FSP -- The FSP in which a Payee's account is located. There may be multiple Payee FSPs in a Bulk Transaction.
Business Process Sequence Diagram
Figure 4 below shows the UML sequence diagram for a Bulk Transaction.
**Figure 4 -- Bulk Transaction**
Internal Processing Steps
This section provides descriptions of and assumptions made for all steps in the sequence shown in Figure 4.
Lookup Counterparties
Description
The
Payer
initiates the bulk transaction process by uploading a bulk file to thePayer FSP
, using thePayer FSP
's front-end API (outside the scope of this API).Assumptions
None.
Loop for each Transaction in bulk file
Description
Payer FSP
tries to find the Payee within thePayer FSP
system.Assumptions
The
Payee
is assumed to be located in a different FSP than thePayer
. If thePayee
is within thePayer FSP
, the transaction can be handled internally in thePayer FSP
(outside the scope of this API).Description
Assumptions
Description
Assumptions
The
Payee
can be found by theAccount Lookup System
.Description
Assumptions
None.
End of loop for each Transaction
Calculate Bulk Quote
6. Description
7. Description
8. Description
9. Description
10. Description
11. Description
12. Description
Perform Bulk Transfer**
Description
The
Payer FSP
receives the request to execute the bulk transaction from thePayer
.Assumptions
None.
Loop for each
Payee FSP
to perform Bulk TransferDescription
Assumptions
Description
Assumptions
Internal validations and reservation are successful.
Description
Assumptions
Internal validations and transfers of funds are successful.
Description
Each
Payee
receives a transaction notification containing information about the successfully performed transaction.Assumptions
None.
Description
Assumptions
Each individual transaction in the bulk transaction is assumed to be successful in the
Payee FSP
, and the validation of the fulfilments is also assumed to be correct. If one or more of the transactions in the bulk transaction were unsuccessful, the earlier reserved, now unsuccessful, transfer or transfers in theSwitch
would need to be cancelled.Description
Assumptions
Each individual transaction in the bulk transaction is assumed to be successful in the
Payee FSP
, and the validation of the fulfilments is also assumed to be correct. If one or more of the transactions in the bulk transaction were unsuccessful, the earlier reserved transfer in thePayer FSP
would need to be updated with the total amount of all successful transactions before being committed.End of loop for each
Payee FSP
Description
After each of the
Payee FSP
s has executed their part of the bulk transaction, a response is sent to the Payer using a front- end API (out of scope for this API).Assumptions
None.
Description
The
Payer
receives a bulk transaction notification containing information about the successfully performed bulk transaction.Assumptions
None.
References
List of Figures
Last updated
Was this helpful?