Skip to main content
Authenticate a bookkeeper admin user with email and password. On success returns the admin record plus a JWT, and sets an auth-token cookie.
Authentication: none (this is how you obtain a token). Rate limit: 5 attempts per 15 minutes, per client IP (returns 429 when exceeded).

Request body

string
required
The admin’s email address. Must be a valid email; matched case-insensitively.
string
required
The admin’s password. Must be at least 1 character (verified against the stored bcrypt hash).

Response

On success returns 200 with the authenticated admin user (password hash stripped) and a signed JWT.
boolean
true on success.
object

Errors

Failed and successful logins are both audit-logged with the client IP and user agent. Account inactive and Organization inactive are returned before the password is checked once the user is found.

Examples