Submit 3D Secure callback for saved card payment
Receives the 3D Secure authentication callback from the bank and finalises the saved card payment. The request may arrive as a POST body or as GET query string parameters appended by the bank redirect; both are merged before validation.
The exact fields required depend on the active payment gateway:
Garanti Switch:
success,approved,returnCode(must be"00"),reasonCode(must be"00"),hashedData,requestId,message, andtxnAmount(sent by the bank in cents; divided by 100 before validation against the order total). The full payload is verified against a gateway-generated hash.PayU RO:
success(must betrue). An optionalbodyJSON payload from the bank may also be submitted.Tap:
success(must betrue),tap_id,oid, andprice.
On failure, the backward navigation state is applied: the selected card, card information, installment, order number, and 3D Secure flag are all cleared so the customer can restart from the card selection step.
Next Page:
ThankYouPage
available_for_post_order: false
Required header for AJAX requests. Must be set to XMLHttpRequest for all checkout requests.
XMLHttpRequestPossible values: Session cookie header (e.g. sessionid=abc123 or osessionid=<session_id>)
3D Secure callback payload posted by the bank after the customer completes authentication. The required fields depend on the active payment gateway.
Any GET query string parameters appended by the bank redirect are merged into this payload before validation.
- Garanti Switch:
success,approved,returnCode,reasonCode,hashedData,requestId,message, andtxnAmountare required.txnAmountis sent by the bank in cents and divided by 100 before being validated against the order total. The full payload is verified against a gateway-generated hash. - PayU RO:
success(must betrue). An optionalbodyJSON payload from the bank may also be submitted. - Tap:
success(must betrue),tap_id,oid, andpriceare required.
Payment success flag returned by the gateway. Must be true; any other
value is treated as a failed transaction.
(Garanti Switch only) Authorisation approval flag. Must be true.
(Garanti Switch only) Bank return code. Must be "00" for a successful
transaction.
(Garanti Switch only) Bank reason code. Must be "00" for a successful
transaction.
(Garanti Switch only) Gateway-generated hash. Validated server-side before the payment is accepted.
(Garanti Switch only) Gateway request identifier.
(Garanti Switch only) Human-readable status message from the gateway.
(Garanti Switch only) Transaction amount posted by the bank in cents
(e.g. "15000" for 150.00). Divided by 100 before being validated against
the order total. A mismatch returns a validation error.
15000(PayU RO only) Optional JSON payload posted by the bank alongside the 3D Secure callback.
(Tap only) Tap charge identifier returned by the gateway.
(Tap only) Order identifier echoed back by the Tap gateway.
(Tap only) Transaction amount returned by the Tap gateway.
3D Secure authentication complete
POST /orders/checkout/?page=SavedCardThreeDSecurePage HTTP/1.1
Host: sandbox.akinon.com
x-requested-with: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 156
"success=true&approved=true&returnCode='00'&reasonCode='00'&hashedData='abc123hash'&requestId='req-001'&message='Success'&txnAmount='15000'"3D Secure authentication complete
{
"context_list": [
{
"page_name": "ThankYouPage",
"page_slug": "thankyoupage",
"page_context": {}
}
],
"errors": [],
"template_name": "orders/checkout.html"
}Last updated
Was this helpful?

