Security & Compliance

Built to pass your security review.

EU-resident sending, encryption in transit everywhere, transparent sub-processors, and GDPR compliance by design. Everything your procurement team needs in one place.

Infrastructure

Email delivery in EU regions

Email delivery runs on AWS SES eu-west-1 (Ireland) as primary, with Scaleway TEM (fr-par, France) as the second provider; failover works where a domain is authenticated with both. Both legs send from EU regions.

EU database hosting

Application database hosted in Supabase eu-central-1 (Frankfurt). Delivery metadata, account data, and event logs are stored there, in the EU.

EU-resident sending

Outbound email sends via AWS SES in Ireland (eu-west-1), failing over to Scaleway TEM in France (fr-par) when SES is unavailable — both EU-resident. Circuit breakers detect failures fast and surface the exact error — no silent failures.

Application hosting

Hosted on Vercel. API functions run in the fra1 region (Frankfurt); pages are served from Vercel's global edge network, and SCCs govern any non-EU processing.

Encryption & access control

TLS in transit

All API traffic is encrypted with TLS. SMTP delivery uses opportunistic TLS with STARTTLS.

AES-256 at rest

Delivery metadata, account data and event logs are stored in Supabase Postgres (eu-central-1), encrypted at rest with AES-256 by the storage layer. Rate-limit and circuit-breaker counters in Upstash Redis (eu-central-1) are not encrypted at rest; they hold API-key identifiers, sending-domain names and integer counters only. Truncus adds no second encryption layer of its own; we name the mechanism rather than implying one we built.

Hashed API keys

API keys are hashed with SHA-256 before storage. Plain-text keys are shown once at creation and never stored.

Webhook signing

All webhook payloads are signed with HMAC-SHA256. Verification is documented in the manual.

Data retention

Data typeRetentionNotes
Email content7 daysProcessed in transit; stored only for delivery retry window
Delivery metadata90 daysBounce codes, delivery timestamps, complaint flags
Engagement data90 daysOpen and click events (if tracking enabled)
Account dataActive + 30 daysDeleted within 30 days of account termination
Billing records7 yearsRequired by Dutch law

Sub-processors

ProviderPurposeLocationTransfer basis
AWS SESEmail delivery (primary)EU (eu-west-1, Ireland)No international transfer
Scaleway TEMEU failover email delivery where a domain is authenticated with both providersEU (fr-par, France)No international transfer
SupabaseDatabaseEU (eu-central-1, Frankfurt)No international transfer
ClerkAuthenticationUnited StatesSCCs
StripePaymentsUnited StatesSCCs
VercelApplication hostingUS / EU edgeSCCs
CloudflareDNS for truncus.co and inbound email routing for info@truncus.coUS / global edgeSCCs
UpstashRate-limit counters, breaker state (no email content, recipients or IPs)EU (Frankfurt); US parentSCCs
TelegramInternal alerts, Van Moose domains only (no customer data)Non-EUNo customer data
AWS Route 53DNS hosting for customer subdomains delegated to Truncus (DNS records only; no email content)Global service; US parent (SCCs apply)SCCs
Google WorkspaceOur support mailbox: email sent to info@truncus.co and internal operational notifications, which can contain account email addresses and sending-domain names (no customer email content)US parent (SCCs apply)SCCs

Changes to this list are communicated in advance per DPA Section 9. Enterprise customers requiring a countersigned DPA can request one at legal@truncus.co.

Compliance & incident response

GDPR compliant

Truncus is a Van Moose product, Amsterdam. We process data under GDPR Article 28 as a data processor.

72-hour breach notification

In the event of a data breach affecting customer data, we notify within 72 hours per GDPR Article 33.

Data subject rights

We assist with access, rectification, erasure, restriction, portability, and objection requests within 72 hours.

Public status page

Real-time delivery metrics, provider health, and platform status available at truncus.co/status with a JSON API.

Questions about security?

Contact us at security@truncus.co or legal@truncus.co for procurement inquiries.

Start free
Security — Truncus Email Execution Layer