Trust centre
Standards, controls and data handling
Reference information for security reviews, DPA redlines and regulatory filings. Puccha operates as a data processor for organisations regulated under the Thai PDPA and, where applicable, Bank of Thailand, SEC, OIC and HA requirements.
Last reviewed:
This page summarises our position for review purposes. The Data Processing Agreement is the contractual source of truth; where the two differ, the DPA governs.
At a glance
1. Certification status
ISO/IEC 27001:2022
Not certifiedNot certified. A Statement of Applicability mapped to Annex A and the supporting evidence pack are available on request, under NDA; certification is in progress. We will not represent Puccha as certified until a certificate is issued.
SOC 2 Type II
Not certifiedNo report issued. Controls are designed against the Trust Services Criteria and an observation window is planned. Ask for current status in writing before relying on it.
PDPA (Thailand)
In operationIn scope and operating. Appointed data protection officer, records of processing, a DPA with a Thai-law overlay, and the data-subject rights surfaces listed below.
Sub-processor certifications
In operationCloudflare holds ISO 27001, SOC 2 and PCI DSS; Stripe holds PCI DSS. These are their certifications, not ours, and do not certify Puccha.
2. Who is responsible for what
You, as data controller
- Establish a lawful basis for the content you upload and the conversations you collect
- Ensure your privacy notice covers AI processing, visitor uploads and sub-processor disclosure
- Decide retention periods and who may access what
- Notify your supervisory authority and data subjects when required
Puccha, as data processor
- Process only on your instructions and only for the purposes in the DPA
- Maintain the security measures listed below
- Disclose sub-processors and give 30 days notice before adding one
- Notify you of a breach within 24 hours and assist with your filing
- Return or delete data at the end of the contract
3. Regulatory control mapping
| Regulation | What it requires | What Puccha does |
|---|---|---|
| PDPA §28/29 | Cross-border transfer safeguards | DPA with a Thai-law overlay; the model provider’s DPA (Anthropic) referenced |
| PDPA §33 | Data-subject access and erasure | Per-person export; per-person or org-wide erasure |
| PDPA §37 | Controller security duties; deletion once the retention period ends | Documented technical and organisational measures; query log stores a hash, not the question; retention configurable per plan |
| BOT FPG 19/2599 | Outsourced-IT risk, ISO 27001-aligned controls | ISO 27001-aligned SoA and evidence pack (certification in progress) roadmap |
| SEC Chapter 2 | Data and application security, IAM | Per-document ACL, MFA, audit-log export |
| OIC IT-risk framework | 72-hour cyber-incident reporting by the insurer | We notify you within 24 hours and assist your filing, so the 72-hour window stays yours to meet; breach automation is in progress roadmap |
| HA accreditation | Documented policy and access control | Per-document access; uploads can skip the AI; DPO support |
| SOC 2 | Third-party assurance report | Controls built to SOC 2; Type II report on the roadmap roadmap |
Rows marked in progress are not offered as implemented controls and must not be relied on in a filing. Ask us for written confirmation of current status first.
4. Sub-processor register
Customers are notified at least 30 days before a new sub-processor is engaged. This register is the current state; the contractual list lives in §6 of the DPA.
| Sub-processor | Service | Data processed | Region | Transfer safeguard |
|---|---|---|---|---|
| Cloudflare, Inc. | Workers, D1, R2, KV, Vectorize, AI Gateway, Email Sending, Workers AI | All categories of processed data | Singapore (APAC primary) + global edge | Cloudflare DPA + Standard Contractual Clauses (signed) |
| Anthropic, PBC | Claude inference (Haiku 4.5 by default; Sonnet or Opus where the organisation selects them) for text, images and PDF documents, routed through Cloudflare AI Gateway with payload logging disabled | Conversation text, retrieved passages, and image or PDF bytes when a file is read | United States (Anthropic API, called through Cloudflare AI Gateway) | Answers are billed through Cloudflare AI Gateway with Cloudflare Zero Data Retention enabled (since 2026-09-27): Anthropic is called on Cloudflare-managed credentials through endpoints that do not retain prompts or responses, under the Cloudflare DPA. The standby route calls Anthropic directly under our Enterprise agreement + Zero Data Retention addendum (signed 2026-05-09) + SCCs, with no abuse-monitoring retention window. |
| Cohere, Inc. | Rerank v3.5 (search result ordering) | Search query text and retrieved passage text | United States | Standard Contractual Clauses (signed) |
| OpenRouter, Inc. | Model routing used only as a fail-over: answers when the primary route is unavailable, and a fallback for document indexing and search reranking | Conversation text and retrieved passages on a fail-over turn; document text during fallback indexing | United States | Every request asks for Zero Data Retention endpoints only and opts out of data collection; the request fails rather than reach a provider that retains prompts. Contractual transfer mechanism: being confirmed by counsel. |
| OpenAI (through OpenRouter) | Independent check, for reporting only, of whether a conversation the assistant handled actually resolved the customer’s request (a model from a different family than the one that answered) | An excerpt of the closing messages of that conversation (at most 12) | United States | Called through OpenRouter under the same Zero Data Retention routing. Contractual transfer mechanism: being confirmed by counsel. |
| Sentry GmbH | Application error monitoring | Stack traces and redacted request metadata. Attachment URLs and file bytes are scrubbed before sending. | EU and US, per project configuration | EU Standard Contractual Clauses + UK addendum |
| Stripe, Inc. | Payment processing | Tenant billing details only — no end-user or document data | United States and EU | Stripe DPA + SCCs |
5. Data-subject rights
| Right | How it is served | Response time |
|---|---|---|
| Access | An administrator exports one person’s data as a JSON file from their customer page: profile, conversations and messages, consent records, and the log of which staff opened their conversations. Attachments are listed by reference; the files are supplied on request. Export requires a second MFA check and is audit-logged. | Within 30 days; usually the same session |
| Rectification | Not self-service: there is no in-product edit of a person’s record or of message text. On a written request we correct the record or erase the inaccurate content. | Within 30 days |
| Erasure | An administrator erases one person from their customer page (second MFA check). Everything the person wrote, attachments in object storage, consent records and identifying fields are removed, and so are their email address and phone number wherever the assistant repeated them. The assistant’s other replies remain as the organisation’s record of what its service said, until the conversation reaches the retention period the organisation sets. Audit entries are reduced to tombstones. A legal hold blocks erasure. Puccha does not send other personal data about a person to the AI model unless the organisation integrates it, and such an integration is covered by erasure before it is offered. Daily database backups taken before the erasure are not rewritten; a retention limit for backups is not yet set. | Within 30 days |
| Restriction of processing | Not self-service: there is no processing-paused flag in the product. On a written request we restrict processing manually. | Within 30 days |
| Portability | The same JSON export, in a machine-readable form; attachment files on request | Within 30 days |
| Withdrawal of consent | Consent to file uploads is recorded with the policy version. There is no self-service withdrawal yet; on a written request we record the withdrawal and erase earlier uploads. | Within 30 days |
6. Security measures
| Area | Measure |
|---|---|
| Encryption in transit | TLS 1.2 minimum (TLS 1.1 and older refused), TLS 1.3 preferred; HSTS for two years with preload |
| Encryption at rest | Provided by Cloudflare’s storage services (AES-256, per Cloudflare); messaging-channel credentials are additionally sealed by Puccha with AES-256-GCM under a per-organisation key |
| Access control | Role-based access per organisation (owner, admin, editor, viewer) with per-document ACLs applied before generation; conversations private to their participants by default. Multi-factor authentication for agent accounts is a per-organisation policy — on by default for all agents on Business and above, for admins on Team, off by default on Free. Exporting or erasing a person’s data always requires a second MFA check. |
| Network | Cloudflare web application firewall; request rate limits per visitor, per IP address and per session |
| Application | Content-Security-Policy on every response (the admin console still permits inline scripts), HSTS, content-type pinning, and untrusted retrieved content wrapped in explicit context blocks to resist prompt injection |
| AI output controls | Answers are generated only from retrieved passages the requester is permitted to see; citations are validated server-side against those passages. Injection signatures in Thai and English are rejected on input to web chat, the API and MCP. The system prompt is never sent to the user; on web chat the streamed answer is also checked for system-prompt leakage and stopped if found. These controls are enforced by Puccha and apply regardless of which model is behind Cloudflare AI Gateway. A tenant can keep the AI away from files customers upload, routing them to a person instead. |
| Logging | Audit log of administrative and data-subject actions, exportable by administrators; retained 90 days on Free and Team and 365 days on Business and Growth. When staff open a customer’s conversation it is logged (once per person, per conversation, per day), and that log is part of the person’s export. |
| Backup and availability | Object storage rated eleven nines of durability (per Cloudflare); daily database export |
| Data minimisation | Query text stored as a hash in the query log; uploaded filenames hashed; personal data in audit-log entries removed on erasure; error reports scrubbed before transmission |
| Personnel | Confidentiality agreements; background checks for staff with production access |
- Every database query scoped by tenant — cross-tenant tests gate every endpoint in CI.
- Per-document ACLs (public, org, role, user); retrieval filters before generation, not after.
- Audit log; staff access to a conversation is logged and in the person’s export.
- Query text stored hashed — no raw questions at rest.
- API keys stored as SHA-256 hashes. Injection patterns rejected, citations validated, system prompt never echoed — enforced by Puccha on any model behind Cloudflare AI Gateway.
- Runs on Cloudflare’s edge — Bangkok latency, isolated data stores per environment.
7. Breach notification
Puccha notifies you
From becoming aware of a breach affecting your data, per §13 of the DPA.
You notify the regulator
You are the controller and own onward notification to the PDPC or its EU equivalent, and to data subjects where required. We assist with the filing.
8. Retention and end of contract
- Conversation retention is set per organization: keep everything (the default) or choose a window up to the plan’s ceiling, after which a daily job deletes due conversations — never an open case, a thread an agent holds or a legal hold. The query log stores a hash of the question, never the question text.
- Cancelling a paid plan does not end the service: the organization moves to the Free plan and its data stays available.
- To end the service, an owner requests erasure (MFA-gated). It can be cancelled for 7 days; then the data is hard-deleted from the database, object storage and search index. Payload logging is off on the gateway requests that carry conversation and document text to the answer model, so no copies of those remain there. On written request we complete erasure within 30 days of termination.
- Database backups are taken daily and are not rewritten when data is erased; a retention limit for backups is not yet set.
- Audit-log tombstones survive deletion for the audit-log retention period. They record that data existed and was deleted — not what it contained.
9. Service level targets
99.95%
Enterprise availability target, rolling 30d
2,000ms
Enterprise chat p95 latency target
24h
Breach notification to you (DPA §13)
Targets are measured over a rolling 30-day window and vary by plan. Current measured values are published on the status page. Status
10. Documents available on request
For a document, a completed security questionnaire, or written confirmation of a control status, contact hello@puccha.ai.