> 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/quick-start/setting-up-webhooks.md).

# Setting up Webhooks

Follow step-by-step instructions to set up webhooks for crypto payments, ensuring timely notifications and smooth transaction processes.

**To integrate webhooks (callbacks) for payments and withdrawals, follow these steps:**

1. Navigate to **Settings → API**.
2. In **Webhooks settings**, enter the URL in the **Webhook URL** field for payment status callbacks or in the separate field for withdrawals. HTTPS (TLS/SSL) is required.
3. In the **Webhook password** field, enter the password if you have one.
4. Click **Save** to save your webhook settings.

The Merchant can set up a webhook URL under **Settings → API** and start receiving JSON notifications about incoming payments and withdrawals, including amount, status, timestamp, and other transaction details.

Every time a new cryptocurrency payment is deposited or funds are withdrawn, the Merchant receives a webhook with transaction details:

* status
* currency
* amount
* USD amount
* blockchain transaction's hash
* address
* Merchants Client ID
* Merchants ID
* Signature
* ...and so on

{% hint style="warning" %}

#### Attention

The Merchant should validate the webhook signature and the values of known parameters to reduce the risk of fraudulent activity.
{% endhint %}

{% hint style="info" %}
After validating the webhook successfully, the Merchant should respond with **HTTP Code: 200 OK.** No additional parameters are required in the response body.

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 Merchant endpoint does not validate the callback, the system repeats delivery 31 times at 15-second intervals. If the webhook still fails to be delivered, the system sends an email notifying the Merchant about a problem with the webhook URL.
{% endhint %}

## Webhook test

The following integration method is used to test webhooks for payments.

To emulate test payments, pass the parameter `Test=true`.

The test payment form opens with buttons to emulate Successful Payment, Canceled Payment, and Insufficient Payment. The test payment link must be opened in the same browser as the logged-in Merchant account.

![](https://3581776959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe844yi2U8Swnqhi7iE8%2Fuploads%2FoWzMbsA9xXpbHHcS3Ltx%2Fimage.png?alt=media\&token=4abb4211-32b7-469e-be0d-da475ec53e96)

If the callback is validated successfully, your system should respond with **HTTP Code: 200 OK.** No additional parameters are required in the response body.

To resend a non-test callback, use the **Transactions** menu.

In the transaction field, click **Show webhooks**.

![](https://3581776959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe844yi2U8Swnqhi7iE8%2Fuploads%2FBqN2iwuVPbvLYhJv5vcd%2Fimage.png?alt=media\&token=c41c5932-8cb0-44aa-95ac-ac1a5b2ebc56)

Then click **Resend**.

![](https://3581776959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe844yi2U8Swnqhi7iE8%2Fuploads%2FrYnpq89wsH9ERq9zfrfg%2Fimage.png?alt=media\&token=5d9b52b6-c1b0-49a5-a1ee-84d65df07dae)

Learn more about integrating callbacks in the API documentation: [Webhooks](/0xprocessing-api-v1/webhooks.md).
