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