Skip to content

Deposit Endpoints

This section covers API endpoints related to deposits. Deposit operations allow users to add cryptocurrencies and fiat currencies to their platform balance by receiving funds from external sources. Different cryptocurrency networks and fiat payment methods have specific conditions, fees, and reference requirements.

Get Personal Deposit Methods

Returns deposit methods available to the authenticated user, considering their segments. It also represents the user's deposit limits and fees.

GET /deposit-methods

Required Permissions

  • allow_deposit

Rate Limit

30 requests per minute

Query Parameters

Parameter Type Required Description
currency string No Filter by currency code
is_enabled boolean No Filter by enabled status

Response Fields

Returns list of objects:

Field Type Description
code string Unique identified of the method
name string Human readable name of the
method_type string Type of method. One of: crypto, card and other possible in the future
currency string Code of currency to be withdrawn from balance
coin string Code of coin asset to be received in destination. It carries the info of token symbol and network
contract_address string Contract address for token (if applicable)
network string Network code
min_amount string Minimum amount allowed for withdrawal
max_amount string Maximum amount allowed for withdrawal
fee_percent string Percentage fee applied to the withdrawal amount (e.g., "0.5" for 0.5%)
fee_percent_min string Minimum fee amount applied based on the percentage (e.g., "1.00" for 1 unit of currency)
fee_percent_max string Maximum fee amount applied based on the percentage (e.g., "10.00" for 10 units of currency)
fee_absolute string Fixed fee amount applied to the withdrawal (e.g., "2.00" for 2 units of currency)
required_confirmations integer Required number of blockchain confirmations (for crypto methods)
is_enabled bool Whether the method is currently enabled for the user
spend_precision integer Number of decimal places allowed for the withdrawal amount. Usually 8.
receive_precision integer Number of decimal places allowed for the received amount. Usually 8.

Response Example

[
  {
    "code": "USDTTRC20",
    "name": "USDT Tron",
    "method_type": "crypto",
    "currency": "USDT",
    "coin": "USDTTRC20",
    "network": "TRX",
    "contract_address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
    "min_amount": "0.00000001",
    "max_amount": null,
    "fee_percent": "0.00000000",
    "fee_percent_min": null,
    "fee_percent_max": null,
    "fee_absolute": "0.00000000",
    "required_confirmations": 0,
    "is_enabled": true,
    "spend_precision": 8,
    "receive_precision": 8
  },
  {
    "code": "USDTERC20",
    "name": "USDT Ethereum",
    "method_type": "crypto",
    "currency": "USDT",
    "coin": "USDTERC20",
    "network": "ETH",
    "contract_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
    "min_amount": "0.00000001",
    "max_amount": null,
    "fee_percent": "0.00000000",
    "fee_percent_min": null,
    "fee_percent_max": null,
    "fee_absolute": "0.00000000",
    "required_confirmations": 0,
    "is_enabled": true,
    "spend_precision": 8,
    "receive_precision": 8
  },
  {
    "code": "BTC",
    "name": "BTC Bitcoin",
    "method_type": "crypto",
    "currency": "BTC",
    "coin": "BTC",
    "network": "BTC",
    "contract_address": null,
    "min_amount": "0.00000001",
    "max_amount": null,
    "fee_percent": "0.00000000",
    "fee_percent_min": null,
    "fee_percent_max": null,
    "fee_absolute": "0.00000000",
    "required_confirmations": 0,
    "is_enabled": true,
    "spend_precision": 8,
    "receive_precision": 8
  }
]

Generate Deposit Address

Generates a new deposit address for a specific currency and method.

POST /deposit/generate_address

Required Permissions

  • allow_deposit

Rate Limit

600 requests per minute

Request Parameters

Parameter Type Required Description
currency string Yes Currency code for the deposit
method string No Specific deposit method code. If not provided, the default method for the currency will be used. See the Get Personal Deposit Methods endpoint for available methods
callback_url string No URL that will be called with status updates
custom_id string No Custom identifier for tracking this deposit address

Notes

Deposit address does not bound to specific deposit method or coin or even blockchain network. That is means that you can deposit for example USDCERC20 to POL deposit address and deposit will be successfully processed. So always check which assed is deposited in deposit object.

Example Request

{
  "currency": "BTC",
  "method": "BTC",
  "callback_url": "https://example.com/callbacks/deposits",
  "custom_id": "my-deposit-address-123"
}

Example Response

{
  "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
  "tag": null,
  "network": "bitcoin",
  "currency": "BTC"
}

For currencies that require a tag/memo (like XRP, XLM, EOS):

{
  "address": "rLW9gnQo7BQhU6igk5keqYnH3TVrCxGRzm",
  "tag": "123456",
  "network": "ripple",
  "currency": "XRP"
}

Full example response:

{
  "currency": "USDT",
  "method": "USDTERC20",
  "callback_url": "https://example.com/test_callback",
  "custom_id": "1121212",
  "address": "0x1f5CE5FBFe3E9af3971dD833D26BA9b5C936f7bE",
  "tag": null,
  "label": null,
  "received_amount_usdt": "0.00000000",
  "received_count": 0,
  "received_count_success": 0,
  "assigned_at": "2025-09-04T13:06:40.622038Z"
}

Response Fields

Field Type Description
address string Deposit address
tag string Destination tag/memo (if required by the currency)
network string Network code
currency string Currency code

List Deposits

Returns a list of deposits.

