Your id, round-tripped
Set externalId when you submit; every response and webhook carries it back, so records reconcile in your CRM without a lookup table.
Signed status events
submitted · sent · tracking_assigned · delivered — each POSTed to your endpoint and signed, so you can trust what you ingest.
Documents, handed off
Send a fileUrl, or use signed uploads so the PDF is stored with us the moment you submit.
A sandbox that behaves like production
Create sandbox keys, drive items through the whole lifecycle, and watch the webhooks arrive — before a single page is printed.
Sign up and create a sandbox key straight away. No sales call, no invite, no card — sandbox is never charged.
Your system → Recourse
POST /api/v1/mail-items
Authorization: Bearer rec_live_...
{
"externalId": "crm_2026_001",
"mailType": "registered",
"recipient": { "name": "Jane Doe", "city": "Vancouver", ... },
"document": { "fileName": "notice.pdf" }
}
Recourse → your endpoint · x-recourse-signature
{
"eventType": "mail_item.delivered",
"mailItemId": "MR-2481",
"externalId": "crm_2026_001",
"mailType": "registered",
"status": "delivered"
}