Simulation

Simulate 3DS authorization

POSThttps://api.firstleeward.com/v0/simulation/card-transactions/authorization-with-3ds

Simulates 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 · headerrequired

API key as Bearer token, e.g. Bearer YOUR_API_KEY

Headers

Leeward-Versionenum<string>required

API version (YYYY-MM-DD). Available option: 2026-09-18

Body

application/json

cardIdstring<uuid>required

Card ID

amountnumberrequired

Merchant 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.

originalAmountnumber

Amount 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.

originalCurrencystring

Original transaction currency as an ISO 4217 alpha code (e.g. EUR). Must be provided together with originalAmount.

channelstring

Transaction channel. Defaults to ECOMMERCE when omitted.

Available options:ATMPOSECOMMERCEVISA_DIRECT
digitalWalletstring

Digital wallet type (e.g. APPLE_PAY, GOOGLE_PAY). Randomly generated if omitted.

Available options:APPLE_PAYGOOGLE_PAYMERCHANT_TOKEN
merchantobject

Merchant details. All fields are optional; an omitted field is randomly generated, except country.

Show child attributes
namestring

Merchant name

citystring

Merchant city

postCodestring

Merchant postal or ZIP code

statestring

Merchant state or province

countrystring

Merchant 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.

mccCodestring

Merchant Category Code (4 digits)

mccCategorystring

MCC category description

triggerFraudAlertboolean

When 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>required

Unique 3DS challenge identifier

cardIdstring<uuid>required

ID of the card this challenge is for

statusstringrequired

Challenge status

Available options:PENDINGAPPROVEDREJECTEDEXPIRED
merchantobjectrequired

Merchant details

Show child attributes
namestringrequired

Merchant name

countryCodestringrequired

Merchant country code (ISO numeric)

transactionobjectrequired

Transaction details

Show child attributes
amountstringrequired

Transaction amount

currencystringrequired

Transaction currency (ISO alpha-3)

timestampstringrequired

ISO 8601 timestamp of the transaction

expiresAtstringrequired

ISO 8601 timestamp when this challenge expires

400The resource is not in a valid state for the requested simulation
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired
404Card not found
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired