Skip to content

Email — API Reference

The module mounts at /v1/shop-access/email. The configuration resource is served through the DataAuthority framework (standard record envelope, bitemporal coordinates, asOf); the routes below specify only the payloads and the email-specific behavior. Standard headers: Authorization: Bearer <ARDA_API_KEY>, X-Tenant-Id, X-Author.

Identifiers in payloads are slugs / local-parts, never fully-qualified strings — the hosting environment supplies the partition and mail-root, keeping payloads stable across partitions.

Create a configuration. Created PENDING ∥ LOCKED (locked-by-default). Payload (EmailConfigurationInput):

{
"sendingDomainSlug": "acme",
"signatureRequest": {
"fromLocalPart": "noreply",
"fromName": "Acme Co",
"replyToEmail": "support@acme.com"
}
}

Server-side synthesis: sendingDomain = {sendingDomainSlug}.{partition}.ardamails.com; signature.fromEmail = {fromLocalPart}@{sendingDomain} (fromLocalPart defaults to noreply). sendingDomainSlug must be DNS-label-safe and unique among active configurations in the partition. Errors: 400 invalid input; 409 slug already in use.

The configuration advances via signal sub-routes rather than generic PUT/DELETE (which are un-mounted): provision, re-provision, re-verify, lock, force-lock, unlock, remove. See Lifecycle.

Submit a transactional send. Requires an Idempotency-Key header. Payload (EmailJobInput):

{
"configurationEId": "<UUID>",
"recipient": "buyer@vendor.example",
"replyToEmail": "support@acme.com",
"subject": "PO-2026-00042: Order details",
"htmlBody": "<html>...</html>",
"textBody": "Order details: ...",
"attachments": [
{ "filename": "po.pdf", "contentType": "application/pdf", "contentBase64": "JVBERi0xLjQK..." }
]
}

Server-side synthesis: from = {configuration.signature.fromLocalPart}@{configuration.sendingDomain}fixed by the configuration signature; there is no per-send From override (Postmark Sender Signatures authorize one address; multi-From is deferred to PDEV-903). replyToEmail falls back to the configuration’s when omitted. At least one of htmlBody / textBody is required; attachments are inline base64 (≤ 5 MiB each, ≤ 10 MiB per message).

Errors: 400 invalid shape / recipient; 403 recipient suppressed; 404 configuration not found; 412 configuration not sendable (canSend() false); 413 payload too large.

The inbound Postmark webhook. Authenticated by Authorization: Bearer <ARDA_API_KEY> plus the per-configuration webhookRoutingToken. Projects delivery status onto the EmailJob and drives suppression — see Webhook ingestion.