Payment Webhooks
Click the tabs below to see what webhooks you will receive from Coindirect when a customer completes their payment.
The scenario in this example is the following:
The customer broadcasts their transaction on the Network
Coindirect detects the transaction and sends
"event": "transactionDetected"
webhook to notify the merchantCoindirect then updates the payment status from
PENDING
toPROCESSING
and sends"event": "statusChanged"
The transaction gets a required number of confirmations on the Network
Coindirect sends
"event": "transactionConfirmed"
webhook to notify the merchantCoindirect then updates the payment status from
PROCESSING
toCOMPLETE
and sends"event": "statusChanged"
Once you finalize the payment on your side, please ensure that no more transactions will appear on the customer's balance in case you receive further webhooks with the same payment UUID from us - this is to avoid potential issues with duplicate balance transactions.
No under circumstances should you completely rely only on webhooks when finalizing the payment on your side.
Once a webhook is received, we highly recommend making an additional API call to retrieve the payment details via GET /api/v1/pay/:uuid/summary
(link) to check both the status
and displayCurrency.actual
field values.
Webhook Payload Data
Parameter | Type | Description |
| string | Webhook source e.g. a payment |
| string | Can be
|
| object | An object that contains the payment data |
| string | Payment UUID |
| string | Merchant ID |
| long | Payment creation date and time |
| long | Payment expiry date |
| long | Quote expiry date |
| string | Payment external ID |
| string |
|
| string | Payment status. See the list of payment statuses in Payments How-Tos on the left |
| object | Contains data about the payment price currency and amount |
| string | Payment price currency e.g. |
| big decimal | Payment price amount |
| big decimal | The actual payment amount in price currency that the payment resulted in |
| object | Contain data about both the payment's target wallet currency and the amount |
| string | The merchant's target wallet currency that the cryptocurrency payment will be converted and credited to |
| big decimal | The amount that will be received into the merchant's wallet if the customer sends the exact amount of cryptocurrency that they are supposed to send (see |
| big decimal | The actual amount that the merchant receives into their wallet after Coindirect converts cryptocurrency |
| object | Contains data about the |
| string | Cryptocurrency code e.g. |
| big decimal | The amount of cryptocurrency that is supposed to be sent to the payment address |
| big decimal | The actual amount of received cryptocurrency |
| object | Contains data about payment fees |
| string | Fee currency code |
| big decimal | Fee amount that will be debited from the merchant's wallet balance if the customer sends the exact amount of cryptocurrency that they are supposed to send |
| big decimal | The actual fee amount that Coindirect debited from the merchant's wallet balance after processing the payment |
| object | An object that contain data about the display rate. |
| string | Base currency type |
| string | Couter currency type |
| big decmal | Rate |
| object | An object that contains data about the paymen exchange rate |
| string | Base currency code |
| string | Counter currency code |
| big decimal | Rate |
| object | Contains data about the cryptocurrency address and destination tag (in case of XRP) |
| string | The protocol type supported by the payment. If there are multiple protocols supported, see the |
| string | The payment address. This is the address that a customer needs to send their cryptocurrency to |
| string | This is a payment destination tag. This fields isn't |
| string | The destination address URI |
| array | Fields are the same as in the case of the |
| string | URL to the payment page that you can redirect your customers to |
| string | URL that the customer will be redirected to if they click a "Back to Merchant" button on the payment page |
| array | Contains data about received cryptocurrency transactions and exchange rates. If no transaction is received, it is empty |
| long | Cryptocurrency transaction detection timestamp |
| long | Cryptocurrency transaction confirmation timestamp |
| string | Cryptocurrency transaction hash |
| big decimal | Cryptocurrency transaction amount |
| object | Cryptocurrency transaction risk details |
| string | Cryptocurrency transaction risk levl. Can |
| string | Cryptocurrency transaction resource name |
| string | Cryptocurrency transaction resource category |
| string | Cryptocurrency transaction network fee currency |
| big decimal | Network fee amount |
| array, string | The wallet addresses that the cryptocurrency transaction was sent from |
| object | The exchange rate that was used to convert cryptocurrency to the wallet currency |
| string | Base currency |
| string | Counter currency |
| big decimal | Exhange rate |
| object | The display rate |
| string | Base currency |
| string | Counter currency |
| big decimal | Rate |
See the Webhooks page to get basic information on webhooks and validation.
WebhooksLast updated