Where documents go for recognition
OCR (Google Document AI) runs in the EU region, enforced in configuration. Invoice content, meaning the supplier, line items, prices and NIP, also goes to AI models: Anthropic, and OpenAI when Anthropic is unavailable. Both process this data in the United States under Standard Contractual Clauses. The full list, with the status of each agreement, is in the sub-processor register.
Per-user permissions and tenant isolation
Access is granted per page and per company. Every request runs within the company it acts for, and an automated check before each release verifies that reads of company data carry that filter.
Encrypted columns in the database
Selected data is encrypted in the database with AES-256-GCM: your company’s bank account numbers and tax identifier (NIP), staff rates and salaries, contact details in the till’s guest register and on online orders, and KSeF and other integration tokens. The server disks and the rest of the database are not encrypted. The key does not live in the repository.
Encryption in transit
Traffic to Owlly, and between Owlly and its service providers, runs over TLS. A request sent over plain HTTP is redirected to HTTPS.
Nightly encrypted backups
A dump of every database each night, compressed and encrypted with AES-256-GCM before it leaves the server, and pruned on a schedule. With no key configured the job refuses to write rather than writing plaintext.
Two-factor authentication in the operator console
The console the Owlly team uses to run the platform has two-factor authentication (TOTP) with recovery codes. Turning it on is voluntary. The restaurant app has no second factor.
Data export: GDPR Art. 20
A complete export of the account’s data in a machine-readable format, on request.
Erasure: GDPR Art. 17
Identity and contact data are erased on request. Two limits we will not cross are described below, because the law does not permit it.