# Delivery Notifications (DLRs / Webhooks)

## Delivery Notifications

Mobivate provides delivery notifications for SMS messages as their delivery status changes. These notifications allow you to track message progress and final delivery outcomes.

### How Delivery Notifications Work

* Delivery notifications are sent on **every status change**, except when a message is initially created.
* Notifications are delivered asynchronously to your configured **Delivery Endpoint (webhook)**.
* Each notification contains the latest known status for the message.

### Configuring the Delivery Endpoint

You can define a delivery notification endpoint in two ways:

#### 1. API Key Default (Recommended)

Set a default Delivery Endpoint URL for an API key in the Mobivate user interface.\
This endpoint will be used for all messages sent using that key.

{% hint style="info" %}
To configure a webhook via API key, please see [**Creating a new API Key**](https://wiki.mobivatebulksms.com/overview/introduction/creating-a-new-api-key).
{% endhint %}

#### 2. Per-Request Override

You can override the default endpoint by supplying a `callbackURL` parameter when sending:

* Single messages
* Batch campaigns
* Template-based campaigns
* Alias-based messages

This allows fine grained control over where delivery notifications are sent.

### Best Practices

* Always return a <mark style="color:$success;">**`200 OK`**</mark> response from your endpoint to acknowledge receipt.
* Process notifications asynchronously on your side.
* Store delivery receipts for auditing and reporting purposes.
* Ensure your endpoint is publicly accessible and secured.

{% hint style="warning" %}
Delivery notifications are sent independently of message submission.
{% endhint %}
