AI Finance Team
All legal documents

Sub-processor Register and Data Residency Statement

Version: 2026-08-subprocessors-v1 · Effective from: 23 Aug 2026

Download (Markdown)Save a copy of this document.

Last reviewed: August 2026. Every entry below reflects a verified configuration, not an intention.

This register is also Schedule 2 of the customer Data Processing Agreement.

1. The short answer

Your accounting data, meaning invoices, bank transactions, documents and partner data, is stored exclusively in the EU (AWS Frankfurt, eu-central-1) and served by compute in Frankfurt. AI document processing (extraction, categorization, matching, summaries) can run in the EU on AWS Bedrock (Frankfurt), which is a setting on each workspace and the default for new workspaces. The Bedrock service itself does not store or log prompts and results, and never shares them with the model provider (Anthropic); AIFT's own processing logs keep prompt and response copies in our Frankfurt database for 14 or 90 days before automatic purge (see §4). One narrow processing step uses a US provider: semantic-search embeddings (Voyage AI) receive short AI-generated summaries under Standard Contractual Clauses with zero data retention and no model training. Billing contact data is processed by Stripe. A bot-protection check by Cloudflare runs on our sign-in pages. Full list below.

2. Sub-processor register

#Sub-processorEntity / HQServicePersonal data involvedProcessing locationTransfer mechanismNotes
1SupabaseSupabase Inc. (US)Database, authentication, file storage, serverless functionsAll customer data: invoices, bank transactions, documents, partner and user dataAWS eu-central-1 (Frankfurt); backups same regionDPA w/ SCCs (US parent entity, EU hosting)Private buckets, RLS tenant isolation, credentials in Vault
2VercelVercel Inc. (US)Application hosting for the app and marketing siteApp traffic in transit (incl. ledger data), request logs (IP addresses)Functions pinned to fra1 (Frankfurt); static assets on global CDN; logs retained in-platform, no log drains, no integrationsDPA w/ SCCs / DPFMiddleware stores nothing; no analytics scripts
3AWS BedrockAWS EMEA SARL (LU) / Amazon Web Services Inc. (US parent)AI inference: extraction, categorization, matching, summaries, drafting (Claude models)Invoice documents (incl. images), bank statement contents, transaction descriptions, partner names and tax IDsEU, Frankfurt geography; inference routed only within EU regionsAWS DPA (GDPR terms; already in place for infrastructure)Bedrock does not store or log prompts and completions and does not share them with the model provider; no training
4AnthropicAnthropic PBC (US)AI inference (Claude models) for workspaces set to the US option, and for any processing step whose model is not yet available in the EUSame categories as row 3, while a workspace or step is routed hereUS (api.anthropic.com)DPA + Standard Contractual Clauses in the Commercial TermsNo training on API data; bounded retention (30-day tier). Which workspaces route here is visible in the workspace's own settings
5Voyage AIVoyage AI / MongoDB (US)Text embeddings for semantic searchAI-generated invoice and transaction summaries (contain partner names), search query textUS, stateless: vectors stored in our own Frankfurt databaseSCCsZero data retention enabled. Summaries only, never documents
6GoCardlessGoCardless Ltd (UK)Open-banking bank account data feed (PSD2/AISP)Account holder names, IBANs, balances, full transaction feedsEEA per GoCardless GDPR statement; UK entity under EU adequacyDPA in terms; UK adequacy + SCCsBank credentials entered only on the bank's own page, never visible to AIFT
7Mailgun (Sinch)Sinch (SE) / Mailgun Technologies (US)Inbound email ingestion (invoice forwarding)Full inbound emails: sender addresses, bodies, invoice attachmentsEU region (Frankfurt); roughly 3-day message retention at MailgunDPA; DPF/SCCs for the US operating entityMX: mxa/mxb.eu.mailgun.org
8ResendResend Inc. (US)Outbound transactional email (auth, invites, notifications, nudges)Recipient names and addresses, invite and magic links, message bodiesEU sending region; account metadata and API logs US-side per vendor docsDPA w/ SCCsNo open or click tracking, no pixels (deliberate)
9StripeStripe Payments Europe Ltd (IE) / Stripe Inc. (US)Subscription billingAccounting-office admin name, email, billing address, VAT ID; card data entered on Stripe only, never touches AIFTGlobal (Stripe-managed)DPA in ToS; DPF/SCCsOffice-level billing data only, no client ledger content; usage reported as aggregate counts
10CloudflareCloudflare, Inc. (US) / Cloudflare Germany GmbHTurnstile bot-protection widget on authentication pages: sign-in, sign-up, forgot-password, resend-confirmation, password changeVisitor IP address, User-Agent and browser signals at the moment of an authentication attempt; a single-use verification token. No account content, no bookkeeping dataGlobal (Cloudflare edge; EU visitors typically served from EU points of presence)Cloudflare DPA w/ SCCsStrictly necessary security measure (bot and credential-stuffing protection). Widget served from challenges.cloudflare.com; server-side verification performed by Supabase Auth, so the secret never leaves the auth provider
11GitHubGitHub Inc. (US)Static hosting of the help centerVisitor IP addresses (infrastructure logs only; no accounts, no content)US (GitHub Pages)DPFStatic docs only
12SlackSlack Technologies, LLC (Salesforce, Inc., US)Internal notification channel for in-app feedback submissionsFor each feedback submission: the sender's name and email address, their firm and client workspace name, the page they were on, their language, and the message text they wroteUSSalesforce DPA w/ SCCsTriggered only when a user submits the in-app feedback form. No bookkeeping records, documents or bank data are sent; the message text is whatever the sender chooses to write. The submission is stored in our Frankfurt database first, and Slack receives a copy. Slack retains these messages: on our current plan those older than 90 days are hidden from view rather than deleted, and would become visible again on a paid plan

