Data Security & Protection

Security built for regulated industrial procurement

ChemCapital is built for industries where technical specifications, commercial quotations, procurement workflows, supplier documents, and project data must be handled securely and responsibly. This page explains how we protect your data — honestly, with clear status indicators for what is implemented today and what is on our roadmap.

Why security matters in ChemCapital

The platform manages commercially sensitive and operationally critical data throughout the procurement lifecycle. The types of information handled include:

Requests for quotation (RFQs)
Supplier and buyer company information
Commercial quotations and pricing
Technical attachments and specifications
Project workflows and collaboration records
Purchase orders and procurement records
ERP and API-connected operational data
Compliance and certification documents
Billing and subscription records

Security principles

Least-privilege access

Users see only the data and actions their role permits. Permissions are enforced server-side on every request — not just in the UI.

Encryption by default

Data is encrypted in transit over TLS 1.2+ and at rest via provider-managed AES-256. No sensitive configuration is stored in code.

Customer data segregation

Each company's data is logically separated. Procurement and supplier records are scoped to their owning organisation at the database level.

Verified user access

Users gain access through invite-based onboarding, authenticated sessions, and role-appropriate permissions. MFA and SSO are available for stronger assurance.

Controlled integrations

API access uses hashed keys with rate limiting. Webhooks are cryptographically signed. Secrets can be rotated. Cron endpoints are fail-closed.

Continuous improvement

Security controls are reviewed and expanded as the platform matures. Planned improvements are documented transparently on this page.

How your data is protected

Each control area is listed with its current implementation status. We believe transparency builds more trust than marketing claims.

Encryption in transitImplemented

All browser and API traffic is served over HTTPS with TLS 1.2 or higher, enforced at the hosting edge. No unencrypted HTTP connections are accepted.

Technology:Vercel Edge Network, TLS 1.2+
Encryption at restImplemented

The database and file storage are hosted on infrastructure that provides AES-256 encryption at rest. This is managed at the provider level — data is encrypted before being written to disk.

Technology:Supabase (AWS eu-west-2), AES-256
AuthenticationImplemented

Users authenticate with email and password. Passwords are hashed using bcrypt before storage. Sessions are managed via secure, HttpOnly JWT cookies with automatic refresh. Invite-based onboarding ensures only authorised users gain access.

Technology:Supabase Auth, bcrypt, JWT, @supabase/ssr
Role-based access controlImplemented

Each user holds a role within their company: Owner, Admin, Member, or Viewer. Sensitive operations require Owner or Admin privileges. All server actions verify membership before executing business logic.

Technology:Prisma, CompanyMembership model, requireCompanyMembership guard
Company-level data segregationImplemented

All procurement and supplier data is scoped to the owning company. Database queries enforce company boundaries so that one customer's RFQs, quotations, projects, and documents are not visible to another.

Technology:PostgreSQL, Prisma ORM, companyId scoping
Route and session protectionImplemented

Protected application areas (procurement, supplier, admin dashboards) require an active authenticated session. Unauthenticated requests are redirected to the login page. Sessions are validated and refreshed on every request.

Technology:Next.js proxy, Supabase session middleware
HTTP security headersImplemented

Standard HTTP security headers are applied to all responses: Content-Security-Policy (CSP), X-Frame-Options (DENY), X-Content-Type-Options (nosniff), Referrer-Policy, Permissions-Policy, and Strict-Transport-Security (HSTS).

Technology:Next.js headers() configuration
API key managementImplemented

Integration API keys are generated with cryptographically secure random bytes. Only a SHA-256 hash of each key is stored — the plaintext is shown once at creation and never persisted. Keys can be revoked instantly.

Technology:Node.js crypto, SHA-256 hashing
Rate limitingImplemented

Rate limiting is enforced across integration API endpoints (120 req/min per key), file uploads, authentication-related endpoints, contact forms, and data enrichment routes. Per-IP and per-user limits are applied where appropriate.

Technology:Shared in-memory rate limiter (lib/security/rate-limit.ts)
Password strength enforcementImplemented

