# Sandbox testing

Test Account API withdrawals with coordinated bank scenarios and wallet transfers on testnet.

Product: Account API
Guides follow API reference 0.3.0 and event reference 0.2.0.
Canonical page: https://docs.axiym.io/account-api/integration-guide/sandbox-testing

Use sandbox to validate your Account API integration without moving real funds.
Axiym provides sandbox credentials, test accounts, and balances. Resources and
webhook subscriptions are separate from production and belong to your organization.

Select an `ACTIVE` source account and an `ACTIVE` address book entry in the
same currency. Register missing destinations through the Axiym Dashboard;
the Account API only retrieves and uses those entries.

## Coordinated bank scenarios

Full lifecycle testing of bank withdrawals currently requires Axiym's help.
Create, review, and confirm the withdrawal through the API as usual. Share the
returned `withdrawalId` with Axiym to coordinate simulated status progression
and the corresponding events for agreed success and failure outcomes.

Axiym's help does not replace your confirmation request. Track the withdrawal
through API reads and webhooks, and reconcile its posted account movement.
Scenario timing does not represent live bank processing times.

## Wallet transfers on testnet

Wallet withdrawals can be tested on the configured blockchain testnet.
Confirm the supported network, asset, funded source account, and registered
test wallet with Axiym during setup.

Create, review, and confirm a withdrawal to the active test wallet. Track it
until completion, verify receipt on testnet using the returned
`transactionHash`, and reconcile the source account debit.

## What to validate

* OAuth authentication with the `ACCOUNT` scope and agreed network controls;
* account and address book discovery, pagination, and `ACTIVE` status checks;
* organization ownership, matching currencies, and the intended wallet network;
* withdrawal creation in `PENDING_CONFIRMATION`, review, and explicit confirmation;
* fee deductions, recipient amounts, and corridor-required supporting documents;
* idempotent retries after timeouts or ambiguous responses;
* successful and unsuccessful withdrawal outcomes;
* webhook signatures, event routing, and duplicate delivery handling; and
* account-statement reconciliation.

## Run the scenarios

Start with the [Quickstart](/account-api/integration-guide/quick-start).
Agree on funded test accounts, Dashboard destination registration and activation,
bank scenarios, testnet assets, and balance replenishment with Axiym.

For each scenario, check returned statuses, webhook handling, and posted
account movements. Include timeouts, missed notifications, and duplicate or
out-of-order events in your own integration tests to verify retry and recovery.

Use synthetic or agreed test data. Never send real funds to sandbox payment
details, use mainnet for wallet tests, or use production documents or credentials.

## Before production

Repeat setup with production credentials, network controls, accounts,
address book entries, and webhook endpoints. Do not copy sandbox identifiers
or payment details into production.

Complete the [production-readiness checklist](/account-api/integration-guide#production-readiness-checklist)
and confirm the required scenarios with Axiym. Sandbox testing does not replace
validation of production bank or blockchain connectivity and operational processes.
