Authorization
Authorize a business
Access to a business's data is granted by its owner through an authorization-code flow.
The owner approves your app on Valverna's consent page, you receive a short-lived code,
and exchange it for a vlv_ access token.
How it works
Exchange the code
/v1/authorize Exchange the authorization code — an auth_-prefixed
64-character hex string — for an access token. Codes are single-use and expire 10 minutes after the owner approves — an expired or already-used code is rejected with 400 invalid_grant.
Request body
{ "code": "auth_8f3c2b91d4e7a605..." }
Response 200 OK
{ "accessToken": "vlv_8b2c4f1e9a...", "tokenType": "Bearer", "businessId": "biz_9f3a2c81", "scopes": ["transactions.read", "business.read"] }
Use the token in the Authorization: Bearer header
for all subsequent requests — it is scoped to the single business in businessId.
Revocation
Tokens do not expire on their own. The business owner can revoke the grant at any time from their
Apps & Access settings, after which every request with that token returns 401 access_revoked.
Treat it as terminal: stop making requests and ask the owner to authorize again.