API keys (server-to-server)
Every API-key request includes your key pair as headers: Every request to a tenant-scoped endpoint must include your API key pair:
The tenant is resolved automatically from the key pair - you never pass
tenantId in the URL or body.
Each key is bound to one environment and a set of scopes. A request must satisfy both the key scope and the tenant role permission enforced by the endpoint. A key with sanctions.read, for example, cannot submit a screen or record a decision.
Key types
The
_live_ / _test_ segment is set when the key is created and reflects the environment the key belongs to. Keys created in a live environment get _live_; keys created in a sandbox environment get _test_. The mode is baked into the key string so you can tell at a glance whether a leaked credential touches production data.
Example
User sessions (dashboard & end-user flows)
The dashboard and user-facing flows (hosted KYC, escrow acceptance) authenticate users with short-lived JWTs plus a session cookie. You don’t manage these directly - they’re issued by/auth/login and refreshed automatically by the dashboard.
If you’re building a customer-facing app that needs a user session, use Single Sign-On below rather than hand-rolling the JWT flow.
Single Sign-On (SSO)
For platforms that want to delegate authentication to their own identity provider, Zquence supports SAML 2.0 and OIDC. Contact sales to enable SSO on your tenant. Once enabled, your users are minted a Zquence session from your IdP - no password management on our side.Which auth do I use?
Rotating keys
Keys should be rotated on a schedule and immediately after any suspected exposure.1
Create the new key
Create a new key pair in the dashboard.
2
Deploy the new key alongside the old
Update your secrets manager. Keep the old key live so in-flight requests don’t fail.
3
Revoke the old key
Revoke the old key pair in the dashboard.