Skip to main content

Deposit Webhook

Whenever the deposit authorization status changes (user authorizes or rejects), Binance Pay Onchain will send a webhook message to the Partner's configured webhook callback URL. The Partner can receive this message and react accordingly, such as displaying the deposit addresses or notifying the user of a rejection.

Note: Webhook is the primary delivery mechanism for deposit status changes. Polling via /deposit/authorization is available as a fallback in case the webhook is missed or not yet integrated. See Query deposit authorization.

Request Headers​

FieldTypeRemarks
X-BN-Connect-TimestamptimestampTimestamp
X-BN-Connect-SignaturestringSHA256withRSA(requestBody + X-Connect-Timestamp)
X-BN-Connect-ForstringSame with your client id (X-Tesla-ClientId)

How signature works: The signature verification process is the same as the existing Connect webhook. Binance signs the webhook payload with its private key, and the Partner verifies using Binance's public key.

Request Body​

FieldTypeRemarks
webhookEventTypestringFixed value: deposit_status_event
externalOrderIdstringPartner's unique order ID (same as the one used in /deposit/initiate).
statusintAuthorization status: 1 = AUTHORIZED, 2 = REJECTED. Please refer to "Deposit authorization status".
cryptoCurrencystringCrypto currency
depositAddressesobject arrayDeposit addresses per network. Present when status = 1 (AUTHORIZED), empty array when REJECTED. Refer to DepositAddressObject.
updateTimetimestampStatus change time (epoch milliseconds)
DepositAddressObject​
FieldTypeRemarks
depositAddressstringDeposit address for this network
networkstringBlockchain network. E.g. "BSC", "ETH", "SOL"
addressTagstringAddress memo/tag (for networks like XRP, XLM, etc.). Null if not required

Response Body​

  • HTTP status code should be 200
  • Response body is in JSON format.
FieldTypeRemarks
returnCodestringSUCCESS or other code you wish to return to Binance Pay Onchain
returnMessagestringThe message you wish to return to Binance Pay Onchain

Example - AUTHORIZED (with deposit addresses)​

Request Body:

{
"webhookEventType": "deposit_status_event",
"externalOrderId": "dep-20260421-001",
"status": 1,
"cryptoCurrency": "USDT",
"depositAddresses": [
{
"depositAddress": "0x1234567890abcdef1234567890abcdef12345678",
"network": "BSC",
"addressTag": null
},
{
"depositAddress": "0x1234567890abcdef1234567890abcdef12345678",
"network": "ETH",
"addressTag": null
},
{
"depositAddress": "HN7cABqLq46Es1jh92dQQisAq662SmxELLLsHHe4YWrH",
"network": "SOL",
"addressTag": null
}
],
"updateTime": 1745350200000
}

Example - REJECTED​

Request Body:

{
"webhookEventType": "deposit_status_event",
"externalOrderId": "dep-20260421-001",
"status": 2,
"cryptoCurrency": "USDT",
"depositAddresses": [],
"updateTime": 1745350200000
}