# Sandbox testing

Test Client Trade API workflows with funded test accounts, wallet testnet transfers, and coordinated bank scenarios.

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

Use sandbox to validate your Client Trade API integration without moving real
funds. Axiym provides sandbox credentials, test clients, and funded test Axiym
accounts. Sandbox resources and balances are separate from production.

Use your partner access token with `/clients/{clientId}` paths. Accounts,
address book entries, and activity belong to the selected test client.

## Coordinated bank scenarios

Full lifecycle testing of bank deposits and withdrawals currently requires
Axiym's help. Axiym coordinates simulated status progression and triggers the
corresponding events so you can test agreed success and failure outcomes.

For bank deposits, retrieve the receiving account's deposit instructions and share
the `clientId`, `accountId`, and registered test funding source with Axiym.
Agree on the amount, scenario, and timing. Axiym coordinates the simulated
incoming payment; you do not create a deposit through the API.

For bank withdrawals, create, review, and confirm the withdrawal through the API
as usual. Share the `clientId` and returned `withdrawalId` with Axiym to
coordinate subsequent progression. Axiym's help does not replace your
confirmation request.

Track the resulting deposits and withdrawals through the same API and webhook
interfaces used in production, and reconcile their posted account movements.
Scenario timing does not represent live bank processing times.

## Wallet transfers on testnet

Wallet deposits and withdrawals can be tested on the configured blockchain
testnet. Confirm the supported test network and asset with Axiym during setup,
then register a test wallet and wait until its address book entry is `ACTIVE`.

For deposits, retrieve the Axiym account's deposit instructions and send the
test asset from the registered wallet to the returned address on the specified
network. Track the detected deposit until it completes and the account is credited.

For withdrawals, create, review, and confirm a withdrawal to the active test
wallet. Track the withdrawal through API reads and webhooks, verify receipt
on testnet, and reconcile the account debit. These transfers use testnet
processing rather than Axiym manually triggering bank scenario events.

## What to validate

* OAuth authentication, allowlisting, and request headers;
* client activation and resource isolation between clients and environments;
* address book registration and the requirement for `ACTIVE` entries;
* deposit instructions, bank references, and wallet currency and network details;
* conversion pair discovery, minimum amounts, quote creation, and confirmation;
* withdrawal creation in `PENDING_CONFIRMATION`, review, and confirmation;
* withdrawal amounts, fee deductions, and required supporting documents;
* idempotent retries after timeouts or ambiguous responses;
* asynchronous success and unsuccessful outcomes;
* webhook signature verification, client routing, and event de-duplication; and
* account-statement reconciliation.

## Run the scenarios

Start with [Make your first conversion](/trade-api/integration-guide/quick-start)
using the funded test account for the pair's sell side. Agree on test bank and
wallet details, address book activation, bank scenarios, the wallet test
network and asset, and any balance replenishment with Axiym.

For each scenario, verify the returned status, webhook handling, and
corresponding account movements. Include timeouts, ambiguous responses, and
missed, duplicate, or out-of-order notifications in your own integration tests
to verify retry and recovery behaviour.

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

## Before production

Repeat environment-specific setup with production credentials, allowlists,
clients, accounts, permissions, address book entries, and webhook endpoints.
Do not copy sandbox identifiers or payment details into production.

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