Skip to main content

Processing deposit callbacks

Deposit callbacks are sent whenever funds are received at an address created via the /addresses/take endpoint. Use the foreign_id field to identify which customer made the deposit. This value is the same as the foreign_id you provided when calling /addresses/take. Handle callback statuses as follows:
  • "status": "confirmed" — the deposit has been fully confirmed, and it is safe to perform business actions such as crediting the customer’s balance in your system.
  • "status": "not_confirmed" — the deposit has been detected but is still being processed. In this case, we recommend creating the transaction on your side with a pending or processing status and informing the customer that the deposit is still being confirmed.
Amount fields included in the callback:
  • currency_sent.amount — the amount sent by the customer in the deposit currency
  • currency_received.amount — the amount received after processing or conversion
  • currency_received.amount_minus_fee — the amount credited to your merchant balance after fees

Deposit callback payload examples

Sent when a deposit has been successfully confirmed and can be treated as final on your side. At this stage, it is safe to perform business actions such as crediting the customer’s balance.
{
    "id": 1,
    "end_user_reference": "12345",
    "type": "deposit",
    "crypto_address": {
        "id": 1,
        "currency": "BTC",
        "address": "39mFf3X46YzUtfdwVQpYXPCMydc74ccbAZ",
        "foreign_id": "12345",
        "tag": null
    },
    "currency_sent": {
        "currency": "BTC",
        "amount": "6.53157512"
    },
    "currency_received": {
        "currency": "BTC",
        "amount": "6.53157512",
        "amount_minus_fee": "6.5119800"
    },
    "transactions": [
        {
            "id": 1,
            "currency": "BTC",
            "transaction_type": "blockchain",
            "type": "deposit",
            "address": "39mFf3X46YzUtfdwVQpYXPCMydc74ccbAZ",
            "tag": null,
            "amount": "6.53157512",
            "txid": "3950ad8149421a850d01dff88f024810e363ac18c9e8dd9bc0b9116e7937ad93",
            "riskscore": "0.5",
            "confirmations": 3
        }
    ],
    "fees": [
        {
            "type": "deposit",
            "currency": "BTC",
            "amount": "0.01959472"
        }
    ],
    "error": "",
    "status": "confirmed"
}

Callbacks for instant confirmations

For deposits, our system supports instant confirmations. This means some deposits can be confirmed in our system before they are confirmed on the blockchain. In these cases, the system immediately sends a callback with the confirmed status. By confirming the transaction early, we assume the risk associated with accepting the funds before on-chain confirmation. No action is required on your side. In other cases, you will first receive a callback with the not_confirmed status. This means we have detected the transaction in the mempool, but we are not yet ready to guarantee that it will be completed. In this case, you can create the transaction on your side and assign it the pending status. Then wait for the second callback, in which the status parameter will change to confirmed.

Additional deposit callbacks

You can choose whether to receive callbacks for the cases below. By default, these callbacks are enabled:
  • deposits below the minimum allowed amount
  • deposits received in a currency different from the currency assigned to the crypto address
To configure additional callbacks, follow these steps:
  1. In the merchant dashboard, go to Settings and open the Callbacks tab.
  2. Under Additional callbacks, click Manage.
    Additional Callbacks
  3. Enable or disable one or both of the following options, then click Save changes.
Last modified on April 28, 2026