3DS Gate

Error codes

Codes are stable and safe to branch on. Messages are descriptive and may change.

Request

invalid_request400. Malformed JSON or a missing required field.
unsupported_version400. messageVersion outside 2.1.0 and 2.2.0.
amount_out_of_range422. Above the merchant ceiling or zero.
phone_invalid422. Not E.164, or absent when the issuer requires SMS.
bin_unmapped422. BIN outside the mapped range. Session can be retried after mapping, usually within one day.

Authorisation

auth_missing401. No bearer token.
auth_invalid401. Revoked, wrong environment, or malformed.
origin_not_allowed403. Browser call from an origin not registered for the key.
url_not_registered403. notificationUrl or returnUrl outside the registered list.

State

not_found404. Unknown authenticationId, or one belonging to another merchant.
idempotency_conflict409. Same Idempotency-Key with a different body.
session_finished409. The session is terminal; create a new one.
resend_exhausted409. Three resends already used.
rate_limited429. Honour Retry-After; do not retry in a tight loop.

Handling

Every error body carries requestId. Quotes without it take longer to resolve.