Note on Cloudflare's scope: DNS is not proxied through Cloudflare (verified: responses carry no cf-ray, traffic resolves straight to Vercel). Cloudflare's only role in the data path is the Turnstile widget above. If DNS proxying or WAF is enabled later, this row must be widened to cover all app traffic, and that is a material change requiring customer notice under DPA §5.2.

3. Not sub-processors, but worth explaining

  • NAV (Hungarian tax authority): a data source acting as an independent controller. The client company's own technical-user credentials are stored encrypted (write-only vault, EU), never visible to accountants or AIFT staff. Covered in the DPA as a processing activity (§10), not as a sub-processor.
  • ECB / MNB: public FX rate feeds; no personal data is sent (currency code and date only).
  • Customer-connected AI assistants (MCP): a customer may connect its own Claude / Mistral / ChatGPT account to AIFT; ledger data then flows to their chosen provider under their agreement. Customer-controlled, per-organization kill switch, every access audit-logged.

4. Supporting facts

  • Fonts are self-hosted. The only third-party browser script in the app is the Cloudflare Turnstile bot-protection widget on authentication pages (strictly necessary security, no cross-site tracking).
  • All storage buckets private; access via signed URLs with 60-second to 1-hour lifetimes; no public URLs anywhere.
  • Row-level security on every customer-data table: cross-tenant isolation is enforced by the database, including for AI-assistant (MCP) access.
  • AI request log (full prompts and responses) retained 14 days for the matching scorer and 90 days for everything else, then purged by a daily job. Cron logs 3 days.
  • Bank credentials never touch AIFT (PSD2 redirect flow). NAV credentials: vault-encrypted, write-only, redacted from logs.
  • Workspace offboarding: audited content and storage wipe, double-key guarded, covering database records and stored files.
  • Billing evidence: a content-free, per-document ledger of what was billed each month is retained for 8 years under Hungarian accounting law; it contains no document content.

5. Where AI processing runs, and what you can choose

AI document processing has two possible locations, and it is a setting on each workspace.

  • EU (recommended, and the default for new workspaces). Inference runs on AWS Bedrock in the Frankfurt geography and is routed only within EU regions. Prompts and results are not stored or logged by the service and are never shared with the model provider.
  • US. Inference runs on Anthropic's first-party API in the United States, under Standard Contractual Clauses, with no training on your data and bounded retention. A workspace stays on this option only while it is set that way.

Two further points, so the picture is complete:

  • A processing step may run in the US even when a workspace is set to the EU option, if the AI model that step needs is not yet available in the EU. This is temporary and applies to that step only, never to your stored data.
  • Semantic-search embeddings always run in the US (Voyage AI, row 5), under Standard Contractual Clauses and with zero data retention. Only short AI-generated summaries and your search terms are sent, never documents.

Your stored data, in every case, remains in the EU (Frankfurt). The location setting affects processing only.