/ products / email● in production since April 2026

Transactional email over API or SMTP.
See every bounce, with its reason.

Send confirmations, receipts and password resets from your verified domain. Check the record of each email and receive status changes in your app through signed webhooks. For businesses in Mozambique.

› from 499 MZN/month› no card to sign up› support from Maputo in Portuguese and English
delivery example · 3f9c2a1equeued
A
Acmeola@acme.co.mz → ana@example.com
Confirm your email
Hi Ana, one more step to activate your account.
Confirm email
  1. 14:02:07.118accepted by the API202 · queued
  2. 14:02:07.388sentsigned with DKIM
  3. 14:02:08.940deliveredrecipient server accepted
  4. 14:02:08.990webhook receivedemail.delivered · your app responded 200
01 authentication · before the first send

Verify your domain before sending.

Add your domain in the dashboard and copy the DKIM, SPF and DMARC records to your DNS provider. The dashboard shows the status of each record. Your sender domain must be verified to send through the API or SMTP.

  • › Your own domains, several per account
  • › Every record re-checked periodically
  • › Number of verified senders depends on your plan

Already have an SPF record? Add include:amazonses.com to the existing record.

How to configure DNS records →
verification example · acme.co.mzverifying
DKIM · CNAMEk7x2p._domainkey.acme.co.mzk7x2p.dkim.amazonses.com
verifying
DKIM · CNAMEq4m9t._domainkey.acme.co.mzq4m9t.dkim.amazonses.com
verifying
DKIM · CNAMEr8n3v._domainkey.acme.co.mzr8n3v.dkim.amazonses.com
verifying
SPF · TXTacme.co.mzv=spf1 include:amazonses.com ~all
verifying
DMARC · TXT_dmarc.acme.co.mzv=DMARC1; p=none;
verifying

Illustrative example. Use the names and values generated for your domain in the dashboard.

02 sending · api or smtp

Choose API or SMTP for your integration.

Use the REST API in any language or the official SDKs for TypeScript and Java. If your app already sends through SMTP, configure Torpedo’s server and credentials. Both options give you delivery statuses and webhooks.

curl -X POST https://api.torpedo.co.mz/v1/emails \
  -H "X-API-Key: $TORPEDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme <ola@acme.co.mz>",
    "to": "ana@example.com",
    "subject": "Confirm your email",
    "html": "<p>One more step to activate your account.</p>"
  }'

# ← 202 { "data": { "id": "3f9c2a1e-…", "status": "queued" } }
example · suppression list
ADDRESSREASONSINCE
old@closed-company.comhard bounceSep 12
joao@example.comhard bounceSep 9
maria@example.comspam complaintSep 2
info@expired-domain.comhard bounceAug 28
03 reputation · bounce protection

Block repeat sends after permanent failures.

A permanent delivery failure (hard bounce) or a spam complaint adds the address to the suppression list. Torpedo checks this list before every send and blocks messages to those recipients, helping protect your sender reputation.

04 included · on every plan

What comes with every account.

01Email templatesSend React Email templates through the SDK and fill them with your data.
02Signed webhooksReceive status changes in your app. Verify the HMAC signature; Torpedo retries if your endpoint fails.
03API keysStored only as a hash, shown once and revocable at any time.
04Message logEmail and SMS history in one list, with the status and reason for every failure.
05Send without duplicatesUse the Idempotency-Key header to retry a send request without sending the same email twice.
06Human supportIn Portuguese or English, in under an hour on business days.
05 pricing · email

From 499 MZN per month.

10,000 emails per month on Launch. Check each plan’s limits and change plans as your volume grows.

Launch499 MZN/month10,000 emails/monthLimit: 500/day
Starter999 MZN/month25,000 emails/monthLimit: 1,500/day
Growth3,200 MZN/month100,000 emails/monthLimit: 5,000/day
ScaleCustom500,000+ emails/month