status and event timeline current —
there is no carrier feed for you to integrate. Read the letter back by id,
subscribe to a webhook event, or let Dairo email you at each milestone.
The lifecycle
A letter’sstatus is a stable enum you can build on. The happy path runs:
An
undeliverable letter cannot be re-routed — correct the address and create
a new letter. A failed letter was never posted; fix the document and create
it again.
The event timeline
Alongside itsstatus, each letter carries a list of letter_event objects —
the detailed delivery timeline. The timeline comes inlined on
GET /v1/letters/{id} (newest first, up to 100 events) or on its own from
GET /v1/letters/{id}/events.
Track a letter
Poll it. The most direct way to follow a letter is to fetch it byid:
GET /v1/letters/{id} returns the current status, the trackingNumber once
a tracked class provides one, and the event timeline. Fetching an in-flight
letter refreshes its tracking state, so a poll returns the latest known
status.
Subscribe to it. Every status change emits a letter.status_changed
event carrying the letterId, the new status, and the batchId when the
letter belongs to a batch. Point a webhook at your
endpoint to receive it. The same event is also kept in the durable
event stream, alongside everything else happening in
your account. These events fire regardless of the email notifications
setting below.
Owner email notifications
Dairo can also email the account owner at each delivery milestone — no code, no endpoint. When a letter reaches a milestone, the owner gets a short status email (“Your letter to Zürich, CH is on its way”), with the tracking number when there is one and a link to the letter’s timeline in the dashboard. Milestone emails are on by default. Turn them off for a single letter withnotifications: false — useful for high-volume sends where you would rather
watch the timeline than receive an email per milestone. Batches accept the
same flag once for the whole run.
When a notification email is sent
An email goes out only when the status changes into one of the delivery milestones — once per transition, never for a re-confirmed update, and never for internal churn likequeued or processing.
The remaining statuses —
draft, queued, processing, printable, and
canceled — never trigger an email.
Next steps
- Send a batch — track many letters together with a live per-status rollup.
- Pricing — what a letter costs before you send it.