Skip to main content

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:
  1. The simulator authenticates the request
  2. It checks available balance
  3. 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
  4. It returns an approval or denial response with production-like fields
Important: No traffic is sent to the live card network. All validation and balance logic is handled internally by the simulator.

How to Simulate a Card Transaction

1

Authenticate with the Simulator API

Use HTTP Basic Auth:
  • Username: simulator
  • Password: Provided during onboarding
All simulator endpoints require authentication.
2

Choose the Card Identifier

You can simulate transactions using:
  • card_idPOST /transactions/simulate
  • panPOST /transactions/simulate-by-pan
Both endpoints behave identically.
3

Understand Request Fields

All simulation requests use these fields:

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

Send Authorization Request

Required:
  • transaction_type: “authorization”
  • amount
  • currency
  • card_id or pan
2

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
3

Store Authorization Code

If approved, the response includes:
  • authorization_code
  • authorization_id
Save the authorization_code — it is required for reversals, replacements, and clearing operations.

Simulate a Reversal

Reversal cancels a previous authorization entirely and releases the held amount.
1

Provide Authorization Code

You must use the authorization_code returned from the original authorization.
2

Send Reversal Request

3

Simulator Behavior

The simulator will:
  • 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.
1

Provide Authorization Code

Use the authorization_code from the original authorization.
2

Send Replacement Request

Required:
  • authorization_code
  • replacement_amount
3

Simulator Behavior

The simulator will:
  • 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.
1

Provide Authorization Code

Use the authorization_code from the original authorization.
2

Send Clearing Request

3

Simulator Behavior

The simulator will:
  • Validate the original authorization
  • Process the settlement
  • Finalize the transaction
The simulator requires a minimum 2-minute gap between clearing messages for the same authorization. Sending a second clearing before this window elapses will result in an error.

Simulate a Clearing Cancellation

Clearing cancellation cancels a transaction via clearing. For partial cancellation, send an amount lower than the original authorization.
1

Provide Authorization Code

Use the authorization_code from the original authorization.
2

Send Clearing Cancellation Request

3

Simulator Behavior

The simulator will:
  • Validate the original authorization
  • Process the cancellation
  • Adjust balances accordingly
For partial cancellations, use an amount lower than the original authorization amount.

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

Error Handling

Validation and authentication errors return structured error objects:
Possible HTTP status codes: