Skip to main content
Create and fund a sandbox onramp with this guide. First, create an API key under Account, then Manage Accounts in the sandbox dashboard. See Initial Setup for account setup and base URLs. Every request below uses the sandbox base URL https://api.sand.etherfuse.com and sends your key in the Authorization header, with no Bearer prefix (see Authentication).
1

Make your first call

Get your organization’s id. Payment account, quote and order routes take it as {organizationId}:
This guide acts for your own organization. To act for a customer, use the customer organization’s id instead. See Organizations in the route.List the organization’s payment accounts. A new organization has none yet:
A 401 with type ending in unauthorized means the key or the header is wrong. See Authentication.
2

Subscribe to order updates

Register the URL we send order events to. Store the secret from the response; we return it only once, and you need it to verify each delivery.
Webhook subscriptions do not take an organization id. One subscription covers your organization and every customer organization. Add a paymentAccountUpdated subscription the same way to hear when an account becomes ready. See Webhooks.
3

Register a bank account and a wallet

Register the bank account the money comes from:
Then register the wallet the tokens go to:
Each response holds the account id and its rails. You can quote a direction once its status is ready. If a bank account returns 422 registration-info-required, add the fields listed in missing under registrationInfo and send it again. See Register payment accounts.
4

Find the asset to buy

List the tokens your wallet can receive. Use a token’s asset from the response in the quote.
The bank account’s asset is its currency, MXN. See GET /supported_assets.
5

Get a quote

Price the transfer between the two accounts. Quotes expire after 2 minutes.
The response holds the quoteId, destinationAmount, rateAfterFees, feeBps and the fee lines in fees[]. Both accounts must belong to the organization in the route. See POST /organization/{organizationId}/quote.
6

Create the order

The response is 201 with the order. Its id equals the quoteId, and sending the same quoteId again returns the same order (see Idempotency). fundingInstructions.destination says where the source sends the funds once it is available: a CLABE for a bank source, a blockchain address for a wallet source. An orderUpdated delivery tells you when it arrives.
7

Fund the order

How you fund the order depends on the source account.
In sandbox no real money moves. Simulate the customer’s SPEI payment:
See POST /organization/{organizationId}/order/{id}/fiat_received.
We detect the funds, then the order moves to funded and completed. An onramp can move to claimable instead, when the wallet has to claim the tokens (for example a Stellar wallet with no trustline yet). Each change sends an orderUpdated delivery with the full order.
Sandbox onramps are capped at 500 MXN per quote. See the Sandbox Reference.

Test other transfers

Onramp

Fiat to tokens. The customer pays MXN and receives tokens.

Offramp

Tokens to fiat. The customer sends tokens and receives MXN.

Swap

Token to token. The customer exchanges one asset for another.

Next steps

Onboard customers

Run KYC for your customers before they transact.

Monitor with webhooks

Get signed updates for orders, payment accounts and KYC instead of polling.

Understand the model

Payment accounts, rails, quotes, fees and order statuses.

Sandbox reference

Test KYC data, simulated deposits, and testnet tokens.

Migrating from v1

Follow the V1 → V2 guide to update an existing integration. Your API key, organizations, customers and KYC approvals remain valid.