Wire up transactional email

Send a receipt or confirmation from your backend, on your brand.

Transactional email is a one-off message a person is expecting: a receipt, a password reset, a shipping update. It carries no unsubscribe footer and is not checked against marketing consent, because the person needs it.

Before you start

You need a verified sending domain and an API key with the transactional:send scope, created under Settings, API keys.

1. Build the template

Create a template for the message. Use {{ event.* }} merge tags for the parts that change per send, like {{ event.amount }} or {{ event.reset_url }}.

2. Give it a key

In the template settings, set a transactional key, for example receipt. This is how your backend refers to it. See the transactional overview.

3. Choose how it fires

By key, directly from your backend:

POST /api/v1/transactional_emails      scope: transactional:send
{
  "key": "receipt",
  "email": "[email protected]",
  "data": { "amount": "$49.00", "plan": "Team" }
}

Or by event: bind the template to an event name and post that event instead. A sequence and a transactional template can both listen to the same event and both run. See sending a transactional email and events.

4. Send a test

Trigger it against your own address and check the rendered result, the from address, and the merge data.

5. Go live

Call it from the real code path. Recent sends and their delivery status show up under Transactional.

What you have now

One transactional email wired up. Repeat for each message type: reset, receipt, shipping, invite. For the full API surface, see the REST API reference.

Something unclear or missing? Tell us.