Links and Institutions
At Belvo, we use two core concepts (and endpoints) that you need to be aware of while integrating and using the Belvo API: π¦ Institutions and π Links.
Institutions


An Institution
is an entity that Belvo can access information from. It can be a:
- bank institution, such as Banamex retail banking or HSBC business banking.
- fiscal institution, such as the Servicio de AdministraciΓ³n Tributaria (SAT) in Mexico.
- gig institution, such as Uber or Rappi.
Belvo resources and institutions
Not all institutions support the same Belvo resources. For example, the Accounts resource (used with banking and gig institutions) won't be supported in fiscal institutions. To know which resources you can use for each institution, look at the
resources
array when you use one of the methods in the table below.
You can see a complete list of banking institutions by either consulting our Institutions page, or querying the following resources:
Links
Whenever a user connects to their institution using the Belvo API, we create a Link. A Link is a set of credentials, for example the username and password, that is associated with the user. You will always need to first register a Link before being able to access information specific to that end user.
You can perform the following operations with our Links resource:
Endpoint | Method | Description |
---|---|---|
| Register a new link from a financial institution to your Belvo account. | |
| List all links currently associated with your Belvo account. | |
| Resume a link registering session that was paused because an MFA token was required by the institution. | |
| Get the details of a specific link. | |
| Update the password of a specific link. | |
| Delete permanently a link and all associated accounts, transactions, and owners information from your Belvo account. |
Use your own identifier π€©
We really recommend you make use of the
external_id
parameter when creating links as this will allow you to have your own unique identifier for a link in your own database. Check out our Link creation best practices article for more information.
Recurrent links
With recurrent links, Belvo automatically refreshes information weekly and notifies you via webhook so you always have up-to-date data. Then, when you receive the webhook, you can use GET requests to the List or Detail endpoints to instantly access up-to-date information, without needing to connect to the institution.


Recurrent link flow
When you create a recurrent link, Belvo automatically retrieves key information about the Link ID. Once we have the information, we'll send you a webhook event indicating that you can make a GET request for that information.
We recommend you don't make POST calls immediately after a link is created. Instead, wait for a historical update webhook which indicates that Belvo has scraped the data and then you can make a GET request to retrieve the information (the webhook is sent soon after a link is created). If you make a GET request before you receive a historical webhook, you will receive responses with empty data fields or duplicated information.
Use of user credentials
When using recurrent links, you must ensure that you comply with the data privacy regulation of the country you operate in. Additionally, we recommend that you inform users that their credentials will be used daily in order to cyclically retrieve up-to-date data.
By default, recurrent links are automatically refreshed once every 7 days. However, you can change the update frequency of your recurrent links to every:
- 6 hours (four times per day)
- 12 hours (twice a day)
- 24 hours (once a day)
To change your refresh rate, just email our sales team at [email protected], and they'll get right to it.
Institution | Initial information | Refreshed information |
---|---|---|
Banking | All accounts, balances, transactions, and owner information |
|
Fiscal | All invoices, the tax compliance statuses, tax returns, and the tax status. |
|
Gig economy | All accounts, transactions, and owner information |
|
Single links
Single links are used to perform ad hoc data access to accounts, owners, transactions, and so on. For example, you can use it when you want to do an underwriting process to assess risk before lending money.
For single links, you have to perform POST calls to an institution every time you want to access fresh data.
Link statuses
A link can have different statuses, which reflect if the link is operational or if an action is needed to restore the link.
Status | Description | Action |
---|---|---|
| A | None π |
| An | You need to ask your user to update their credentials in order for the link to be valid again. π‘Use the Connect widget in update mode to ask your user to provide a new password. |
| An | You need to resume the link creation process with a token to complete the link creation. |
| A | You need to resume the link update process with a token. π‘Use the Connect widget in update mode to ask your user to provide a new password. |
Checking the status of a link
You can find the status of a link by making one of the following queries and checking the value of the status field in the JSON response:
List all current links
Use the List all links method to get all the links you currently have access to. You can perform filtering on the responses to return just the links that have a certain status. In the example below, we filter the response to just have invalid links.
curl -- request POST 'https://sandbox.belvo.co/api/links/?status=invalid'\
-u [Secret Key ID]:[Secret Key PASSWORD]
curl -- request POST 'https://sandbox.belvo.co/api/links/'\
-u [Secret Key ID]:[Secret Key PASSWORD]
If you want to know about applying filters in your queries, see our Filtering responses article.
Get details for a specific link
Use the Get a link's details method to get the details for a specific Link.
curl -- request GET 'https://sandbox.belvo.co/api/links/{id}' \
-u [Secret Key ID]:[Secret Key PASSWORD]
...
{
βidβ: βc70a25d4-d8ad-9999-b59e-b8f57f0e7123",
βinstitutionβ: βliverpool_mx_retailβ,
βaccess_modeβ: βrecurrentβ,
βlast_accessed_atβ: β2019-10-04T10:58:20.374432Zβ,
βstatusβ: βvalidβ, // Status of the link. In this case it's valid - perfect!
βcreated_byβ: βb18626ab-74aa-45fd-a66d-babf1461f962"
}
...
Where:
{id}
is the ID of the link. For example:c70a25d4-d8ad-9999-b59e-b8f57f0e7123
.
What next
Now that you're caught up on institutions and links, check out our articles on:
- Product documentation
- Multi-factor authentication
- Filtering responses
Updated 5 days ago