Praxis Wiki logo

Processing 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.

Transaction Statuses

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

  • initialized - waiting for customer to finalize the e-wallet login or 3D Secure verification
  • pending - waiting for updates from payment service provider
  • authorized - authorization has been processed successfully, waiting for the merchant to capture or cancel
  • approved - transaction has been approved, funds sent
  • rejected - transaction has been rejected by the payment service provider
  • cancelled - transaction has been cancelled by the merchant or customer (refer to edited_by)
  • error - unexpected error has occurred during the processing
  • partial_refund - approved payment that has been partially refunded afterwards
  • refund - approved payment that has been fully refunded afterwards
  • chargeback - approved payment that has been charged back afterwards

Withdrawal

  • initialized - waiting for customer to finalize the e-wallet login or 3D Secure verification
  • pending - waiting for updates from payment service provider
  • approved - transaction has been approved, funds sent
  • rejected - transaction has been rejected by the payment service provider
  • error - unexpected error has occurred during the processing

Authorization

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 asunc 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

Sale

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

Payout

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

Refund

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

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_payout - part of the withdrawal request amount has been processed with following payouts and refunds
  • processed - full withdrawal request amount has been processed with following payouts and refunds
  • 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.