Letter and post API: send letters in Germany
With our letter and post API you submit PDFs straight from your software. briefsenden.com takes care of printing, enveloping and handing in at Deutsche Post for delivery in Germany. You get the processing status back into your system via API or webhook. With a test key you test without printing or sending.
Send a letter via REST API
From account to first API letter – in four simple steps
Create an account
Sign up for free and confirm your email address. With a test key you then test without printing and without cost.
Generate an API key
Create an API key under Settings → Developer. Use a test key (bv_test_*) for development or a live key (bv_live_*) for production.
Send your first letter
Send a PDF with the recipient address via POST /api/v1/letters/simple. With a test key there is no cost and no physical dispatch.
Query the status
Query the current shipping status via GET /api/v1/letters/{'{id}'} or get notified automatically by webhook.
One letter in one request
Send letters in your preferred programming language. Our API accepts multipart/form-data and responds with JSON.
curl -X POST https://www.briefsenden.com/api/v1/letters/simple \ -H "X-Api-Key: bv_test_xxx" \ -F "file=@invoice.pdf" \ -F "recipientLine1=Max Mustermann" \ -F "recipientLine2=Musterstraße 1" \ -F "recipientZip=12345" \ -F "recipientCity=Berlin" \ -F "color=bw" \ -F "duplex=simplex"
Replace bv_test_xxx with your API key – a test key costs nothing. The full documentation with more examples is on the API documentation page.
API features
Our API follows REST principles with predictable URLs, JSON responses and standard HTTP status codes. Everything you need for a seamless integration.
RESTful JSON API
A complete REST API with OpenAPI documentation and an interactive Swagger UI. Standards-compliant JSON responses allow integration with any programming language and framework.
Test & live keys
Separate API keys for development (bv_test_*) and production (bv_live_*). Test your integration without risk before switching to production.
Webhooks
Real-time notifications when your letters change status. Receive updates on upload, printing and dispatch automatically via HTTP callback.
Rate limiting
One request per 500 ms per API key, with a queue for up to 10 further requests. If the queue is full, the API responds with HTTP 429.
Idempotency keys
For POST requests the API stores successful responses with an idempotency key for 24 hours. Repeat the same job with the same key only after the first request has finished.
Swagger documentation
Interactive documentation with code examples and a try-it-out feature. Test endpoints right in your browser without writing a line of code.
Authentication & security
Secure authentication with API keys
Test keys bv_test_*
For development and testing. Letters are simulated but not physically sent. No cost, no coin deduction – ideal for your development environment and CI/CD pipelines.
Live keys bv_live_*
For production. Letters are printed, enveloped and delivered by Deutsche Post. The cost is deducted automatically from your coin balance.
Security standards
All API requests require HTTPS – unencrypted HTTP requests are rejected. Send your API key in the X-Api-Key header. The full authentication documentation is on the API page.
Endpoints at a glance
The most important API endpoints for sending letters – from submission to status query
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/letters/simple | Send a letter (PDF file or PDF URL) |
| POST | /api/v1/letters/bulk | Up to 50 letters in one request |
| GET | /api/v1/letters/{id} | Query the status |
| POST | /api/v1/estimate | Calculate the cost |
| GET | /api/v1/balance | Check the coin balance |
| POST | /api/v1/webhooks | Register a webhook |
The full documentation of all endpoints with request and response schemas is in the interactive API documentation.
Use cases
Companies from many industries use our API to integrate physical letter sending into their existing systems and processes.
ERP integration
Automated invoice sending straight from your ERP system. Connect your ERP via REST API or via Zapier/Make (e.g. DATEV, lexoffice) and send invoices, credit notes and receipts automatically by post.
CRM automation
Letter sending triggered by CRM events and workflows. Send welcome letters, contract documents or cancellation confirmations automatically when a CRM event fires.
Dunning systems
Automatic reminder stages with physical letters. Configure payment reminders, first and second reminders and collection notices as an automated workflow.
Document management
Integration with your DMS for automatic sending of archived documents. Trigger letter sending straight from your document management system; query the shipping status via API or receive it by webhook.
Without your own programming (guides in German): Zapier, Make, n8n, DATEV & lexoffice.
Post API for Germany: from PDF to letter
You submit digitally, we bring the letter on paper to Deutsche Post
1. Send a PDF
Your system sends the PDF with the recipient address to the API or has the address read from the address field of the PDF.
2. Printing and enveloping
briefsenden.com prints the letter in B/W or colour, single- or double-sided, and envelopes it.
3. Handover at Deutsche Post
The letter is franked and handed in at Deutsche Post for postal delivery in Germany. The transit time depends on the shipping type chosen.
4. Status in your system
Query the processing status via API or receive updates by webhook. For registered mail the tracking number is available once it has been assigned.
How much does a letter via the API cost?
A standard letter in B/W costs 91 coins, from €0.911 including printing, envelope and postage – via the API just as in the web interface. You top up coins in advance; there is no monthly fee. Calculate the cost of a letter beforehand via POST /api/v1/estimate.
1 At the best coin rate (top-up of 25,000 coins).
Error handling & rate limits
Transparent limits and a standard error format for reliable integrations
Rate limits
Per API key one request is processed immediately, then one every 500 ms. Up to 10 further requests wait in order of arrival. If the queue is full, the API responds with HTTP 429; wait before trying again.
RFC 7807 error format
The API uses ProblemDetails, for example for invalid input. Always check the HTTP status code and the error response; not every error source returns the same fields. Error texts are currently in German.
Idempotency keys
For POST requests you can send an Idempotency-Key. Successful responses are stored for 24 hours. Use the same key only for the same job and avoid parallel retries.
Frequently asked questions
Answers about the letter and post API
Integrate now
Start with a few lines of code and automate your letter sending via the REST API. Free sandbox mode included.