> For the complete documentation index, see [llms.txt](https://docs.aquanow.io/cams/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aquanow.io/cams/webhooks/deposits.md).

# Deposits

### **Deposit Completed**

<mark style="color:green;">`POST`</mark>&#x20;

Notifies the status of an incoming deposit.&#x20;

{% hint style="info" %}
Allowed Values: `COMPLETED`
{% endhint %}

**Body**

```json
{
  "messageId": "123e4567-e89b-12d3-a456-426614174000",
  "messageType": "DEPOSIT_COMPLETED",
  "messageTime": "2023-12-14T01:24:03.102Z",
  "message": {
    "depositId": "85b49f93-6975-42f9-a88d-863da9046ce2",
    "clientId": "722cb4dd-159d-45f6-9696-ccf0277a3e76",
    "transactionType": "DEPOSIT",
    "transactionStatus": "COMPLETED",
    "accountId": "62fd7c1e-4a04-4a2e-b2ff-4daac8b4aeaf",
    "quantity": 15.38,
    "currency": "USD",
    "receivedAt": "2025-12-23T01:43:00.028Z",
    "completedAt": "2025-12-23T01:43:00.028Z",
    "memo": "XYZ10000101C",
    "clientMemo": "XYZ10000101C",
    "txHash": "0xdaf4e8e8a2932c8a6229ff78bd71b5d4a38a44fe96860b9a773b2d0898d0240e",
    "tradeBalance": 193.9825,
    "availableToWithdraw": 193.9825,
    "externalDepositId": "07c3bd7c-9813-45a6-9081-a34f57e2f107"
  }
}
```

#### Field Reference

**Event:** Notifies the status of an incoming deposit. For example:

* **Crypto Deposits:** Transfer of native digital assets or stablecoins (e.g., sending **1 BTC**, **5 ETH**, or **500 USDC** via their respective blockchain networks).
* **Fiat Deposits:** Traditional currency fundings settled via banking rails (e.g., a **$10,000 USD** Fedwire transfer or an **EUR** SEPA transfer into the designated clearing account).

&#x20;**`message` Header**

<table data-header-hidden><thead><tr><th width="136.673583984375"></th><th width="177.65625"></th><th></th></tr></thead><tbody><tr><td><strong>Field</strong></td><td><strong>Type</strong></td><td><strong>Description</strong></td></tr><tr><td><code>messageId</code></td><td>UUID (string)</td><td>Unique identifier for this webhook message.</td></tr><tr><td><code>messageType</code></td><td>string</td><td>Event type identifier. Value: <code>DEPOSIT_COMPLETED</code>.</td></tr><tr><td><code>messageTime</code></td><td>ISO 8601 datetime</td><td>Timestamp when the webhook message was generated.</td></tr><tr><td><code>message</code></td><td>object</td><td>Payload containing deposit details (see below).</td></tr></tbody></table>

&#x20;**`message` Object**

<table data-header-hidden data-search="false"><thead><tr><th width="189.935302734375"></th><th width="133.9853515625"></th><th></th></tr></thead><tbody><tr><td><strong>Field</strong></td><td><strong>Type</strong></td><td><strong>Description</strong></td></tr><tr><td><code>depositId</code></td><td>UUID (string)</td><td>Unique identifier for the deposit transaction.</td></tr><tr><td><code>clientId</code></td><td>UUID (string)</td><td>Identifier of the client associated with the deposit. Here, <strong>client</strong> refers to the <strong>Tenant / Institutional Entity</strong> operating the account on the platform, rather than an end-user.Example:​Example: If an omnibus brokerage named Apex Crypto Liquidity Ltd. sets up an institutional partnership, the <strong>clientId</strong> is the <strong>unique system UUID</strong> assigned directly to Apex Crypto Liquidity Ltd.</td></tr><tr><td><code>transactionType</code></td><td>string</td><td>Type of transaction. Value: <code>DEPOSIT</code>.</td></tr><tr><td><code>transactionStatus</code></td><td>string (enum)</td><td><p>Current status of the deposit. One of <code>PROCESSING</code>, <code>CONFIRMING</code>, <code>COMPLETED</code>.​ Note that:</p><ul><li><strong>CONFIRMING</strong> is applicable <strong>only to Crypto deposits</strong>. This status directly reflects the blockchain network's confirmation process (waiting for the required block depth).</li><li><strong>COMPLETED</strong> is applicable <strong>to both</strong>, <strong>Crypto and Fiat deposits.</strong> This status implies that the deposit has been fully settled and the funds have been credited to the customer's account.</li></ul></td></tr><tr><td><code>accountId</code></td><td>UUID (string)</td><td>Identifier of the account credited by the deposit.</td></tr><tr><td><code>quantity</code></td><td>number</td><td>Amount of the deposit.</td></tr><tr><td><code>currency</code></td><td>string</td><td>Currency code of the deposit (e.g. <code>USD</code>).</td></tr><tr><td><code>receivedAt</code></td><td>ISO 8601 datetime</td><td>Timestamp when the deposit was first received/detected.</td></tr><tr><td><code>completedAt</code></td><td>ISO 8601 datetime</td><td>Timestamp when the deposit was completed.</td></tr><tr><td><code>memo</code></td><td>string</td><td><p>System-generated memo/reference tag for the deposit.​</p><p></p><p><strong>Note:</strong> This is a system-generated internal ID or routing reference created by Aquanow. Clients use it primarily for automated reconciliation. It acts as a unique reference link to track the deposit event across webhooks, reporting APIs, and internal account ledger audits.</p></td></tr><tr><td><code>clientMemo</code></td><td>string</td><td>Client-provided memo/reference tag for the deposit.</td></tr><tr><td><code>txHash</code></td><td>string</td><td>On-chain transaction hash associated with the deposit. This field is populated only for crypto deposits. It will return null or be omitted for traditional fiat wire transfers.</td></tr><tr><td><code>tradeBalance</code></td><td>number</td><td>Account's total trade balance after the deposit.</td></tr><tr><td><code>availableToWithdraw</code></td><td>number</td><td><p>Amount available for withdrawal after the deposit.​By definition:</p><ul><li><strong><code>tradeBalance</code></strong> is the complete, nominal balance allocated to the account for active trading or market-making immediately after the deposit is credited.</li><li><strong><code>availableToWithdraw</code></strong> is the actual subset of funds free to leave the platform. This amount may be lower than the <code>tradeBalance</code> if funds are temporarily locked due to active open orders, margin requirements, unconfirmed bank clearings, or risk holds.</li></ul></td></tr><tr><td><code>externalDepositId</code></td><td>UUID (string)</td><td>External/third-party reference ID for the deposit.</td></tr></tbody></table>

### Deposits Confirming

<mark style="color:green;">`POST`</mark>&#x20;

Notifies that an incoming crypto deposit has been detected on-chain and is waiting for the required blockchain confirmations before it completes.

{% hint style="info" %}
Allowed Values: `CONFIRMING`
{% endhint %}

**Body**

<div data-with-frame="true"><figure><img src="/files/f5NJGV0oGtyiRPXiRj6G" alt=""><figcaption></figcaption></figure></div>

#### Field Reference

**Event:** Notifies that an incoming crypto deposit has been detected and is awaiting the required blockchain confirmations before it completes. For example:

* **Crypto Deposits:** A transfer of native digital assets or stablecoins (e.g., 1 BTC, 5 ETH, or 500 USDC) that has been detected on-chain but has not yet reached sufficient network confirmations.

&#x20;**`message` Header**

<table><thead><tr><th width="138.01953125">Field</th><th width="170.6484375">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>messageId</code></td><td>UUID (string)</td><td>Unique identifier for this webhook message.</td></tr><tr><td><code>messageTime</code></td><td>ISO 8601 datetime</td><td>Timestamp when the webhook message was generated.</td></tr><tr><td><code>messageType</code></td><td>string</td><td>Event type identifier. Value: <code>DEPOSIT_CONFIRMING</code>.</td></tr><tr><td><code>message</code></td><td>object</td><td>Payload containing deposit details (see below).</td></tr></tbody></table>

&#x20;**`message` Object**

<table data-search="false"><thead><tr><th width="176.5703125">Field</th><th width="182.0546875">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>depositId</code></td><td>UUID (string)</td><td>Unique identifier for the deposit transaction.</td></tr><tr><td><code>transactionType</code></td><td>string</td><td>Type of transaction. Value: <code>DEPOSIT</code>.</td></tr><tr><td><code>clientId</code></td><td>UUID (string)</td><td>Identifier of the client associated with the deposit. Here, <strong>client</strong> refers to the <strong>tenant/institutional entity</strong> operating the account on the platform, rather than an end user. Example: if an omnibus brokerage named Apex Crypto Liquidity Ltd. sets up an institutional partnership, <code>clientId</code> is the unique system UUID assigned directly to Apex Crypto Liquidity Ltd.</td></tr><tr><td><code>transactionStatus</code></td><td>string (enum)</td><td>Current status of the deposit. Value: <code>CONFIRMING</code>. This status is applicable <strong>only to crypto deposits</strong> — it directly reflects the blockchain network's confirmation process (waiting for the required block depth). Fiat deposits do not pass through this webhook. </td></tr><tr><td><code>accountId</code></td><td>UUID (string)</td><td>Identifier of the account to be credited by the deposit.</td></tr><tr><td><code>quantity</code></td><td>string</td><td>Amount of the deposit.</td></tr><tr><td><code>currency</code></td><td>string</td><td>Currency code of the deposit (e.g. <code>USDT</code>).</td></tr><tr><td><code>receivedAt</code></td><td>ISO 8601 datetime</td><td>Timestamp when the deposit was first received/detected.</td></tr><tr><td><code>clientMemo</code></td><td>string | null</td><td>Client-provided memo/reference tag for the deposit, if any.</td></tr><tr><td><code>txHash</code></td><td>string</td><td>On-chain transaction hash associated with the deposit.</td></tr><tr><td><code>externalDepositId</code></td><td>UUID (string)</td><td>External/third-party reference ID for the deposit.</td></tr></tbody></table>
