HomeProductsWebhooks
Webhooks

Every event,
in real time.
Straight to your server.

Get instant POST notifications for every Sendexa event β€” message delivered, OTP verified, call answered, payment completed β€” signed, retried, and delivered with 99.8% reliability.

HMAC-SHA256 signed
3Γ— exponential retry
~80ms delivery
20+ event types

99.8%

Delivery rate

~80ms

Avg. latency

20+

Event types

3Γ—

Retry attempts

99.9%

Uptime SLA

72h

Retry window

Event catalogue

20+ events across
every product.

message.queued200 OK
{
  "id": "evt_01J8XVZ9KQMNPRTX",
  "event": "message.queued",
  "created_at": "2025-03-26T10:42:18Z",
  "api_version": "2025-01",
  "data": {
    "id": "msg_01J8XV4Y7GBW2C3D",
    "status": "queued",
    "to": "+233551234567",
    "latency_ms": 112
  },
  "signature": "sha256=3c6e0b8a9f2..."
}

Reliability & security

Built to survive
your outages too.

Your server goes down? We retry with exponential backoff up to 72 hours. Every payload is HMAC-signed so you can verify it's genuinely from Sendexa before processing.

3Γ— exponential backoff: 10s β†’ 100s β†’ 1000s

72-hour retry window before an event is marked failed

HMAC-SHA256 signature on every payload β€” verify in one line

Configurable per-endpoint timeout (5s default, up to 30s)

Dashboard shows full delivery history and manual re-send

Idempotency IDs to safely handle duplicate deliveries

Initial delivery attempt

β–Ά sending

Immediate β€” Your endpoint returned 500

Retry #1 β€” 10s backoff

T + 10s β€” Timeout after 30s

Retry #2 β€” 100s backoff

T + 110s β€” Connection refused

Retry #3 β€” 1000s backoff

T + 1110s β€” Endpoint recovered β€” 200 OK received

What's included

Production-grade
event delivery.

Real-time delivery

Events fire within ~80ms of the underlying action. No polling, no delays, no missed transitions.

~80ms latencyServer-sentZero polling

HMAC-SHA256 signing

Every payload is signed with your webhook secret. Verify the signature in one line before processing β€” protect against spoofing.

Tamper-proofPer-endpoint secretOne-line verify

Exponential retry

Three retries with exponential backoff over 72 hours. Manual re-send available from the dashboard at any time.

3Γ— retry72h windowManual re-send

Event filtering

Subscribe to only the events you care about. Filter by event type, channel, or status β€” avoid noise, reduce processing load.

Per-event subscribeStatus filtersChannel filters

Delivery dashboard

See every event, delivery attempt, response code, and timing in one place. Filter by date, status, or event type.

Full historyResponse codesTiming data

Multiple endpoints

Register up to 10 endpoints per account. Send all events to one URL or route specific event types to dedicated services.

10 endpointsPer-event routingTeam access

Developer experience

Verify, parse, act.
10 lines of code.

A webhook endpoint is just an HTTP POST handler. Verify the HMAC signature, parse the JSON body, and react to the event type. Works in any language.

01

Register your endpoint URL in the dashboard

02

Subscribe to the event types you care about

03

Verify the signature and handle the event

import crypto from "crypto";
import express from "express";

const app = express();
app.use(express.raw({ type: "application/json" }));

app.post("/webhooks/sendexa", (req, res) => {
  // 1. Verify the signature
  const sig = req.headers["x-sendexa-signature"];
  const expected = crypto
    .createHmac("sha256", process.env.WEBHOOK_SECRET)
    .update(req.body)
    .digest("hex");

  if (sig !== `sha256=${expected}`) {
    return res.status(401).send("Invalid signature");
  }

  // 2. Parse and handle the event
  const event = JSON.parse(req.body);

  switch (event.event) {
    case "message.delivered":
      await markMessageDelivered(event.data.message_id);
      break;
    case "otp.verified":
      await activateUserSession(event.data.request_id);
      break;
    case "payment.completed":
      await fulfillOrder(event.data.id);
      break;
  }

  // 3. Return 200 quickly β€” process async
  res.status(200).json({ received: true });
});
Webhooks included on all plans

Stop polling.
Start reacting.

Webhooks are included on every Sendexa plan β€” no extra charge, no upgrade required. Register your endpoint and start receiving events in minutes.

Included on all plansHMAC-SHA256 signed20+ event types99.8% delivery rate