Continue After a 3DS Challenge
Resume a payment paused for a 3DS challenge. Pass the sessionId from the pending_3ds response. No API key required.
status: "pending_3ds", the cardholder must complete a 3D Secure challenge at the URL provided in actionRequired.url. Once the cardholder finishes the challenge, call POST /payment/resume to continue processing the payment and receive the final outcome.
How 3DS resumption works
- Your purchase or authorization call returns
status: "pending_3ds"with anactionRequiredobject. - Redirect the cardholder (or open an iframe) to
actionRequired.url. - After the challenge completes, the cardholder is redirected back to your site.
- You call
POST /payment/resumewith thesessionIdto get the final payment result.
sessionId itself acts as the credential and is scoped to a single pending payment. Sessions expire 15 minutes after the 3DS challenge is issued — if the session has expired, the original purchase or authorization must be retried.status, refusalCode on decline, and everything else — same shape as purchase/authorization.
Resume after a 3DS challenge
Expired session —400 Bad Request
Body
The sessionId from a pending_3ds / pending_action payment response.
Response
Resumed payment result
The Therius payment id. Returned by POST /payment/authorization and POST /payment/purchase; use it as the {id} path segment for capture, refund, cancel and cancel_or_refund.
"9f8b2c1e-4d5a-6b7c-8d9e-0f1a2b3c4d5e"
captured - funds settled; authorized - funds reserved, call capture to settle; declined - issuer declined, see refusalCode; pending_3ds - a 3DS challenge is required, see actionRequired; pending_action - an external action (redirect, voucher) is required, see actionRequired; failed - processing error unrelated to the issuer; cancelled - authorization voided; refunded - captured funds returned.
captured, authorized, declined, pending_3ds, pending_action, failed, cancelled, refunded Therius receipt ID, for reconciliation, support and Inquiry. NOT the handle for capture/refund/cancel — use id for that.
"PC-1234567890"
Your orderCode, echoed back.
Your merchantCode, echoed back.
Issuer authorization code on an approved payment. The field name is misspelled on the wire (no h) - this is intentional and stable.
Payment method used, e.g. card, pix, ach.
Code of the gateway connection that processed the payment.
Display name of the gateway connection that processed the payment.
Card details from the response: masked PAN, brand, type, and the network transaction/reference IDs to cite on future MIT charges.
Alternative-payment-method details (redirect URL, QR code, barcode) when paymentMethod is an APM.
Present when the card was tokenized (tokenize: true).
Present when status is pending_3ds or pending_action. Describes what the cardholder must do next — with the Therius JS SDK, pass the whole object to sdk.handleAction().
Present when status is declined. See the Declined Payments concept page for the full code table and how to react to each recoveryAction.

