> ## Documentation Index
> Fetch the complete documentation index at: https://docs.beem.africa/llms.txt
> Use this file to discover all available pages before exploring further.

# Delivery reports

> Receive real-time WhatsApp template delivery status updates via callback URL.

Delivery Reports (DLRs) provide real-time updates about the delivery status of WhatsApp template messages.

Instead of polling the API, Beem automatically sends these updates to a callback URL that you configure in the Engage portal under **API Setup**.

See also the [Receive template delivery report](/api-reference/moja/receive-template-delivery-report) API reference for the webhook payload schema.

Typical delivery events include:

* Accepted
* Delivered
* Read
* Failed

<CardGroup cols={2}>
  <Card title="Real-Time Updates">
    Receive delivery confirmations automatically as message status changes.
  </Card>

  <Card title="Message Tracking">
    Monitor campaigns and customer engagement directly within your own systems.
  </Card>
</CardGroup>

***

## How delivery reports work

```text theme={null}
Send Template Message
          │
          ▼
WhatsApp Processes Message
          │
          ▼
Message Status Changes
          │
          ▼
Beem Sends Callback
          │
          ▼
Your Application Receives DLR
```

***

## Configure a callback URL

Before receiving delivery reports, you must register a callback URL.

<Info>
  Beem validates your callback URL by sending an HTTP **GET** request. Your endpoint must return **HTTP 200 OK** before callbacks are enabled.
</Info>

<Steps>
  <Step title="Sign in">
    Log in to the **Engage Portal**.
  </Step>

  <Step title="Open API Setup">
    If your account has **WhatsApp Broadcast** enabled, navigate to:

    **API Setup**
  </Step>

  <Step title="Register Callback URL">
    Paste your callback URL into the provided field.

    Click **Save**.

    Once saved successfully, delivery reports will begin being sent to your application.
  </Step>
</Steps>

***

## Callback requirements

Your callback endpoint should:

* Be publicly accessible
* Support HTTPS
* Respond to validation requests with **HTTP 200 OK**
* Accept delivery callbacks
* Return responses quickly

<Warning>
  If the callback URL is unreachable or fails validation, delivery reports cannot be delivered.
</Warning>

***

## Why use delivery reports?

Delivery Reports allow your application to:

* Track delivery status in real time
* Detect failed deliveries
* Know when messages are read
* Build delivery dashboards
* Trigger business workflows automatically

<Tip>
  Store the **jobId** returned by the Send Template endpoint. It can be used to match delivery report callbacks with the original request.
</Tip>
