Start a 3D Secure card challenge

Run the 3D Secure lookup for a tokenized card and return the continuation envelope the client SDK consumes. Pass the body unchanged to the client SDK's initializeChallengeWithLookupResponse().

Branch on threeDSecureInfo — never on whether lookup.acsUrl is set (Mercury guarantees it only on the challenge row):

liabilityShiftedliabilityShiftPossiblelookup.acsUrlClient action
trueanyignoreFrictionless — skip the SDK, call POST /v1/payment-methods/verify with paymentMethod.nonce
falsetruesetChallenge — hand the body to the SDK; call verify with the nonce it resolves, only if it reports liabilityShifted
falsetruenullNever returned — Mercury answers 502
falsefalseignoreIssuer refused, card not enrolled, or ACS unavailable — stop, do not call verify; tell the traveler the bank could not verify this card

Raw card data (PAN, CVV, expiry) is never accepted.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Request body for POST /v1/payment-methods/3ds-lookup.

Carries only the tokenized nonce and the client-side device-fingerprint
reference — never PAN, CVV, or expiry. extra="forbid" rejects any
unexpected field so raw card data can never transit Mercury.

string
required
length ≥ 1

Payment-method nonce produced by client-side tokenization. Single-use; never a raw card number.

string
required
length ≥ 1

Device-fingerprint reference id returned by the client-side payment SDK's 3D Secure prepare step.

Responses

401

Missing or invalid authentication token

403

Authentication denied

422

Validation failed (unknown or missing fields)

502

Provider rejected the request (e.g. invalid nonce), or returned a lookup payload Mercury could not map

503

Payment method service is temporarily unavailable

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json