TRUST, DOCUMENTED

Built to be
trusted with your SIN.

Every control we run, stated plainly — including the ones we deliberately don't have.

Encryption
AES-256 + TLS 1.3
Bank access
Read-only
Bureau
One Canadian bureau — reporting not yet active
Regulation
PIPEDA + Law 25

Last updated · April 2026/For procurement questionnaires or a signed copy of this document, email security@elitetenants.com.

01

System architecture

There are no servers of ours sitting online waiting to be broken into. Each request runs in its own short-lived, isolated process and disappears when it finishes — which removes a whole class of attack before it starts.

Data flow — user request lifecycle
1User (browser / mobile)
↓
2Edge network — TLS 1.3 termination, DDoS protection
↓
3Next.js Serverless Function (isolated per request)
↓
4Response returned — function terminates, no state persists
02

Encryption

In transit
All traffic uses TLS 1.3. HTTPS enforced everywhere — HTTP requests are automatically redirected. Certificates managed by our hosting provider.
TLS 1.3 · HSTS
At rest
All database data is encrypted at rest using AES-256. Lease documents are encrypted at rest in private cloud storage.
AES-256 at rest
Bank-connection tokens
Bank access tokens are stored encrypted in the database. Tokens are revoked immediately on account deletion via the provider's token-revocation API.
Token revoked on delete
Credentials — never stored
We never see, transmit, or store card numbers or banking credentials — those are handled exclusively by our PCI-compliant payment and bank-connection providers. Any SIN digits you optionally provide for credit-file matching are stored encrypted by us, as described in our Privacy Policy.
SIN stored encrypted
03

Access controls

  • No direct database access from the client. All database reads and writes go through authenticated server-side API routes. The database service-role key never leaves the server.
  • Every API route verifies the session token before touching any data. Unauthenticated requests return 401.
  • Users can only access their own data. Every query is scoped to the authenticated user's ID. There is no way to request another user's records.
  • Admin routes are double-gated. Middleware checks the admin role claim, and each admin API route re-validates the role independently.
  • Admins require MFA. Every admin account must have multi-factor authentication enabled (TOTP authenticator app). Admin routes that write data additionally verify the MFA claim is present in the session token — a stolen admin password alone cannot modify data.
  • Lease documents use signed URLs that expire after 60 minutes. There is no permanent public URL for any lease file.
  • Payment webhooks are signature-verified. We reject any webhook that doesn't include a valid provider signature to prevent spoofed payment events.
MFA + admin IP allowlist
04

Fraud detection & review

Five independent signals run on every payment we detect, before it can count toward a rent record. Anything they flag is rejected outright or held for a human reviewer.

  • S1Category blacklist. Transactions categorized by the bank-data provider as mortgage, car loan, or student loan payments are auto-rejected — they cannot be reclassified as rent.
  • S2Account-holder name collision. We compare the tenant-reported landlord name against the transaction counterparty name using Jaro-Winkler similarity. A high match (suggesting self-payment) flags for manual review.
  • S3Matcher confidence floor. Any payment below our rent-matcher's confidence threshold is flagged, not reported, even if other signals are clean.
  • S4New-tenant scrutiny. First three months of a tenant's payment history receive tighter thresholds; a clean track record relaxes them.
  • S5Manual review queue. All flagged payments land in an admin adjudication surface with the full transaction category, counterparty name, match confidence, and historical context. Only a reviewer can promote them to "Reported" status. Payments rejected in review are never sent to the bureaus.
flagged payments never auto-furnish
05

Audit logging

Every privileged action writes to one of two append-only audit tables. Neither table has a DELETE endpoint exposed — records can only be added.

Admin action trail
Every admin-initiated action — who did it, what they did, and when. Used for compliance audits and the “who last touched this” trail bureaus request.
Payment review trail
Every status change on a payment, recorded with who changed it, why, and what the fraud signals said at the time. Reconstructs the full adjudication history of any payment.
06

Backup & business continuity

  • Automated daily backups of the primary database, retained 7 days.
  • Migrations are version-controlled. Every schema change is written as idempotent, version-controlled SQL and applied through a reviewed process.
  • Infrastructure as code. Application configuration and database migrations are version-controlled. A total-loss rebuild is measured in hours, not days.
  • Stateless compute. Because serverless functions hold no state, a hosting outage redirects traffic automatically across edge regions with no data risk.