Password complexity is validated server-side at registration and invitation acceptance. Requirements include minimum length, uppercase, lowercase, and numeric characters.

Technology:Zod password schema, lib/security/password.ts
Webhook security (inbound)Implemented

Inbound Stripe webhooks are verified using cryptographic signature validation before processing. An idempotency log prevents duplicate event handling.

Technology:Stripe signature verification, StripeEventLog
Webhook security (outbound)Implemented

Outbound webhooks to customer ERP systems are signed with HMAC-SHA256. Each delivery includes a timestamp, event ID, and idempotency key. Secret rotation is supported with a grace period for the previous secret.

Technology:HMAC-SHA256, X-ChemCapital-Signature headers
Input validationImplemented

Server-side validation is applied to form submissions and API inputs using schema validation. Client-side validation provides immediate feedback. Untrusted input is validated before reaching business logic.

Technology:Zod, React Hook Form, zodResolver
File and document storageImplemented

Uploaded files are stored in private cloud storage buckets with an allowlist of permitted buckets. Uploads are validated for MIME type and file size (25 MB limit). External submissions use time-limited tokens for access.

Technology:Supabase Storage (private buckets), MIME validation
Cron and scheduled job securityImplemented

Scheduled cron routes require a shared secret in the Authorization header. Without a valid CRON_SECRET, the endpoint returns 401 and does not execute. The application does not operate in an unauthenticated fallback mode.

Technology:CRON_SECRET environment variable, fail-closed auth
Payment securityImplemented

All payment processing is handled by Stripe. No credit card numbers, CVVs, or sensitive payment data pass through or are stored on ChemCapital servers. Stripe is PCI DSS Level 1 certified.

Technology:Stripe, Stripe.js, server-side Stripe SDK
Infrastructure hostingImplemented

The application is deployed on Vercel's edge network with automatic scaling, DDoS protection at the edge layer, and managed TLS certificates. The database is hosted on Supabase's managed PostgreSQL infrastructure in AWS eu-west-2 (London).

Technology:Vercel, Supabase, AWS eu-west-2
Audit trail and event loggingImplemented

Sensitive operations including RFQ creation, PO issuance, compliance record changes, and team management actions are recorded in a structured audit log. Admin users can filter and search logs by action type, entity, company, user, and date range. Mid-Market and Enterprise customers can access their own company audit trail directly from their account settings for compliance and governance review.

Technology:ActivityLog model, lib/security/audit.ts, admin log viewer, customer-facing audit log (Mid-Market+)
Error and security monitoringImplemented

Sentry is integrated for real-time error monitoring and alerting in production. Application errors are captured with context for rapid investigation. Source maps are uploaded securely and not exposed to browsers.

Technology:Sentry (@sentry/nextjs)
Data retentionImplemented

A data retention engine runs as a scheduled cron job and purges records according to defined retention windows: activity logs (365 days), processing jobs (90 days), and financial audit logs (730 days). Retention periods are configurable per company.

Technology:lib/security/retention.ts, cron route
Multi-factor authentication (MFA)Implemented

TOTP-based MFA is available for all users via their security settings. When enabled, users are required to enter a verification code from an authenticator app after each login. MFA can be enforced at the organisation level.

Technology:Supabase Auth MFA (TOTP), qrcode.react, AAL2 enforcement
Single sign-on (SSO / SAML)Implemented

SSO via SAML or OpenID Connect is available for enterprise customers through Supabase Auth's SAML 2.0 integration. Users can sign in using their corporate identity provider by entering their work email address. SSO can be configured per organisation.

Technology:Supabase Auth SAML/OIDC, signInWithSSO, SSO callback route

Security technologies used

These are the actual technologies in the ChemCapital stack that contribute to data protection.

TechnologyPurpose
Supabase AuthAuthentication and session management
Supabase PostgreSQLPrimary database
Supabase StorageFile and document storage
VercelApplication hosting and edge network
StripePayment processing and billing
Prisma ORMDatabase access layer
ZodSchema validation
Next.js 16Application framework
SentryError and security monitoring
ResendTransactional email delivery
Node.js cryptoCryptographic operations

