401 with
WWW-Authenticate: Bearer realm="dueflow" — identical on purpose, so probing
can’t distinguish “wrong secret” from “revoked yesterday”:
Token types
Create a personal access token in the dashboard under Profile → Developer,
or, if you are an organization admin, a service token under Settings →
Developers. The secret is shown once and stored only as a hash — if you lose
it, revoke the token and create another.
Use a service token for anything that has to keep running when a person leaves:
it belongs to the organization rather than to whoever created it, so officer
turnover doesn’t break the integration. Its role is fixed at creation and caps
what it can do; admin is not available, so a service token can never change
organization settings or approve reimbursements.
Organization policy
An organization’s admins can block scopes for every token they issue, personal and service alike, under Settings → Developers. A blocked scope can’t be requested at creation and is dropped from tokens that already hold it, so a call that worked yesterday can returninsufficient_scope today without
anything about your token changing. The effective permissions of any request
are therefore:
Expiry and rotation
Tokens expire — a maximum of 365 days (less if the organization’s policy says so), defaulting to 90. There is no never-expiring option. We email before that happens: 14 days out and again 3 days out. Personal tokens notify their owner; service tokens notify the organization’s admins, since nobody owns them. A service token can be rotated from its card in the dashboard. Rotation issues a successor with the same role and scopes and a new secret, and keeps the predecessor alive for an overlap window (7 days by default, 30 maximum) so you can deploy the new secret without downtime. Both work during the overlap; the old one stops the moment it closes. Watch the predecessor’slastUsedAt on its card during the window — if it’s
still being used near the end, something didn’t pick up the new secret.
Personal tokens don’t rotate: create the replacement, deploy it, revoke the old
one.

