New: campaigns, automations and product emails in the same account. Meet Postal
Sign in Create account

Webhooks and events

Every email notifies your system.

On every delivery, open, click or bounce, Postal sends an automatic notification to the address you choose. Your CRM, ERP or site stay up to date without polling anything.

  • 30 event types
  • Signature follows the Standard Webhooks spec
  • Up to 8 attempts over about 27 hours
  • Resend from the dashboard

How it works

From notification to resend

What Postal does from the moment something happens until your system confirms.

Events

Every occurrence becomes a notification

You choose which events to receive: delivered, opened, link clicked, bounced, marked as spam, reply, email received in an inbox and more. There are also events for domains, suppressions, contacts, forms, campaigns and inboxes, plus an instant notice when the team's sending is paused. You can send everything to one address or split it by system.

See the full list of events
In five steps

How the notification arrives

A webhook is just that: an automatic message from one system to another, the moment something happens.

Something happens to an emailPostal sends a signed POSTYour system checks the signatureIt responds 2xx within 15 secondsIf not, Postal tries again
For developers

Every notification arrives signed

The recipient can prove the notification came from Postal and not someone else. The signature follows the Standard Webhooks spec, and Postal's official libraries already verify everything for you.

How to verify the signature
  • HMAC-SHA256 signature on every delivery
  • The SDKs reject notifications more than 5 minutes off
  • Each webhook has its own secret, which you can rotate in the dashboard (the old one stops working immediately)
POST /webhooks/postal
webhook-id: <same on every attempt>
webhook-timestamp: <seconds since 1970>
webhook-signature: v1,<signature>

{
  "type": "email.delivered",
  "created_at": "2026-10-24T13:02:14.120Z",
  "data": {
    "email_id": "019a1b2c-4d5e-7f60-8a9b-0c1d2e3f4a5b",
    "from": "Aurora Cosméticos <[email protected]>",
    "to": ["[email protected]"],
    "subject": "Your order #10482 is out for delivery",
    "tags": {}
  }
}
200Response from your system
Retries

If your system goes down, Postal tries again

Your system responds with any 2xx status to confirm. If it doesn't respond or returns an error, Postal repeats with increasingly longer waits, always with the same identifier, so you can discard duplicates.

  • On the 8th failed attempt, the event is marked as failed and can be resent from the dashboard
  • If deliveries fail for 5 days with no success, the endpoint is disabled and team owners and admins get an email
Deliveries dashboard

See what was delivered and resend what you need

In the dashboard, each webhook has its own history: what was sent, how many attempts were made and what your system responded. Fixed the problem? Resend the event with one click or send a test event, even with the endpoint disabled.

See the webhooks API reference
Test addresses

Test without really sending

Test endpoints generate real, signed notifications, without sending email or using your quota. Depends on the plan.

With and without webhooks

Without webhooks

  • Your system has to check each email to find out what happened
  • Bounces and complaints go unnoticed until someone looks at the dashboard
  • If the check fails, nobody knows

With webhooks

  • A signed notification arrives at the address you chose, on every event
  • If your system is down, Postal tries again for about 27 hours
  • Each delivery stays in the history for 30 days, with resend from the dashboard

Frequently asked questions

Do I need to know how to code?

To receive the notices, someone has to set up the address of your system that receives them, and that part is technical. In the Postal dashboard, the rest is simple: paste the URL and check the events you want.

What happens if my system goes down?

Postal tries to deliver the notice up to 8 times, over about 27 hours in total. After that the event is marked as failed, and you can resend it from the dashboard. If deliveries fail for 5 days with no success, the address is disabled and team owners and admins receive an email.

Can I test without sending a real email?

Yes. The dashboard has a Send test event button. To see email events, send a message to the test addresses, such as [email protected] or [email protected], if your plan includes it.

How many addresses can I add?

It depends on the plan. When you go over the limit, Postal tells you when you try to create another one. See the plans and pricing.

Want to try Postal?

Create your account and start on the Free plan.