Built to be the safest vendor you onboard.
Reckon carries one of the most sensitive responsibilities a vendor can — access to your AI provider keys. We treat that as the single largest trust risk we hold, and we designed the product around minimizing it.
Architecture
Read-only by design
We never sit in your request path to AI providers. We poll the admin/usage APIs they already expose and read what they report. There is no proxy, no TLS termination of your traffic, and no mechanism for us to see, route, modify, or throttle your AI calls.
We never see prompts or responses
Because we are a passive observer, we have no access to the content of your AI requests — no prompts, completions, embeddings, or files. We only ingest the aggregate usage numbers (tokens, model, cost) the provider publishes at the API-key level.
Separation of planes
The web application, background ingestion workers, and database run as separate concerns. Provider keys are only ever decrypted inside the ingestion worker — never in the web tier that serves your browser.
Encryption & key management
Envelope encryption for every provider key
Each API key is encrypted with AES-256-GCM using a unique per-key data key. That data key is itself encrypted by a master key (CMK) held in AWS KMS — the key material never leaves KMS. A leak of our database alone reveals nothing usable.
Encryption in transit
All connections use TLS 1.2+. Outbound calls to providers go through a single hardened HTTP client with strict timeouts.
Minimal exposure
Only the last four characters of a key are ever displayed in the app or written to logs. Plaintext keys never enter logs, error messages, or monitoring tools, and the plaintext data key is zeroed from memory immediately after use.
Key rotation
The KMS master key has automatic annual rotation enabled. Per-key data keys are single-use by construction.
Tenant isolation
Defense in depth
Every row of customer data carries an organization ID. Application queries are always scoped to the caller's organization, and Postgres row-level security policies enforce that scoping as a backstop.
Bugs fail closed
If a query is ever mis-scoped, row-level security returns zero rows rather than another organization's data — turning a would-be leak into an empty result.
Authentication & access
We don't roll our own auth
Authentication is handled by Clerk. We never store passwords. Sessions are JWT-based and validated server-side on every request. Social sign-in (Google, GitHub) uses our own OAuth credentials, scoped to email and profile only.
Roles
Organizations have admin and member roles. Sensitive actions — managing keys, billing, and integrations — are restricted to admins and enforced server-side.
Integrations & webhooks
Every inbound webhook is verified
Stripe webhooks are verified against the signing secret; Slack requests are verified with the signing secret and a timestamp window; Clerk webhooks are verified with Svix signatures. Unsigned or stale requests are rejected.
Scoped integration tokens
Slack and Linear tokens are stored with the same envelope encryption as provider keys and request only the scopes needed to post digests and file issues.
Operations & reliability
Idempotent, retryable ingestion
Usage ingestion is idempotent (safe to re-run) and isolated per key, so a single failing key never blocks others. Jobs run on managed infrastructure with retries and dead-letter handling.
Monitoring
Errors are captured in Sentry, tagged by organization, so we can detect and respond to issues quickly without exposing secrets.
Managed, backed-up infrastructure
We run on managed providers (Vercel, Supabase Postgres, AWS KMS, Inngest) with automated backups and point-in-time recovery on the database.
Data handling
Retention you control
Usage records are retained per plan (30 days Free, 365 days Pro) and pruned automatically. You can request deletion of your organization's data at any time.
No data resale, no model training
We never sell your data and never use it to train machine-learning models. Data is shared only with the sub-processors required to run the service, listed in our Privacy Policy.
Responsible disclosure
If you believe you've found a security vulnerability, please report it privately to brianmello96@gmail.com before disclosing it publicly. We'll acknowledge your report, investigate promptly, and keep you updated. We're grateful to researchers who help keep Reckon and its customers safe.