# Cryptocurrency Transfers

### Overview

Callbacks for cryptocurrency transfers can be categorized into four different notification types:

* `CRYPTO_DEPOSIT_CREATED`
* `CRYPTO_DEPOSIT_UPDATED`
* `CRYPTO_WITHDRAWAL_CREATED`
* `CRYPTO_WITHDRAWAL_UPDATED`

All four notifications have the same data field form. These notifications are sent when a cryptocurrency deposit is received, when a withdrawal is created or when either of the two is updated.

The status field describes the state of the transfer and can be any of the following values:

* `Pending`
* `Frozen`
* `Failed`
* `Completed`

`Failed` and `Completed` are both terminal states. Deposits will be Frozen if they don’t pass AML checks.

### Data Object:

| Field                 | Description                                |
| --------------------- | ------------------------------------------ |
| AccountsId            | Associated account Id (will be deprecated) |
| TransactionsId        | Associated transaction Id                  |
| SourceAccountsId      | Associated source account                  |
| DestinationAccountsId | Associated destination account             |
| TransactionHash       | Transaction hash                           |
| SourceAddress         | Transfer source address                    |
| DestinationAddress    | Transfer destination address               |
| Amount.Asset          | Asset code                                 |
| Amount.Amount         | Amount deposited or withdrawn              |
| NetworkFee.Asset      | Network fee asset code                     |
| NetworkFee.Amount     | Network fee amount                         |
| Status                | Transfer status                            |

### Data Example

```json
{
    "Id": "1772fe26-f6b3-497c-9ab6-fe2f7929aaff",
    "Type": "CRYPTO DEPOSIT CREATED"
    "Data": {
        "AccountsId": 1598,
        "TransactionsId": 13339,
        "SourceAccountsId": 1598,
        "DestinationAccountsId": 1688,
        "TransactionHash": "Oxd04631fa738e60209a4814d2699205768c1441aea490f4cb1adf5e2ce53cf367"
        "SourceAddress": "Ox75C0c372da875a4Fc78E8A37f58618a6D18904e8"
        "DestinationAddress": "OxB8a10b113f13fA0C51a6a8d9a121a4c0bfb52154"
        "Amount": {
        "Asset": "USDC"
        "Amount": 1.0
        },
        "NetworkFee":{
            "Asset": "ETH"
            "Amount": 0.000008518119213712
        },
        "Status": "Pending"
    }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://customer-api-docs.ibanera.com/callbacks/cryptocurrency-transfers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
