# Webhooks

A <mark style="color:purple;">webhook</mark> (also called a web callback or HTTP push API) is a way for Shiptify app to provide other applications with real-time information. Our <mark style="color:purple;">webhook</mark> delivers data to other applications as it happens, meaning you get data immediately. <mark style="color:purple;">Webhooks</mark> are sometimes referred to as "Reverse APIs".

If you would like Shiptify to POST event notifications, you need to provide us with a <mark style="color:purple;">callback URL</mark>. <mark style="color:purple;">Webhooks</mark> are at the account level so you can provide a unique URL for each account.

You can read more about the <mark style="color:green;">data</mark> that is posted for which <mark style="color:orange;">event</mark> in the appropriate section below depending on whether you are considered as a *shipper* or a *carrier* (Ask your Shiptify account manager if you are wondering).

### Authentication

Though you can use our securing <mark style="color:purple;">webhooks signature</mark> (See [set up my webhooks](/i-am-a-shipper/webhooks/set-up-my-webhooks.md) page) to verify the requests, you can also provide us with <mark style="color:purple;">authentication method</mark> of your choice among the following types:

| Parameter             | Type    |
| --------------------- | ------- |
| Api-Key               | Headers |
| Basic                 | Headers |
| QS with any parameter | Headers |
| No Auth.              | Headers |

{% content-ref url="/pages/NyylD3HoiGndiRaCYaAf" %}
[Set up my webhooks](/i-am-a-shipper/webhooks/set-up-my-webhooks.md)
{% endcontent-ref %}

### Payloads

When something has happened to your shipment, your URL will be called with <mark style="color:green;">application/json</mark> <mark style="color:green;">payload</mark> and with a standard set of data depending on the <mark style="color:orange;">event</mark> and your <mark style="color:yellow;">account type</mark>.

Depending on your <mark style="color:yellow;">account type</mark>, *shipper* or *carrier*, there are 2 kinds of <mark style="color:green;">payload</mark> per <mark style="color:yellow;">account type</mark>: *shipment* or *tracking*.

For shipment <mark style="color:green;">payload type</mark>, there are several trigger <mark style="color:orange;">events</mark> available. The shipment <mark style="color:green;">payload</mark> remains the same format for all <mark style="color:orange;">events</mark> except for the <mark style="color:orange;">event</mark> property.

{% hint style="info" %}
Please refer carefully to the right <mark style="color:green;">Payload</mark>:

<mark style="color:yellow;">Account Type</mark> -> <mark style="color:green;">Payload Type</mark> -> <mark style="color:orange;">Event Trigger</mark>
{% endhint %}

| Event                         | Request | Payload               | Event\_type                               |
| ----------------------------- | ------- | --------------------- | ----------------------------------------- |
| Freight Unit created          | POST    | Freight Unit          | freight\_unit\_create\_shipment           |
| Freight Unit canceled         | POST    | Freight Unit          | freight\_unit\_cancel\_shipment           |
| Freight Unit content updated  | POST    | Freight Unit Update   | freight\_unit\_update\_shipment\_contents |
| Freight Unit tracking updated | POST    | Freight Unit Tracking | freight\_unit\_update\_tracking           |
| Shipment created              | POST    | Shipment              | create\_shipment                          |
| Shipment updated              | POST    | Shipment              | reactivate\_shipment                      |
| Shipment contents updated     | POST    | Shipment              | update\_shipment\_contents                |
| Shipment dates updated        | POST    | Shipment              | update\_shipment\_dates                   |
| Shipment cancelled            | POST    | Shipment              | cancel\_shipment                          |
| Visit created                 | POST    | Visit                 | create\_visit                             |
| Visit updated                 | POST    | Visit                 | update\_visit                             |
| Visit status updated          | POST    | Visit                 | inform\_automatic\_gate                   |
| Visit Cancel                  | POST    | Visit                 | cancel\_visit                             |
| Tracking point updated        | POST    | Tracking              | update\_tracking                          |

{% content-ref url="/pages/wjViTPBJ4VK2dtE297ms" %}
[Payloads for Shipper](/i-am-a-shipper/webhooks/payloads-for-shipper.md)
{% endcontent-ref %}

{% content-ref url="/pages/lNQjnHwwhXo0aOsaUjdZ" %}
[Broken mention](broken://pages/lNQjnHwwhXo0aOsaUjdZ)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.shiptify.com/i-am-a-shipper/webhooks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
