# Overview

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/concepts/overview

The Client Trade API lets a partner hold, move, and convert funds through Axiym
accounts owned by its onboarded clients. The partner retains the client
relationship and uses one set of credentials, while `clientId` selects the
client that owns the accounts and activity for each operation. Funds enter and
leave Axiym through **address book entries** owned by that client.

The deciding factor is the Axiym account model, not whether your business does
work for clients. Use this API when each client should complete Axiym
onboarding and own a separate Axiym resource context. Use the
[Direct Trade API](/direct-trade-api) when your organization should own the
accounts and operate them in one context, even when the activity supports
services for your clients.

Third-party funding and third-party withdrawals are not supported. The owner
of the address book entry must be the same as the owner of the Axiym
account.

## One client context per workflow

The partner access token identifies your partnership. Every business operation
uses `/clients/{clientId}` paths, where `clientId` identifies the client that
owns the accounts and activity.

Resources belonging to different clients cannot be combined. Webhook
subscriptions belong to the partnership and use event `clientId` values to
route client-owned activity.

## The core model

The API is organized around six connected resources.

| Resource           | What it represents                                                                                                                                       |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Address book entry | A bank account or wallet owned by the represented client and registered with Axiym. It is the permitted source of deposits and recipient of withdrawals. |
| Axiym account      | A balance with Axiym in one currency, connected to a specific payment rail.                                                                              |
| Deposit            | An incoming payment from an address book entry that credits an Axiym account.                                                                            |
| Conversion pair    | Permission to sell one currency and buy another over specified payment rails, in one direction.                                                          |
| Conversion         | An exchange that debits the sell-side Axiym account and credits the buy-side Axiym account resolved by a conversion pair.                                |
| Withdrawal         | An outgoing payment from an Axiym account to an address book entry.                                                                                      |

An Axiym account is the center of the balance model. Deposits increase its
balance, withdrawals decrease it, and conversions move value between Axiym
accounts.



```mermaid
flowchart TD
  fundingAccount["Address book entry<br/>(funding source)"] -->|Deposit using deposit instructions| sell["Axiym account holding sell<br/>currency"]
  sell -->|Permitted conversion| buy["Axiym account holding buy<br/>currency"]
  buy -->|Withdrawal using destinationId| withdrawalAccount["Address book entry<br/>(withdrawal recipient)"]

  class fundingAccount,withdrawalAccount externalNode
  class sell,buy accountNode
  classDef externalNode stroke-width:1.5px
  classDef accountNode stroke-width:2px
```



The external account at the start and end represents the same type of
registered resource. A workflow does not have to include a conversion, and it
does not have to use every address book entry for both directions.

Bank deposits are matched using the reference in the deposit instructions;
wallet deposits are matched by the receiving wallet address. Send funds only
from an active entry in the client's address book. Withdrawals identify the
registered recipient with `destinationId`.

## A typical workflow

1. **Select an active client.** Verify that the client's status is `ACTIVE`
   and use its `clientId` throughout the workflow.
2. **Build the client's address book.** Add an owned bank account or wallet
   in the same resource scope and wait until the entry is `ACTIVE`.
3. **Find the Axiym accounts.** Identify the account for each currency you plan
   to hold or move.
4. **Fund an Axiym account.** Retrieve its deposit instructions and send funds
   from the address book entry using the specified details.
5. **Wait for the deposit.** Wait until the deposit completes and the Axiym
   account is credited.
6. **Convert funds if needed.** Select a permitted conversion pair, create a
   conversion to lock the rate, and confirm it before the quote expires.
7. **Withdraw funds.** Create and confirm a withdrawal to send funds to an
   address book entry in the same scope and currency.
8. **Reconcile activity.** Use deposits, conversions, withdrawals, and account
   statements to reconcile the resulting balance movements.

Not every integration needs every step. For example, you can deposit and
withdraw without converting when the incoming and outgoing currency is the
same.

## Where to continue

* [Clients and onboarding](/trade-api/concepts/client-scope)
* [Address Book](/trade-api/concepts/address-book)
* [Axiym Accounts & Balances](/trade-api/concepts/accounts-and-balances)
* [Depositing Funds](/trade-api/concepts/depositing-funds)
* [Currency Conversions](/trade-api/concepts/currency-conversions)
* [Withdrawing Funds](/trade-api/concepts/withdrawing-funds)
* [Notifications & Webhooks](/trade-api/concepts/notifications-and-webhooks)
* [Terminology](/trade-api/concepts/terminology)

When you understand the model, use the
[Integration Guide](/trade-api/integration-guide) to set up credentials and
make your first sandbox requests.
