Data security

Financial data needs strict rules. Here is how Centa AI handles data today — without promises or certifications we do not have.

Last updated:

Tenant isolation

  • Every data request is authorised against the company the data belongs to — never an id taken from the URL or request body.
  • A security test suite (59 scenarios) checks that one company cannot read or change another’s data; we run it before releases.

Authentication

  • Sign in with email and password (stored only as a scrypt hash) or by confirming in Telegram.
  • The session is a signed cookie with HttpOnly and Secure flags; Telegram Mini App requests are verified against Telegram’s signature.
  • Repeated sign-ups from one address are rate limited.

Roles and permissions

Roles: owner, admin, accountant, viewer, employee. Only owners and admins change the plan, users and payments; employee is the narrowest role.

Encrypted integration credentials

Access keys for banks, Didox and 1C are encrypted (AES-256-GCM) and never shown again after saving — only a mask. Electronic-signature keys stay on the user’s device: Centa stores only the public key.

Document storage and signed URLs

Documents are kept in private storage, in their own company’s folder. Viewing uses a signed link valid for 10 minutes.

Audit logs

Every accounting decision is written to an audit trail: old and new state, who and when. Product analytics stores event codes only — no amounts, counterparty names or question text.

Document processing and AI

Document text is read on Centa’s servers: first the PDF text layer, then Tesseract OCR. Amounts, entries and taxes are computed by code. In the current production setup, company data is not sent to external language-model providers. Reading receipt photos through Anthropic’s API exists in the code but is switched off; this page will be updated before it is switched on.

Payments

Centa never receives or stores card numbers: a subscription is paid on the payment provider’s page and activated only after that provider’s signed notification.

Hosting and backups

The application runs on Railway (a region in the Netherlands); the database and files are on Supabase (Frankfurt, Germany) on a paid plan with daily automatic database backups taken by Supabase. Connections to the website and the app use HTTPS only.

Try Centa AI on a demo company

No sign-up: a ready demo company with real scenarios. When you are ready, connect your own company by its STIR.