Skip to main content

Validate 3DS challenge

POST/api/v1/bank/public/charge/authentication/{uuid}/validate
Public endpoint

This endpoint is called after the payer completes the 3DS challenge in the issuer's iframe. The SDK or your redirect handler calls this endpoint to finalize authentication and proceed with payment.


Request headers

HeaderValueRequired
Content-Typeapplication/jsonYes

Path parameters

FieldTypeRequiredDescription
uuidstring (UUID)YesCharge UUID that initiated 3DS authentication

Request body

FieldTypeRequiredDescription
transaction_idstringYes3DS transaction ID from the challenge response

Response fields

FieldTypeDescription
charge_uuidstringCharge identifier
authentication_statusstringauthenticated, failed, attempted
ecistringElectronic Commerce Indicator (e.g., 05, 06, 07)
cavvstringCardholder Authentication Verification Value
statusstringCharge status after authentication (confirmed, error)
messagearray/nullError details when authentication fails

HTTP status codes

StatusDescription
200Validation processed
400Invalid transaction_id or missing required fields
404Charge not found or no pending authentication
409Authentication already validated
422Authentication session expired
429Rate limit exceeded
500Internal server error

Code examples

curl -s -X POST "https://core-manager.a55.tech/api/v1/bank/public/charge/authentication/a1b2c3d4-e5f6-7890-abcd-ef1234567890/validate" \
-H "Content-Type: application/json" \
-d '{"transaction_id": "d4e5f6a7-b8c9-0123-defg-h45678901234"}'

Error response example

{
"charge_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"authentication_status": "failed",
"status": "error",
"message": [
{
"code": "AUTHENTICATION_FAILED",
"source": "3ds",
"description": "Issuer rejected the 3DS challenge. Payer may retry or use a different card."
}
]
}