foreign_id field to identify which customer made the deposit. This value is the same as the foreign_id you provided when calling /v2/addresses/take.
Amount fields included in the callback:
currency_sent.amount— the amount sent by the customer in the deposit currencycurrency_received.amount— the amount received after processing or conversioncurrency_received.amount_minus_fee— the amount credited to your merchant balance after fees
- Confirmed
- Cross-currency deposit
- Processing
- Below minimum amount
- Cancelled (double spend)
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. If the address is configured with automatic conversion, the deposited amount is received in the address currency and then converted into the
convert_to currency before being credited to your balance.{
"id": 1,
"end_user_reference": "user_12345",
"type": "deposit",
"crypto_address": {
"id": 1,
"currency": "USDC",
"address": "0x9F2E4b7A1C3D5F6E8B0A2C4D6E8F1A3B5C7D9E0F",
"tag": null,
"foreign_id": "12345"
},
"currency_sent": {
"currency": "USDC",
"amount": "1000.00000000"
},
"currency_received": {
"currency": "USDC",
"amount": "1000.00000000",
"amount_minus_fee": "997.00000000"
},
"transactions": [
{
"id": 1,
"currency": "USDC",
"transaction_type": "blockchain",
"type": "deposit",
"address": "0x9F2E4b7A1C3D5F6E8B0A2C4D6E8F1A3B5C7D9E0F",
"tag": null,
"amount": "1000.00000000",
"txid": "0x3c8f1a92e6d4b7c0a5f2e8d1b6c9a4f7e0d3b8c5a1f6e9d2b4c7a0f3e8d5b1c9",
"riskscore": "0.5",
"confirmations": 3
}
],
"fees": [
{
"type": "deposit",
"currency": "USDC",
"amount": "3.00000000"
}
],
"error": "",
"status": "confirmed"
}
{
"id": 2686510,
"end_user_reference": "user_12345",
"type": "deposit_exchange",
"crypto_address": {
"id": 382270,
"currency": "USDC",
"convert_to": "EUR",
"address": "0x1D3F5A7C9E0B2D4F6A8C0E2B4D6F8A1C3E5B7D90",
"tag": null,
"foreign_id": "12345"
},
"currency_sent": {
"currency": "USDC",
"amount": "1000.00000000"
},
"currency_received": {
"currency": "EUR",
"amount": "920.00000000",
"amount_minus_fee": "874.00000000"
},
"transactions": [
{
"id": 714576,
"currency": "USDC",
"transaction_type": "blockchain",
"type": "deposit",
"address": "0x1D3F5A7C9E0B2D4F6A8C0E2B4D6F8A1C3E5B7D90",
"tag": null,
"amount": "1000.00000000",
"txid": "0x6b9d2f4a8c1e3b5d7f9a2c4e6b8d0f3a5c7e9b1d4f6a8c0e2b4d6f8a1c3e5b7d",
"riskscore": "0.42",
"confirmations": "1"
},
{
"id": 714577,
"currency": "USDC",
"currency_to": "EUR",
"transaction_type": "exchange",
"type": "exchange",
"amount": "1000.00000000",
"amount_to": "920.00000000"
}
],
"fees": [
{
"type": "exchange",
"currency": "EUR",
"amount": "46.00000000"
}
],
"error": "",
"status": "confirmed"
}
Sent when a user deposits a currency different from the one originally assigned to the address. In this case, the callback includes
expected_currency, and crypto_address.cross_currency is set to true.This callback may be disabled, see Configure deposit callbacks.{
"id": 2686510,
"end_user_reference": "user_12345",
"type": "deposit",
"expected_currency": "USDC",
"crypto_address": {
"id": 382270,
"currency": "ETH",
"address": "0xd61180ff0cf74dc3ee8e264751f18c47060729b9",
"tag": null,
"cross_currency": true,
"foreign_id": "12345"
},
"currency_sent": {
"currency": "ETH",
"amount": "0.01000000"
},
"currency_received": {
"currency": "ETH",
"amount": "0.01000000",
"amount_minus_fee": "0.00900000"
},
"transactions": [
{
"id": 714576,
"currency": "ETH",
"transaction_type": "blockchain",
"type": "deposit",
"address": "0xd61180ff0cf74dc3ee8e264751f18c47060729b9",
"tag": null,
"amount": "0.01000000",
"txid": "3a491da90a1ce5a318d0aeff6867ab98a03219abae29ed68d702291703c3538b",
"riskscore": "0.72",
"confirmations": "9"
}
],
"fees": [
{
"type": "transfer",
"currency": "ETH",
"amount": "0.00037336"
}
],
"error": "",
"status": "confirmed"
}
Sent when the transaction has been detected but is still being processed. You can create the deposit on your side with a “Pending” or “Processing” status, but should wait for a confirmed callback before treating it as final. Note that currencies which support instant confirmations may skip this callback entirely and go straight to
confirmed. See How deposits are confirmed for the full confirmation flow, and Confirmations and limits for the number of confirmations required per currency.If the address is configured with automatic conversion, the conversion has not yet taken place, so currency_received and the exchange transaction’s amount_to are returned as 0.{
"id": 132506113,
"end_user_reference": "user_12345",
"type": "deposit",
"crypto_address": {
"id": 3776973,
"currency": "USDC",
"address": "0x071B2E45e2CD08011555755b93d5C76D2E62C4Cd",
"tag": null,
"foreign_id": "11"
},
"currency_sent": {
"currency": "USDC",
"amount": "1000.00000000"
},
"currency_received": {
"currency": "USDC",
"amount": "1000.00000000",
"amount_minus_fee": "1000.00000000"
},
"transactions": [
{
"id": 3745588,
"currency": "USDC",
"transaction_type": "blockchain",
"type": "deposit",
"address": "0x071B2E45e2CD08011555755b93d5C76D2E62C4Cd",
"tag": null,
"amount": "1000.00000000",
"txid": "0x4c72ffcb2dfcd0b21c4f19c094558865af465abdfa04a2b8c33ee569afa4ef8d",
"riskscore": null,
"confirmations": "1"
}
],
"fees": [],
"error": "",
"status": "not_confirmed"
}
{
"id": 135225178,
"end_user_reference": "user_12345",
"type": "deposit_exchange",
"crypto_address": {
"id": 240717684,
"currency": "USDC",
"convert_to": "EUR",
"address": "0x5c625bB47E51F128E100b00A33f560Cd88272868",
"tag": null,
"foreign_id": "user_12345"
},
"currency_sent": {
"currency": "USDC",
"amount": "1000.00000000"
},
"currency_received": {
"currency": "EUR",
"amount": "0.00000000",
"amount_minus_fee": "0.00000000"
},
"transactions": [
{
"id": 10248977,
"currency": "USDC",
"transaction_type": "blockchain",
"type": "deposit",
"address": "0x5c625bB47E51F128E100b00A33f560Cd88272868",
"tag": null,
"amount": "1000.00000000",
"txid": "0x20f22a1dbbe601d92d174724aed22cd5df88ee36e56e2488ff70fe13d3dbcd89",
"riskscore": null,
"confirmations": "1"
},
{
"id": 10248978,
"currency": "USDC",
"currency_to": "EUR",
"transaction_type": "exchange",
"type": "exchange",
"amount": "1000.00000000",
"amount_to": "0.00000000"
}
],
"fees": [],
"error": "",
"status": "not_confirmed"
}
Sent when the deposited amount is lower than the minimum allowed for that currency. Such deposits are not credited, and no fees are charged.This callback may be disabled, see Configure deposit callbacks.
{
"id": 2686563,
"end_user_reference": "user_12345",
"type": "deposit",
"crypto_address": {
"id": 381738,
"currency": "USDC",
"address": "0xd61180ff0cf74dc3ee8e264751f18c47060729b9",
"tag": null,
"foreign_id": "12345"
},
"transactions": [
{
"id": 714657,
"currency": "USDC",
"transaction_type": "blockchain",
"type": "deposit",
"address": "0xd61180ff0cf74dc3ee8e264751f18c47060729b9",
"tag": null,
"amount": "3.00000000",
"txid": "0x6b353da88a8ba2df4926c1ccc58991f484a683ba57ec3dde70e812b5c8c7fa1d",
"confirmations": "9"
}
],
"fees": [],
"error": "Transaction amount less than minimum deposit",
"status": "cancelled"
}
Sent when a detected deposit is cancelled because of a double-spend event. The
"Double spend" error means the transaction cannot be credited to your merchant account because the system detected duplicate spending of the same funds in the blockchain — as a result, the transaction also appears as unsuccessful in the blockchain itself. Since the transaction is not considered valid, you should not credit the customer’s balance.{
"id": 100,
"end_user_reference": "user_12345",
"type": "deposit",
"crypto_address": {
"id": 123,
"currency": "USDC",
"address": "0x4B6A2E8D1C3F5A7E9B0D2C4F6E8A1B3D5C7E9F02",
"tag": null,
"foreign_id": "12345"
},
"transactions": [
{
"id": 999,
"currency": "USDC",
"transaction_type": "blockchain",
"type": "deposit",
"address": "0x4B6A2E8D1C3F5A7E9B0D2C4F6E8A1B3D5C7E9F02",
"tag": null,
"amount": "1000.00000000",
"txid": "0x7e1a4c9d2f6b8e0a3c5d7f9b1e4a6c8d0f2b4e6a8c1d3f5b7e9a0c2d4f6b8e1a",
"riskscore": "0.01",
"confirmations": "0"
}
],
"fees": [],
"error": "Double spend",
"status": "cancelled"
}