Withdrawals

Webhook Respond

The withdrawals report is implemented by means of webhooks.

For more information on setting up Webhooks, see the Setting up Webhooks.

Set the Webhook URL in the menu Merchant\Classic processing\WebhookURL to receive a callback about withdrawals status. Required https (TLS/SSL)

Webhook password - password required to verify the withdrawal signature

Webhook URL - the address in the system from which the withdrawal is made, this address will be used to send updates on the status of withdrawals:

Request method: POST

Response Type: JSON

Parameters:

NameDescriptionType

ID

Withdrawal ID in the 0xProcessing system

Integer

MerchantID

Merchant Id in 0xProcessing system

String

Date

Date of withdrawal request

DateTime

Amount

Withdrawal amount in cryptocurrency

Double

AmountUSD

Withdrawal amount in USD equivalent

Double

Fee

Withdrawal fee in token equivalent

Double

Currency

Withdrawal currency

String

Address

Withdrawal address

String

Status

Withdrawal status

Possible values are:

Success - withdrawal has been executed successfully

Canceled - withdrawal has been not executed

String

Reason

Reason of withdrawal reject

String

ExternalID

Unique withdrawal identifier in the system from which the withdrawal is made

String

Signature

Checksum to verify the authenticity of the request (to ensure that the request came from 0xProcessing)

String

ClientID

Unique client ID in your system

String

Hash

Successful transaction hash

String

Signature check:

1. A string of the following form must be generated: "ID":"MerchantID":"Address":"Currency":"Password" (WebhookURL link password)

Without quotation marks through a colon. Example: 12345:Qtfxhgy43:0xa36740e327726fA05F720b10Ec2D71E0CD4Ae2A5:ETH:qwerty

2. Encrypt the resulting string using MD5 algorithm

https://emn178.github.io/online-tools/md5.html

3. Compare the resulting string with the one that came through Webhook

"Signature":"a5510c8c3e657ffd8229813749cd20ec"

4. If the strings are the same, return HTTP Status 200 (Required). Our server expects a response to the webhook within a 3-second timeout period. If the response is not received within these 3 seconds, the system considers the delivery failed.

If the callback is not delivered successfully, the system repeats at 31 times with an interval of 15 seconds. If the webhook still fails to be delivered, the system sends a notification to the merchant's account email indicating a problem with the WebhookURL.

Example Webhook JSON:

                        {
                        "ID":33683,
                        "MerchantID":"0xMR000000",
                        "Date":"2023-03-06T16:37:38.547046Z",
                        "Amount":500.0,
                        "Fee":2.6,
                        "Currency":"ETH",
                        "Address":"0x......",
                        "Status":"Success",
                        "Reason":null,
                        "Signature":"3a16086f49eb11c2e8c426a7b3649caa",
                        "ExternalID":"abcd1234",
                        "ClientID":"abcd1234",
                        "AmountUSD":0.0,
                        "Hash":"a45172f319ec4561871bf195f17f85e69a4bc842b5c1085dbe000098217fffb7"
                        }

When processing callbacks, you MUST use the ID parameter from the callback 0xProcessing as an additional validation factor.

Last updated