Skip to main content
POST
Answer a 3D Secure challenge
Send the challenge’s _id as threedsTransactionId, when the cardholder answered and what they answered. The card issuer then approves or declines the purchase, and status tells you which. A challenge can be answered only once, within 5 minutes of arriving — unless the issuer doesn’t accept the answer (INVALID_TRANSACTION, NOT_AUTHORIZED), which keeps it pending. Admins of the organization can answer any challenge of the account; other users only those of the wallets they own.

Path Parameters

realmId
string<uuid>
required

ID of your realm.

Format: UUID

organizationId
string<uuid>
required

ID of the organization the account belongs to.

Format: UUID

accountId
string
required

ID of the organization's account (24 hexadecimal characters).

Pattern: ^[0-9a-fA-F]{24}$

Body

application/json
threedsTransactionId
string
required

ID of the challenge you answer — the _id of a challenge returned by the list-3D-Secure-challenges endpoint.

Pattern: ^[0-9a-fA-F]{24}$
Example:

"66f2a6d4b4d3e80012c9a101"

authenticationTime
string<date-time>
required

When the cardholder answered, as an ISO 8601 date-time (UTC or with an offset).

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
Example:

"2026-11-02T14:31:07Z"

authenticationResult
enum<string>
required

The cardholder's answer: VALID_BIOMETRICS_AND_TRANSACTION (verified, and confirms the purchase), NOT_VALID_BIOMETRICS (the cardholder couldn't be verified) or TRANSACTION_DONT_RECOGNIZED (the cardholder doesn't recognize the purchase).

Available options:
VALID_BIOMETRICS_AND_TRANSACTION,
NOT_VALID_BIOMETRICS,
TRANSACTION_DONT_RECOGNIZED
Example:

"VALID_BIOMETRICS_AND_TRANSACTION"

Response

Successful response

The card issuer's verdict on an answered challenge.

status
enum<string>
required

TRANSACTION_AUTHENTICATED (the purchase is approved), TRANSACTION_DECLINED (it is declined), INVALID_TRANSACTION or NOT_AUTHORIZED (the answer wasn't accepted — the challenge stays pending and you can answer it again while it is valid).

Available options:
TRANSACTION_AUTHENTICATED,
TRANSACTION_DECLINED,
INVALID_TRANSACTION,
NOT_AUTHORIZED
Example:

"TRANSACTION_AUTHENTICATED"