Skip to content
Inkbox

Inkbox

ContactDocs

Jump to

Webhooks

Webhooks let you receive HTTP POST callbacks for mailbox events. Configure a webhook URL on your mailbox via PATCH /mailboxes/{email_address} — no separate webhook CRUD is needed.

When an event fires, Inkbox sends a signed POST request to your URL. The request includes headers you can use to verify the payload's authenticity.

Event types

EventDescription
message.receivedAn inbound email was ingested into the mailbox
message.sentAn outbound email was successfully sent via SES
message.bouncedAn outbound email bounced or received a complaint
message.failedAn outbound email failed after exhausting all retry attempts
message.deliveredSES confirmed delivery to the recipient's mail server

Configuring webhooks PATCH

PATCH /mailboxes/{email_address}

Set the webhook_url field on a mailbox to start receiving event callbacks at that URL. All event types are delivered to the configured URL.

Request example

JSONJSON

Code examples


Verifying webhook signatures

Inkbox signs every webhook payload with your organization's signing key. Create or rotate your key via the Signing Keys API. Each webhook request includes three headers:

HeaderDescription
X-Inkbox-Request-IDUnique request identifier
X-Inkbox-TimestampUnix timestamp in seconds when the request was sent
X-Inkbox-Signaturesha256=<hex_digest> — HMAC-SHA256 of the signed content

The signature input is constructed as:

{request_id}.{timestamp}.{raw_body}

Verification steps

  1. Check the timestamp — reject the request if X-Inkbox-Timestamp is more than 300 seconds from the current time.
  2. Reconstruct the message — concatenate {X-Inkbox-Request-ID}.{X-Inkbox-Timestamp}.{raw_body}.
  3. Compute the HMAC — use HMAC-SHA256 with your signing key over the reconstructed message.
  4. Compare digests — the resulting hex digest should match the value after sha256= in the X-Inkbox-Signature header.

Python verification example

PythonPython

Disabling webhooks PATCH

To stop receiving webhooks, set webhook_url to null via the same PATCH endpoint:

JSONJSON

Code examples

Inkbox

Copyright © 2026 Inkbox

This site is protected by reCAPTCHA.

Google Privacy Policy and Terms of Service apply.

Website

Inkbox

Copyright © 2026 Inkbox

This site is protected by reCAPTCHA.

Google Privacy Policy and Terms of Service apply.

Website