Ana içeriğe atla
Skip to content
← Back to all articles

September 3, 2026 · 8 min read

Was the Message Delivered? Reading Webhook Status Reports

Was the Message Delivered? Reading Webhook Status Reports

When sending a message through the API, the initial HTTP 200 response from the endpoint does not prove the message reached the customer's screen; it only verifies that Meta accepted the request for processing. The true delivery story unfolds line by line through incoming webhook status events. Any system that fails to log these reports can run for days without noticing that hundreds of messages silently fail.

Four Core Statuses

Status CodeTechnical MeaningOperational Impact
sentAccepted by Meta and placed in the delivery pipelineArrival on recipient handset is not yet guaranteed
deliveredMessage reached the recipient device and WhatsApp appTechnical transmission is considered successful
readRecipient opened the chat and viewed the specific messageTriggered only if recipient has read receipts enabled
failedMessage could not be delivered, includes an error codeRequires immediate operational or technical investigation
WhatsApp webhook delivery and status reporting architecture
Status reporting notifications and monitoring flow.

The absence of a read status does not necessarily mean the customer ignored the message; privacy settings may have read receipts turned off. Evaluating read rates as an isolated sales or operational KPI produces skewed conclusions.

Where Silent Losses Come From

  • Unregistered or poorly formatted number: Failing to normalize phone numbers to international E.164 standards is the most common reason for rejection.
  • Recipient blocked the business account: The request is accepted by the platform but will never deliver to the user device.
  • Expired 24-hour service window: Attempting to dispatch free-form text outside the open customer service window triggers immediate rejection.
  • Template status change: A pre-approved template may be paused or deprecated by Meta due to sudden quality score declines.
  • Daily sending quota exhausted: Outbound messaging stops when the organization hits its assigned 24-hour conversation tier limit.
  • Webhook endpoint errors: If your receiving server returns HTTP 500 or timeouts, incoming status notifications queue up and can be dropped.

The final item is the most dangerous failure mode. The system appears operational on the surface, while internal operational data remains blind.

Critical Meta Error Codes and Operational Responses

Error CodeUnderlying ReasonCorrect Operational Response
131026Message undeliverable (device offline or invalid number)Verify number validity; route to SMS if permanent
13104724-hour customer care window has elapsedStop free-form messages; dispatch approved template
131051Unsupported message type or recipient blockDo not retry; open an internal agent task
130429Rate limit or account daily message limit exceededThrottle outbound queue and await tier reset

Failing to parse discrete error codes and treating all delivery errors uniformly degrades your account quality rating rapidly.

Delayed Read Status and Out-of-Order Webhook Handling

Across distributed networks, webhook events are never guaranteed to arrive in chronological sequence. Weak cellular reception can cause a 'read' notification to arrive at your endpoint seconds ahead of its 'delivered' counterpart. Unless your backend operates with strict state machine logic, an earlier 'read' status might be mistakenly overwritten by a trailing 'delivered' webhook. The safeguard is evaluating the event timestamp inside the payload and rejecting backward status regressions.

Rules for the Webhook Endpoint

  • Respond immediately: Return an HTTP 200 OK upon receipt and push the payload to an asynchronous queue such as Redis.
  • Verify the signature: Never process payloads without verifying the X-Hub-Signature-256 header provided by Meta.
  • Apply idempotency: Network retries cause duplicate status webhooks, so enforce deduplication based on message_id.
  • Rely on timestamps: Order message transitions using the original timestamp generated by Meta rather than endpoint receipt time.
  • Store complete error payloads: Log the exact error code, error subcode, and reason string alongside the failure record.

Retrying Failed Messages

Transient server glitches should be retried using exponential backoff with a cap of two or three attempts. Conversely, retrying permanent issues like invalid phone numbers or active recipient blocks harms platform quality. You can review quota mechanisms in our guide on WhatsApp quality rating and tier limits.

What to Monitor and Alert Systems

Storing webhook records is useless unless converted into operational health indicators: delivery percentage versus total dispatches, top three recurring error codes, and webhook processing latency. When overall delivery falls below 90 percent, an automated alert must fire immediately. Volume preparation strategies are explored in our message traffic management guide.

Customer Impact and Fallback Channels

Delivery data is not just technical telemetry; it directly prevents customer attrition. A failed appointment reminder doubles the risk of a no-show. In mission-critical workflows, a failed webhook should trigger an immediate fallback to SMS. Our guide on appointment reminder rhythms and reducing cancellations details this timing.

With BozLat AI: Resilient Webhook Architecture

BozLat AI ingests webhook notifications through scalable asynchronous queues, classifying error codes and escalating persistent failures to human operators. Explore deployment options on our pricing page and learn API foundations in our what is WhatsApp Business API guide.

Frequently Asked Questions

Can a message show as delivered even if the customer claims not to receive it?
Yes. Delivered indicates arrival on the handset; the recipient may have archived the chat or checked on a different linked device. The message ID and timestamp verify exact arrival.
Does a missing read receipt mean there is an issue?
Not necessarily. The recipient may have disabled read receipts in their WhatsApp privacy settings, so read rates should never be the sole performance indicator.
Should failed messages be resent automatically?
Only for temporary network timeouts. For permanent errors such as invalid numbers, user blocks, or expired 24-hour windows, retries fail and damage your quality score.
Are status reports lost if our webhook endpoint experiences downtime?
Meta retries failed webhook deliveries with backoff for a limited window. If downtime exceeds that threshold, events are lost, which is why monitoring endpoint uptime is essential.

Ready to set up an AI assistant for your business?

View Pricing
24/7 access