Payment Callback

Payment callback (Payment notification) will be sent to merchant's callback_url when order status is changed to pending confirming, paid, invalid, canceled, refunded or expired.

📘

API Callback Documentation

About common callback functionality please read in API Callbacks section.

Recommended: use JSON callbacks. JSON is easier to parse, preserves nested structures (like fees[]) without bracket-notation quirks, and matches the format of every other CoinGate API response. You can switch your API App's callback format from Form Encoding to JSON at any time — see API Callbacks for instructions. The format is configured per API App, not per order.

CoinGate callback sends data below:

NameTypeValue
idintegerCoinGate order ID.
order_idstringMerchant-supplied order identifier.
statusstringCoinGate payment status.
price_amountstringThe price set by the merchant; for example, 499.95.
price_currencystringThe currency code which defines the currency in which the merchant's goods/services are priced; for example, USD, CHF, BTC (see supported currencies).
receive_currencystringThe currency code which defines the currency in which the merchant's settlements will be paid. Currency conversions are done by CoinGate automatically. For example: EUR, USD, BTC, USDT, etc.
receive_amountstringThe amount which will be credited to the merchant when the invoice is paid. It is calculated by taking the price amount (converted to currency units set in receive_currency) and subtracting CoinGate processing fee from it.
pay_amountstringThe amount of cryptocurrency (defined by pay_currency) paid by the shopper.
pay_currencystringThe cryptocurrency in which the payment was made; for example, BTC, LTC, ETH.
underpaid_amountstringThe amount of cryptocurrency (defined by pay_currency) underpaid by the shopper; for example, if pay_amount => 0.123, pay_currency => BTC, and the shopper paid 0.12 BTC, then underpaid_amount => 0.003. Changes in underpaid_amount will not trigger additional callbacks, but when order information is retrieved using GET or LIST, latest value will be shown.
overpaid_amountstringThe amount of cryptocurrency (defined by pay_currency) overpaid by the shopper; for example, if pay_amount => 0.123, pay_currency => BTC, and the shopper paid 0.15 BTC, then overpaid_amount => 0.027. Changes in overpaid_amount will not trigger additional callbacks, but when order information is retrieved using GET or LIST, latest value will be shown.
is_refundablebooleanPossible values: true, false. Indicates whether or not the shopper can request a refund on the invoice. Changes in is_refundable will not trigger additional callbacks, but when order information is retrieved using GET or LIST, latest value will be shown.
created_atISO 8601Invoice creation time.
tokenstringThe same callback token returned when the order was created — use it to verify the request is genuine.
feesarrayArray of fees for Paid/Refunded/Partially refunded order
paid_atISO 8601Time when the invoice was fully paid. Only included when the status is paid, refunded, or partially_refunded.

Fields pay_currency, pay_amount, expire_at, payment_address are only sent when the customer chooses the currency with which he is going to pay for the invoice.

{
  "id": 390104,
  "order_id": "test-json-1777557839",
  "status": "paid",
  "price_amount": "10.0",
  "price_currency": "EUR",
  "pay_amount": "0.00016069",
  "pay_currency": "BTC",
  "receive_amount": "0.000152",
  "receive_currency": "BTC",
  "underpaid_amount": "0.00016069",
  "overpaid_amount": "0",
  "is_refundable": false,
  "created_at": "2026-04-30T14:03:59+00:00",
  "paid_at": "2026-04-30T14:04:32+00:00",
  "token": "R3avx2xNb-7onqeCDLa9-S5Dszt8bw",
  "fees": [
    {
      "type": "processing_fee",
      "amount": "0.000002",
      "currency": { "id": 1, "symbol": "BTC" }
    }
  ]
}
id=390087
&order_id=test-1777557082
&status=paid
&pay_amount=0.00016055
&pay_currency=BTC
&price_amount=10.0
&price_currency=EUR
&receive_currency=BTC
&receive_amount=0.000152
&created_at=2026-04-30T13%3A51%3A23%2B00%3A00
&paid_at=2026-04-30T13%3A52%3A33%2B00%3A00
&token=knPmMCmFPgWasTQfqGkUoFDZgm3ZLw
&underpaid_amount=0.00016055
&overpaid_amount=0
&is_refundable=false
&fees[][type]=processing_fee
&fees[][amount]=0.000002
&fees[][currency][id]=1
&fees[][currency][symbol]=BTC