Privacy policy

What DocMint stores, for how long, and who else touches it. This was written from the database schema and the code that writes to it, not from a template.

1. Controller

The controller for the processing described here is:

Companyproductivity-boost.com Betriebs UG (haftungsbeschränkt) & Co. KG
AddressReichenbergerstr. 2, 94036 Passau, Germany
Represented byFlorian Standhartinger
Emailinfo@productivity-boost.com
Telephone+49 178 1981631

See also the imprint.

2. What is stored, and for how long

Everything below is in one PostgreSQL database. There is no analytics product, no advertising network, no tracking pixel, and no third-party script or font on this website at all — these pages load nothing from any host other than this one.

DataWhyKept for
Email address and a bcrypt password hash To identify your account. The password itself is never written down — only the bcrypt hash of it. Until you ask for the account to be deleted.
API keys Stored only as a SHA-256 hash plus the first 16 characters, so a key can be recognised and listed but never read back — not by support, not by the operator. A label and the times it was created, last used and revoked are stored too. Until revoked; a revoked key keeps its row and a revocation timestamp.
Uploaded template files, and every version of them Storing a template under a name is the entire point of POST /v1/templates. The file's bytes, its size, a SHA-256 of it, the placeholder list extracted from it, and any note you attached to that version are all stored. Until you delete the template. Only the most recent 20 versions of each are kept; older ones are pruned automatically.
The data you send to be filled in It is held in memory for the length of the request and used to produce the document. It is never written to the database. Not stored.
The documents that are produced Produced in memory and returned in the response. Rendered documents and PDFs are never written to the database. The schema contains an unused files table left over from a hosted-link feature that is not implemented; no code path writes to it or reads from it. Not stored.
Templates sent inline as template_base64 Treated exactly like the data above: used for the render and discarded. Not stored.
Usage records One row per render: what kind of call, the format, the output mode, the template id, the credits, the duration and per-stage timings, whether it succeeded and the error code if not, and the request id. No document content, no template content and no request body. Kept, so quota accounting is accurate.
Stripe customer and subscription ids To connect an account to a subscription, and to let the Stripe customer portal find it. Only the identifiers — never a card number. Until the account is deleted.
Login sessions A sessions table exists for a web dashboard that is not part of this deployment. No code path currently creates a session, so there are no session rows and no cookies are set by this service. n/a today; 30 days when the dashboard ships.

The application does not log your IP address or user agent. The hosting provider keeps its own HTTP request logs, which do contain IP addresses; that is described under processors below. One transient exception: the signup endpoint keeps the calling IP address in memory for 60 seconds to enforce one signup per minute. It is never written to disk or to the database.

3. Card details

Card numbers never reach this service. Payment is handled entirely by Stripe on Stripe's own pages: POST /v1/billing/checkout returns a Stripe URL and the browser goes there. DocMint stores only the Stripe customer and subscription identifiers, the plan and the credit limit. If you enter a VAT ID at checkout, Stripe holds it and puts it on the invoice; it is not stored here.

4. Email

DocMint does not send email at all. There is no newsletter, no marketing mail and no transactional mail. One consequence is stated plainly in the docs: there is no password reset and no confirmation email.

5. Outbound requests

DocMint never fetches anything on your behalf. An image referenced by URL in your data is not downloaded; you must supply its bytes. No template, no data and no document causes this service to contact any other host.

6. Processors

Three companies process data on behalf of this service:

ProcessorWhat they doWhere
Render Services, Inc.Runs the application and keeps HTTP request logs, which include IP addresses.Frankfurt, Germany
Neon, Inc.Hosts the PostgreSQL database in which everything in section 2 is stored.Frankfurt, Germany (EU region)
Stripe, Inc.Takes payments, stores card details and hosts the checkout and customer-portal pages. Stripe is the controller for the card data itself.Ireland / United States

LibreOffice, used for the optional PDF conversion, runs as a local process on the same server. It is not a processor and nothing leaves the machine for it.

7. Your rights

Under the GDPR you may request access to your data, correction, deletion, restriction of processing, portability, and you may object to processing. Write to info@productivity-boost.com. You may also complain to a supervisory authority; for this controller that is the Bayerisches Landesamt für Datenschutzaufsicht (BayLDA), Ansbach.

Being straight about deletion: there is currently no self-service account deletion, because there is no dashboard. A deletion request has to be handled by hand by the operator. That is a gap, and it is named here rather than implied away. You can delete any template and all its versions yourself at any time with DELETE /v1/templates/:name.

8. Legal basis

9. Changes

If this policy changes materially, the change will be visible in this page's git history — the repository is public at github.com/fstandhartinger/docmint.

DocMint · Docs · Imprint · Terms