Send registered letters from your software
Send us a PDF and an address. We print it in the destination country, post it as a registered letter and send you tracking and a proof PDF.
{
"document": "doc_8Kq2mZ",
"product": "de-einwurf",
"recipient": {
"name": "Hausverwaltung Berger GmbH",
"city": "Berlin", "country": "DE"
},
"pay": true
}letter.paid 9 Nov 09:12 letter.printed 9 Nov 13:40 Berlin letter.posted 9 Nov 17:05 RR 4471 0293 5DE letter.delivered 10 Nov 11:21
How do you want to connect?
REST API
For your own software: create letters, follow them with signed events and store the proof with the case.
MCP server for AI assistants
Connect Claude, ChatGPT or Cursor. Ask for a price, send a PDF and check delivery in a chat; you approve every letter.
Which letters can your software send?
Debt collection
Send the final reminder from your collection software and keep the posting date with the claim.
Property management
Send rent increases and notices to tenants straight from the tenant file.
HR and legal
Send notices and warnings with a tracked delivery date for every deadline.
One call sends a letter
- 1Upload the PDF
POST /v1/documentschecks the address window and the pages. - 2Create and pay the letter
POST /v1/letterspays from your credit. - 3Follow itEvents from paid to delivered, then the proof PDF.
curl https://api.sendregistered.com/v1/letters \
-H "Authorization: Bearer sr_test_4f2a9Kd7Lq" \
-H "Idempotency-Key: claim-2026-4471" \
-H "Content-Type: application/json" \
-d '{
"document": "doc_8Kq2mZ",
"product": "de-einwurf",
"recipient": {
"name": "Hausverwaltung Berger GmbH",
"street": "Kastanienallee 12",
"postal_code": "10435",
"city": "Berlin",
"country": "DE"
},
"pay": true
}'const res = await fetch("https://api.sendregistered.com/v1/letters", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SR_KEY}`,
"Idempotency-Key": "claim-2026-4471",
"Content-Type": "application/json",
},
body: JSON.stringify({
document: "doc_8Kq2mZ",
product: "de-einwurf",
recipient: {
name: "Hausverwaltung Berger GmbH",
street: "Kastanienallee 12",
postal_code: "10435",
city: "Berlin",
country: "DE",
},
pay: true,
}),
});
const letter = await res.json();import os, requests
letter = requests.post(
"https://api.sendregistered.com/v1/letters",
headers={
"Authorization": f"Bearer {os.environ['SR_KEY']}",
"Idempotency-Key": "claim-2026-4471",
},
json={
"document": "doc_8Kq2mZ",
"product": "de-einwurf",
"recipient": {
"name": "Hausverwaltung Berger GmbH",
"street": "Kastanienallee 12",
"postal_code": "10435",
"city": "Berlin",
"country": "DE",
},
"pay": True,
},
).json(){
"id": "let_3VbN7c",
"status": "paid",
"product": "de-einwurf",
"pages": 2,
"price": { "excl_vat": 657, "vat": 138, "total": 795, "currency": "EUR" },
"paid_from": "credit",
"posting_date": "2026-11-09",
"tracking_number": null,
"livemode": false
}How do letters sent by your software get paid?
Top up when it suits you, or take a subscription for the lowest price per letter. Each letter is paid from your credit.
Set a limit per day and per month for each key. A letter over the limit is refused with a link to raise it.
Build and test against the real flow. Switch to a live key when you are ready.
How are your keys and documents protected?
We store only a fingerprint of each key. Revoke or roll a key in one click.
Every event carries a signature, so your system can check that it came from us.
The API runs in the EU. Letters are printed in the destination country.
Your PDFs and proofs are stored encrypted and used only to send your letter.
What does a letter cost through the API?
The product code goes in product.
Example: 5 pages in colour to Germany = €6.57 + 3 × €0.25 + 5 × €0.17 = €8.17 excl. VAT. With credit or a subscription the price per letter is lower.
Questions from developers
Who can create API keys?
What does a test key do?
Which file do I send?
How do I get the proof?
Is it the same price as on the website?
Send your first test letter today
Create a test key in your account and follow the quickstart. It takes one call.