Skip to content

Scopes

Scope Grants Requirement
openid The person’s sub. Always present, cannot be unchecked
profile Their name
email Their email and email_verified
invoices:read Read all their invoices, not only yours
invoices:write Write invoices attributed to your verified brand Verified domain
offline_access A ninety-day refresh token

A shop writes and never reads. A tax accountant reads and never writes. Neither implies the other, and granting both to the same client is an explicit decision at registration.

invoices:write is tied to your brand: your name appears in the person’s expense list as a verified merchant, and the consent screen says “wants to record invoices in its name”. The only defence the reader has is that name, so the name has to mean something.

Without the check, anyone could sign up as “Amazon” and write invoices attributed to Amazon into the account of whoever consented.

Verification is checked when the client is created, not when it is used. A client that never received the permission cannot ask for it later.

No administrative permission, under any circumstances. Scopes map to SCOPE_* authorities and nothing else.