# How webhooks works

Webhooks **are automatic notifications essential for system integration,** as they notify your server directly, eliminating the need to constantly check the status of an operation. \
\
**With webhooks, you can:**

* <mark style="background-color:blue;">**Reduce repetitive API**</mark> <mark style="background-color:blue;"></mark><mark style="background-color:blue;">queries to check the status of a document (commonly known as polling);</mark><br>
* <mark style="background-color:blue;">**Synchronize systems and integrations**</mark><mark style="background-color:blue;">, ensuring that information between different platforms is always up to date and consistent;</mark><br>
* <mark style="background-color:blue;">**Automate post-event**</mark> <mark style="background-color:blue;"></mark><mark style="background-color:blue;">processes so that subsequent tasks are performed automatically.</mark>

{% hint style="info" %} <mark style="color:red;">**Do I need to have an API Plan to use webhooks?**</mark>**&#x20;No, webhooks are freely available** to all users. But API users are strongly recommended to use webhooks instead of polling.
{% endhint %}

***

**ZapSign supports webhooks to notify you of events such as document creation, signature, document rejection, document completion, or email delivery failure.** When such an event occurs, we send an HTTP POST request to the URL configured in your application containing details about the event in JSON format.

{% hint style="warning" %}
Your application s**hould return status 200 when receiving a webhook**, otherwise, ZapSign will retry the sending, generating duplicates and/or unnecessary requests.
{% endhint %}
