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 -> "Payment Soft": /api/v4/payout-check/
activate "Payment Soft"
"Payment Soft" --> cp: Order ID
cp -> "Payment Soft": Get status by Order ID\napi/v2/status
"Payment Soft" --> cp : Response\nstatus,order-stage
cp -> "Payment Soft": /api/v4/payout-pay/
"Payment Soft" --> cp : Response payout-pay
group Conditional
cp -> "Payment Soft": Get status by Order ID\napi/v2/status
"Payment Soft" --> cp : Response\nstatus,redirect-to
cp -> R: Provide redirect URL
deactivate "Payment Soft"
deactivate cp
activate R
R -> "Payment Soft": Redirect by redirect-to
deactivate R
activate "Payment Soft"
"Payment Soft" -> R: Additional Submit Form
deactivate "Payment Soft"
activate R
R -> "Payment Soft": Submit Form
deactivate R
activate "Payment Soft"
end
"Payment Soft" --> "Payment Soft": Processing\nPayout
group Get Final Status
== Receive Connecting Party Callback ==
cp <- "Payment Soft" : Callback with Final Status
"Payment Soft" <-- cp: HTTP 200
deactivate "Payment Soft"
== Order Status request ==
cp -> "Payment Soft": Get status by Order ID\napi/v2/status
activate "Payment Soft"
"Payment Soft" --> cp : Response\nstatus,order-stage
deactivate "Payment Soft"
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.