Security maturity and ongoing improvements

We are transparent about where we are today. Security is a continuous process, and we document our progress honestly.

Implemented

Implemented today

  • HTTPS / TLS encryption on all traffic
  • AES-256 encryption at rest (database and storage)
  • Role-based access control (RBAC) with server-side enforcement
  • Centralised company membership authorization guard
  • HTTP security headers (CSP, HSTS, X-Frame-Options, Referrer-Policy)
  • Invite-based user onboarding with token expiry
  • API key hashing and revocation
  • Stripe webhook signature verification
  • Outbound webhook HMAC-SHA256 signing
  • Rate limiting across API, upload, and auth routes
  • Server-side password complexity enforcement
  • Server-side input validation (Zod)
  • MIME type and file size validation on uploads
  • Fail-closed cron job authentication
  • IDOR protection on document parsing API
  • Structured audit trail for sensitive operations
  • Admin audit log viewer with full filtering
  • Error and security monitoring (Sentry)
  • Multi-factor authentication (MFA) — TOTP
  • SSO / SAML for enterprise identity providers
  • Data retention engine with configurable policies
  • Customer audit trail logs in-app (Mid-Market+)
In progress

In progress

  • Enterprise DPA and security questionnaire support
Planned

Planned / enterprise roadmap

  • Penetration testing programme
  • IP allowlisting for enterprise accounts
  • Downloadable audit log export (CSV/PDF)
  • Granular permission matrices (custom roles)

Frequently asked questions

Where is our data stored?

Your data is stored in a managed PostgreSQL database hosted on Supabase infrastructure within AWS eu-west-2 (London, UK). Files and documents are stored in private Supabase Storage buckets in the same region. All data is encrypted at rest using AES-256.

Who can access our RFQs and quotations?

RFQs are visible only to members of the procurement company that created them and the specific suppliers invited to respond. Quotations are visible to the submitting supplier and the procurement company that issued the RFQ. Role-based access within each company controls who can view, edit, or manage these records.

Are files and attachments protected?

Yes. Uploaded files are stored in private storage buckets. Access requires an authenticated API call from a user with appropriate permissions. External submissions use time-limited tokens. File types and sizes are validated on upload. Files are not publicly accessible by default.

How do you handle ERP integrations securely?

ERP integrations use API keys that are SHA-256 hashed before storage — plaintext keys are never persisted. Outbound webhooks are signed with HMAC-SHA256 so your systems can verify authenticity. Rate limiting (120 requests/minute) is enforced on all integration endpoints. Secret rotation is supported with a grace period.

Do you offer MFA or SSO?

Yes. TOTP-based MFA (Google Authenticator, Authy, 1Password) is available for all users from the Security settings page. SSO via SAML or OpenID Connect is available for enterprise customers — contact us to configure your identity provider.

Can enterprise customers request additional security documentation?

Yes. We are happy to support enterprise security reviews, complete vendor security questionnaires, and discuss our security architecture in detail. Please contact us to arrange this.

How do you handle backups and incident response?

Database backups are managed by our infrastructure provider (Supabase/AWS) with point-in-time recovery capabilities. In the event of a data incident, we follow a documented internal response process that includes containment, investigation, notification, and remediation.

Is ChemCapital GDPR compliant?

ChemCapital is designed with GDPR-aware data handling principles including data minimisation, purpose limitation, and user access controls. We provide a Privacy Notice and support data subject requests. Data Processing Agreements (DPAs) are available on request for enterprise customers.

How is my data retained and deleted?

Activity logs are retained for 365 days and then purged automatically. Financial audit logs are retained for 730 days for compliance purposes. Enterprise customers can configure custom retention periods. Data deletion requests are handled in accordance with our Privacy Notice.

Privacy and compliance

ChemCapital is designed with GDPR-aware data handling principles including data minimisation, purpose limitation, and user access controls. We support privacy-conscious access management and are expanding enterprise governance capabilities.

Need a security review before onboarding?

We welcome enterprise security assessments, vendor questionnaires, and technical architecture discussions. Speak with ChemCapital about your security and procurement requirements.