For SaaS teams

Stop hoping your emails went through. Know they did.

Truncus is the email execution layer for SaaS teams who can't afford silent failures. send_sync confirms the receiving mail server accepted each password reset and invoice — or hands you the exact error, fast.

The 200 OK lie

Your user resets their password. You send the email through your email API. You get a 200 OK. But did the mail server actually accept it? You don't know. Your user waits. Refreshes. Opens a support ticket. You check logs — “sent” but no delivery confirmation.

With Truncus, your code knows the receiving mail server accepted the email before you move on — or gets the exact error if it didn't.

comparison.ts
// Before (any other email API)
await resend.emails.send({ to, subject, html });
// Returns: { id: "msg_xxx" }
// Did it go through? No idea.

// After (Truncus)
const result = await truncus.emails.sendSync({ to, subject, html });
// Returns: { status: "delivered", latency_ms: 1040 }
// "delivered" = the receiving mail server accepted it. You KNOW.

Features SaaS teams care about

send_sync

Delivery confirmation in 1 second. Not "check your webhook later."

EU-resident sending

AWS SES in Ireland (eu-west-1). Circuit breakers detect failures fast and surface the exact error — no silent failures.

Zero email loss

Failed sends enter a durable retry queue (30s/2m/8m/30m/2h backoff). Dead-letter recovery. Replay API.

EU data residency

Sending from Ireland, email data stored in Frankfurt. GDPR-native. No add-on needed.

Pre-send validation

Don't waste sends on bouncing addresses. Confidence scoring.

Send transparency

Every send logged with its outcome. Provider health API for monitoring.

Migrate in 15 minutes

Switching from your current email API? Truncus speaks the same language.

migration.ts
// Most email APIs
await emailApi.send({ from, to, subject, html });
// Returns 200 OK... but did the mail server accept it? You don't know.

// Truncus — synchronous delivery confirmation
import { Truncus } from '@truncus/email';
const truncus = new Truncus({ apiKey: 'tr_live_...' });
const result = await truncus.emails.sendSync({ from, to, subject, html });
// result.status = "delivered", result.latency_ms = 1040

Same request shape. Better outcome. Migration takes 15 minutes.

Pricing

All plans include send_sync, batch API, scheduled sends, and sandbox mode.

Free

$0

3,000 emails/month

For testing and dev

Pro

$19/mo

50,000 emails/month

For shipping products

Scale

$99/mo

300,000 emails/month

For serious infrastructure

Replace your email API in 15 minutes

Free tier. 3,000 emails/month. No credit card. Same request shape, better outcome.

Start free
Truncus for SaaS — Transactional Email That Proves Delivery