Skip to main content

Sandbox Location

Differences to Production

The Sandbox is optimized to test and integrate the MoonPay Enterprise 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. See Sandbox API below.

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 Sandbox page is organised into Fiat Accounts, Autoramps, Customers, and Transactions tabs, with New Transaction and Reset in the top right.

Manage Pending Fiat Accounts

When a sandbox customer registers a new fiat account, it appears under Unverified Fiat Accounts on the Fiat Accounts tab. Use the status dropdown to move it to Registered or fail the registration.

Manage Pending Autoramps

When a sandbox customer creates a new Autoramp, it appears under Unverified Autoramps on the Autoramps tab. The status dropdown offers Created, Authorized, and Rejected.
Choose Authorized to provision the mock deposit account, which is what a simulated deposit needs. Sending "Approved" to PUT /api/sandbox/autoramp/{id} provisions the same account and also moves the autoramp to Approved, so use the API call if you want to see the Approved status your integration waits for.

Drive a Customer Through Onboarding

The Customers tab lists every customer with a status of IdentificationRequired or SigningsRequired, alongside the identification_status of their latest identification. Only customers of the partner selected at the top of the page are listed, since the sandbox actions run against one partner at a time. Each row offers the action its current state needs: The dropdown reaches Pending, Processed, PendingReview, Approved, Declined, Expired, and Archived. The sandbox ignores the normal transition rules, so you can jump straight to the status you want to test instead of walking the whole flow. In production, the MoonPay Enterprise compliance team drives these transitions. Status guide in the tab header opens the status combinations and what to show for each one. It is the same mapping as Mapping Onboarding Statuses in Your App.

Create a Transaction

New Transaction opens the Create New Sandbox Transaction screen, the UI equivalent of POST /api/sandbox/transaction. Select a Customer, pick a Ramp from that customer’s autoramps, enter an Amount in the ramp’s input currency, then click Execute Transaction. This bypasses the normal deposit flow and builds the transaction directly from the autoramp configuration. It does not use testnet funds.

Settle a Transaction

Pending transactions are listed under Pending Transactions on the Transactions tab, with Accept and Reject buttons and a Change state dropdown for moving a transaction to a specific state.

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
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, grouped under Sandbox in the API reference. 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

Create a Sandbox Transaction

POST /api/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.
Example response:

Update Sandbox Transaction State

PUT /api/sandbox/transaction/{id}/state Transition a sandbox transaction to a different state for testing purposes.

Set Identification Status

POST /api/sandbox/identification/{id}/status Set a customer’s identification to any status, bypassing the normal transition rules, so you can rehearse every branch of your onboarding UI. In production, MoonPay Enterprise’s compliance team drives these transitions.
The identification must belong to a customer of the partner the API key resolves to. Otherwise the call returns 404:

Update Identification Status (deprecated)

POST /api/sandbox/identification/{id} Approve or reject a pending customer identification. Use Set Identification Status instead: it reaches every status, not just approved and rejected.

Update Fiat Address Registration Status

PUT /api/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).

Update Autoramp Status

PUT /api/sandbox/autoramp/{id} Set the status of an autoramp. The request body is a plain JSON string (one of the enum values below).

Reset the Sandbox

POST /api/sandbox/reset Deletes all customers, wallets, fiat accounts, transactions, and autoramps. Requires an IDEMPOTENCY-KEY header.