Payment without fixed amount

Webhook Respond

The deposit 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 payment status. Required https (TLS/SSL)

Webhook password - password required to verify the payment signature

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

Request method: POST

Response Type: JSON

Parameters:

Name
Description
Type

PaymentId

Transaction ID in the 0xProcessing system

Integer

MerchantId

Merchant ID in 0xProcessing system

String

ShopId

Merchant ID in 0xProcessing system

String

Amount

Payment amount in cryptocurrency

Double

AmountUSD

Payment amount in USD equivalent

Double

TotalAmount

Full amount received in the cryptocurrency without fee

Double

TotalAmountUSD

Full amount received in USD equivalent without fee

Double

Currency

Payment currency

String

Email

Payer's e-mail

String

Status

Payment status

Possible values are:

Success - payment has been executed successfully

Canceled - the payment has been cancelled. The amount has been credited to the wallet indicated on the payment form after the payment window is closed (payment window 30-50 min). The amount has not been transferred to the wallet specified in the payment form.

Insufficient - the deposit amount is less than the minimum amount, and the payment is assigned the status "Insufficient". You will not be able to confirm the payment data without an additional payment

String

BillingID

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

String

Signature

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

String

Insufficient

If the insufficient payments will be manually confirmed by support as successfully made.

You will receive a second callback with Success status and insufficient=true flag, which will transfer information about the (underpaid) amount actually received. You need to process this callback on the payment generation side and change the originally generated payment in accordance with the actual funds received

Boolean

ClientId

Unique client ID in your system

String

TxHashes

Successful transaction hash

String []

Signature check:

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

Without quotation marks through a colon. Example: 12345:Qtfxhgy43:test@test.com:USDT (ERC20):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:

                        {
                        "PaymentId":10453,
                        "MerchantId":"Asv0232SSd",
                        "Amount":0.00264765,
                        "TotalAmount":0.00264765,
                        "Currency":"BTC",
                        "Email":"test@test.com",
                        "Status":"Success",
                        "Signature":"a5510c8c3e657ffd8229813749cd20ec",
                        "BillingID":"13304",
                        "AmountUSD":115.0,
                        "TotalAmountUSD":115.0,
                        "Insufficient":false,
                        "Test":false,
                        "ClientId": "1000",
                        "TxHashes":["0e61e33a0c02204c41ac210c2fcffda4bea4399792acc49479aa8374465ef63a"]
                        }

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

Last updated