How to use
- Log in to whitebit.com.
- Open the API keys tab.
- Select the web-hook configuration tab for the API keys.
- Paste the correct URI for the web server to process web-hook calls.
- Press Generate a new key button and toggle the activation switcher to “Activated”.
The secret key is shown only once. Save it in a secure key store.
Requirements
For web hook keys generation
Before using webhooks, verify ownership of the domain set as the webhook destination. Use one of three methods:
- Add a TXT DNS record to the domain with the webhook public key.
- Add the plain text file
whiteBIT-verification.txt to the root domain folder and provide public web access. Place the public webhook key in the file.
- Implement the
/whiteBIT-verification endpoint to respond with 200 OK and return a JSON array containing the public webhook key. Example: ["<public-webhook-key>"]
Passing one of these checks enables the webhook.
For processing web-hook requests
All web hook requests are performing using POST method and with application/json content type. Consumer server should respond with 200 HTTP status code. If consumer was unable to handle web-hook, the request will be retry every 10 minutes but not more than 5 times.
Body data
All web-hook requests are performing with
{
"method": "string",
"params": {
"nonce": 0
},
"id": "uniqueID"
}
method - string. The name of method which was evaluated. Web hooks API supports such web-hook methods:
- code.apply. Performs when code owned by a customer was applied.
id - string. Uuid to identify every request.
params - the request payload. Contains data about the actions triggering the webhook call. The field also contains a nonce. ‘nonce’ - a number always greater than the previous request’s nonce number
Also, all request contains additional data in headers:
'Content-type': 'application/json'
'X-TXC-APIKEY': api_key - the WhiteBIT webhook API key
'X-TXC-PAYLOAD': payload' - where payload is base64-encoded body data
'X-TXC-SIGNATURE': signature - where signature is hex(HMAC_SHA512(payload), key=api_secret))
On the consumer side, process the security headers to verify the request originated from WhiteBIT.
WebHook Methods
WhiteBIT code apply
Performed when code was applied. Request example:
{
"method": "code.apply",
"params": {
"code": "<SOME_WHITE_BIT_CODE>",
"nonce": 1
},
"id": "45a1d85d-2fdf-483e-8dfa-6d253148c730"
}
WhiteBIT deposit to main balance
Performed when deposit was accepted. Request example:
{
"method": "deposit.accepted",
"params": {
"address": "wallet address", // deposit address
"amount": "0.000600000000000000", // amount of deposit
"createdAt": 1593437922, // timestamp of deposit
"currency": "Tether US", // deposit currency
"description": "", // deposit description
"fee": "0.000000000000000000", // deposit fee
"memo": "", // deposit memo
"method": 1, // called method 1 - deposit, 2 - withdraw
"network": "ERC20", // if currency is multi network
"status": 15, // transactions status
"ticker": "USDT_ETH", // deposit currency ticker
"transactionHash": "transaction hash", // deposit transaction hash
"uniqueId": null, // unique Id of deposit
"confirmations": {
// if transaction has confirmations info it will display here
"actual": 1, // current block confirmations
"required": 2 // required block confirmation for successful deposit
}
},
"id": "uuid"
}
Performed when deposit was update. Request example:
{
"method": "deposit.updated",
"params": {
"address": "wallet address", // deposit address
"amount": "0.000600000000000000", // amount of deposit
"createdAt": 1593437922, // timestamp of deposit
"currency": "Tether US", // deposit currency
"description": "update", // deposit description
"fee": "0.000000000000000000", // deposit fee
"memo": "", // deposit memo
"network": "ERC20", // if currency is multi network
"status": 15, // transactions status
"ticker": "USDT_ETH", // deposit currency ticker
"transactionHash": "transaction hash", // deposit transaction hash
"uniqueId": null, // unique Id of deposit
"confirmations": {
// if transaction has confirmations info it will display here
"actual": 1, // current block confirmations
"required": 2 // required block confirmation for successful deposit
}
},
"id": "uuid"
}
Performed when the deposit was processed and is available on the balance. Request example:
{
"method": "deposit.processed",
"params": {
"address": "wallet address", // deposit address
"amount": "0.000600000000000000", // amount of deposit
"createdAt": 1593437922, // timestamp of deposit
"currency": "Tether US", // deposit currency
"description": "", // deposit description
"fee": "0.000000000000000000", // deposit fee
"memo": "", // deposit memo
"method": 1, // called method 1 - deposit, 2 - withdraw
"network": "ERC20", // if currency is multi network
"status": 15, // transactions status
"ticker": "USDT_ETH", // deposit currency ticker
"transactionHash": "transaction hash", // deposit transaction hash
"uniqueId": null, // unique Id of deposit
"confirmations": {
// if transaction has confirmations info it will display here
"actual": 1, // current block confirmations
"required": 2 // required block confirmation for successful deposit
}
},
"id": "uuid"
}
Performed when deposit was canceled. Request example:
{
"method": "deposit.canceled",
"params": {
"address": "wallet address", // deposit address
"amount": "100.00", // amount of deposit
"createdAt": 1593437922, // timestamp of deposit
"currency": "Tether US", // deposit currency
"description": "", // deposit description
"fee": "0.000000000000000000", // deposit fee
"memo": "", // deposit memo
"method": 1, // called method 1 - deposit, 2 - withdraw
"network": "ERC20", // if currency is multi network, "null" if no multi network
"status": 15, // transactions status
"ticker": "USDT_ETH", // deposit currency ticker
"transactionHash": "transaction hash", // deposit transaction hash
"uniqueId": null, // unique Id of deposit
"confirmations": {
// if transaction has confirmations info it will display here
"actual": 1, // current block confirmations
"required": 32 // required block confirmation for successful deposit
}
},
"id": "uuid"
}
Deposit status codes:
WhiteBIT withdraw from main balance
Performed when withdraw was created. Request example:
{
"method": "withdraw.unconfirmed",
"params": {
"address": "wallet address", // withdraw address
"amount": "100.00", // amount of withdraw
"createdAt": 1593437922, // timestamp of withdraw
"currency": "Tether US", // withdraw currency
"ticker": "USDT", // withdraw currency ticker
"description": null, // withdraw description
"fee": "0.000000000000000000", // withdraw fee
"memo": "", // withdraw memo
"method": 2, // called method 1 - deposit, 2 - withdraw
"network": "TRC20", // if currency is multi network, "null" if no multi network
"status": 15, // transactions status
"transactionHash": "transaction hash", // withdraw transaction hash
"uniqueId": null // unique Id of withdraw
},
"id": "uuid"
}
Performed when withdraw is pending. Request example:
{
"method": "withdraw.pending",
"params": {
"address": "wallet address", // withdraw address
"amount": "100.00", // amount of withdraw
"createdAt": 1593437922, // timestamp of withdraw
"currency": "Tether US", // withdraw currency
"ticker": "USDT", // withdraw currency ticker
"description": null, // withdraw description
"fee": "0.000000000000000000", // withdraw fee
"memo": "", // withdraw memo
"method": 2, // called method 1 - deposit, 2 - withdraw
"network": "TRC20", // if currency is multi network, "null" if no multi network
"status": 15, // transactions status
"transactionHash": "transaction hash", // withdraw transaction hash
"uniqueId": null // unique Id of withdraw
},
"id": "uuid"
}
Performed when withdraw was canceled. Request example:
{
"method": "withdraw.canceled",
"params": {
"address": "wallet address", // withdraw address
"amount": "100.00", // amount of withdraw
"createdAt": 1593437922, // timestamp of withdraw
"currency": "Tether US", // withdraw currency
"ticker": "USDT", // withdraw currency ticker
"description": null, // withdraw description
"fee": "0.000000000000000000", // withdraw fee
"memo": "", // withdraw memo
"method": 2, // called method 1 - deposit, 2 - withdraw
"network": "TRC20", // if currency is multi network, "null" if no multi network
"status": 15, // transactions status
"transactionHash": "transaction hash", // withdraw transaction hash
"uniqueId": null // unique Id of withdraw
},
"id": "uuid"
}
Performed when withdraw was completed. Request example:
{
"method": "withdraw.successful",
"params": {
"address": "wallet address", // withdraw address
"amount": "100.00", // amount of withdraw
"createdAt": 1593437922, // timestamp of withdraw
"currency": "Tether US", // withdraw currency
"ticker": "USDT", // withdraw currency ticker
"description": null, // withdraw description
"fee": "0.000000000000000000", // withdraw fee
"memo": "", // withdraw memo
"method": 2, // called method 1 - deposit, 2 - withdraw
"network": "TRC20", // if currency is multi network, "null" if no multi network
"status": 15, // transactions status
"transactionHash": "transaction hash", // withdraw transaction hash
"uniqueId": null // unique Id of withdraw
},
"id": "uuid"
}
WhiteBIT refund successful
Triggered after the system successfully completes a refund. Request example:
{
"method": "refund.successful",
"params": {
"transactionId": "5e112b38-...",
"status": "completed",
"refundAddress": "GDTSOI56...",
"depositAmount": "100",
"currency": "Tether USDT",
"ticker": "USDT",
"network": "ERC-20",
"createdAt": 1733924412,
"processedAt": 1733925012,
"refundNetworkFee": "1",
"refundAmount": "99",
"refundHash": "0x767ebd2...",
"nonce": 0
},
"id": "uuid"
}
WhiteBIT refund failed
Triggered after the system fails to complete a refund. The system rejects the refund if the destination address does not support the required network or asset, or if validation fails. Use a different address or contact support. Request example:
{
"method": "refund.failed",
"params": {
"transactionId": "5e112b38-...",
"status": "failed",
"refundAddress": "GDTSOI56...",
"depositAmount": "100",
"currency": "Tether USDT",
"ticker": "USDT",
"network": "ERC-20",
"createdAt": 1733924412,
"processedAt": 1733925012,
"nonce": 0
},
"id": "uuid"
}