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.
  • On production, only a administrator can create an API Key (and then give it to an engineer with an Editor role). On sandbox, a Editor can also create API Keys to make it easy to test
  • On Sandbox, we virtualized the fiat / crypto flows. Neither real ibans nor testnet crypto is being used. Instead, we offer a Sandbox API to create mock incoming fiat or crypto transactions on the sandbox
  • Any kind of accept / reject flow can be controlled by the user of the sandbox. Rejecting a new customer fiat account, accepting an autoramp, etc. Instead of going through an email flow, there’s a convenient control center where the engineer can decide whether to accept or reject these to see the impact on the API integration
  • 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 whether to 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

Note that the above 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'
Note
  • Replace YOUR-API-KEY with the actual API key you generated.
  • Ensure the X-API-Key header is included in every request to authenticate your access.
  • API base url: https://api.sandbox.iron.xyz

Sandbox API

The Sandbox offers additional APIs which can not be found on a production system. These allow you to perform Sandbox Operations and create Mock fiat / crypto incoming transactions.
Note that 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 identification to update
STATUS
The body is just the text string of the status, with these variants: AuthorizationRequired┃AuthorizationFailed┃VerificationRequired┃VerificationFailed┃Verified