3. Payment initiation
- The Participant initiates the payment transaction off-chain via a Web UI. The payment request is handled by a web server on the Participant’s node of the Corda business network and sent via Corda RPC to the custom Payment CorDapp installed on the Participant’s node.
- The Participant’s request is accepted by the CorDapp on the Participant’s node and is transformed to a payment instruction formatted according to the industry-accepted payment standard (ISO 20022 formatted XML representing a
CustomerCreditTransferInitiation
message) to be passed to Gevamu Payments SDK. Gevamu Payments SDK pre-validates the payment instruction and creates a state (or several states if multiple payments are instructed) with an attachment containing the original payment instruction. Every single payment gets it's own unique ID (UUID), which can be used to find it, if necessary. - The payment instruction is sent to Gevamu Payments Gateway.
- The Gevamu Payments Gateway validates the payment instruction.
The Payments Gateway checks if the Participant is authorized to submit this payment request, validating the payment instruction from the following aspects:- Node Identity – whether a payment request is received from the node that initially registered the Participant initiating the request.
- Participant ID – whether the Participant is registered with the Payments network and if Participant ID is registered to the Participant’s node.
- If valid, the Payment Gateway sends the payment instruction to the external gateway of the PSP, updates the status of the payment instruction to Sent to Gateway and communicates it to the Participant.
If not valid, a corresponding status is sent back to the Participant’s CorDapp. - After the payment instruction is received by the PSP, it will return one of the following payment status:
- Pending
- Accepted
- Rejected
- Once the PSP replies to the payment request, the returned payment status is propagated back to the Participant’s node. The updated status is made available as a new Corda state in the payment statuses chain.
- The participant’s CorDapp may opt to subscribe to the payment state updates to be notified on Payment processing progress.