Brivio Developers
Create accountSign in
OverviewQuickstartAuthenticationIdempotencyWebhooksErrors & sandboxSDKs & CLIMCP serverOAuth2 appsAPI reference

OAuth2 apps

Build integrations that connect to other people's Brivio organizations with their consent — the standard authorization-code flow with PKCE.

Register your app

In Developers → Apps, register an OAuth app to get a client_id (and a client_secret for confidential clients). Configure your redirect URIs and the scopes you need.

Authorization flow

1. Redirect the user
https://app.brivio.ro/api/oauth/authorize
  ?client_id=YOUR_CLIENT_ID
  &redirect_uri=https://yourapp.com/callback
  &response_type=code
  &scope=invoices:read invoices:write contacts:read
  &state=RANDOM_STATE
  &code_challenge=BASE64URL(SHA256(verifier))
  &code_challenge_method=S256

The user signs in, picks the organization and environment (live or sandbox) to grant, and reviews your requested scopes on the consent screen.

2. Exchange the code
POST https://app.brivio.ro/api/oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&code=AUTH_CODE
&redirect_uri=https://yourapp.com/callback
&client_id=YOUR_CLIENT_ID
&code_verifier=VERIFIER
Response
{
  "access_token": "brivio_at_...",
  "refresh_token": "brivio_rt_...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "invoices:read invoices:write contacts:read"
}

Using tokens

Access tokens work exactly like API keys against https://api.brivio.ro/v1. Refresh tokens rotate on every use — reusing an old refresh token revokes the whole chain (leak protection), so always persist the newest pair.

Grant types

authorization_code (+PKCE) for user-delegated access, refresh_token for rotation, and client_credentials for app-level access to organizations that installed your app.