Skip to main content
Use the sandbox to test your integration before switching to production. For a complete payout example, follow Quickstart.

Environments

Use your sandbox API key, secret, and account IDs with the sandbox base URL. Credentials and webhook endpoints are separate for each environment; a sandbox key cannot authenticate to production.

What you can test

Register your webhook endpoint before creating test activity, and configure your receiver using Webhook security.

Simulating a deposit

Simulate Payin credits a balance without a bank transfer or an on-chain send. Send a signed POST /v1/accounts/{account_id}/payin-simulations with a UUID Idempotency-Key and write access on payments. This request body funds the trading account:
USD must be enabled for payins on the account; otherwise the request returns 422 CURRENCY_NOT_ENABLED. To fund a virtual account, use {"type": "virtual_account", "virtual_account_id": "va_…"} as the destination and match its currency. The payin completes and emits a signed payin.received webhook. The credited balance can then fund payouts, transfers, or FX trades. This endpoint is unavailable in production.

Crypto test networks

Crypto wallets in sandbox use test networks, funded from each network’s public faucet:

Sandbox limitations

There is no simulation for payout failures or returns, deposit returns, or virtual account activation. Test your application’s handling of those states with local fixtures. Webhook events documents which events Hop emits and the payloads your receiver must handle; do not assume every state change has a webhook.

Signing

For offline signature checks, use the fixed test vectors alongside the signing examples in Authentication.