# Pass additional data through webhooks

Pass **additional static data** for all webhooks Ecwid sends to your application through **custom headers**.&#x20;

For example, custom headers can work as application identifiers if you receive webhooks from several applications to one endpoint. Or they can work as an additional validation layer.

{% hint style="warning" %}
Do not pass additional data through the webhook URL. Use **custom headers** instead.
{% endhint %}

### Structure and restrictions of custom headers

Custom webhook headers consist of a name and value, for example:

```yaml
My-Custom-Validation-Key: abc123def456ghi789
```

Names and values for such headers are always static. Custom headers **cannot work as variables** to provide additional entity data like order total for the 'order.created' event.

<details>

<summary>Webhook example with a custom header</summary>

```http
PUT /webhook-receiver HTTP/1.1
Host: backend.example.com
Content-Type: application/json
Content-Length: 261
X-Ecwid-Webhook-Signature: MeV28XtFal4HCkYvdilwckJinc6Dtp4ZWpPhmjdjn2= // Ecwid validation header
My-Custom-Validation-Key: abcde12345  // Custom header

{
  "eventId":"80aece08-40e8-4145-8764-6c2f0d38678",
  "eventCreated":1234567,
  "storeId":1003,
  "entityId":103878161, 
  "eventType":"order.created",
  "data":{
    "orderId":"XJ12H", 
    "newPaymentStatus":"PAID",
    "newFulfillmentStatus":"SHIPPED"
  }
}
```

</details>

### Add custom webhook headers to your app

[Contact API Support team](https://app.gitbook.com/s/uOzT5egoVTAjMJwRuMQT/contact-ecwid-api-support-team) to set up custom headers for your application. The request must include:

* Your application name or `client_id`.
* Name and value for the custom webhook header.&#x20;

We'll update the app for you as soon as possible. Changes will be applied immediately after the update.
