Security
Agents work inside your limits. Everything else stays yours.
Buyer agents can quote your prices only through keys you approve, only within the limits you set, and only from the rules you published. Here is how that works, and what we do not claim yet.
Agents only do what you allow
Approved keys, with limits
A quote needs a key you issued or approved for that agent. Each key has its own scopes and expiry, and you can cap its quotes per hour, pricing calls per hour and quoted value per day. Revoke a key and only that key loses access.
A person approves above your threshold
Above the threshold you set, a quote goes to someone on your team and cannot be executed until they approve it. Quotes approved without a person add up per buyer over a rolling 24 hours, so splitting a large order still reaches a person.
A stop button
Your workspace has a kill switch that pauses all agent traffic, keyed and anonymous. Switch it back on when you are ready.
You see who signed
When an agent signs its request with Web Bot Auth, Atlas checks the signature against the keys that agent publishes and shows you who signed, on the quote and the access request. Signatures are recorded, not required: your keys and approval rules still decide.
One quote request, checked in order
If a check fails, the agent gets
The key is one you issued or approved, and it has not been revoked.
401 INVALID_CREDENTIALThe key has not expired.
401 CREDENTIAL_EXPIREDYour kill switch is off.
503 AGENT_ACCESS_PAUSEDThe key has the scope for this call.
403 INSUFFICIENT_SCOPEYour published rules price the quote, and your policy accepts it.
422 POLICY_DENIEDThe key is inside its hourly, daily and monthly limits.
429 VELOCITY_LIMIT-
The quote comes back with your policy's decision.
- Within policy
201 indicative - Needs approval
201 approval-required
- Within policy
Your prices stay exact. Every number an agent gets is calculated, not generated.
- No AI in the quote path
- Quotes are calculated from the rules you published, in exact amounts, and each one names the rule and catalog version behind it. The same request against the same catalog version always returns the same quote.
- AI drafts, you publish
- AI helps turn your pricing pages and files into a catalog draft. Every change is shown before it applies, and nothing goes live until someone on your team publishes it.
- A hostile page cannot rewrite your rules
- When the copilot syncs your pricing page, it treats the page as untrusted text and can only propose price changes into a draft. Changes to your approval policy, currency or billing period come back as suggestions you choose, never as edits.
Your data and keys
How your data is processed, and by whom, is in the DPA and on Subprocessors.
Sellers are isolated from each other
Every workspace API is scoped to the signed-in seller, and automated tests check that one seller cannot read or change another seller’s data.
Secrets encrypted, agent keys hashed
Stripe and Chargebee keys and webhook signing secrets are encrypted at rest and never returned by the API. Agent keys are shown once, then stored only as a hash, so nobody can display one again.
Restricted Stripe keys, signed webhooks
Stripe connections accept only restricted keys, so you grant exactly the permissions Atlas needs. Webhooks to your systems are signed and carry a timestamp and a unique event ID, so your receiver can reject old or repeated deliveries.
What we do not claim yet
We do not have a SOC 2 report or a third-party penetration test yet. We plan to start SOC 2 when Enterprise customers need it.
Ask us anything about security.
Email security@pairrail.com with questions, a security questionnaire, a vulnerability report or to request our security overview.