security and assurance

How getax protects a client’s data.

A firm entrusts getax with the facts of a client’s affairs. This page sets out where that data goes, how it is protected at each step, which services touch it, how a client’s rights are honoured, and what your risk committee receives in writing before a pilot.

architecture

Where a client's answers go.

A client fills in the questionnaire in a browser on your firm’s subdomain. Everything after that runs on infrastructure getax controls in the European Union. One step calls out: the model call that drafts the report, and it goes through a gateway with zero data retention enabled.

How one client’s data moves through getaxA client answers the questionnaire in a browser on the firm’s subdomain. The answers are encrypted as a draft, then stored as an encrypted profile in Postgres. Analysis builds a prompt from validated facts and sends it to OpenRouter and the upstream model provider, the only external call, with zero data retention enabled, and receives the draft back. The result is written to an immutable report snapshot, which the firm’s reviewers inspect and refine in the console; every version is kept. Every step after the client’s browser runs on infrastructure getax controls in the European Union.GETAX INFRASTRUCTURE, EUClientbrowser, on your firm’s subdomainIntakeanswers encrypted as a draftEncrypted profileFernet token in PostgresAnalysisprompt built from validated factsOpenRouterthen the upstreammodel providerEXTERNAL CALLReport snapshotprofile encrypted;report prose stored as writtenFirm reviewinspect, refine; every version kept
Teal marks a stage whose contents are encrypted at rest. The dashed purple box is the one external call, and the dotted outline is getax’s own infrastructure.
Read the data flow as text
  1. The client answers the questionnaire in a browser, on your firm’s subdomain.
  2. Intake stores the draft as an encrypted token, so a partly finished questionnaire is already ciphertext.
  3. The completed answers become an encrypted profile in the database.
  4. Analysis builds a prompt from validated facts and the profile, and sends it through the gateway to the model provider with zero data retention enabled. This is the only external call. The draft comes back the same way.
  5. The result is written to an immutable report snapshot. The profile inside it stays encrypted.
  6. Your firm’s reviewer inspects the draft in the console: opens the evidence behind any sentence, refines it with an instruction, and downloads the PDF, which carries your firm’s name. Every version is kept.
Encrypted at rest, field by field.
The tax profile, the questionnaire draft, the chat thread on a report, staff review notes, regeneration instructions and a firm's stored SSO client secret are each held as an encrypted token in the database. A database read of those columns returns ciphertext.
Readable only where sign-in needs it.
Account email addresses and display names, the client name and email on a client record, and the delivered report's prose are stored as written, because sign-in and client lookup need them readable. Everything a client discloses about their affairs sits behind the encryption above.
Tenant isolation on every request.
Every route resolves the caller's firm before it reads anything. A request for another firm's report, client record or export is refused, and that behaviour is covered by the automated tests that gate every release.
Separate production and development.
Separate databases, separate secrets and separate hosts, pinned per hostname at the edge. Development never reads production data.
Hosted in the European Union.
Client data at rest stays inside the EU. Every connection, from the client's browser to the firm's console to the one external model call, is encrypted in transit.
Record ids in logs, audit entries and URLs.
An audit row records who changed which field, and when, and withholds the value. Personal data does not appear in logs, error reports or URLs.
Support access is time-limited and attributed.
When getax staff open a firm's workspace to help, the session expires on its own and every entry it writes carries the staff member's own identity, so the audit trail always says who acted.

access and retention

Who can sign in, and what is kept.

Identity and sign-in

Per-firm OIDC single sign-on
Three provisioning modes. Invite: an administrator creates the account and the provider authenticates it. Auto: an account is created on first login for the email domains you list. Groups: your provider’s group claims set the role at every login, with a guard that stops it demoting your last administrator. Turning on require-SSO closes every other route in, including sign-in links already issued, and your identity provider’s multi-factor policy then applies to every sign-in.
Sign-in links
The secret in a sign-in link never reaches the database. Only its hash is stored, so a database read cannot mint a login. A client’s link burns on use. A console link expires, on a schedule your firm sets, and requests for links are rate-limited per address and per firm.
Seats and sessions
Your seat limit is set with getax. An invite or a first SSO login beyond it is refused. Sessions are signed; disabling a user revokes every live session at once.
The client link
Your client reaches the questionnaire, and later their report, through a link on your firm’s subdomain. It resolves nowhere else, and report content behind it requires a signed-in session belonging to the report’s owner.

GDPR export and erasure