07

Incident response & breach notification

We maintain a written incident response plan covering detection, containment, eradication, recovery, and post-incident review. Key commitments:

  • PIPEDA-aligned breach notification. In the event of a breach involving real risk of significant harm, affected individuals and the Office of the Privacy Commissioner of Canada are notified as soon as feasible — our internal target is within 72 hours of confirmation.
  • Runbook-driven response. Incident categories (data exposure, credential compromise, vendor outage, fraud incident) have predefined response steps covering roles, escalation paths, and evidence preservation.
  • Plan review cadence. Runbooks are reviewed and revised as our architecture evolves, with incident learnings folded back in after each event.
  • Active-incident disclosure. Any incident materially affecting availability, data integrity, or user data is communicated directly to affected customers via the email on their account, in addition to any regulatory notifications required.
08

Responsible disclosure

Security researchers are welcome. If you believe you've found a vulnerability in Elite Tenants:

  1. Email security@elitetenants.com with details and reproduction steps.
  2. Do not publicly disclose the issue until we've had a reasonable window to investigate (we target acknowledgement within 72 hours).
  3. Do not access, modify, or exfiltrate data that isn't your own. Use your own test accounts.
  4. No automated scanning against production (credential-stuffing lists, DDoS, etc.).

We don't currently run a paid bug bounty, but we publicly acknowledge valid reports with the reporter's consent.

09

What we store and where

Data typeWhere storedRetention
Identity
Full name, email, phone number
Encrypted cloud databaseUntil account deletion, then 30 days
Rental details
Address, monthly rent, landlord name, lease start date
Encrypted cloud databaseUntil account deletion, then 30 days
Lease document
PDF or image of signed lease
Encrypted cloud storage — private bucket, signed-URL access onlyUntil account deletion, then 30 days
Bank connection
Institution name, last 4 digits of account, encrypted bank-connection token
Encrypted cloud database (token encrypted). Full credentials never stored.Token revoked and deleted on account deletion
Payment history
Month, amount, on-time/late status, reporting date
Encrypted cloud database7 years (Canadian tax law requirement)
Subscription
Plan type, status, billing customer ID
Cloud database + payment processorAnonymized and retained 7 years for tax records
Auth sessions
Session tokens, device info
Authentication provider (never touches our database)Auth-provider session TTL (30 days inactive)
Card / banking credentials
Card numbers, bank login credentials
Never stored by Elite Tenants. Handled by our PCI-compliant payment and bank-connection providers.N/A
10

Vendor security certifications

Every third-party provider in our stack holds independent security certifications. We don't build what we can safely buy from a certified provider.

Cloud database & file storage
Primary data store
Tenant profiles, payment history, lease documents, referrals
SOC 2 Type IIISO 27001
Authentication & identity
Sign-in, sessions, MFA
Email addresses, session tokens, user IDs
SOC 2 Type II
Payment processor
Subscriptions & billing
Subscription status, billing history. We never see card numbers.
PCI DSS Level 1SOC 2 Type IIISO 27001
Bank-connection provider
Read-only bank transaction data
Bank connection token (encrypted). Read-only — cannot initiate transfers.
SOC 2 Type IIISO 27001PCI DSS
Application hosting
Serverless edge network
No persistent data. Handles HTTPS termination and edge routing.
SOC 2 Type IIISO 27001
Email delivery provider
Transactional email
Email logs for 30 days
ISO 27001SOC 2
11

Regulatory compliance

PIPEDA (Canada)
Personal Information Protection and Electronic Documents Act. We collect only what's necessary, maintain a named Privacy Officer, provide in-app data export and deletion, and have a documented breach notification procedure.
Quebec Law 25 / Bill 64
Stricter Quebec privacy law. We collect explicit consent for cross-border data transfers and support data portability.
CASL
Canada's Anti-Spam Legislation. Commercial email goes only to people who asked for it or already do business with us, and every message carries a one-click unsubscribe.
PCI DSS (via our processor)
We are not a card data environment. Our payment processor is PCI DSS Level 1 certified — card data never touches our servers.
User rights
Users can download all their data (JSON export), delete their account (bank-connection token revoked, records purged), and contact our Privacy Officer at privacy@elitetenants.com. All in-app.