Security

Invoices contain your customers' names, addresses, amounts and tax numbers. This page describes how BelegDock protects them, and also what remains readable without the key.

Sign-in

Encryption

BelegDock encrypts with AES-256-GCM, a method that detects any modification of the data. Stored encrypted are:

What BelegDock needs to look up, such as an email address at sign-in or the order number of an API invoice, is stored as a hash with a secret key (HMAC). Someone who has only the database cannot even check whether a particular address has an account.

The key is not stored in the database. A copy of the database or a backup is useless without it.

Readable without the key is only the operational data BelegDock needs to work: internal IDs, timestamps, statuses, invoice numbers, invoice amounts, plan and usage counters, and the IDs of Stripe objects.

Workspace isolation

Every workspace is isolated in the database itself: PostgreSQL lets each query see only the rows of the workspace it runs for (row-level security). A bug in a single query therefore cannot return another workspace's invoices. A Stripe account can be connected to only one workspace.

Stripe and API

Operations

Service providers

Hetzner runs the servers, Cloudflare the network in front of them, Resend sends emails, and Stripe processes payments and supplies the data of your Stripe invoices. Invoice data goes only to Resend, for the emails to the recipients you specify, and through the Stripe app into your own Stripe Dashboard.

Limits

No system is immune to attack. Whoever takes over the running server can also reach the key; separate credentials, up-to-date software and the isolation described above help against this, but there is no guarantee. BelegDock has no ISO 27001 or similar certification.

Set up your invoice emails.

Create your free account, connect Stripe and design your template. The first 10 real documents each month are free.

Start for free