A callback will be sent to the merchant's callback_url when the send request is created or the status is changed
API Callback Documentation
Read more about common callback functionalities in the API Callbacks section.
CoinGate callback sends the data below:
Name | Type | Value |
---|---|---|
id | Integer | Unique identifier for the send request. |
status | String | The current status of the send request (e.g., pending, completed, failed). Available Statuses |
purpose | String | Description of the purpose of the Send Request. |
callback_url | String | URL that will receive status change callbacks for this request. |
created_at | String | Timestamp indicating when the send request was created. |
external_id | String | A unique identifier provided by the merchant during record creation. (optional, string, max length: 50, uniq) |
ledger_account | Hash | Ledger account used for deducting the sending amount. |
input_amount | Float | The amount you intend to send in the specified input_currency . |
input_currency | Hash | The currency in which the amount is provided. This will be converted into the sending_currency before sending. For example, if you want to send 100 EUR but the beneficiary’s currency is ETH, the amount will be converted accordingly. |
sending_amount | Float | The actual amount that will be sent to the beneficiary after conversion. |
sending_currency | Hash | The currency in which the beneficiary will receive the funds. |
input_to_sending_rate | String | The exchange rate used to convert input_amount from input_currency to sending_amount in sending_currency . For example, if sending 100 EUR (input_currency ) to ETH (sending_currency ), this rate determines how much ETH the beneficiary receives. |
sending_to_balance_debit_rate | String | The exchange rate between sending_currency and balance_debit_currency , used to determine the deducted amount from the ledger. |
balance_debit_amount | Float | The amount deducted from the ledger account. If the sending currency and ledger account currency differ, the amount will be converted before deduction. For example, if you send 0.1 ETH, but your ledger balance is in USDC, then the equivalent USDC amount will be deducted. |
balance_debit_currency | Hash | The currency of the ledger account used for deduction. |
beneficiary_payout_setting | Hash | The payout settings associated with the beneficiary. The beneficiary currency is the same as sending_currency . |
fees | Hash | The fees applied to the transaction. Possible fee types include: - service_fee : A fee for processing the transaction.- conversion_fee : A fee applied when converting between sending_currency and balance_debit_currency . |
blockchain_transactions | Array | An array containing details of blockchain transactions related to this request. Each transaction includes: - txid : The blockchain transaction ID.- amount : The amount transferred in the transaction.- status : The current status of the transaction.- network_confirmations : The number of confirmations received on the blockchain. |
actions_required | Hash | The actions_required field is present only when an exchange is needed (i.e., when sending_currency and balance_debit_currency are different). If currency conversion is not required, user confirmation is not needed. Note that the conversion is based on sending_currency and balance_debit_currency , not input_currency , even if the currencies differ. Possible actions: PATCH(cancel) or PATCH(confirm) . |
requires_2fa_confirmation | Boolean | Indicates whether the operation requires additional manual confirmation in the account dashboard using two-factor authentication (2FA). |
An example of callback in JSON:
{
"id": 11,
"status": "draft",
"purpose": "Sending 100 EUR Value",
"callback_url": "https://example.com/callback_url",
"created_at": "2025-03-13T00:45:17.250Z",
"external_id": "1",
"ledger_account": {
"id": "01JNQWKKJ6WXN8BZT1Y66B6G9H",
"balance": "1.0",
"status": "active",
"currency": {
"id": 1,
"title": "Bitcoin",
"symbol": "BTC"
}
},
"input_amount": "100.0",
"input_currency": {
"id": 2,
"title": "Euro",
"kind": "fiat",
"symbol": "EUR"
},
"sending_amount": "0.049422",
"sending_currency": {
"id": 5,
"title": "Ethereum",
"kind": "crypto",
"symbol": "ETH"
},
"input_to_sending_rate": "0.00049422",
"sending_to_balance_debit_rate": "40.3258",
"balance_debit_amount": "0.00122557",
"balance_debit_currency": {
"id": 1,
"title": "Bitcoin",
"kind": "crypto",
"symbol": "BTC"
},
"beneficiary_payout_setting": {
"id": 2,
"created_at": "2025-03-07T10:39:33.152Z",
"beneficiary_id": 1,
"platform": {
"id": 2,
"title": "Ethereum",
"id_name": "ethereum"
},
"crypto_address": "tb1qcq670zweall6zz4f96flfrefhr8myfxz9ll9l2",
"crypto_address_metadata": null,
"currency": {
"id": 5,
"title": "Ethereum",
"kind": "crypto",
"symbol": "ETH"
}
},
"fees": {
"service_fee": {
"amount": "0.00001226",
"currency": {
"id": 1,
"title": "Bitcoin",
"kind": "crypto",
"symbol": "BTC"
}
},
"conversion_fee": {
"amount": "0.00001226",
"currency": {
"id": 1,
"title": "Bitcoin",
"kind": "crypto",
"symbol": "BTC"
}
}
},
"blockchain_transactions": [],
"actions_required": {
"confirm": "https://api.coingate.com/api/v2/send_requests/11/confirm",
"cancel": "https://api.coingate.com/api/v2/send_requests/11/cancel"
},
"requires_2fa_confirmation": true
}