GET /deposit

Required Permissions

  • allow_deposit

Rate Limit

600 requests per minute

Query Parameters

Parameter Type Required Description
limit integer No Number of results to return (default: 100, max: 200)
offset integer No Number of results to skip (for pagination)
status string No Filter by status (see Deposit Status Values)
currency string No Filter by currency
custom_id string No Filter by custom ID
start_at string No Filter by start datetime on field created_at (inclusive, ISO 8601 format)
end_at string No Filter by end datetime on field created_at (inclusive, ISO 8601 format)

Response

The API uses a standard offset-based pagination system with limit and offset parameters. The response is a direct array of deposit objects without pagination metadata wrapper.

[
  {
    "code": "DEP123456",
    "custom_id": "my-deposit-123",
    "callback_url": "https://example.com/callbacks/deposits",
    "created_at": "2023-01-15T14:30:15Z",
    "updated_at": "2023-01-15T14:35:20Z",
    "done_at": "2023-01-15T14:35:20Z",
    "method": "BTC",
    "network": "bitcoin",
    "contract": null,
    "status": "success",
    "reason_code": null,
    "reason_message": null,
    "currency": "BTC",
    "coin": "BTC",
    "amount": "0.05000000",
    "fee_amount": "0.00000000",
    "actual_confirmations": 3,
    "required_confirmations": 2,
    "txid": "7b5968e39e0d4c980a234931b8a2fd21e804eb7e9f7eb5af75b3d89e2972ad3d",
    "attributes": {
      "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
    }
  }
  // More deposits...
]

Response Fields

Field Type Description
code string Unique deposit code
custom_id string Custom identifier provided when generating the address
callback_url string URL that will be called with status updates
created_at string Creation timestamp (ISO 8601 format)
updated_at string Last update timestamp (ISO 8601 format)
done_at string Completion timestamp (ISO 8601 format)
method string Deposit method code
network string Network code
contract object Contract details (for token deposits)
status string Current status of the deposit
reason_code string Error code (if the deposit failed)
reason_message string Error message (if the deposit failed)
currency string Currency code
coin string Coin symbol
amount string Deposit amount
fee_amount string Fee amount
actual_confirmations integer Current number of blockchain confirmations
required_confirmations integer Number of confirmations required for completion
txid string Transaction ID on the blockchain
attributes object Additional attributes (like address and tag)

Pagination

The API uses simple offset-based pagination with limit and offset parameters. Offset is limited for maximum 10000, if you set more - error will be returned. The default limit is 100, and the maximum limit is 200. The response is a direct list of deposit objects without pagination metadata wrapper. If you need to fetch more than 200 deposits, you should use the start_at and end_at parameters to fetch deposits in smaller date ranges. List is sorted by creation date in descending order.

Deposit Status Values

Status Description
pending Deposit is detected, in confirmation procedure
quarantine Deposit suspended for quarantine procedure
suspended System or manager suspended deposit
success Deposit successfully completed
failed Deposit was rejected or failed

Confirmation Status

Note that not only actual_confirmations need to be higher than required_confirmations to mark the deposit as success. But we also do additional checks on the deposit such as AML screening. If the deposit is marked as pending or quarantine, it means that the deposit is still in the process of being confirmed.

Get Deposit Details

Returns details of a specific deposit.

GET /deposit/{code}

Required Permissions

  • allow_deposit

Rate Limit

600 requests per minute

Path Parameters

Parameter Type Required Description
code string Yes Unique deposit code

Response

Same as a single deposit object from the list endpoint.

Callback Notifications

If a callback_url was provided when generating the deposit address, the system will send POST requests to this URL when the deposit status changes.

Important Note: You may not receive callbacks for every intermediate status change or field update if changes occur very rapidly. When operations transition through multiple states quickly, intermediate callbacks may be skipped. However, you will always receive callbacks for the final states of operations. Design your callback handling to be idempotent and not dependent on receiving every single state transition.

Callback Security

Currently, callbacks are not signed. The signature mechanism for callbacks is planned for a future update. You should validate callback data by making an authenticated API request to verify the deposit status.

Callback Payload

The callback payload contains the same data as the deposit details response, with essential fields for status updates:

{
  "code": "DEP123456",
  "custom_id": "my-deposit-123",
  "created_at": "2023-01-15T14:30:15Z",
  "updated_at": "2023-01-15T14:35:20Z",
  "done_at": "2023-01-15T14:35:20Z",
  "status": "success",
  "reason_code": null,
  "reason_message": null,
  "currency": "BTC",
  "amount": "0.05000000",
  "fee_amount": "0.00000000",
  "txid": "7b5968e39e0d4c980a234931b8a2fd21e804eb7e9f7eb5af75b3d89e2972ad3d",
  "attributes": {
    "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
  }
}

Securing Callbacks

Since callbacks are not currently signed, you should implement these security measures:

  1. Whitelist IPs: Accept callbacks only from the service's IP addresses. Contact support to get the list of server IPs.
  2. Verify Data: Always make an authenticated API request to /deposit/{code} to verify the status and details of any deposit after receiving a callback.
  3. Use HTTPS: Ensure your callback URL uses HTTPS to encrypt the data in transit.

Common Use Cases

  • Generating deposit addresses: Create addresses for user deposits
  • Monitoring deposits: Track the status of incoming deposits
  • Reconciling deposits: Verify that deposits have been correctly credited to your account