Admin user login
Authenticates an admin user (a staff member of a client organization) and returns a Passport access token plus billing, entitlement and access snapshots for the organization. This is the entry point for the admin web app. The login flow also refuses logins for incomplete registrations, archived/decommissioned clients, inactive staff memberships, or users without an access role. A temporary organization lifecycle lock returns a retryable 409 response.
Body
Email + password credentials.
Response
Login succeeded. Returns a bearer token, the authenticated user, a permissions map, and client billing snapshot.
"success"
Legacy organization-billing classification returned for compatibility. This is not the organization lifecycle state and may include historical values such as lead, due, or closed.
"active"
Client organization display name.
"Gratona Demo Org"
"https://demo.gratona.com"
Laravel Passport bearer access token. Send as Authorization: Bearer <token> on subsequent requests.
"eyJ0eXAiOiJKV1QiLCJhbGciOi..."
"2024-06-01T12:00:00Z"
"2026-04-10T08:00:00Z"
39
Computed billing amount for the client.
39
An admin user — staff member of a client organization. Authenticates via Laravel Passport (bearer JWT) for the admin web app, and may also issue API keys (via ApiKey) for server-to-server integrations. Permissions are stored as JSON keyed by feature; group membership (group_id) supplies a baseline permission set on top of the per-user override.
free, pro, growth, enterprise, custom, discounted "pro"
legacy, new, custom "legacy"
Public pricing quote for the organization, including billable sponsorship units and the amount due in cents.
Resolved organization feature entitlements with live AI quota usage where available. Null when resolution fails.
Server-derived access role and effective authority for the authenticated staff member.
Effective permission map for the user's group; merged donor permissions are auto-added when group_all is granted.