Security / Overview (printable)
Two products, separately installable. PunchOut: Chrome extension + BC mini app, captures e-commerce carts as Requisition Worksheet lines. Agent: BC extension, in-product AI chat. SaaS, multi-tenant, GDPR + Swiss nFADP compliant.
┌──────────────┐ ┌──────────────┐
│ User in │ ────HTTPS───▶ │ E-commerce │
│ Chrome │ │ site DOM │
└──────┬───────┘ └──────────────┘
│ cart data stays in browser
│
├── HTTPS ──▶ Zentriq backend (EU) — credit check & debit only
│ (no cart contents)
│
└── HTTPS ──▶ Your BC tenant — OAuth2 PKCE, user's own token
(Requisition Worksheet lines inserted directly)┌──────────────┐ HTTPS ┌──────────────────┐
│ BC user │ ──────▶ │ Zentriq backend │
│ (browser) │ │ (Vercel EU) │
└──────────────┘ └────────┬─────────┘
│
┌───────────────┼──────────────┐
▼ ▼ ▼
┌──────────────┐ ┌─────────────┐ ┌──────────────┐
│ Anthropic │ │ BC API │ │ Neon │
│ Claude (US) │ │ (your │ │ Postgres EU │
│ ZERO RETAIN │ │ tenant) │ │ (encrypted) │
└──────────────┘ └─────────────┘ └──────────────┘Cart DOM (in-browser, read only). Microsoft account email + tenant ID. In BC: read Item / Item Template / Vendor / Req. Wksh. Name; insert on Requisition Line. Capture metadata (timestamp, vendor host, line count).
Cart contents on Zentriq servers (Chrome → BC direct). Other tenants. Anything outside the Requisition Worksheet path. No AI inference involved.
Microsoft account email + tenant ID. BC data fetched in real time to answer queries (scoped by the user's BC permissions). Chat history (stored so conversations can resume).
Full BC database export. Credentials or passwords. Data from other tenants. Your data is never used to train AI models (Anthropic zero-retention).
| In transit (end-to-end) | TLS 1.3 (min TLS 1.2) |
| Database at rest | AES-256 (Neon managed) |
| BC refresh tokens at rest | AES-256-GCM application-layer, key rotated quarterly |
| File attachments | AES-256 (Vercel Blob) |
Your BC permissions are the ultimate gate — Zentriq cannot exceed what the user's own BC account is allowed to do. The PunchOut BC permission set (Zentriq Punchout) is least-privilege by design: read Item / Vendor / Req. Wksh. Name; insert Requisition Line. Nothing more.
| Data | Region | Provider |
|---|---|---|
| Database (accounts, billing, Agent chats) | EU (Frankfurt) | Neon |
| Application runtime | EU (Frankfurt + Paris) | Vercel |
| Blob storage | EU | Vercel Blob |
| Error tracking | EU (Frankfurt) | Sentry |
| AI inference (Agent only) | US (zero retention) | Anthropic |
| PunchOut cart contents | Never persisted on Zentriq | — |
| BC data | (your tenant, never relocated) | Microsoft |
Production DB access restricted to 2 staff. MFA everywhere. Every access logged.
GitHub → Vercel pipeline. Signed commits. Automated tests before every merge.
Sentry for errors + traces. Uptime probes on /api/health every 60 s.
GDPR Art. 33 — 72-hour notification. Post-mortem published once incident is closed.
.app; instant effectSecurity: security@zentriqsoftware.com · Privacy: privacy@zentriqsoftware.com · General: support@zentriqsoftware.com
Zentriq Software · Switzerland · www.zentriqsoftware.com · Last updated May 2026