Procedural documentation

Version 1.0 · as of 27 August 2026 · GoBD

This page describes how an invoice at patchletter comes about, how it is numbered and taxed, where it is stored and how long it stays there. It is written for two kinds of reader: a customer who wants to know what happens to their billing data, and an auditor who wants to understand the process before asking for documents.

This is our documentation, not yours

patchletter is not invoicing software. You do not create invoices in it, so this document does not become part of your own procedural documentation. It describes how we keep our books — and thereby how the invoice you receive from us came about.

1. Scope

Covered are outgoing invoices of patchletter UG (haftungsbeschränkt) i. G., Meisterweg 16, 45896 Gelsenkirchen. Two revenue streams exist: subscriptions (patchletter Pro and MSP) and vendor presence on a product page. Responsibility for the process lies with the Managing Director; bookkeeping and the annual accounts lie with the tax adviser.

2. Systems involved

3. How an invoice comes about

Subscriptions run automatically:

Vendor presence is invoiced by hand. The agreement is concluded by email, the invoice is written manually and filed in the same place as the automated ones. There is no self-service checkout for it yet. We name this because a procedural documentation that describes only the automated path would describe the smaller half of our invoices.

4. Invoice numbers

The number for a subscription invoice is issued by the payment provider, in its continuous number range, and stored in our row alongside its own identifier. We do not issue those numbers ourselves, and we do not claim to: what protects against a duplicate invoice here is the database constraint described above, not a counter of ours.

Manual invoices for vendor presence run in a separate, self-maintained number range. Keeping the two apart is deliberate — a shared range fed from two places is exactly where gaps appear.

5. VAT

The rate and the mandatory note on the invoice are determined in one single place in the code, because the same figure appears on the invoice, in the amount collected and in the text below it — three places that can drift apart without anyone noticing until someone checks. Four cases are distinguished:

Amounts are calculated in cents and rounded commercially to the whole cent.

6. Format

Invoices are issued as PDF. A structured electronic invoice (ZUGFeRD/Factur-X or XRechnung) is prepared for in the data model but not in operation; we will say so here on the day it is, and not before. Incoming electronic invoices we can receive and archive.

7. Archiving

Immediately after an invoice is created, its PDF is fetched and written to our own object storage under a fixed key. The customer's account and every link we send point at our own copy, never at the payment provider's document: those links are signed and expire, so a directly linked PDF stops working the next day — and the ten-year retention is our obligation, not the provider's.

What is not in place: the object storage has no write protection (WORM/object lock), and we do not compute a checksum per document. Unchangeability today rests on access being limited to the operator and on the backups, not on the storage refusing the write. We consider that a gap worth closing, and it is on the list rather than in this text as an achievement.

8. Backups

The database is backed up hourly and every backup is checked for readability right after it is written; a copy goes to a second machine in Germany. Off-site copies to external storage are encrypted client-side before they leave the machine. Hourly backups are kept for 30 days, the one taken on the first of each month for a year.

9. Access

Inside a customer organisation, invoices are visible to owner and admin only — they carry the company address and VAT ID, and a technician with a login has no business there. On our side, access is limited to the operator through the admin interface and to the tax adviser for the documents handed over. Server access requires an SSH key; the product itself has no passwords.

10. Retention and audit access

We retain invoices and the associated records for ten years. The retention period for accounting vouchers was shortened to eight years by the Fourth Bureaucracy Relief Act; we do not make use of the shorter period, because two different periods within the same set of records create more room for error than they save in storage.

For a tax audit we can provide the invoice documents and an export of the invoice and event records in a common, machine-readable format. That export is prepared by hand today; there is no button for it.

11. Changes to this document

Every change to the process changes this page and the internal version of it, which carries the change history. Both live in the same repository as the code they describe, so a change to the billing run and a change to its documentation travel in one commit.

Version 1.0, as of 27 August 2026. Related: data processing agreement, operations & data protection, privacy policy.