Simulation
Simulate 3DS authorization
https://api.firstleeward.com/v0/simulation/card-transactions/authorization-with-3dsSimulates a WEBHOOK 3DS challenge for a card authorization. Returns a pending ThreeDsChallenge and delivers CARD_3DS_CHALLENGE_CREATED without creating a transaction. After POST /card-3ds-challenges/{id}/respond with approve: true, authorization completes and CARD_TRANSACTION_CREATED is delivered. With approve: false, the challenge is rejected and no transaction is created (mirrors production). The card must use 3dsChallengeMethod: WEBHOOK.
Authorizations
Authorizationstring · headerrequiredAPI key as Bearer token, e.g. Bearer YOUR_API_KEY
Headers
Leeward-Versionenum<string>requiredAPI version (YYYY-MM-DD). Available option: 2026-09-18
Body
application/json
cardIdstring<uuid>requiredCard ID
amountnumberrequiredMerchant amount in the project's billing currency, before cardholder fees. Any FX markup or ATM fee that applies to the account is added on top, as in production, so the amount charged to the cardholder can be higher than this value.
originalAmountnumberAmount in the original transaction currency. Must be provided together with originalCurrency, and is required when the event lands on a transaction whose original currency is not the billing currency.
originalCurrencystringOriginal transaction currency as an ISO 4217 alpha code (e.g. EUR). Must be provided together with originalAmount.
channelstringTransaction channel. Defaults to ECOMMERCE when omitted.
ATMPOSECOMMERCEVISA_DIRECTdigitalWalletstringDigital wallet type (e.g. APPLE_PAY, GOOGLE_PAY). Randomly generated if omitted.
APPLE_PAYGOOGLE_PAYMERCHANT_TOKENmerchantobjectMerchant details. All fields are optional; an omitted field is randomly generated, except country.
Show child attributes
namestringMerchant name
citystringMerchant city
postCodestringMerchant postal or ZIP code
statestringMerchant state or province
countrystringMerchant country (ISO 3166-1 alpha-2). Defaults to your card program's country, which makes the transaction domestic. Pass another country to charge an ATM withdrawal at the cross-border tier.
mccCodestringMerchant Category Code (4 digits)
mccCategorystringMCC category description
triggerFraudAlertbooleanWhen true, also raises a detected fraud alert against the resulting charge. The alert arrives asynchronously; wait for the CARD_FRAUD_ALERT_CREATED event. Detection alone does not block the card.
Response
200Response for status 200
idstring<uuid>requiredUnique 3DS challenge identifier
cardIdstring<uuid>requiredID of the card this challenge is for
statusstringrequiredChallenge status
PENDINGAPPROVEDREJECTEDEXPIREDmerchantobjectrequiredMerchant details
Show child attributes
namestringrequiredMerchant name
countryCodestringrequiredMerchant country code (ISO numeric)
transactionobjectrequiredTransaction details
Show child attributes
amountstringrequiredTransaction amount
currencystringrequiredTransaction currency (ISO alpha-3)
timestampstringrequiredISO 8601 timestamp of the transaction
expiresAtstringrequiredISO 8601 timestamp when this challenge expires
400The resource is not in a valid state for the requested simulation
errorobjectrequiredShow child attributes
codestringrequiredmessagestringrequireddetailobject | nullrequired404Card not found
errorobjectrequiredShow child attributes
codestringrequiredmessagestringrequireddetailobject | nullrequired