Withdraw funds
A withdrawal sends funds from an Axiym account to an active registered external account. The accounts must belong to the same client and use the same currency.
Complete Register an external account before creating the withdrawal. Third-party withdrawals are not supported.
Keep every resource and request under the same /clients/{clientId} path.
Testing withdrawals in sandbox
- Bank withdrawals use the sandbox simulation process and registered test bank account confirmed by Axiym. They are not submitted to a real banking network.
- Wallet withdrawals use the configured blockchain test network, registered test wallet, and test assets—never a production-network wallet.
Verify registered-account status, withdrawal states, notifications, Axiym account debits, and reconciliation. See Sandbox testing.
1. Select the source Axiym account
Confirm that the source account is ACTIVE, uses the withdrawal currency, and
has sufficient balance for the amount and reported fee.
2. Confirm the registered recipient
Retrieve the registered external account by destinationId. Confirm that it:
- belongs to the same client as the source Axiym account;
- is
ACTIVE; - uses the same currency; and
- for a wallet, uses the intended blockchain network.
3. Create the withdrawal
curl --request POST "https://partner-api.sandbox.axiym.io/api/v1/clients/$CLIENT_ID/withdrawals" \
--header "Authorization: Bearer $AXIYM_ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--header "Idempotency-Key: $WITHDRAWAL_IDEMPOTENCY_KEY" \
--data "{\
\"sourceAccountId\": \"$ACCOUNT_ID\",\
\"amount\": \"500.00\",\
\"destinationId\": \"$DESTINATION_ID\",\
\"purpose\": \"Treasury sweep\",\
\"externalReference\": \"$YOUR_REFERENCE\"\
}"destinationId is the registered external-account identifier. It is not an
Axiym accountId, bank account number, or wallet address.
Creation submits the withdrawal for execution; there is no confirmation call.
Store the returned withdrawalId.
4. Track and reconcile
curl \
"https://partner-api.sandbox.axiym.io/api/v1/clients/$CLIENT_ID/withdrawals/$WITHDRAWAL_ID" \
--header "Authorization: Bearer $AXIYM_ACCESS_TOKEN"PENDING and HELD are non-terminal. COMPLETED, CANCELED, and REJECTED
are terminal. Inspect reasonCode when the withdrawal does not complete.
For a completed wallet withdrawal, transactionHash identifies the network
transaction. Use the source Axiym account statement and withdrawalId to
reconcile the posted debit.