Account statements at month-end scale
Render monthly batches of branded, multi-language account statements. HTML templates, customer data merge, async batches up to 75,000+ documents.
- Hosted in Frankfurt & Paris
- GDPR-compliant
Why automate statements with pdf.xhub?
Built for monthly batches
Async-job API handles thousands of statements per run. Webhook fires when the batch is done, signed download URLs land in your storage.
Customer data merge with HTML templates
Bring your existing branded HTML template. Merge customer transaction data via Handlebars or template strings. No DSL to learn.
Multi-language out of the box
Render the same template in DE, FR, EN, IT, ES. Pass locale as a parameter — fonts and number formats adapt automatically.
How statement generation works
1. POST your customer batch
Send an async-job request with template ID + array of customer payloads. We queue the batch and return a job ID immediately.
2. We render in parallel
Render workers process customers concurrently. Each statement gets the customer's locale, logo, brand colors merged into your HTML template.
3. Webhook on completion
When the batch finishes, we fire a signed webhook with manifest of all PDFs. Download or pipe directly to your S3-compatible storage.
For finance, billing, and customer-comms teams
Whether you're a neobank generating 500,000 monthly statements or a SaaS sending 5,000 invoices, the async-batch endpoint scales linearly. Built on HTML-to-PDF for fully branded layouts, with Markdown-to-PDF as the lightweight alternative. EU-only render fleet means GDPR by default.
Try it in your stack
Same endpoint. Copy as cURL, call from any language.
POST a batch of customers, receive a webhook when done with a manifest of all PDFs.
curl -X POST https://api.pdf.xhub.io/v1/render/batch \
-H "Authorization: Bearer $PDFXHUB_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": "html",
"template": "tpl_statement_v3",
"customers": [{"id": "cus_1", "locale": "de", "data": {...}}],
"webhookUrl": "https://api.example.com/pdfx-webhook"
}'curl -X POST https://api.pdf.xhub.io/v1/render/batch \
-H "Authorization: Bearer $PDFXHUB_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": "html",
"template": "tpl_statement_v3",
"customers": [{"id": "cus_1", "locale": "de", "data": {...}}],
"webhookUrl": "https://api.example.com/pdfx-webhook"
}'Features at a glance
Templating & Rendering
- HTML5 + CSS3 with full Handlebars binding
- Custom web fonts auto-cached
- Multi-language locale parameter (DE, FR, EN, IT, ES)
- Custom headers, footers, page numbers
- PDF/A-1b, PDF/A-2b, PDF/A-3 modes
Batch & Workflow
- Async-job API with progress webhooks
- Manifest of all rendered PDFs in batch
- Direct-pipe to S3 / GCS / Azure Blob
- Per-customer error isolation (one bad row doesn't kill the batch)
- PAdES digital signatures (optional)
Platform
- EU hosting (Frankfurt + Paris) for SEPA-zone customers
- Locale-aware number and date formatting
- Per-customer error isolation (one bad row keeps the batch alive)
- Direct-pipe to S3 / GCS / Azure Blob
- Async-batch with progress webhooks
- Throughput: 75,000+ docs/run on Business
Powered by these APIs
The product endpoints behind this solution.
Related solutions
Same API, different workflows.
Run your first statement batch
25 docs/month free forever. Scale to 75,000 with async batch jobs.