Export returns
Reports, questionnaire drafts, client-record history and session recordings, for a data subject your firm administers. Every export is audited.
Erasure removes
The encrypted profile and the prose on every report snapshot in the lineage, staff review notes, regeneration instructions, questionnaire drafts, client-record revisions, the profile held behind an unapproved jurisdiction, session recordings and the model trace for each erased report. The account itself is anonymised and its sessions revoked.
Erasure preserves
The provenance chain on each report snapshot: its id and date, the fact versions it used, the source documents behind them, the claim list and the model and prompt versions. Those columns carry no personal data, and they are what a citation in a delivered report resolves through, so a firm can still show why a delivered position said what it said.

Retention

A per-country policy sets the lifetimes: ten years for reports and report chats, against tax record-keeping obligations, and thirty days before an abandoned questionnaire draft is anonymised. Final deletion is always a deliberate, audited action, never a silent side effect.

Session recording

The client questionnaire records a session replay only after the client consents, and the consent text says so. Every input on that surface is masked. Recordings are held on getax infrastructure under a thirty-day retention policy, and only a getax operator can play one back.

controls

The controls, and how each one is evidenced.

Every row runs in the product today. The third column says how your reviewers can see it for themselves: in a demo, in the automated tests that gate each release, or in the written pack issued before a pilot.

Control areas, what runs today, and how each one is evidenced to a reviewer.
ControlWhat runs todayHow you can see it
Tenant isolationEvery route resolves the caller's firm before it reads; cross-firm reports, records and exports are refusedThe automated test suite gates every release; shown live in a demo
Client data encrypted at restField-level encryption on profiles, questionnaire drafts, chat threads, review notes, regeneration instructions and stored SSO secretsSchema walkthrough and a ciphertext read, on request
Encrypted in transitTLS on every connection: client browser, firm console, model gateway and emailObservable from any browser; certificate details on request
Environment separationProduction and development on separate databases, secrets and hosts, pinned per hostname at the edgeEdge configuration is checked by an automated test on every release
Single sign-onPer-firm OIDC with three provisioning modes, require-SSO, and seat limitsConfigured together during onboarding against your identity provider
Sign-in linksHashed at rest, expiring, burn-on-use for clients, rate-limited per address and per firmAutomated tests on every release
Audit trailAttributed, timestamped client-record revisions with revert; entries hold ids and field names, never valuesVisible to your administrators in the console
Support accessTime-limited, attributed to the individual getax staff member, and written to your audit trailVisible to your administrators in the console
GDPR export and erasureEndpoints for both, scoped per data subject, audited, with the report's provenance chain preserved and model traces deletedAutomated tests on every release; exercised in a demo on a test client
Consent at intakeVersioned, server-timestamped and audited before any answer is keptVisible on the client questionnaire
Approved-jurisdiction controlsReport generation is limited to the jurisdictions approved for your firm; a profile beyond that list is held encrypted until the jurisdiction is approved and the report is generatedShown live in a demo
Model-provider data handlingZero data retention is enabled on the gateway account; the fact-base pipeline never sees client dataWritten confirmation before a pilot; contract terms on request
Session recordingConsent-gated and input-masked, thirty-day retention policy, operator-only playbackVisible in the consent text on the client questionnaire

Scroll the table sideways for the remaining columns.

Your own security questionnaire is answered in writing, with the underlying evidence, before a pilot begins.

the model call

What the model provider receives.

One step in the data flow leaves getax’s infrastructure: the model call that drafts the report. This is what it carries, where it goes, and on what terms.

What is sent.
For each draft: the validated facts selected for the client's profile, the profile's disclosed facts, and the drafting instructions. The pipeline that builds the fact base never transmits client data.
The route.
A model gateway, OpenRouter, forwards the request to the upstream model provider, Anthropic by default, with zero data retention enabled on the gateway account. A firm can ask for its engagements to be pinned to a specific provider and model.
Training.
No client data is used to train any model, by getax or by the providers under those terms.
Locations.
getax infrastructure is in the European Union; the gateway and the upstream provider process the request in the United States under the standard contractual clauses in the data-processing agreement.
The trace.
Each draft's model trace is kept on getax infrastructure, visible to getax operators only, and deleted when a client is erased.

pilot

How to evaluate getax without exposing a client.

The evaluation that tells you something runs in shadow mode, on matters your firm has already closed, and it is measured against your own reviewers.

The shadow pilot runs on twenty or more closed files, with no client involved: your staff enter the facts, your reviewers score each draft on four axes, and the go/no-go is held with your risk partner, your DPO and your information-security lead. The seven steps, what you receive and what we need from you are on the pilot page.