BroadNet
Delivery status·/webhooks

Webhook setup.

Configure BroadNet to POST delivery receipts (DLR) and inbound messages (MO) to your HTTPS URL, so you track each message's final status without polling. Acknowledge with HTTP 200 quickly and process asynchronously.

4 min read·Updated September 2026·Section 8 of 15Developer Hub

Overview

BroadNet pushes delivery status to the webhook URL configured on your account as each message moves through its lifecycle. You can also poll: GET /whatsapp/message/bulk-insights returns the status of each WhatsApp recipient in a batch, and GET /sms/list returns processed and pending counts for SMS bulk jobs.

Examples

Copy, paste, replace the placeholders — these examples call the production API as written.

message statusestext
SUBMITTED   accepted by BroadNet, queued for the network
SENT        handed to the operator or channel
DELIVERED   confirmed on the handset
READ        opened by the recipient (channels that report reads, e.g. WhatsApp)
FAILED      not delivered
REJECTED    refused by the operator or channel
webhook.tstypescript
import express from "express";

const app = express();

app.post("/webhooks/broadnet", express.json(), async (req, res) => {
  // Store the raw status update first, then acknowledge.
  // Field names per channel are in the OpenAPI spec.
  await db.statusUpdates.insert({ receivedAt: new Date(), body: req.body });
  res.sendStatus(200);
});
↳ Illustrative handler. Payload fields vary by channel; see the OpenAPI spec.
Test access · reply within one business day

Request test access and build with confidence.

We reply within one business day with test credentials. Then install the TypeScript SDK or call the REST API from any language, and send your first test message to your own number.

$npm install @broadnet/cpaas-sdk axiosready