1.9. Payout with bank confirmation

Introduction

Payout is a type of transaction which results in funds transfer from Connecting Party banking account to customer (receiver) banking account or digital wallet. This Use-Case describes the integration of payouts which require additional confirmation from the bank.
See terms definitions in Glossary.

Payout Flow

participant Receiver as R
participant "Connecting Party" as cp
autonumber
group Optional
R -> cp : Checkout
activate cp
end
== Payout request ==
cp -> "Ibm Global": /api/v4/payout-check/
activate "Ibm Global"
"Ibm Global" --> cp: Order ID
cp -> "Ibm Global": Get status by Order ID\napi/v2/status
"Ibm Global" --> cp : Response\nstatus,order-stage
cp -> "Ibm Global": /api/v4/payout-pay/
"Ibm Global" --> cp : Response payout-pay
group Conditional
cp -> "Ibm Global": Get status by Order ID\napi/v2/status
"Ibm Global" --> cp : Response\nstatus,redirect-to
cp -> R: Provide redirect URL
deactivate "Ibm Global"
deactivate cp
activate R
R -> "Ibm Global": Redirect by redirect-to
deactivate R
activate "Ibm Global"
"Ibm Global" -> R: Additional Submit Form
deactivate "Ibm Global"
activate R
R -> "Ibm Global": Submit Form
deactivate R
activate "Ibm Global"
end
"Ibm Global" --> "Ibm Global": Processing\nPayout
group Get Final Status
== Receive Connecting Party Callback ==
cp <- "Ibm Global" : Callback with Final Status
"Ibm Global" <-- cp: HTTP 200
deactivate "Ibm Global"
== Order Status request ==
cp -> "Ibm Global": Get status by Order ID\napi/v2/status
activate "Ibm Global"
"Ibm Global" --> cp : Response\nstatus,order-stage
deactivate "Ibm Global"
end
group Optional
cp --> R: Show result
deactivate cp
end

(1) Payout can be initiated by Connecting Party based on internal business model or Receiver’s request.
(2) To initiate payout, implement payout-check request, see /api/v4/payout-check.
(4) To implement order status request see /api/v2/status/.
(5) The order-stage parameter should be payout_check_validated. If payout_check_validating is received, the payout request is not confirmed by the bank yet. In this case the Connecting party should continue to request transaction status.
(6) To continue payout processing, implement payout-pay request, see /api/v4/payout-pay.
(9) Some payout methods require the Receiver to fill the additional data on the form. The form to redirect the customer will return in status response in redirect-to parameter.
(12) The Receiver submits the payout form.
(13) The Receiver gets redirected back to Connecting Party. See Final redirect.
(15) To implement callback with final status handling see Connecting Party Callback.
(17) Status should be requested multiple times with 3-5 seconds interval until final status will be received in response.
(19) Final Status can be sent by Connecting Party based on internal business model or by Receiver’s request.