Card Transaction Simulator
The Card Transaction Simulator allows you to test full card transaction lifecycles in the sandbox environment — without sending traffic to the live card network. When you send a transaction request:- 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
Use HTTP Basic Auth:
- Username:
simulator - Password: Provided during onboarding
Choose the Card Identifier
You can simulate transactions using:
card_id→POST /transactions/simulatepan→POST /transactions/simulate-by-pan
Understand Request Fields
All simulation requests use these fields:
| Field | Type | Required | Description |
|---|---|---|---|
transaction_type | string | Yes | authorization, reversal, or replacement |
card_id | uuid | Yes* | Card UUID (use pan instead on the by-PAN endpoint) |
pan | string | Yes* | Card PAN (only on the by-PAN endpoint) |
amount | string | Yes | Amount in major units (e.g., "100.50") |
currency | string | Yes | USD, EUR, or GBP |
authorization_code | string | Conditional | Required for reversal and replacement |
replacement_amount | string | Conditional | Required for replacement |
merchant_name | string | No | Defaults to "TEST MERCHANT" |
merchant_code | string | No | MCC code. Defaults to "5541" |
Transaction Types
The simulator supports five transaction types that form a complete lifecycle:Simulate an Authorization
Authorization creates an initial hold on the card balance.Send Authorization Request
transaction_type: “authorization”amountcurrencycard_idorpan
Simulator Validation
The simulator will:
- Confirm the card exists
- Verify the card is active
- Check sufficient available balance
- Place a hold for the requested amount
Simulate a Reversal
Reversal cancels a previous authorization entirely and releases the held amount.Provide Authorization Code
You must use the
authorization_code returned from the original authorization.Simulate a Replacement
Replacement adjusts a previous authorization to a different amount.Simulate a Clearing
Clearing confirms a previous authorization (settlement/base II) and finalizes the transaction.Simulate a Clearing Cancellation
Clearing cancellation cancels a transaction via clearing. For partial cancellation, send an amount lower than the original authorization.Response Handling
Approved (Authorization)
An approved authorization response includes full transaction details:Approved (Clearing/Clearing Cancellation)
Clearing responses are sparse — most fields will be empty or zero-valued:Denied
If denied, the response includes detailed denial information:Common Denial Codes
| Code | Reason |
|---|---|
810 | Insufficient balance |
UBT | Card is blocked |
BNP | Card reported lost |
BNR | Card reported stolen |
FRB | Card not activated |
BND | Card is cancelled |
PFT | Denied by anti-fraud |
FR7 | Card not present in database |
VNM | Card expired |
CNC | Account cancelled |
CND | Account blocked |
Error Handling
Validation and authentication errors return structured error objects:| Status | Cause |
|---|---|
401 | Invalid credentials |
400 | Validation error (missing fields, invalid amount/currency) |
404 | Card or account not found |
409 | Clearing collision — a clearing message is already being processed for this authorization. Wait at least 2 minutes between clearing messages |