The Gateway accepts two credential types. Pick by caller. A key is a string shaped sq_agt_<random>. Send it on every request:
Keys are:
  • Scoped — carry only the scopes you grant.
  • Tenant-bound — locked to a merchant (and optionally specific stores).
  • Hashed at rest — only a SHA-256 hash is stored; the plaintext is shown once.
  • Rotatable & revocable — rotate (POST /keys/{id}/rotate) or revoke (DELETE /keys/{id}) anytime.
  • Rate-limited — per-key, with an optional per-key override.
If a key is bound to multiple stores, pass X-Store-ID: <store_id> to choose one.

Managing keys

User JWT (interactive / embedded)

A logged-in dashboard user’s JWT also authenticates the Gateway and acts as that user with full scope — convenient for embedded/interactive agents. The dashboard’s Agent Access pages use this.
Prefer service-account keys for autonomous agents: they are least-privilege, independently revocable, rate-limited per agent, and produce a clean per-agent audit trail.

Headers at a glance