Skip to main content
OAuth 2.0 lets your application act on behalf of any EffiLink user — without ever handling their password. Instead of using your own credentials, your app guides the user through an authorization flow, receives a short-lived authorization code, and exchanges it for a permanent access token. This token is then attached to every API request you make on that user’s behalf.

Prerequisites

Before starting the OAuth flow, you must register an OAuth application in the EffiLink platform. Registration provides you with three credentials you will need throughout the flow:

Authorization flow

1

Build the authorization URL

Direct the user to EffiLink’s authorization endpoint. They will see an EffiLink-hosted page asking them to approve or deny access to your application.
Example request:
After the user approves, EffiLink redirects them to your redirect_uri with an authorization code appended as a query parameter:
The authorization code expires in 5 minutes. Exchange it for an access token immediately after receiving it.
2

Exchange the code for an access token

Call the token endpoint with the authorization code to receive an access token.
Example request:
Example response:
Response fields:
3

Use the access token in API requests

Add the OAuth header to every API request, using the access token obtained in Step 2.
The OAuth header must be present on every request that requires user-level authorization. Requests with a missing or invalid token will receive a 401 Unauthorized response.

Token expiry and renewal

By default, EffiLink access tokens are permanent (expiresIn: -1). If a token is close to expiring (less than 5 minutes remaining), you can generate a new token by repeating the authorization flow. During the brief overlap period, both the old and the new token are valid simultaneously, allowing you to rotate tokens without downtime.
Store access tokens securely — treat them with the same care as passwords. Never expose them in client-side code, URLs, or logs. Use a server-side secrets store or environment variable to manage them at runtime.