Card Transaction Simulator
The Card Transaction Simulator allows you to test full card transaction lifecycles in the sandbox environment, without sending transactions to the live card network. It can also start an asynchronous in-app 3DS challenge before an authorization. For a normal transaction request, the simulator:- The simulator authenticates the request
- It checks available balance
- It applies lifecycle logic:
- Authorization creates a hold
- Reversal releases a hold
- Replacement adjusts an existing hold
- Clearing confirms/settles a transaction
- Clearing Cancellation cancels via clearing
- It returns an approval or denial response with production-like fields
How to Simulate a Card Transaction
Authenticate with the Simulator API
- Username:
simulator - Password: Provided during onboarding
Choose the Card Identifier
card_id→POST /transactions/simulatepan→POST /transactions/simulate-by-pan
Understand Request Fields
Transaction Types
The simulator supports five transaction types that form a complete lifecycle: authorization, reversal, replacement, clearing, and clearing cancellation.Simulate an Authorization
Authorization creates an initial hold on the card balance.Send Authorization Request
transaction_type, amount, currency, and card_id or pan.Simulator Validation
- Confirm the card exists
- Verify the card is active
- Check sufficient available balance
- Place a hold for the requested amount
Store Authorization Code
authorization_code and authorization_id.Test in-app 3DS
Set the optional3ds field to true to test the same integration your app uses for a real in-app 3DS challenge. The simulator creates a synthetic Apata challenge internally; it does not make a request to Apata. Partner webhook delivery, user API polling, EIP-712 wallet signing, and decision submission all use the normal integration path.
Before testing, the card must be active and Gnosis Pay must have enabled in-app 3DS and an active partner webhook for your sandbox tenant.
Start the simulation
"1.00" USD becomes amount: "100" and decimals: 2.Save the asynchronous simulation ID
202 Accepted instead of the normal synchronous transaction response:Handle the challenge through your integration
card.3ds.challenge.created. Your app can also discover the challenge through GET /user-api/3ds/challenges.Follow the normal flow in In-App 3DS Push Provisioning: show the challenge, request the decision-bound EIP-712 data, have the cardholder sign it, and submit the signed approval or decline. The simulator does not provide a shortcut around wallet proof.Poll the simulation
3DS simulation statuses
transaction:
completed, but transaction.status is denied, usually with denial code 810 (Insufficient balance). You can fund the account before deciding through POST /ledger/top-up; use the accountId from the challenge and the account’s supported currency.Simulate a Reversal
Reversal cancels a previous authorization entirely and releases the held amount.Provide Authorization Code
authorization_code returned from the original authorization.Send Reversal Request
Simulator Behavior
- Validate the original authorization exists
- Confirm the amount matches
- Release the full held balance
Simulate a Replacement
Replacement adjusts a previous authorization to a different amount.Provide Authorization Code
authorization_code from the original authorization.Send Replacement Request
authorization_code and replacement_amount.Simulator Behavior
- Validate the original authorization
- Reduce or increase the held amount
- Update the balance accordingly
Simulate a Clearing
Clearing confirms a previous authorization (settlement/Base II) and finalizes the transaction.Provide Authorization Code
authorization_code from the original authorization.Send Clearing Request
Simulator Behavior
- Validate the original authorization
- Process the settlement
- Finalize the transaction
Simulate a Clearing Cancellation
Clearing cancellation cancels a transaction via clearing. For partial cancellation, send an amount lower than the original authorization.Provide Authorization Code
authorization_code from the original authorization.Send Clearing Cancellation Request
Simulator Behavior
- Validate the original authorization
- Process the cancellation
- Adjust balances accordingly
Response Handling
Approved (Authorization)
An approved authorization response includes full transaction details:Approved (Clearing / Clearing Cancellation)
Clearing responses are sparse as most fields will be empty or zero-valued:Denied
If denied, the response includes detailed denial information:denial_code and denial_reason use the same codes documented in Card Decline Reasons, use the simulator to test the responses and showcase the right mapping according to the guide.