---
title: "An email was accepted for delivery (one event per recipient)"
method: POST
path: "email.sent"
tags: ["Webhooks"]
---

# An email was accepted for delivery (one event per recipient)

`POST email.sent` (webhook)

We POST this event to every active endpoint subscribed to it (webhook.test only to the endpoint you test). Respond with any 2xx within ten seconds; anything else is retried with backoff for up to 24 hours, in eight attempts. The event id stays the same on retries, so you can skip duplicates.

## Headers

- `Hypamoon-Signature` string, required

## Payload

- EmailSentEvent
  - `id` string, required: The event id, evt_ plus 32 hex characters. The same on retries.
  - `type` 'email.sent', required
  - `created_at` string, required
  - `data` object, required
    - `email_id` string, uuid, required: The id of the email, as sendEmail, POST /emails and list_emails return it.
    - `app_id` string, uuid, nullable, required: The app that sent it; null when it was sent with the API, by an agent or from the portal.
    - `recipient` string, required: The recipient this event is about. An email to several people sends one event per recipient.
    - `recipient_field` 'to' | 'cc' | 'bcc', required
    - `status` 'sent' | 'delivered' | 'bounced' | 'complained', required: The recipient's status after this event; sent for email.delayed.
    - `reason` string, nullable, required: A short reason in plain words for email.delayed, email.bounced and email.complained.
    - `occurred_at` string, required: When it happened (ISO 8601).
    - `test` boolean, required: true for an email sent with a test key: nothing was sent, but email.sent and email.delivered still arrive, so you can test your receiver.

## Acknowledgement `2XX`

Received. Any 2xx counts.

---

[API](https://skmtc.dev/hypamoon/apis/hypamoon-api.md) · [All operations](https://skmtc.dev/hypamoon/apis/hypamoon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hypamoon/apis/hypamoon-api/revisions/9f0b90004c06?raw)
