post
https://api.autra.io/v1/acquiring/payments/3ds/authenticate
Performs the cardholder's 3DS authentication.
Must be called after POST /v1/acquiring/payments/3ds/setup.
The 200 response has two possible outcomes, distinguished by code:
ACCEPTED(frictionless): authentication is complete, no cardholder interaction. Usecavv,xid,
authenticationIdanddirectoryServerTransactionIdin thethreeDsDatafield of the payment call.WAITING_3DS_AUTHENTICATION(challenge): the issuer requires the cardholder to authenticate. Run the
challenge flow below.
Challenge flow
- Open an iframe and submit an HTML form to it:
POSTtostepUpUrl(application/x-www-form-urlencoded)
with the fieldsJWT=accessTokenandMD=authenticationId. Size the iframe withiframeDimensions. - The cardholder completes the challenge inside the iframe.
- The issuer posts the result to your
returnUrl(form-urlencoded) with the fieldsTransactionId,
Response(sometimesJWT) andMD. Because this request runs inside the iframe, your endpoint must
answer with an HTML page that notifies the parent window (e.g.window.parent.postMessage). - Call
POST /v1/acquiring/payments/3ds/challenge-resultwithauthenticationTransactionId=
TransactionIdreceived in step 3 (fallback:authenticationId) and the samerequestIdused here.
Rejection: when the issuer refuses the authentication, the response is 422 with
errors[0].code = AUTH_REJECTED and the issuer's message in errors[0].msg (for example "Frictionless
Authentication rejected by the Issuer."). Any 422, and any response other than 200 with code
ACCEPTED or WAITING_3DS_AUTHENTICATION, means the payment must not proceed with 3DS data.
Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…
401Invalid access token
403Unauthorized IP or merchant not found
500Acquirer communication error
