DocPress
As described:StopNarrowed:ContinueNo as a generic PDF or document API. Go as a German e-invoice API for developers.
e-invoicing · ~$75 a month per customer · last reviewed (next review by 29 Dec 2026) · 69 cited sources
Start this week
- Tell me your hours per week, whether you (or a partner) read and write German, and whether you can reach a German tax adviser for a paid review.
- List 40 companies that bill German businesses from their own code (look for "Rechnung" in SaaS footers, Stripe-billed tools, German agencies on GitHub), and book 10 calls.
- Build a one-page German/English site: "JSON rein, gültige E-Rechnung raus" (JSON in, valid e-invoice out), with a waitlist and a €29 design-partner offer.
- Run Mustangproject and the KoSIT validator locally. Produce one valid XRechnung and one ZUGFeRD EN 16931 file from sample JSON, to confirm the concierge offer is deliverable this month.
Checkpoints and kill gates
Decide in advance what counts as on track. Missing a checkpoint means changing the buyer or the offer, not adding features.
Day 21
~15 hrs/week
2 paying design partners
Full-time
3 paying design partners
If you miss it
Switch segment once (e.g. agencies building billing for clients instead of SaaS). Missing twice means stop.
Day 90
~15 hrs/week
10 paying, $500 MRR
Full-time
15 paying, $1k MRR
If you miss it
Cut to the single most-used call (usually JSON → ZUGFeRD). Kill anything unused.
Month 6
~15 hrs/week
$1.2k MRR, revenue churn ≤3%/mo
Full-time
$2.5k MRR, revenue churn ≤3%/mo
If you miss it
Pivot A: inbound parsing first (receiving side). Pivot B: Stripe App only.
Month 12
~15 hrs/week
$2.5k MRR
Full-time
$5k MRR, ≥40% of signups from the validator
If you miss it
Stop adding formats. Fix onboarding, docs and churn.
Month 18
~15 hrs/week
$4k MRR
Full-time
$8k MRR
If you miss it
Put all effort into the single best channel. Decide on France Factur-X.
Month 24
~15 hrs/week
$5k+ MRR
Full-time
$10k+ MRR ($20k is the stretch)
If you miss it
At ≥$3k with churn ≤3%: keep running it profitably and extend. Below $1k: stop, or sell the code and the validator traffic.
Do
1.Sell one job: "send JSON, get a valid German e-invoice back." ZUGFeRD / Factur-X EN 16931 hybrid PDF plus XRechnung (CII and UBL), validated with the official KoSIT rules, with a validation report stored on every document.
Target: Every visitor gets it in one line
Why: A plain PDF stops counting as an invoice for German B2B from 2027 (>€800k turnover) and 2028 (everyone). It's a legal duty repeated on every invoice, forever.
2.Target companies that invoice from their own code: SaaS and platforms selling to German businesses, marketplaces, agencies building billing for clients, niche vertical ERPs.
Target: ≥70% of paying customers issue ≥100 invoices a month
Why: They can't just switch on DATEV or lexoffice. They need an API. Their volume is steady, so churn is low.
3.Sell before building. Offer 3–5 design partners a hand-run version: you convert their invoice data to ZUGFeRD using open-source libraries and validate it, for a fee.
Target: 3 paying by day 21, 15 by day 90
Why: It proves developers will pay instead of wiring up Mustang or horstoeko themselves. That's the real competitor.
4.Build on the free, proven libraries, and sell the parts they don't do: hosted API, branded PDF layout, validation, error messages in plain German and English, Stripe connector, archive.
Target: v1 live within 6–8 weeks
Why: The format engine is free (Mustangproject, horstoeko/zugferd, factur-x). Your value is time saved and certainty, not the XML.
5.Validate every document against the official rules before returning it, and version the rules (XRechnung updates regularly).
Target: 100% of documents carry a pass/fail report. Zero invalid documents sent as "valid".
Why: Certainty is the product. One invalid invoice in a customer's audit ends the account and the referrals.
6.Add inbound parsing early: e-invoice in (XRechnung / ZUGFeRD / UBL), clean JSON out.
Target: Live by month 4. ≥30% of Growth customers use it.
Why: All German businesses must receive e-invoices since 1 Jan 2025. A second recurring job doubles the reasons to stay.
7.Price for B2B, not hobbyists. Free sandbox (watermarked, 50 docs). Starter €29, Growth €79, Scale €199 a month, overage per document, annual = 2 months free. No lifetime deals.
Target: Blended ARPA ≥€65. ≥40% of revenue on annual plans by month 12.
Why: ChartMogul: median churn is 6.1% a month below $25 ARPA and 2.2% above $500. Low price buys high churn.
8.Ship a free public validator ("E-Rechnung prüfen", "ZUGFeRD validieren") and a free JSON-to-XRechnung playground, in German and English.
Target: 2,000 validator uses a month by month 6. ≥50% of signups come through it.
Why: It's the search term people type the week they get a rejected invoice. It's also a channel that keeps working while you're offline.
9.List a Stripe App (Stripe invoice → ZUGFeRD / XRechnung), after the core API retains.
Target: Listed by month 9
Why: Stripe states it "doesn't generate or transmit legally compliant e-invoice files on its own". Stripe-billed SaaS selling to German B2B is your densest buyer pool.
10.Automate operations from day 1: self-serve signup, docs with copy-paste examples in 5 languages, status page, usage alerts, email-only support with a 1-business-day promise.
Target: Support under 2 hrs/week per 50 customers
Why: It keeps the product workable at ~15 hours a week.
11.Host in the EU and publish a data-processing agreement (DPA). Delete input data after a set window unless the customer turns on the archive.
Target: DPA and subprocessor list live at launch
Why: German buyers ask for this before they send a single invoice.
12.Expand by format, not by feature: Germany first, then France Factur-X output (customers route it through their certified platform), then Belgium Peppol through a partner access point.
Target: Second country only after $5k MRR
Why: Each country is a new rulebook. Adding one before the first retains spreads you thin.
Avoid
1.A generic "HTML-to-PDF / document API" pitch
Why: DocRaptor ($15 for 125 docs), PDFMonkey (€5 for 300), APITemplate.io ($24 for 3,000), CraftMyPDF, PDFShift and now ScreenshotOne's own PDF API already own it. Stripe, Paddle, Lemon Squeezy, Chargebee and QuickBooks all produce invoice PDFs natively. Generic documents churn at ~5% or more a month.
2.Leading with EU VAT-number validation
Why: Stripe validates EU VAT IDs against VIES automatically. VATcomply is free, vatlayer starts at $9.99, and a dozen new clones launched in 2025–26. It's tiny revenue per customer. Include it free inside the invoice API instead.
3.Address validation or a data feed as the core
Why: Address data needs licences (Royal Mail PAF: £7,525 a year for one website) and carries legal risk. GetAddress.io was shut down in Feb 2026 after a High Court database-rights ruling. Data feeds like exchange rates compete with free sources.
4.Becoming a Peppol access point or a French certified platform (PA)
Why: A Peppol access point costs ~€4.4k in OpenPeppol fees in year one, plus certification and running the network software. A French PA needs ISO 27001, SecNumCloud-qualified hosting and a conformity audit, and 149 PAs are already registered. Partner with an existing access point instead (e-invoice.be, Recommand, Peppyrus, Billit).
5.Calling anything "tax advice" or "guaranteed compliant"
Why: Say "validated against the official EN 16931 / XRechnung rules, version X". Put the rest in the terms.
6.Racing to the bottom on price
Why: Apify actors sell ZUGFeRD generation from $10 per 1,000. Billit is free on Stripe until 1 Jan 2027. You can't win on price. Win on certainty, docs, German support and inbound parsing.
7.No-code (Zapier, Make) users as the main market
Why: They're the project-based, "need was temporary" buyers who cap ScreenshotOne. Offer the integrations later as a channel, not as the core.
8.A drag-and-drop template designer in v1
Why: It's months of work, and CraftMyPDF already has it. HTML/CSS templates plus 3 good defaults are enough.
9.Holding customer money, sending invoices on their behalf, or running dunning
Why: That turns an API into an invoicing app and brings liability. Generate, validate, parse and archive only.
10.More than one country before $5k MRR
Why: Germany alone has two formats, two syntaxes and several profiles to get right.
11.Paid ads before month 6
Why: Search intent is free and specific. Ads to "developers" buy trial users who leave.
12.An English-only product for a German buyer
Why: German docs, a German validator page and German error messages are table stakes for trust.
13.Raising money
Why: $5k–20k MRR needs no outside money, and funded players (Invopop at €500 a month for Pro, Storecove, Pagero) already fight for the enterprise end.
14.Adding features when a checkpoint fails
Why: A miss means the wrong buyer or the wrong channel. Change that first.