7. What's Missing: The Gap Between Built and Paid, Renewed, Referred
Assumption: nothing is built yet, and the idea is at the stage of choosing an API. These are the gaps between the plan and a business.
7.1 Gaps to pay
| Gap | Why it blocks payment | Fix |
|---|---|---|
| No single job | Four candidate APIs means no message. "We do documents, VAT, addresses and data" sells nothing. | One job: "JSON in, valid German e-invoice out." |
| No defined buyer | "Developers" can't be priced or reached | Companies invoicing German B2B from their own code: SaaS, platforms, agencies, vertical software (doc 02). |
| No pricing | Undefined, and price drives churn | See below. |
| No proof of certainty | Developers pay for "it won't be rejected", so you have to show it | Public test suite, validation report on every document, rule-version changelog, a sample-invoice gallery that passes the official validator. |
| Free substitutes | Mustang, horstoeko, factur-x, Billit free until 2027 | Win on time saved (one call instead of a week), readable errors, maintenance and inbound parsing. Show a "library vs DocPress" comparison page. |
Recommended pricing (verify with design partners):
| Plan | Price | Includes | For |
|---|---|---|---|
| Free sandbox | €0 | 50 docs/month, watermarked, validator unlimited | Evaluation |
| Starter | €29/mo | 500 documents (generate, validate, parse), 3 templates, VAT-ID check | Small SaaS and freelancers' platforms |
| Growth | €79/mo | 3,000 documents, custom templates, Stripe connector, inbound parsing, batch | Most SaaS and agencies |
| Scale | €199/mo | 15,000 documents, multiple brands and entities, SLA, priority support | Platforms, vertical software |
| Overage | €0.02–0.05/doc | By plan | |
| Annual | 2 months free | Push it. Annual billing cuts churn. |
Blended ARPA target: ≥€65 (~$75). Recurly's benchmark puts churn at $50–100 revenue per customer at 3.15% a month, against 4.29% at $10–25. Don't go below €29.
7.2 Gaps to renew
| Gap | Fix |
|---|---|
| Deadline-driven signup, then "done" | Put a second recurring job in the product: inbound parsing plus rule-version tracking. The customer keeps needing you after launch day. |
| Month-end reliability | Queues, retries, status page, batch endpoint. Load-test the last day of the month. |
| Silent rule changes | Automated watch on KoSIT and XRechnung releases, a regression suite of reference invoices, and an email to customers before each rule change. |
| Low switching cost at the start | Stored validation reports, templates, archive and inbound history build switching cost with every month. |
| Project-based agencies | Price agencies per brand or entity, so the account is tied to their clients' ongoing invoicing, not to the build project. |
| Failed payments | Card updater, pre-dunning emails, and invoice (bank transfer) billing on annual plans. B2B involuntary churn is ~1% a month (Recurly), and it's the cheapest to fix. |
7.3 Gaps to refer
| Gap | Fix |
|---|---|
| Nothing visible | Optional "validated by DocPress" link in the XML-free PDF footer, off by default on paid plans. Receivers are other businesses, and some are buyers. |
| No free hook | Free public validator and JSON → XRechnung playground in German and English: "E-Rechnung prüfen", "XRechnung Validator", "ZUGFeRD erstellen". |
| No community presence | Answer e-invoice questions in GitHub issues (Mustang, horstoeko), on Stack Overflow, and in German developer and accounting forums. Publish open-source helpers (a Stripe → EN 16931 mapping). |
| No partner economics | Agencies get 20% recurring for referred customers, or a discounted multi-brand plan. |
7.4 Non-product gaps
Distribution
- Missing entirely from the idea. Channels that fit a developer buyer at ~15 hours a week:
- Search on high-intent German and English terms, powered by the free tools.
- Docs as marketing: copy-paste examples for Laravel, Symfony, Node, Python, Java, .NET.
- The Stripe App (month 9).
- Agency partners.
- Being useful in open-source communities.
- Channels to avoid early: paid ads to "developers", Product Hunt as a main channel (it brings project-based buyers), cold outbound at volume.
Positioning
- Weak: "a PDF generation API", "an API for recurring business jobs".
- Better: "Valid German e-invoices from one API call. ZUGFeRD and XRechnung, checked against the official rules every time, with errors you can actually fix."
Sales motion
- Self-serve first, with founder-run onboarding calls for the first 20 customers only.
- Light sales for vertical software vendors (the Scale plan and custom volume) from month 9. It's one call a week at most, which fits limited hours.
Compliance and legal
| Area | Requirement |
|---|---|
| E-invoice rules | Follow EN 16931, the XRechnung releases and ZUGFeRD profiles. Record the rule version on every document. Validation, not tax advice. |
| Data protection | GDPR: DPA, subprocessor list, EU hosting, deletion by default. Invoices contain personal data (names, addresses of sole traders). |
| German web law | Impressum on the website, German-language terms (T&Cs) reviewed by a lawyer. |
| Retention | If you offer an archive, check GoBD requirements with the tax adviser before using the word "compliant". |
| Selling to EU businesses | Use a merchant of record (Paddle or similar) or an EU entity to handle VAT on your own sales, including reverse charge to EU B2B buyers. |
| Liability | Terms that cap liability, plus professional indemnity insurance. Clear wording: "we validate format and rules; the content of the invoice is yours." |
| Transmission | Don't transmit. If Peppol is needed, use a certified access point partner under their terms. |
Team
- Not provided. Minimum: one backend developer comfortable with XML schemas and PDF/A. Plus German-language capability (founder, partner, or a paid part-time writer) and a paid German tax adviser or e-invoicing consultant for a format and wording review (about a few days a year).
Metrics and instrumentation
Minimum set:
- Activation: first valid production document within 7 days of signup.
- Documents per customer per month.
- Monthly revenue churn, with a stated cancellation reason.
- Validator-to-signup conversion.
- Share of revenue on annual plans.
- Support tickets per 100 customers.
- Invalid-document escape rate (must be 0).