Vodacom · Movitel · Tmcel
SMS from 1.30 MZNEmail from 499 MZN/moA person replies in under 1 h on business days
The email and SMS API
for Mozambique.
Transactional email and SMS to every Mozambican network through one API. Every message gets a status, the carrier’s receipt and a signed webhook.
› test without a card: 10 emails and 5 SMS to your own number› MZN or USD, M-Pesa or card› support in Portuguese and Englishtorpedo/trace3f9c2a1e
AcmePay Your code is 184 720. It expires in 5 minutes.
- 14:02:07.112request receivedPOST /v1/sms · 202 Accepted
- 14:02:07.180checkscredits reserved · sender ID ok
- 14:02:07.402sent to carriersender AcmePay
- 14:02:09.861deliveredcarrier receipt · DELIVRD
- 14:02:09.915webhook sentsms.delivered · signed · 200
delivered · e.g. 2.7 scost 1.30 MZN
Momentum Moçambique sends its SMS through Torpedo.
01 why torpedo
Easy to integrate. Easy to pay for.
Pay in meticaisM-Pesa or a local card. No international card needed, no exchange-rate surprises at month end.
Answered by the people who run itIn under an hour on business days, in Portuguese or English.
Email and SMS in one placeOne API, one key and one history for both channels. No stitching two providers together.
Invoices with your NUITOn card payments, with taxes itemized.
02 domain · before the first send
Five DNS records. No mystery.
Copy them into your DNS provider. We check automatically and notify you by webhook. Until then, sends from that domain are rejected, so no email goes out unauthenticated.
acme.co.mzverified
TYPENAMEVALUESTATUS
CNAMEk7rq2xmzv4hdn3ptw6c8yfa5lsbge2uj._domainkey.acme.co.mzk7rq2xmzv4hdn3ptw6c8yfa5lsbge2uj.dkim.amazonses.comverified
CNAMEp3vd8nwaq6tfm2ecx9rhjz5kbu7ygl4s._domainkey.acme.co.mzp3vd8nwaq6tfm2ecx9rhjz5kbu7ygl4s.dkim.amazonses.comverified
CNAMEf9ht4ceqb2wyn7mdsx5vpk3ja8rulz6g._domainkey.acme.co.mzf9ht4ceqb2wyn7mdsx5vpk3ja8rulz6g.dkim.amazonses.comverified
TXTacme.co.mzv=spf1 include:amazonses.com ~allverified
TXT_dmarc.acme.co.mzv=DMARC1; p=none;verified
before verification
POST /v1/emails · from: ola@acme.co.mz
← 422
{ "errors": [{
"code": "VALIDATION_ERROR",
"message": "Domain 'acme.co.mz' is not verified for this workspace"
}] }03 stack · two ways to integrate
With code, or with the SMTP you already have.
/stack/api · sdk · restAPI and SDKsYour first send is one HTTP request, from any language. Official SDKs for TypeScript and Java.
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" } }/stack/smtp · relaySMTP relayAlready sending over SMTP? Point it at Torpedo and see the status of every message, without touching your code.
- host
- smtp.torpedo.co.mz
- port
- 587 · STARTTLS
- username
- torpedo
- password
- $TORPEDO_API_KEY
Safe by default.
- › Email authenticated with DKIM, SPF and DMARC from the first send
- › Invalid addresses and complaints blocked automatically, protecting your domain’s reputation
- › A key leaked? Revoke it in one click without stopping your other projects
04 dashboard · searchable history
“I never got the code.” Search the number and see why.
- › The time of every step
- › The reason for every failure, straight from the carrier
- › An answer for your customer in the same minute
Acme/Messages••• ••• 4567
TIMECHANNELTOCONTENTSTATUS
14:02:07SMS••• ••• 4567Your AcmePay code is 184 720.delivered
14:01:12SMS••• ••• 4567Your AcmePay code is 609 351.carrier: phone switched offundelivered
09:14:33SMS••• ••• 4567Payment of 2,500 MZN received.delivered
Answer:the first code never arrived (phone switched off, per the carrier). The second, sent at 14:02:07, was delivered at 14:02:09.
05 pricing
In meticais or dollars. M-Pesa or card.
email · from499 MZN/moLaunch plan: 10,000 emails a month, up to 500 a day. Bigger plans on the pricing page.
sms · per message1.30 MZNPer SMS to Mozambican numbers (+258). One credit per recipient, even when a message spans several segments. Prepaid credits, on paid plans.
06 start · one request
From sign-up to first send, no sales call.
Create an account, generate a key and send. If you’d rather talk first, we reply in under an hour on business days.
~/acme14:02:07
$export TORPEDO_API_KEY=tp_live_••••$curl api.torpedo.co.mz/v1/sms -H "X-API-Key: $TORPEDO_API_KEY" --json @otp.json✓202 accepted · status queued✓sent · sender AcmePay✓delivered · e.g. 2.7 s✓webhook sms.delivered · 200