Legal · Subprocessors
Subprocessors
The providers that process personal data on behalf of Interactive Media Solutions S.R.L. (IMS SRL) to operate Kodwen, and the recipients that receive data as independent controllers.
Version 1.0 · Updated November 15, 2026
Summary in plain words
- Our infrastructure (gateway, database, backups) runs in the EU, in europe-west1 (Belgium). Model inference runs on Google Vertex AI (global endpoint) and Microsoft Azure AI Foundry, including US regions. Business accounts on EU data residency, which we enable on request (there is no self-service setting yet), are the exception: their model inference runs only on Google Vertex AI in the EU (the eu multi-region or europe-west1).
- We announce any new subprocessor 30 days in advance, on this page and by e-mail to business account owners.
- The same list appears in the Privacy Policy and is referenced by the Data Processing Addendum (DPA).
01Subprocessors
| Recipient | What | Where | Safeguards |
|---|---|---|---|
| Google Cloud (Cloud Run incl. GPU, Compute Engine, Cloud SQL, Cloud Storage, Memorystore) | Hosting, database, backups, cache and rate limits — all Service data, including Kodwen’s own voice engine for custom voices (voice sample and voice profile; no voice service of Google is used) | EU (Belgium, europe-west1); the Kodwen routing model runs on Google Compute Engine in the US (us-east4) and never receives requests of accounts with EU data residency | Google Cloud Data Processing Addendum |
| Anthropic via Google Vertex AI | Model inference — prompts, outputs and tool results routed to Claude models | Vertex AI global endpoint (Google routes each request to a region it chooses, inside or outside the EU); for accounts with EU data residency: the eu multi-region or europe-west1 only | Google Cloud DPA and Vertex AI terms — inputs are not used for training |
| Google Vertex AI (Gemini, Gemini Live, Chirp / Cloud Text-to-Speech, Lyria, Veo, Imagen-class image models, Search grounding, embeddings) | Recording transcription and insights, live voice, text-to-speech, music, image and video generation, web-grounded answers and embeddings — the audio, text or prompt of the feature you use; custom voices — Gemini transcribes your spoken consent statement so we can check it (europe-west1, EU) | Vertex AI global endpoint; Gemini Live in europe-west4 (EU); embeddings and Veo video generation in us-central1; EU-residency accounts: EU endpoints only; custom-voice consent check: europe-west1 (EU) | Google Cloud DPA and Vertex AI terms — inputs are not used for training |
| Google Vertex AI Model Garden (open-weight models, e.g. DeepSeek, on dedicated endpoints) | Model inference when the router selects a self-deployed open-weight model — prompts, outputs and tool results | US (us-west2) | Google Cloud DPA; the model runs on an endpoint in our own Google Cloud project — no data goes to the model publisher |
| Microsoft Azure AI Foundry and Azure AI Speech, incl. Personal Voice (OpenAI GPT, xAI Grok, DeepSeek and Anthropic models hosted by Microsoft) | Model inference — prompts, outputs and tool results routed to models hosted there; speech-to-text, realtime voice and text-to-speech audio; custom voices only if we enable Microsoft Personal Voice in addition to our own voice engine (not enabled today) — your consent statement and voice sample, to create the voice and to check that both are the same speaker (Microsoft’s check, West Europe, EU) | Sweden Central and West Europe (EU) and East US 2 (US); Global and Data Zone deployments | Microsoft Products and Services DPA incl. Standard Contractual Clauses; EU-US Data Privacy Framework |
| Qdrant (self-hosted) | Vector index for agent memory — embeddings of memory records you or your agents store | EU (Belgium, europe-west1) | Open-source Qdrant on our own Google Cloud VM; no data is sent to Qdrant the company |
| Cloudflare | CDN, edge network, DNS and DDoS protection for codai.ro (request metadata incl. IP address) | Global edge network (nearest data centre; EU for EU visitors in normal operation) | Cloudflare DPA incl. Standard Contractual Clauses; EU-US Data Privacy Framework |
| Brivio mail (Stalwart, operated by Brivio) | Transactional e-mail from mail.codai.ro — sign-in links, receipts, invitations, data exports, withdrawal confirmations (recipient address and message content) | EU | Brivio’s self-hosted Stalwart mail server in the EU (api.brivio.ro / SMTP); data processing agreement with Brivio |
| Brivio (api.brivio.ro) | Fiscal invoices and e-Factura for payments (invoice lines, amounts and, for companies, buyer name, CUI and address); company lookup by CUI | EU | Data processing agreement; for e-Factura the invoice is also sent to ANAF (Romanian tax authority) as required by law. If you link your Kodwen account with your Brivio account, Brivio also receives data as an independent controller (see "Brivio (account linking)") |
| Cloudflare Turnstile | Bot check on sign-up and after repeated failed sign-ins at auth.codai.ro — browser signals and your IP address, no cookies used for tracking | Global edge network (nearest data centre) | Cloudflare DPA incl. Standard Contractual Clauses; EU-US Data Privacy Framework |
| Feature-specific providers (Deepgram, Voyage AI, OpenAI embeddings, Tavily / Brave / Serper web search, Freesound) | Only when that feature or model is switched on and you use it: Romanian live transcription audio (Deepgram), text to embed (Voyage AI, OpenAI), web-search query text (Tavily, Brave, Serper), sound-effect search terms (Freesound). Never used for accounts on EU data residency (enabled on request). | US | Provider DPA incl. Standard Contractual Clauses; announced on this page 30 days before a provider is switched on for all users |
| Google Firebase Cloud Messaging | Push messages to the Kodwen apps: the push token and a wake-up signal with identifiers. Notifications you are meant to read also carry their text: the title of a session and, unless the session is end-to-end encrypted, its question or last answer; the title and text of other notifications (for example reminders, schedules and feed activity); and for Kodwen Vault the catalogue title of the item, the agent, the website and the description and purpose of an approval request. Never the value of a vault item | Global (Google) | Google DPA; used only in builds configured with Firebase |
| Sentry | Error diagnostics from codai.ro, hub.codai.ro, pay.codai.ro and docs.codai.ro and our backend services (no request bodies, cookies or user details); crash reports from the desktop, Android, Wear OS and VS Code apps only if you enabled them (Functional Software, Inc.) | EU (sentry.io EU data region) | Sentry DPA incl. Standard Contractual Clauses |
02Independent controllers
These recipients receive data to provide their own service to you and decide themselves how they process it; we list them for transparency.
| Recipient | What | Where | Safeguards |
|---|---|---|---|
| Stripe | Payment and invoicing data; fraud-prevention cookies on pay.codai.ro during checkout. When a checkout is billed through Brivio, the payment is taken on Brivio’s Stripe account | EU (Ireland) / US | Stripe DPA; Stripe is an independent controller for card data |
| Google / GitHub / Apple (sign-in) | Identity assertion when you choose to sign in with them | Global | Their own privacy policies apply |
| Brivio (account linking) | Only if you link your Kodwen account with your Brivio account: the status of the installation (webhook notifications) and the data covered by the permissions you granted (API keys created for Brivio, usage and costs, subscription status and limits, selected projects). At linking we receive from Brivio your verified email, your Brivio user id and, optionally, your name and your organisation’s name, id and CUI | EU | A separate service with its own terms and privacy notice; Brivio decides how it processes the data for your Brivio account. You can unlink at any time (hub.codai.ro → Security → Connected apps) |
| Public web search sources (DuckDuckGo, Wikipedia, GitHub, Stack Exchange, OpenStreetMap, Common Crawl, public EU/RO data APIs) | The search query text, only when a task uses web search; no account, key or device identifiers are sent | Global | Queried from our own search service in europe-west1; their own privacy policies apply |
| Have I Been Pwned — Pwned Passwords (Superlative Enterprises Pty Ltd) | Password breach check: the first 5 characters of the SHA-1 hash of a password, when you check Kodwen Vault passwords or choose or change the password of your Kodwen account. No password, full hash, account identifier or IP address of yours is sent; the request comes from our servers | Australia (operator); served from Cloudflare’s global network | k-anonymity range search with padded answers: the prefix cannot be linked to a password or to you; their own privacy policy applies |
| Browser push services (Google, Mozilla, Apple, Microsoft — the vendor of your browser) | Only if you turn on notifications in hub.codai.ro: delivery of browser notifications (session events, Kodwen Vault emergency-access updates). The service receives the address of your browser subscription and the message encrypted for your browser, which it cannot read | Global | Web Push message encryption (RFC 8291); chosen by your browser, their own privacy policies apply. Turn it off in hub.codai.ro → Settings or in the browser |
03Changes
We publish any intended addition or replacement here at least 30 days before it takes effect. Business customers may object within that period under the DPA (codai.ro/dpa). Questions: privacy@codai.ro.