Skip to content

Get payment status for an order​

GET
/rest/v1/checkout/payment-status/{orderId}

Returns {orderId, orderSerial, status, payway, transactionId} for an order the authenticated customer owns.

status IS THE PAYMENT VERDICT. An order is SETTLED when status is PAID or PENDING_ACCEPTED, is AWAITING PAYMENT when it is PENDING, and is cancelled when it is CANCELED.

⚠️ PENDING_ACCEPTED IS A TERMINAL STATE, NOT AN INTERMEDIATE ONE. It is where the three offline payways (delivery, bank_transfer, paid_at_store) settle at placement, and they NEVER reach PAID. A client that treats only PAID as settled renders every cash-on-delivery and bank-transfer order as unpaid forever.

isPaid WAS REMOVED from this response (#754) and must not be re-derived from anywhere. It published shop_order.is_paid, a reconciliation marker meaning "someone has checked this order" — written by the admin order action and a cron, not by the payment path — so a genuinely paid order routinely reported itself unpaid: always for paybybank, whose PAID callback never stamps the flag, and as a race for vivawallet. The column still exists and is still published where it genuinely means reconciliation: filter[isPaid], the isPaid sort and the isPaid property on GET /rest/order/order.

transactionId is the gateway reference; for paybybank it is the bank payment code the customer pays with, also returned by POST /rest/checkout/place-order (#724).

Authorizations​

bearerAuth

JWT access token obtained from /rest/auth/admin/login or /rest/auth/customer/login

Type
HTTP (bearer)

Parameters​

Path Parameters

orderId*
Type
integer
Required

Responses​

Payment status

Playground​

Authorization
Variables
Key
Value

Samples​

Powered by VitePress OpenAPI