Transaction Flow
Each transaction type has it's own flow due to processing specifics. Below you can find the processing flow illustration per each type, including the sequence of status changes and indication of interaction required at certain steps.
Below statuses apply to regular transactions. Withdrawal request has it's own flow that is described in it's own section.
The following transaction_status
values may appear through the transaction lifecycle.
Payment
pending
- waiting for updates from payment service providerapproved
- payment transaction has been approved, funds sent
rejected
- payment transaction has been rejected by the payment service providererror
- unexpected error has occurred during the processing
canceled
- payment transaction is marked as canceled when:
Withdrawal
initialized
- waiting for customer to finalize the withdrawal request submission (additional info being collected)requested
- customer has submitted a withdrawal request for merchant approvalpartial_payout
- withdrawal request is partially managed, there is related payout(s) or refunds for partial amount of present withdrawal requestsplit
- withdrawal request is fully managed, there is related payout(s) or refunds equivalent to the amount of present withdrawal requesterror
- unexpected error has occurred during the withdrawal request submissionWithdrawal -to- Payout (combined)
initialized
- waiting for customer to finalize the e-wallet login or 3D Secure verificationpending
- waiting for updates from payment service providerapproved
- transaction has been approved, funds sentrejected
- transaction has been rejected by the payment service providererror
- unexpected error has occurred during the processingrequested
- customer has submitted a withdrawal request for merchant approvalcanceled
- Merchants can cancel a withdrawal request through two primary methods:
Payout
pending
- waiting for updates from payment service provider approved
- payout transaction has been approved, funds sent
rejected
- payout transaction has been rejected by the payment service provider error
- unexpected error has occurred during the processing
Refund
pending
- waiting for updates from payment service provider approved
- refund transaction has been approved, funds sent
rejected
- refund transaction has been rejected by the payment service provider error
- unexpected error has occurred during the processing
Please note: in case if you have the Withdrawal -to- Payout combined flow, having the withdrawal requests converted into payouts under the same tid, and - if you would like to switch to distinct indication of withdrawal requests, payouts and refunds, please reach out to our support and request to have the Create new payout transaction upon WD complete setting enabled.
The authorization
transaction can be also referred to as "safe" or "complex" payment flow, where the amount is locked
on the customer's card or e-wallet account until the confirmation by the merchant, usually upon the customer
verification or confirmation of items allocated in stock.
Please note that the authorization transactions may undergo the 3DSecure challenge.
Successful synchronous capture with additional validation by acquirer (synchronous auth, asynchronous processing)
authorized
→ [capture by merchant] → [processing by acquirer] → approved
Successful synchronous capture (synchronous auth, synchronous processing)
authorized
→ [capture by merchant] → [processing by acquirer] → approved
Successful async capture with additional validation by acquirer (asynchronous auth, asynchronous processing)
initialized
→ [3DSecure or EW login] → authorized
→ [capture by merchant] → pending
→ [validation by acquirer] → [processing by acquirer] → approved
Successful async capture (asynchronous auth, synchronous processing)
initialized
→ [3DSecure or EW login] → authorized
→ [capture by merchant] → [processing by acquirer] → approved
Rejected synchronous capture with additional validation by acquirer (synchronous auth, asynchronous processing)
authorized
→ [capture by merchant] → pending
→ [validation by acquirer] → [processing by acquirer] → rejected
Rejected synchronous capture (synchronous auth, synchronous processing)
authorized
→ [capture by merchant] → [processing by acquirer] → rejected
Rejected async capture with additional validation by acquirer (asynchronous auth, asynchronous processing)
initialized
→ [3DSecure or EW login] → authorized
→ [capture by merchant] → pending
→ [validation by acquirer] → [processing by acquirer] → rejected
Rejected async capture (asynchronous auth, synchronous processing)
initialized
→ [3DSecure or EW login] → authorized
→ [capture by merchant] → [processing by acquirer] → rejected
Cancelled synchronous authorization (synchronous processing)
authorized
→ [cancellation by merchant] → rejected
Cancelled async authorization (asynchronous processing)
initialized
→ [3DSecure or EW login] → authorized
→ [cancellation by merchant] → rejected
The sale
transaction type is intended for instant processing. The payment details will be instantly sent to
acquirer for the following processing status -or- 3DSecure verification and further processing status
Successful synchronous sale with additional validation by acquirer (synchronous input, asynchronous processing)
initialized
→ [validation by acquirer] → approved
Successful synchronous sale (synchronous input, synchronous processing)
approved
Successful async sale with additional validation by acquirer (asynchronous input, asynchronous processing)
initialized
→ [3DSecure or EW login] → pending
→ [validation by acquirer] → [processing by acquirer] → approved
Successful async sale (asynchronous input, synchronous processing)
initialized
→ [3DSecure or EW login] → [processing by acquirer] → approved
Rejected synchronous sale with additional validation by acquirer (synchronous input, synchronous processing)
initialized
→ [validation by acquirer] → rejected
Rejected synchronous sale (synchronous input)
rejected
Rejected async sale with additional validation by acquirer (asynchronous input, asynchronous processing)
initialized
→ [3DSecure or EW login] → pending
→ [validation by acquirer] → [processing by acquirer] → rejected
Rejected async sale or failed 3DS challenge (asynchronous input, synchronous processing)
initialized
→ [3DSecure or EW login] → [processing by acquirer] → rejected
The payout
transaction, or CFT (fund transfer to customer). With payout transaction the merchant can send any amount
to any payment details (credit card, bank account or e-wallet).
Successful synchronous payout with additional validation by acquirer (synchronous input, asynchronous processing)
initialized
→ [validation by acquirer] → approved
Successful synchronous payout (synchronous input, synchronous processing)
approved
Successful async payout with additional validation by acquirer (asynchronous input, asynchronous processing)
initialized
→ [EW login] → pending
→ [validation by acquirer] → [processing by acquirer] → approved
Successful async payout (asynchronous input, synchronous processing)
initialized
→ [EW login] → [processing by acquirer] → approved
Rejected synchronous payout with additional validation by acquirer (synchronous input, synchronous processing)
initialized
→ [validation by acquirer] → rejected
Rejected synchronous payout (synchronous input)
rejected
Rejected async payout with additional validation by acquirer (asynchronous input, asynchronous processing)
initialized
→ [EW login] → pending
→ [validation by acquirer] → [processing by acquirer] → rejected
Rejected async payout (asynchronous input, synchronous processing)
initialized
→ [EW login] → [processing by acquirer] → rejected
The refund
transaction is an extension (continuation) to authorization or sale. Refund would use the original payment
in order to reverse the transaction in a way that the same customer's card or e-wallet will receive funds from the
same merchant's bank account.
Successful synchronous refund with additional validation by acquirer (synchronous input, asynchronous processing)
initialized
→ [validation by acquirer] → approved
Successful synchronous refund (synchronous input, synchronous processing)
approved
Successful async refund with additional validation by acquirer (asynchronous input, asynchronous processing)
initialized
→ [EW login] → pending
→ [validation by acquirer] → [processing by acquirer] → approved
Successful async refund (asynchronous input, synchronous processing)
initialized
→ [EW login] → [processing by acquirer] → approved
Rejected synchronous refund with additional validation by acquirer (synchronous input, synchronous processing)
initialized
→ [validation by acquirer] → rejected
Rejected synchronous refund (synchronous input)
rejected
Rejected async refund with additional validation by acquirer (asynchronous input, asynchronous processing)
initialized
→ [EW login] → pending
→ [validation by acquirer] → [processing by acquirer] → rejected
Rejected async refund (asynchronous input, synchronous processing)
initialized
→ [EW login] → [processing by acquirer] → rejected
Withdrawal request is not a real transaction, but the origin for it's following payout and refund transactions.
The following transaction_status
values may appear through the lifecycle of a withdrawal request:
initialized
- waiting for customer to finalize the e-wallet login or 3D Secure verification.requested
- withdrawal request has been submitted, waiting for the merchant to do the processing.partial
- part of the withdrawal request amount has been processed with following payouts and refunds (status: partial is sent to CRM in the notification, status: Partial Payout is displayed in Admin).approved
- full withdrawal request amount has been processed with following payouts and refunds, applicable to combined Withdrawal -to- Payout flow.cancelled
- transaction has been cancelled by the merchant or customer (refer to edited_by
).error
- unexpected error has occurred during the processing.split_partial
- status means that a WD request has been processed partially, the status will be indicated after the first attempt and appears only in response to find-transaction API call being requested for WD request TID.split
- the final withdrawal request status after the requested balance has been fully withdrawn, either in parts or with a single transfer. Appears only in response to find-transaction API call being requested for WD request TID.