The flow
1
Initiated
Create an order returns
statusId: 1,
status: "Initiated". No money has been requested yet — the customer hasn’t picked a method.2
Pending
Pay an order moves it to
statusId: 2. The exact message
depends on the method: pending-authenticaion for a card awaiting 3-D Secure,
pending bank notification for a bank transfer awaiting funds.3
Final
The order settles as
Successful (statusId: 5) or fails. At this point
isFinalStatus is true and you can stop polling.Status values
Treat
isFinalStatus in the order status response as
authoritative rather than hard-coding the statusId list — it is the field the API is telling
you to branch on.Response codes
statusCode appears on every response and is a string, not a number.
Polling
After Pay an order, poll Get order status untilisFinalStatus is true.
1
Poll every few seconds for the first two minutes
Most card payments resolve within seconds of the customer completing 3-D Secure.
2
Back off after that
Bank transfers depend on the customer actually sending the money, which can take much longer.
3
Stop after about five minutes
If the status still has not changed, treat the order as genuinely pending. Tell the customer
you will confirm once the payment completes, and reconcile from your backend later — do not
tell them it failed.
requeryNeeded, a hint from the API that the status is not yet
settled and another poll is worthwhile.
Fees
Fees are added on top of the order amount, not deducted from it. An order for500 with a fee
of 30 charges the customer 530 — the totalChargedAmount in the status response.
Check the fee before you charge with
Get order fee, which breaks it down into
subsidiaryFee (your share) and customerFee (theirs).