NotifySetu Logo
NotifySetu
FeaturesPricingIntegrationsDocsBlogCustomersSecurity
Sign InStart Free
NotifySetu Logo
NotifySetu

Unified notification API platform for developers. Orchestrate Email, SMS, WhatsApp, Push, Voice & OTP across 15+ global providers.

All Systems Operational

Channels

  • Transactional Email
  • SMS Infrastructure
  • WhatsApp Cloud API
  • Web & Mobile Push
  • Voice & IVR
  • OTP Engine

Product

  • Platform Features
  • Tiered Pricing
  • Provider Integrations
  • Developer Console
  • System Status

Resources

  • Documentation
  • Quickstart Guide
  • API Reference
  • SDK Client Libraries
  • Engineering Blog
  • RSS Feed

Company

  • Customer Stories
  • Security & Trust
  • Contact Sales
  • Responsible Disclosure

Legal

  • Terms of Service
  • Privacy Policy
  • Refund Policy
  • GDPR Compliance
  • Cookie Policy
  • DPA Agreement

© 2026 NotifySetu. Owned and operated by INFOSKILLS TECHNOLOGY PVT LTD. All rights reserved.

Terms of Service•Privacy Policy•Refund Policy•GDPR•Cookies•DPA•Contact Us
Documentation Menu

Getting Started

  • Quickstart & First Notification
  • Official SDKs & Tooling

Channels & Gateways

  • Push Notifications (FCM & APNs)
  • Smart Provider Failover
  • Meta WhatsApp Cloud API

Webhooks & Security

  • Webhooks & Event Verification
DocsWebhooks & SecurityWebhooks & Event Verification

Webhooks & Event Verification

Receive real-time delivery confirmations and verify HMAC SHA-256 signatures.

# Webhooks & Event Verification

NotifySetu delivers HTTP webhooks with guaranteed at-least-once delivery for notification lifecycle events.

Supported Event Types

| Event | Description | |---|---| | `notification.delivered` | Upstream provider confirmed handset/inbox delivery | | `notification.failed` | All carrier retry attempts failed | | `email.bounced` | Hard or soft bounce returned by receiving mail exchanger | | `otp.verified` | 6-digit one-time password validated successfully |

Verifying Signatures

Every webhook payload includes an `X-NotifySetu-Signature` header signed using HMAC SHA-256 and your destination secret:

import crypto from "crypto";

export function verifyWebhookSignature( rawBody: string, signatureHeader: string, secret: string ): boolean { const hmac = crypto.createHmac("sha256", secret).update(rawBody).digest("hex"); return crypto.timingSafeEqual(Buffer.from(hmac), Buffer.from(signatureHeader)); } ```

Previous

Meta WhatsApp Cloud API

On This Page

  • Supported Event Types
  • Verifying Signatures
  • Exponential Backoff & Retries