Skip to main content

Sandbox Location

Differences to Production

The Sandbox is optimized to test and integrate the Iron APIs. Therefore, it has multiple differences compared to the production system in order to make it easy to work with.
  • In production, only an administrator can create an API Key (and then give it to an engineer with an Editor role). In the sandbox, an Editor can also create API Keys to make it easy to test.
  • In the sandbox, fiat and crypto flows are simulated. Neither real IBANs nor testnet crypto is used. Instead, we offer a Sandbox API to create mock incoming fiat or crypto transactions.
  • Any accept/reject flow can be controlled by the user. Instead of going through an email flow, there’s a convenient control center where the engineer can decide whether to accept or reject customer fiat accounts, Autoramps, etc.
  • The sandbox offers a Reset function to remove all data and start from a pristine state.
  • The sandbox has additional /sandbox APIs to fully control all the above features.

Managing the Sandbox

You can manage the Sandbox in the Sandbox area of the Partner Dashboard.
1
Log in to the Partner Dashboard.
2
Navigate to Developer → Sandbox.

Sandbox Operations

The following operations are available in the dashboard:

Manage Pending Fiat Accounts

When a sandbox customer registers a new fiat account, it will be listed here. You can then decide whether to move it to Registered or fail the registration.

Manage Pending Autoramps

When a sandbox customer creates a new Autoramp, it will be listed here. You can then decide whether to approve or reject it.

Reset Sandbox

Resetting the sandbox will remove all customers, wallets, fiat accounts, transactions, and Autoramps.

Sandbox API Key

The Sandbox APIs require an API Key just like the rest.
You can create a sandbox API key in your dashboard: https://app.sandbox.iron.xyz/dashboard/keys
curl -X POST https://api.sandbox.iron.xyz/api/sandbox/reset \
  -H "X-API-Key: YOUR-API-KEY" \
  -H "IDEMPOTENCY-KEY: $(uuidgen)"
Replace YOUR-API-KEY with the actual API key you generated. The X-API-Key header is required for every request. API Base URL: https://api.sandbox.iron.xyz

Sandbox API

The sandbox offers additional APIs that do not exist in production. They let you create mock transactions, control approval flows, and reset your environment.
All paths below are relative to the API base URL: https://api.sandbox.iron.xyz/api

Create a Sandbox Transaction

POST /sandbox/transaction Creates a transaction directly from an autoramp configuration. This bypasses the normal deposit flow and creates a ramp transaction with the specified amount using the autoramp’s currencies, customer, and recipient.
FieldRequiredDescription
autoramp_idYesThe autoramp UUID to create the transaction against
amountYesDeposit amount in the autoramp’s input currency (decimal string)
amount_outNoOutput amount. If omitted, calculated from amount, fee, and fx_rate
feeNoFee amount (defaults to 0.25% of amount)
fx_rateNoExchange rate (defaults to 1.0)
initial_stateNoStarting state: Pending, Completed, or Failed
input_currencyNoOverride the input currency (Fiat or Crypto object)
sourceNoOverride the transaction source (bank account or wallet)
transaction_idNoDeterministic transaction UUID instead of auto-generated
deposit_idNoDeterministic deposit UUID instead of auto-generated
curl -X POST "https://api.sandbox.iron.xyz/api/sandbox/transaction" \
  -H "Content-Type: application/json" \
  -H "IDEMPOTENCY-KEY: $(uuidgen)" \
  -H "X-API-Key: $API_KEY" \
  -d '{
    "autoramp_id": "d3c2b1a4-e5f6-78a9-0123-fedcba654321",
    "amount": "100"
  }'
Example response:
{
  "id": "7d834f68-cea8-496a-8eae-bb0772365028",
  "autoramp_id": "d3c2b1a4-e5f6-78a9-0123-fedcba654321",
  "amount_in": "100",
  "currency_in": "EUR",
  "amount_out": "99.75",
  "currency_out": "EURC",
  "customer_id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
  "state": "Pending",
  "created_at": "2026-01-15T10:30:00Z"
}

Update Sandbox Transaction State

PUT /sandbox/transaction/{id}/state Transition a sandbox transaction to a different state for testing purposes.
FieldRequiredDescription
stateYesTarget state: Pending, Completed, or Failed
curl -X PUT "https://api.sandbox.iron.xyz/api/sandbox/transaction/<transaction_id>/state" \
  -H "Content-Type: application/json" \
  -H "IDEMPOTENCY-KEY: $(uuidgen)" \
  -H "X-API-Key: $API_KEY" \
  -d '{ "state": "Completed" }'

Update Identification Status

POST /sandbox/identification/{id} Approve or reject a pending customer identification. In production, Iron’s compliance team handles this review.
FieldRequiredDescription
approvedYestrue to approve, false to reject
curl -X POST "https://api.sandbox.iron.xyz/api/sandbox/identification/<identification_id>" \
  -H "Content-Type: application/json" \
  -H "IDEMPOTENCY-KEY: $(uuidgen)" \
  -H "X-API-Key: $API_KEY" \
  -d '{ "approved": true }'

Update Fiat Address Registration Status

PUT /sandbox/fiat-verification/{id} Set the registration status of a fiat address. The request body is a plain JSON string (one of the enum values below).
StatusDescription
RegistrationPendingRegistration is being processed
RegisteredAccount is active and ready for payouts
RegistrationFailedRegistration failed
AuthorizationRequiredAdditional authorization needed
AuthorizationFailedAuthorization was rejected
curl -X PUT "https://api.sandbox.iron.xyz/api/sandbox/fiat-verification/<fiat_address_id>" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $API_KEY" \
  -d '"Registered"'

Update Autoramp Status

PUT /sandbox/autoramp/{id} Set the status of an autoramp. The request body is a plain JSON string (one of the enum values below).
StatusDescription
CreatedInitial state
EditPendingEdit is being processed
AuthorizedAuthorized by the system
DepositAccountAddedDeposit account has been provisioned
ApprovedFully approved and ready to process transactions
RejectedRejected
CancelledCancelled
curl -X PUT "https://api.sandbox.iron.xyz/api/sandbox/autoramp/<autoramp_id>" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $API_KEY" \
  -d '"Approved"'

Reset the Sandbox

POST /sandbox/reset Deletes all customers, wallets, fiat accounts, transactions, and autoramps. Requires an IDEMPOTENCY-KEY header.
curl -X POST "https://api.sandbox.iron.xyz/api/sandbox/reset" \
  -H "IDEMPOTENCY-KEY: $(uuidgen)" \
  -H "X-API-Key: $API_KEY"