Axiym

Quick Start Guide

This guide is the shortest path from provisioned sandbox access to a working Account API integration.

Before you start

You need:

  • sandbox base URL;
  • OAuth client_id, client_secret, and WITHDRAWAL scope;
  • partner egress IPs or CIDR ranges allowlisted by Axiym;
  • at least one accessible account with ACTIVE status and enough balance;
  • an HTTPS webhook receiver for withdrawal events.

See Access Setup if access has not been provisioned yet.

Step 1: Authenticate

Request an access token with OAuth 2.0 client credentials.

POST /oauth/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded

Send the access token as a bearer token on protected API requests:

Authorization: Bearer <access_token>

See Authentication for the full token request.

Step 2: Configure webhooks

Register a webhook subscription early so your system receives withdrawal events without polling.

Use POST /webhooks/subscriptions to register your HTTPS receiver.

See Webhook Registration and Management and Verifying Webhook Signatures.

Step 3: List accounts

Call GET /accounts to see the accounts your integration can access.

GET /accounts HTTP/1.1
Authorization: Bearer <access_token>

Use GET /accounts/{accountId} to retrieve a single account and inspect its balance, currency, and status.

Store the accountId. Withdrawal amounts are interpreted in the source account currency.

Step 4: Register or select a whitelisted own account

Call GET /whitelisted-own-accounts to see destinations Axiym has approved for withdrawal.

GET /whitelisted-own-accounts HTTP/1.1
Authorization: Bearer <access_token>

If the required destination is not yet registered, use POST /whitelisted-own-accounts/bank for a bank account or POST /whitelisted-own-accounts/wallet for a wallet address. See the API Reference for the request fields.

Only create withdrawals to whitelisted own accounts with status ACTIVE. A newly registered destination may require approval before it becomes active.

Step 5: Create a withdrawal

Create a withdrawal from an accessible source account. The destination is addressed by destinationId, the identifier of one of your registered whitelisted own accounts.

POST /withdrawals HTTP/1.1
Authorization: Bearer <access_token>
Idempotency-Key: wd-2026-0614-01-create
Content-Type: application/json

{
  "sourceAccountId": "8f1d4a2c-3b5e-4c7a-9d1f-2a6b8c0e4d3a",
  "amount": "500.00",
  "destinationId": "e2c8a4f6-7b1d-4e3a-9c5f-8a0b2d4e6f1c",
  "purpose": "Treasury sweep",
  "externalReference": "wd-2026-0614-01"
}

The referenced whitelisted own account must be ACTIVE and in the source account's currency. An unknown destination is rejected.

Creation submits the withdrawal for execution; there is no separate confirmation step. Store the withdrawalId from the response.

{
  "withdrawalId": "9b4e2a1c-6d3f-4a8e-bc7d-1f2a3b4c5d6e",
  "status": "PENDING",
  "sourceAccount": {
    "accountId": "8f1d4a2c-3b5e-4c7a-9d1f-2a6b8c0e4d3a",
    "currency": "USDT",
    "paymentRails": "TRON"
  },
  "amount": "500.00",
  "feeAmount": "5.00",
  "currency": "USDT",
  "destination": {
    "destinationId": "e2c8a4f6-7b1d-4e3a-9c5f-8a0b2d4e6f1c",
    "status": "ACTIVE",
    "currency": "USDT",
    "walletAddress": "TNPeeaaFB7K9cmo4uQpcU32zGK8G1NYqeL",
    "network": "TRON",
    "createdAt": "2026-06-12T14:05:00Z"
  },
  "code": "AXI00000418",
  "purpose": "Treasury sweep",
  "externalReference": "wd-2026-0614-01",
  "createdAt": "2026-06-14T20:06:50Z"
}

The response embeds the resolved whitelisted own account in full and carries the system-assigned payment code shown on the payment.

Step 6: Track the withdrawal

Track the withdrawal with GET /withdrawals/{withdrawalId} and webhook events.

Withdrawal statuses:

StatusMeaning
PENDINGCreated and awaiting execution.
HELDTemporarily on hold; no action needed from you.
COMPLETEDCompleted successfully.
CANCELEDCanceled before completion. See reasonCode.
REJECTEDRejected and not completed. See reasonCode.

Once a wallet withdrawal is COMPLETED, it carries transactionHash — the transaction hash on the network. Bank withdrawals are identified by code in the receiving bank statement.

Step 7: Reconcile activity

Use account balances, withdrawal records, and webhook events to reconcile movement on the account. account.credited / account.debited events carry each posted movement, including credits that do not originate from this API.

When the withdrawal is COMPLETED, retrieve the source account again with GET /accounts/{accountId} and confirm the updated balance. The account is debited for amount; feeAmount is the fee charged within that movement.

For period reconciliation, call GET /accounts/{accountId}/statement: it returns opening/closing balances, period totals, and the posted movements with a running balance.

Next

Use the API Reference for exact endpoint contracts and Events for webhook payload schemas.