Exchange authorization code for access token, or obtain access token using client credentials.
Supported Grant Types:
authorization_code: Exchange authorization code from login flow (requires Basic Auth with client_id:client_secret)client_credentials: Server-to-server authentication for POS systems (requires Basic Auth)refresh_token: Refresh an expired access tokenAuthentication:
All token requests require HTTP Basic Authentication with base64-encoded client_id:client_secret in the Authorization header.
Basic authentication header: "Basic {Base64(client_id:client_secret)}"
Token request for Authorization Code flow with PKCE. Requires Basic Auth header with client_id:client_secret.
Must be "authorization_code"
authorization_code The authorization code received from the callback
The same redirect_uri used in the authorization request
"clover://auth-callback"
The original code_verifier string used to generate code_challenge (43-128 characters)
Successful token response
The JWT access token to use in API requests via "Authorization Bearer {token}" header
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
Token type - always "Bearer"
"Bearer"
Token lifetime in seconds (typically 3600 = 1 hour)
3600
Refresh token to obtain new access token when current expires (not provided for client_credentials grant)
"df8a2f3e..."
The scopes granted by this token
"clearline_api"