> For the complete documentation index, see [llms.txt](https://docs.0xprocessing.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.0xprocessing.com/0xprocessing-api-v1/binance-pay/webhooks.md).

# Binance Pay Webhooks

Receive Binance Pay deposit and withdrawal status updates through secure webhooks.

0xProcessing sends a webhook when the status of a Binance Pay deposit or withdrawal changes.

Set the webhook URL under **Settings → API → Binance Pay webhooks**. HTTPS (TLS/SSL) is required.

For request authentication, header descriptions, signature verification, response requirements, retries, and implementation examples, see [Webhooks](/0xprocessing-api-v1/webhooks.md).

**Request method:** `POST`

**Content type:** `application/json`

## Payload parameters

All Binance Pay webhook types use the following payload structure:

| Name          | Type     | Description                                                                                     |
| ------------- | -------- | ----------------------------------------------------------------------------------------------- |
| `ID`          | Integer  | Transaction identifier in 0xProcessing.                                                         |
| `BinanceID`   | String   | Binance payment identifier.                                                                     |
| `MerchantID`  | String   | Merchant identifier in 0xProcessing.                                                            |
| `Date`        | DateTime | Date and time at which the transaction was created, in UTC.                                     |
| `Amount`      | Double   | Transaction amount.                                                                             |
| `AmountUSD`   | Double   | Transaction amount in USD.                                                                      |
| `Fee`         | Double   | Transaction fee.                                                                                |
| `Currency`    | String   | Transaction currency.                                                                           |
| `Type`        | String   | Event type. Possible values: `Deposit`, `WithdrawBinanceId`, or `WithdrawOnchain`.              |
| `Destination` | String   | Recipient Binance ID or blockchain wallet address, depending on the event type.                 |
| `Status`      | String   | Transaction status. Possible values: `Success` or `Canceled`.                                   |
| `ExternalID`  | String   | Transaction identifier in the Merchant's system.                                                |
| `ClientID`    | String   | Client identifier in the Merchant's system.                                                     |
| `TxId`        | String   | Binance Pay transaction identifier or blockchain transaction hash, depending on the event type. |

## Deposit

Sent when a Client completes a deposit through Binance Pay and the funds reach a final status.

**Event type:** `Deposit`

**Statuses:** `Success`, `Canceled`

```json
{
  "ID": 123,
  "MerchantID": "0xMR000000",
  "Date": "2025-06-16T14:30:00Z",
  "Amount": 150.75,
  "AmountUSD": 150.75,
  "Fee": 1.5,
  "Currency": "USDT",
  "Type": "Deposit",
  "Destination": "",
  "Status": "Success",
  "ExternalID": "EXT-987654",
  "ClientID": "CLIENT-001",
  "TxId": "123456789",
  "BinanceID": "987654321"
}
```

## WithdrawBinanceId

Sent when a withdrawal to a Binance Pay account using a Binance ID reaches a final status.

**Event type:** `WithdrawBinanceId`

**Statuses:** `Success`, `Canceled`

```json
{
  "ID": 123,
  "MerchantID": "0xMR000000",
  "Date": "2025-06-16T14:30:00Z",
  "Amount": 150.75,
  "AmountUSD": 150.75,
  "Fee": 1.5,
  "Currency": "USDT",
  "Type": "WithdrawBinanceId",
  "Destination": "987654321",
  "Status": "Success",
  "ExternalID": "EXT-987654",
  "ClientID": "CLIENT-001",
  "TxId": "123456789",
  "BinanceID": "987654321"
}
```

## WithdrawOnchain

Sent when an on-chain withdrawal reaches a final status.

**Event type:** `WithdrawOnchain`

**Statuses:** `Success`, `Canceled`

```json
{
  "ID": 123,
  "MerchantID": "0xMR000000",
  "Date": "2025-06-16T14:30:00Z",
  "Amount": 150.75,
  "AmountUSD": 150.75,
  "Fee": 1.5,
  "Currency": "USDT",
  "Type": "WithdrawOnchain",
  "Destination": "0x38f500000000000000000000000000000090f223",
  "Status": "Success",
  "ExternalID": "EXT-987654",
  "ClientID": "CLIENT-001",
  "TxId": "0x5fdb00000000000000000000000000000000000000000000000000000085974a",
  "BinanceID": "987654321"
}
```

{% hint style="warning" %}
Use `ID` and `Type` from the 0xProcessing webhook as additional validation factors. Process the event only after verifying the `X-Webhook-Signature` header.
{% endhint %}
