Transactional email API
Transactional Email API with retry-safe sends and logs
Send the messages your app cannot lose track of: reset links, receipts, verification, billing notices, and security alerts. NoticeAPI keeps each send retry-safe, inspectable, and wired to delivery events.
curl -X POST https://www.noticeapi.com/api/v1/email/send \
-H "Authorization: Bearer ntc_xxxxxxxxxxxxxxxxxxxx" \
-H "Idempotency-Key: receipt-1042" \
-H "Content-Type: application/json" \
-d '{
"from": "Acme Billing <[email protected]>",
"to": "[email protected]",
"subject": "Your receipt",
"html": "<p>Receipt #1042 is ready.</p>"
}'Retry without double sends
Pass Idempotency-Key with an order id, token id, or job id. Matching retries return the original result instead of creating another email.
Templates and REST attachments
Store repeated HTML/text templates with merge variables. Add PDFs, invoices, and reports on Pro or Custom REST sends when the message needs a file.
Stored message bodies
Keep the subject, text, HTML, and recipient state for the retention window so support can inspect the exact message later.
Recipient timelines and webhooks
Accepted, delivered, bounced, complained, and suppressed events are recorded per recipient and can be delivered as signed webhooks.
Send design
The pieces that stop app email from becoming guesswork.
Resets and receipts need less flourish and more evidence: retry protection, stable templates, and a message record support can inspect.
See a password reset flowIdempotency-Key
Use the reset token, order id, invoice id, or job id so retries return the original send result instead of creating another message.
Template variables
Keep the repeated body in NoticeAPI and pass only the variables your app knows at send time.
Stored body viewer
Look up subject, HTML, text, recipient state, and the delivery timeline when support needs the exact message.
How it works
Make important app email repeat-safe and visible.
Choose the right sender
Use the sandbox sender during development, then move production traffic to a verified domain. Free real sending also needs operator activation.
Pass an idempotency key
Use an order id, reset token id, or job id so retries cannot duplicate important email.
Use templates for repeated messages
Create reset, verification, receipt, and alert templates with merge variables your app fills at send time.
Handle delivery outcomes
Read the email status endpoint or send signed webhooks to your app when a message delivers, bounces, or gets suppressed.
Trust
Transactional mail still needs guardrails
Password resets and receipts still need domain verification, suppressions, delivery timelines, and the deliverability autopilot.
Implementation links
Build with the shipped docs.
FAQ
Questions developers ask before switching email.
Can I start on Free?
Yes. Free includes simulator testing, 3,000 emails per month, and real sending from one verified domain after operator activation. Outbound REST attachments require Pro or Custom.
Can I attach receipts or PDFs?
Yes. REST sends support attachments with base64 content on Pro and Custom. SMTP attachments are not supported; simulator sends can test the payload shape.
Does NoticeAPI support scheduled transactional sends?
Yes. Add sendAt to a normal send request to schedule delivery up to 30 days ahead, then cancel or reschedule through the email API.
How do I prevent duplicate receipts or reset emails?
Send with an Idempotency-Key. A retry with the same key returns the original result instead of creating another email.
Start in the sandbox, then send from a verified domain.
Free includes simulator testing and 3,000 emails per month. Real sending on Free needs operator activation plus a verified domain; Pro adds more volume, domains, contacts, automation runs, REST attachments, and visible usage billing.