Purple Pepper handles tenants' national insurance numbers, bank details, proof of identity, and signed legal agreements. Here is exactly what we do — and don't do — to keep that data safe.
Landlord bank details and applicant PII — NI numbers, dates of birth, income figures — are stored under AES-256-GCM encryption. The fields most likely to cause harm if exposed are the first to be protected.
HSTS is enforced across every route. HTTP connections are refused and upgraded. Strict-Transport-Security, X-Frame-Options: DENY and X-Content-Type-Options: nosniff headers ship on every response.
A Content Security Policy header is set on every page. Inline scripts use nonces. Image sources are restricted to specific, known CDN hostnames — no wildcard remotePatterns.
[ AUDIT / ACCOUNTABILITY ]
The audit log captures IP address, device, user, entity, and timestamp on every mutation — not just the headline actions. Failed authentication and authorisation events are logged explicitly, not silently dropped. Logs are paginated and filterable but never editable.

Middleware verifies identity via JWT cookie — no database call on every protected route load. Auth failures are logged to the audit trail immediately.
Bank sort codes, account numbers, NI numbers, dates of birth, and income figures are encrypted with AES-256-GCM before writing to the database.
An audit middleware intercepts every tRPC mutation. CompanyId, userId, IP address, entity type, and timestamp are written before the response returns.
Auth routes and all public-facing API endpoints are protected by Redis-backed rate limiting — not in-memory, so limits hold across serverless instances.
[ FAQ / SECURITY ]
Join the waitlist to access Purple Pepper. If you have specific security or data handling questions before you do, email sf-core-org-support-purple-pepper@saas-factory.ai — a real person will respond.
[ AML / IDENTITY ]
AML and KYC checks run through the Blinc-UK API — liveness tests, AI-powered document scanning, proof of address — all browser-based, no app download required. Every check consumes one credit from an auditable ledger and records the initiating agent, timestamp, and result. Nothing is eyeballed and filed away.
Virtual, non-face-to-face identity checks via Blinc-UK
Per-check credit ledger with agent attribution
Full result history stored against the applicant record

[ DATA / CONTROLS ]
Multi-branch agencies scope every record — properties, tenancies, offers, documents — to the branch. A Weybridge agent cannot see a Cardiff branch's portfolio. Cross-branch managers see an aggregated view only when their role permits it. Role-based access (admin, agent, read-only) is enforced at the API layer, not just the UI.
Admin, agent, and read-only roles enforced at every tRPC procedure — not gated at the front end only.
[ GDPR / DATA RIGHTS ]
Subject Access Requests, data correction requests, and complaints escalation pathways are built into the platform — not handled by an email thread. Records due for deletion under the retention schedule are surfaced automatically. ICO registration details are published on the GDPR page.
Subject Access Requests SAR form routes directly to the DPO — no manual forwarding step.
Data correction requests Inaccurate data correction form with structured workflow built in.
Complaints escalation ICO escalation pathway disclosed and linked from the GDPR page.
[ eSIGN / DOCUMENT INTEGRITY ]
Document open and read events are recorded — including how many times a recipient opened the link — before any signature is collected. If a tenant never signs, a date- and time-stamped proof-of-service record is available to download as court evidence.
Open and read tracking with count logged against the tenancy record
Proof-of-service export for unsigned documents — admissible evidence trail
Visual signing status indicators: red = awaiting, green = signed, per signatory

[ COMPLIANCE / RISK ]
Every compliance risk — gas safety, EPC, EICR, deposit protection — is logged with date, registrant, status, and resolution. When a certificate expires or a deposit window closes, the agent sees it before the law does. Automated expiry alerts run daily across the entire portfolio.
30-day, on-expiry, and post-expiry automated certificate alerts
Compliance risk register with status tracking (outstanding / closed / committed)
Renewed certificates auto-distributed to all active tenants on that property
Legally required deposit confirmation captured within the 30-day window
Properties, tenancies, and offers are scoped to the branch. Cross-branch visibility requires an explicit admin-level grant.
Tenant portals, landlord portals, offer forms, and signing pages are all reached via single-use, tokenised URLs — no shared credentials.
Retention schedule enforcement Records flagged automatically when due for deletion under the retention policy.
GDPR consent on contact forms Consent checkbox and Privacy Policy link present on every external form.
Public GDPR page Privacy Policy, GDPR disclosures, and ICO details publicly accessible — no login required.
Webhook-confirmed signed PDFs stored in the document table with full audit event
Re-issuance on email correction: prior signatures voided and logged before new request sent
Configurable sequential or parallel signing order per document send
