Sample Idea Decision Brief · complete, not blurred
DocPress
Developer API for German e-invoices: JSON in, then a validated ZUGFeRD/Factur-X PDF and XRechnung out, plus parsing of received e-invoices, ahead of the 2027–28 B2B mandate
Reviewed 30 Sept 2026 · built from the public assessment
01 / 10
The decision
No as a generic PDF or document API. Go as a German e-invoice API for developers.
The single most important thing
Get 3 companies paying for valid German e-invoices by day 21, before the API is finished.
- Segment: companies that bill German businesses from their own code: Stripe-billed SaaS, platforms and marketplaces, agencies building billing for clients, niche vertical software.
- Job: "Turn our invoice data into a valid XRechnung / ZUGFeRD file, every time, before 1 January."
- How: a concierge version. They send invoice JSON or CSV, and you convert it with Mustangproject or factur-x, validate it with the KoSIT validator, and return the files and a validation report. Charge for it (€29–79/month as a founding price, locked for 12 months). Automate only what you've done by hand at least 20 times.
Timing matters. 1 Jan 2027 is 13 weeks away. Companies above €800k turnover must issue e-invoices from that date. The weeks before it are when developers search, compare and buy.
Week-by-week
| Weeks | Goal | Exit criteria |
|---|---|---|
| 1 | Set up. A one-page site in German and English ("JSON rein, gültige E-Rechnung raus", i.e. "JSON in, valid e-invoice out"). Local toolchain: Mustang or factur-x plus the KoSIT validator. One sample XRechnung and one ZUGFeRD EN 16931 file passing validation. Book the German tax adviser review. | Sample files pass. Site live with a €29 design-partner offer. |
| 1–3 | Discovery and pre-sales. List 40 target companies. Hold 10–15 calls with developers or CTOs. Ask how they invoice today, who their German B2B customers are, what they tried (library, Billit, lexoffice), and what "done" looks like. | 3 paying design partners (15 hrs/week: 2). You can write the top 3 blockers in their words. |
| 3–4 | Concierge delivery. Convert and validate their real invoices by hand. Log every field-mapping problem and every validation error. That becomes your error-message library. | Every partner's invoices pass validation. 30+ distinct error cases logged. |
| 5–8 | Build the thin v1 API. POST /invoices (JSON → ZUGFeRD EN 16931 PDF + XRechnung CII), POST /validate, 3 HTML templates, readable German/English errors, API keys, usage dashboard, EU hosting, DPA, Impressum. Node, PHP and Python examples. | Partners move from concierge to the API. Zero invalid documents returned as valid. |
| 9–10 | Free acquisition hook. Public validator ("E-Rechnung prüfen", "XRechnung Validator") and a JSON → XRechnung playground. 10 German/English pages answering search questions ("ZUGFeRD erstellen PHP", "Stripe XRechnung", "Kleinunternehmer E-Rechnung"). | Validator live. First 20 signups from search or communities. |
| 11–12 | Measure and decide. | Full-time: 15 paying, $1k MRR. ~15 hrs/week: 10 paying, $500 MRR. No partner has cancelled. If you hit it, start inbound parsing. If you miss, change the segment (see below), not the features. |
Kill criteria (write these down now)
At day 90, the wedge is wrong if either of these is true:
- you have fewer than 5 paying customers;
- most calls end with "we'll just use the open-source library".
Don't respond by adding formats or countries. Respond by changing the segment:
- agencies instead of SaaS; or
- vertical software vendors; or
- inbound parsing for platforms that receive invoices.
02 / 10
Who has the problem, and what they use today
"Developers" is not a buyer. Here are the buyers split by who has a recurring, unavoidable need:
| Segment | Example | Need | Willingness to pay | Pain (1–10) | Churn risk | Verdict |
|---|---|---|---|---|---|---|
| Indie hackers and no-code builders | Zapier/Make users making certificates, reports, one-off PDFs | Occasional, project-based | $5–25/mo | 3 | Very high. This is ScreenshotOne's "project ended" group. | Avoid as the core. |
| Businesses using an accounting suite | Firms on DATEV, lexoffice, sevdesk, Xero | Covered by their suite | $0 extra | 2 | n/a | Not a buyer. Their suite handles it. |
| SaaS and platforms billing German B2B customers from their own code | Stripe-billed SaaS, marketplaces, usage-billed APIs, booking platforms | Every invoice must be EN 16931 from 2027/2028 | €29–199/mo | 8. It's a legal deadline, and their billing code must change. | Low. The need ends only if they stop trading. | Best buyer. |
| Agencies and freelancers building billing for clients | Shopware/Laravel/Symfony agencies, custom ERP builders | Many clients, one integration each | €79–199/mo (multi-brand) | 7 | Low to medium | Strong second segment. One agency brings many invoicing entities. |
| Vertical software vendors | Niche ERPs, practice management, trade-business tools | Must ship e-invoice output to all their users | €199+/mo, or volume | 8 | Very low. It's built into their product. | Best ARPA. Slower sales. From month 9. |
| Enterprises | Large firms on SAP or Oracle | Served by Pagero, Sovos, Avalara, SEEBURGER | High | 8 | Low | Not yours. Enterprise sales and certification. |
Overall pain score for the recommended buyer: 8/10. It's a legal deadline with a date, the work falls on their developers, and the cost of an invalid invoice lands on their finance team.
Overall pain score for the idea as described (generic document PDFs): 4/10. Many free and cheap options exist, and much of the demand is occasional.
Competitors and alternatives
Invoice and document PDF APIs (generic)
| Product | Entry price | Strength | Why a German e-invoice buyer wouldn't pick it |
|---|---|---|---|
| DocRaptor | $15/mo for 125 docs | Best-in-class HTML → PDF (Prince engine) | No ZUGFeRD / XRechnung output found |
| PDFMonkey | €5/mo for 300 docs | Cheap, French, simple templates | No e-invoice output found |
| APITemplate.io / CraftMyPDF | $24/mo for 3,000 PDFs | Template editors, no-code integrations, ~$50K+ MRR combined | No e-invoice output found. It's the most likely to add it. |
| DocuGenerate, pdf4me | — | Advertise ZUGFeRD / Factur-X | Generic document tools. They don't specialise in validation, XRechnung or inbound parsing. |
| Puppeteer / Gotenberg (~140M Docker pulls) / wkhtmltopdf | Free | Self-hosted | The PDF isn't the invoice any more. The XML is. |
| Native billing PDFs (Stripe, Paddle, Lemon Squeezy, Chargebee, QuickBooks) | Included | Free, built in | That's why a generic "invoice PDF API" is weak. None of these output ZUGFeRD / XRechnung natively (Stripe confirmed; others unverified). |
| ScreenshotOne PDF API | from $17/mo | 3,800+ active developers | Proves generic PDF rendering is a feature of other APIs, not a business on its own |
E-invoice APIs and services
| Product | Price | Strength | Gap you can fill |
|---|---|---|---|
| Open source: Mustangproject, horstoeko/zugferd, factur-x | Free | Mature, maintained, cover all profiles | Developers must host, map fields, validate, render the PDF layout and track rule updates themselves |
| Apify actors (ZUGFeRD / Factur-X generators, validators) | from $10 per 1,000 | Cheap, usage-based | Third-party actors, no SLA, no German support, no brand trust |
| Invopop | Free dev plan, Pro €500/mo | 30+ countries, Peppol, SDI, KSeF | Priced for mid-market and multi-country. Too much for a German SaaS issuing 500 invoices a month. |
| Billit (Stripe's preferred e-invoicing app) | Free until 1 Jan 2027 | Inside the Stripe Dashboard, Peppol + ZUGFeRD | Serves the Stripe-Dashboard workflow. Less so custom billing code, inbound parsing or non-Stripe stacks. |
| e-invoice.be, Recommand, Peppyrus (Peppol APIs) | €0.25/doc; €29/mo for 200 docs; free for 100 messages | Peppol transmission | Transmission, not layout or German hybrid PDFs. Partners, not rivals. |
| easybill (German invoicing SaaS with API) | Free (50 docs) to ~€45/mo | Creates and receives XRechnung / ZUGFeRD, German brand | An invoicing app with an API. You must model your billing in their system. The closest German rival; win on developer-first design and inbound JSON. |
| Italian SDI APIs (Openapi, Invoicetronic, A-Cube) | €0.01–0.10 per invoice | Scale in Italy since 2019 | Shows where transmission prices end up: cents. Don't compete on per-invoice price. |
| Storecove, Pagero, Sovos, Avalara, SEEBURGER | Enterprise | Certified, multi-country | Sales-led, enterprise contracts |
| Accounting suites (DATEV, lexoffice, sevdesk) | Per-seat | Where most small businesses already are | They don't serve companies that invoice from their own code |
| Stripe itself | n/a | Owns billing for many SaaS | "Doesn't generate or transmit legally compliant e-invoice files on its own" (Stripe docs) |
VAT validation, address validation, data feeds (rejected candidates)
- VAT validation:
- vatlayer: $9.99–99.99/mo.
- Vatstack: $15/mo for 500 validations.
- VATcomply: free.
- VIES itself: free, but unreliable at peak hours.
- Stripe validates EU VAT IDs automatically. Clones appeared throughout 2025–26.
- Address validation:
- Google: $17 per 1,000, with 5,000 free a month.
- Ideal Postcodes: £0.028–0.045 per lookup.
- Loqate and Smarty for enterprises.
- The PAF licence is £7,525 a year for one website. GetAddress.io shut down in Feb 2026 after losing a database-rights case.
- Data feeds: Open Exchange Rates has run for 15 years with 1 employee, which shows durability. But free ECB data and free tiers cap the price.
03 / 10
Evidence ledger
69 cited sources · evidence maturity Strong. Findings below link to the full research; a confidence label appears only where the research states one.
- R1. The lesson that sets the design rule: ScreenshotOneNot rated
- R2. Invoice and document PDF APIsNot rated
- R3. EU e-invoicing mandatesNot rated
- R4. Who already serves e-invoices, and at what priceNot rated
- R5. EU VAT and company-ID validationNot rated
- R6. Address validation and data feedsNot rated
- R7. Churn benchmarks and base ratesNot rated
- R8. What this changed in the assessmentNot rated
- R9. Still unverifiedNot rated
04 / 10
Economics, with the math visible
At the plan's $75/month and 2.5% monthly churn, adding 3.7 customers a month (the pace that hits the month-24 checkpoint), growth levels off at 148 customers ≈ $11k MRR (new ÷ churn).
| MRR | Customers (target ÷ price) | Months at plan pace | Odds · ~15 hrs/wk | Odds · full-time |
|---|---|---|---|---|
| $1k | 14 | 4 mo | ≈ 45 in 100 | ≈ 60 in 100 |
| $3k | 40 | 13 mo | ≈ 30 in 100 | ≈ 45 in 100 |
| $5k | 67 | 24 mo | ≈ 22 in 100 | ≈ 35 in 100 |
| $10k | 134 | 7 yr 8 mo | ≈ 12 in 100 | ≈ 22 in 100 |
| $20k | 267 | not reached | ≈ 5 in 100 | ≈ 11 in 100 |
| $50k | 667 | not reached | ≈ 1 in 100 | ≈ 3 in 100 |
Odds are judgment estimates with the founder conditions met. Change the numbers in the what-if model →
05 / 10
Founder-fit requirements
1. German-language capability plus a paid adviserodds × 0.6 if missing
You, or a paid part-time partner, can read German tax guidance and write German docs. A German tax adviser (Steuerberater) or e-invoicing consultant reviews your formats and your wording. German buyers search in German ("E-Rechnung API", "ZUGFeRD erstellen").
2. Direct access to 30 buyers in month 1odds × 0.6 if missing
developers or CTOs at German or EU companies that invoice from their own software (SaaS, marketplaces, platforms, agencies, niche ERPs).
3. 3 paying design partners by day 21, before the full API is builtodds × 0.6 if missing
, and the same hours per week held for 24 months. The mandate wave peaks in Q4 2026. A slow start misses it.
06 / 10
As described, and narrowed
As described
$10k MRR odds: ≈ 5 in 100
Narrowed
$10k MRR odds, full-time: ≈ 22 in 100
Vitamin or painkiller?
The generic PDF API is a vitamin with a short shelf life. The e-invoice API is a painkiller with a legal deadline.
- Vitamin: "make my PDFs prettier" or "generate these certificates". It's easy to defer, and it's done when the project is done.
- Painkiller: "From 1 January our invoices to German business customers must be XRechnung or ZUGFeRD. Our billing code produces a PDF. Our biggest customer's accounts-payable team already rejects PDFs." That's revenue at risk and a legal duty.
- Test: if DocPress disappeared tomorrow, what would the customer lose? With a generic PDF API: a weekend to switch. With the e-invoice API: their invoices stop being legally valid until they rebuild. Only the second retains.
07 / 10
Risks and pre-mortem
- 01The buyer solved it without you~45% of failure cases
- 02Commoditisation and price collapse~35%
- 03A compliance or trust event, or the rules moved~20%
08 / 10
Thirty-day validation path
| Weeks | Goal | Exit criteria |
|---|---|---|
| 1 | Set up. A one-page site in German and English ("JSON rein, gültige E-Rechnung raus", i.e. "JSON in, valid e-invoice out"). Local toolchain: Mustang or factur-x plus the KoSIT validator. One sample XRechnung and one ZUGFeRD EN 16931 file passing validation. Book the German tax adviser review. | Sample files pass. Site live with a €29 design-partner offer. |
| 1–3 | Discovery and pre-sales. List 40 target companies. Hold 10–15 calls with developers or CTOs. Ask how they invoice today, who their German B2B customers are, what they tried (library, Billit, lexoffice), and what "done" looks like. | 3 paying design partners (15 hrs/week: 2). You can write the top 3 blockers in their words. |
| 3–4 | Concierge delivery. Convert and validate their real invoices by hand. Log every field-mapping problem and every validation error. That becomes your error-message library. | Every partner's invoices pass validation. 30+ distinct error cases logged. |
| 5–8 | Build the thin v1 API. POST /invoices (JSON → ZUGFeRD EN 16931 PDF + XRechnung CII), POST /validate, 3 HTML templates, readable German/English errors, API keys, usage dashboard, EU hosting, DPA, Impressum. Node, PHP and Python examples. | Partners move from concierge to the API. Zero invalid documents returned as valid. |
| 9–10 | Free acquisition hook. Public validator ("E-Rechnung prüfen", "XRechnung Validator") and a JSON → XRechnung playground. 10 German/English pages answering search questions ("ZUGFeRD erstellen PHP", "Stripe XRechnung", "Kleinunternehmer E-Rechnung"). | Validator live. First 20 signups from search or communities. |
| 11–12 | Measure and decide. | Full-time: 15 paying, $1k MRR. ~15 hrs/week: 10 paying, $500 MRR. No partner has cancelled. If you hit it, start inbound parsing. If you miss, change the segment (see below), not the features. |
09 / 10
Continue, narrow, pivot, and stop gates
Day 21
On track (~15 hrs/week)2 paying design partners
If you miss itSwitch segment once (e.g. agencies building billing for clients instead of SaaS). Missing twice means stop.
Day 90
On track (~15 hrs/week)10 paying, $500 MRR
If you miss itCut to the single most-used call (usually JSON → ZUGFeRD). Kill anything unused.
Month 6
On track (~15 hrs/week)$1.2k MRR, revenue churn ≤3%/mo
If you miss itPivot A: inbound parsing first (receiving side). Pivot B: Stripe App only.
Month 12
On track (~15 hrs/week)$2.5k MRR
If you miss itStop adding formats. Fix onboarding, docs and churn.
Month 18
On track (~15 hrs/week)$4k MRR
If you miss itPut all effort into the single best channel. Decide on France Factur-X.
Month 24
On track (~15 hrs/week)$5k+ MRR
If you miss itAt ≥$3k with churn ≤3%: keep running it profitably and extend. Below $1k: stop, or sell the code and the validator traffic.
Kill criteria
At day 90, the wedge is wrong if either of these is true:
- you have fewer than 5 paying customers;
- most calls end with "we'll just use the open-source library".
Don't respond by adding formats or countries. Respond by changing the segment:
- agencies instead of SaaS; or
- vertical software vendors; or
- inbound parsing for platforms that receive invoices.
10 / 10
Sources, assumptions, and unknowns
Unknowns that would change the verdict most
- Hours per week available — and for how long you can hold them.
- German-language ability — yours, or a partner you can pay.
- Any access to German developers, agencies or SaaS founders — (network, community, past employer).
- Existing domain experience — have you built billing, invoicing, ERP or tax software before?
- Your location and billing setup — EU entity, or a merchant of record.
- Budget — for a German tax adviser review (~€500–1,500 one-off, estimate) and professional indemnity insurance.
- Appetite for B2B support — Even a self-serve API gets month-end tickets from finance teams.
Assumptions made
| Input | Assumption used | If actually different… |
|---|---|---|
| Stage | Idea. No code, no users, no revenue. | Any existing API customers change the channel plan. Send their data. |
| Team | 1 founder, technical (backend, APIs, XML), no stated tax or e-invoicing background | A founder or partner with German e-invoicing, ERP or tax-software experience raises every rung by ~5–10 points. |
| Hours per week | Two versions are given: ~15 hrs/week and full-time | Below ~10 hrs/week, the Q4 2026 window will be missed. Cut the $1k odds by about a third. |
| Language | Founder doesn't necessarily read German | This is condition 1. Without German capability (own or paid), multiply the odds by ~0.6. |
| Location | Outside the EU is possible | Workable with a merchant of record, EU hosting and a DPA. It adds trust friction for German buyers. |
| Pricing | None stated. The recommendation is €29 / €79 / €199 plus overage, blended ~€65 ≈ $75 | Below ~€40 blended, churn benchmarks and the pre-mortem (doc 05) say the ceiling falls sharply. |
| Buyer | Companies invoicing German B2B from their own code | If the real audience turns out to be no-code users, this becomes the ScreenshotOne curve again. |
| Market size | 20,000–50,000 companies invoicing from own code (analyst estimate) | If it's under 10,000, $10k+ needs France early. If it's over 100,000, the $10k odds improve. |
| Mandate stability | Germany keeps 1 Jan 2027 / 1 Jan 2028. No postponement found as of 30 Sept 2026. | A postponement delays urgency by about a year. The ViDA 2030 cross-border rule and France keep demand alive. |
| Churn | ≤2.5% monthly revenue churn after month 6 (judgment, not a benchmark) | At 4–5%, the $20k rung roughly halves (see the churn check in WHAT-TO-DO-AND-AVOID.md). |
| Funding | None, and none needed | Doesn't change the product advice. |
| Exchange rate | €1 ≈ $1.15 | Small effect on the customer counts. |
69 cited sources
- Superframeworks
- screenshotone.com/about
- Jason Cohen, "Max MRR", 27 Jul 2025
- pricing
- pricing
- pricing
- Apify
- DocuGenerate
- pdf4me
- Starter Story
- PRLog
- journey to $10K
- $10K → $20K
- open page
- Medium profile
- Bannerbear blog
- docraptor.com/about
- ScreenshotOne PDF API
- Stripe customize
- Paddle
- Lemon Squeezy
- Chargebee
- Norton Rose Fulbright
- EDICOM
- European Commission eInvoicing Germany
- BMF FAQ E-Rechnung
- IfM Bonn
- impots.gouv.fr
- Avalara
- VATit
- BDO
- EY
- KSeF
- vatcalc
- Stripe docs, e-invoicing
- Billit
- Invopop pricing
- e-invoice.be
- Recommand pricing
- Mustang
- horstoeko
- Billit
- easybill
- Peppyrus
- KoSIT
- factur-x
- Openapi
- Invoicetronic pricing
- A-Cube
- Peppol fees
- DGFiP document list
- Stripe docs, customer tax IDs
- vatlayer
- Vatstack
- viesapi.eu
- VAT Sense
- Google Maps Platform pricing
- Ideal Postcodes
- Powered by PAF
- Bird & Bird
- Ideal Postcodes
- Tracxn
- ChartMogul
- ChartMogul
- ChartMogul
- Recurly
- RevenueCat
- 2026 Pricing Factsheet
- dev.to sample