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 Unverified Fiat Accounts

When a sandbox customer creates a new fiat account, it will be listed here. You can then decide whether to verify it or fail the verification.

Manage Unverified Autoramps

When a sandbox customer creates a new Autoramp, it will be listed here. You can then decide whether to accept 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 --request GET \
     --url https://api.sandbox.iron.xyz/api/sandbox/reset \
     --header 'X-API-Key: YOUR-API-KEY' \
     --header 'IDEMPOTENCY-KEY: ...' \
     --header 'accept: application/json; charset=utf-8'
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 which cannot be found on a production system. These allow you to perform sandbox operations and create mock fiat/crypto incoming transactions.
All the calls below are in /api, e.g. /api/sandbox/fiat-transaction

Create a Sandbox Incoming Fiat Transaction

POST /sandbox/fiat-transaction
{
  // The amount you wish to send
  "amount": "100",
  // The UUID of the viban to send to
  "viban": "1952285c-ec10-4000-816f-db671c6e0801"
}
Example curl request:
curl -X POST "http://api.sandbox.iron.xyz/api/sandbox/fiat-transaction" \
     -H "Content-Type: application/json" \
     -H "Idempotency-Key: $(uuidgen)" \
     -H "X-Api-Key: ..." \
     -d '{
       "amount": "100",
       "viban": "DE83100708481507304601"
     }'

Create a Sandbox Incoming Crypto Transaction

POST /sandbox/crypto-transaction
{
  // The amount of the crypto transaction 
  "amount": "",
  // The address of the wallet to credit
  "address": "string",
  // Optional mint/token contract address
  "mint": "string",
  // The address that sent the transaction 
  "address_from": "string"
}
IMPORTANTThe mint parameter has to match the currency of your autoramp. So if your autoramp is USDC on Solana, the mint parameter would be the Solana USDC testnet address: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU. Here’s a list of mints:
  • USDC Solana: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
  • EURC Solana: HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr
  • USDC Ethereum: 0x1c7d4b196cb0c7b01d743fbc6116a902379c7238
  • EURC Ethereum: 0x08210F9170F89Ab7658F0B5E3fF39b0E03C594D4
A wrong mint will not lead to an error on the sandbox, but the transaction will also never show up.

Reset the Sandbox Environment

POST /sandbox/reset Requires a IDEMPOTENCY-KEY header

Update Customer Pending Identification Status

POST /sandbox/identification/{id} The {id} parameter is the ID of the identification to update.
{
  // Whether to approve the identification
  "approved": false
}

Update Fiat Account Pending Verification Status

POST /sandbox/fiat-verification/{id} The {id} parameter is the ID of the fiat account verification to update. The body is the status string with one of these values: AuthorizationRequired, AuthorizationFailed, VerificationRequired, VerificationFailed, or Verified.