April-June 2024

by Dominik Cholewski

🚨 Development Environment Deprecation

🚧

Please note that the Development Environment will be deprecated in June 2024.

To improve your integration experience, we will be deprecating our development environment at the end of June 2024 and substituting it with direct access to production with an activity limit that you can use for free.

Why the change?

Maintaining a separate development environment can pose challenges in ensuring feature parity with production, particularly in terms of performance and response times. By providing direct access to production, we aim to give you a more consistent and reliable experience.

What will happen with my existing data in development?

Data from links created in development will be deleted. Recurrent activity will stop and credentials of links will be deleted.

If you are currently using our development environment, our support team will reach out to you with additional details on the process. And of course, if you have any questions, do not hesitate to contact us!


Aggregation

🎉 New

Employments Colombia

Want to retrieve employment data about your users in Colombia? Well now you can! With our new Employments (Colombia) product, you can retrieve the last two years of your user's employment history. Check out our dedicated article and API reference for the details.

Employment Score (Mexico)

Our employment score for Mexico is an innovative combination of employment data and machine learning that generates a score predicting a user's employability and income in the next 3, 6, and 12 months. Try it now for free by reaching out to our support team! And don't forget to check out our Employment Records API reference for the details.


SAT Payroll Fields

We've updated our SAT Invoices product to now retrieve the following critical details regarding payrolls:

  • periodicity
  • earnings_breakdown
  • tax_deductions
  • other_payments

Check out the details of each new field in our Invoice API reference (scroll down to the responses section).

OFDA App2App Widget Flow

Bring a more native-like experience for your mobile users by utilizing our new App2App flow for the OFDA Widget.

Webhook trigger reason

Need to know if the webhook you received was for a historical update, a recurrent link update, or as a response to an asynchronous POST request? You'll be glad to hear that we've added the process_type parameter in all our webhooks to do just that.

📘

Webhook process_type

The process_type parameter indicates why the webhook event was triggered. We return one of the following values:

  • historical_update: The webhook was triggered as we finished a historical update for the data retrieval (for recurrent links and for single links with fetch_resources).
  • recurrent_update: The webhook was triggered due to the recurrent (cyclical) refresh of the data.
  • async_post: The webhook was triggered as the asynchronous retrieval of data from a POST call is complete.

Read up on the details in our Webhooks (Aggregation) article.

💪 Improved

Employment Records (Mexico) now supports async

You can now use the X-Belvo-Request-Mode: async header parameter in our Retrieve employment record details (Mexico) requests.

Update your links fetch_resources

Accidentally didn't add a resource to the fetch_resources parameter when creating a link? Well, you can now use our Modify a link's data retrieval request to not only update the access_mode, but also the fetch_resources!

Belvo webhook IP addresses

Want to whitelist the IP address that Belvo uses to send webhooks to you? Well, we've added it to our documentation for both Aggregation and Payment webhooks, but here they are just in case you missed them:

  • 3.130.254.46
  • 18.220.61.186
  • 18.223.45.212

👍

We highly recommend you whitelist these IP addresses so that you can receive webhook events.

Payments

🎉 New

Schedule one-off and recurring payments

Need to schedule a payment to occur within the next two years? Have no fear - we've got you covered. With our new Single Scheduled Payments feature, you can!

And say you wanted to schedule recurring payments? Then you'll be glad to hear that you can create daily, weekly, monthly, and custom payment schedules 😎.

If you accidentally scheduled a payment (or a set of payments) that you need to cancel, well, we thought of that too. Check out our Cancel a Payment Intent guide for the details.

💪 Improved

Add a statement description

Want to have more control over the description that will appear in your user's bank statement? Well, we've added the new statement_description parameter to our Payment Intent and Payment Links requests. With this new parameter, you can use the description parameter as an internal reference of the payment, and have a custom description for your user in the statement_description parameter.

January-March 2024

by Dominik Cholewski

Aggregation

🎉 New

Employments (Brazil)

Have you been waiting to retrieve employment data about your users in Brazil? In that case, the wait is over!!! With our new Employments (Brazil) product, you can 😀. Check out our dedicated article and API reference for the details.

Increased branding for OFDA widget

You can now customize your OFDA widget experience by applying your brand colors to key elements in the Belvo OFDA widget flow, allowing you to maximize conversion. For the details, check out the Add custom colors to the widget section of our Widget Branding guide.

OFDA Widget Migration Guide

Wondering how to alter your existing widget implementation to take advantage of OFDA in Brazil? Well, wonder no more! We created a dedicated guide that shows you step-by-step the changes you need to make.

New transacted_at field for OFDA transactions

You can now take advantage of a full timestamp for OFDA transactions using the transacted_at parameter, giving you increased precision regarding when a transaction occurred.


💪 Improved

Create asynchronous link with enrichment products

When creating a link, did you ever also want Belvo to asynchronously generate income, recurring expense, and risk insights reports? Then you're going to be happy to head that you can now add INCOMES, RECURRING_EXPENSES, and RISK_INSIGHTS to our fetch resources parameter.

🐞 Fixed

In our documentation, we also needed to clean up some typos and bugs, such as:

  • OFDA cutting_date: Previously we stated that this was the closing date of the credit card period, however, it is actually the date that the bill is due.
  • OFDA interest_rate_data: We incorrectly marked this as an array, when in fact it is an object.

Payments

💪 Improved

Payment Link Duration

To reduce security and forgotten payment risks, as well as encouraging more prompt payments, we've changed the maximum duration of the expires_in parameter from 90d to 30d. For more details, check out our Create a payment link API documentation.

🐞 Fixed

Plenty of fixes in our documentation to improve your experience and minimize errors that you may receive:)

  • Improved the documentation descriptions and regexes for all fields
  • Refined the error messages for invalid_choice and invalid
  • Improved delineation for OFPI request parameters
  • And plenty more!

Oct-Dec 2023

by Dominik Cholewski

Aggregation

🎉 New

Employment Metrics

Our employment metrics resource gives you in-depth data points regarding your user's employment history. Using employment metrics you can get the following information for each of your user's current work status, most recent base salary, employment duration, and more!

For more details, see our:

Credit card bills for OFDA

With our Bills product for OFDA, you can get information regarding the credit card bill associated with an OFDA credit card account. This includes: the total amount of the bill,
the due date for the bill to be paid, any fees and charges associated with the bill, and more!

For more details, see our:

My Belvo Portal

Introducing easy consent management for your OFDA users! The My Belvo Portal (MBP) allows users to manage the consent they have previously given to applications (using Belvo's OFDA product) to access their data in the Open Finance Network.

For more information, check our:

💪 Improved

Retrieve invoices asynchronously

You can now make asynchronous POST requests for invoices! By using the X-Belvo-Request-Mode=async header, you can reduce your risk of timeouts and improve your overall product flow.

For more details, see our:

Improved historical webhooks for SAT Invoices

To improve performance and your experience, our historical_update webhooks for SAT Invoices now send information in one-year batches.

For more details, see our:

Default single link credentials_storage now 365 days

To improve our data retention policy, we have changed the default credential_storage value from store to 365d for single links.

For more details, see our:

SAT Tax Returns: new fields for returns submitted after 2022

We've updated our response schema for SAT Business Tax Returns filed on or after 2022 with two new fields:

For more details, see our:

⚠️ Deprecated

The following API resources have been sunset to improve our other product areas:

  • Investment Portfolios
  • Receivables Transactions
  • Balances

The following institutions have been sunset due to low performance:

  • Inbursa Mexico
  • Liverpool Mexico
  • PageSeguro Brazil

The following fields have been removed from our API responses:

FieldResourceReason
emailEmployment Records MexicoLow probability of returning this field as it is now mandatory in the IMSS system.

🐞 Fixed

  • In transactions, the accounting_date field was previously documented as being a timestamp instead of a regular YYYY-MM-DD date. Now it's fixed!
  • In Invoices, the quantity field in the details object was previously retrieved as an integer. However, this did not allow for partial quantities (such as 0.7 of a kilogram), so we changed this field to a float.

Payments

💪 Improved

Payment intents can now be filtered by updated_at

With our List Payment Intents request, you can now order the response according to the last time the payment intent was updated.

For more details, see our:

Simplified customer creation for OFPI payments

When creating customers for OFPI payments, the email and name parameters are no longer required, simplify your flow.

Additional last_error errors for better troubleshooting

To provide you with even better granularity regarding the errors your users might encounter during the payment process, we've added the follow errors in the last_error object in payment intents:

  • missing_token_registration (link)
  • unauthorized_credentials (link)

August-September 2023

by Dominik Cholewski

Ah, that sweet summer breeze, golden beaches, and delightful product updates!

Payments

🎉 New

Shopify integration for Colombia

You can now add Belvo's PSE payment solution to your Shopify account in Colombia! For more information, just check our Shopify Colombia (PSE) documentation.

VTEX integration for Brazil

And for Brazil, you can now add Belvo's OFPI payment solution to your VTEX store - pretty awesome, right? For more information, just check our VTEX Brazil (OFPI) documentation.

Nequi now optimized for PSE Colombia

We expanded our optimized PSE payment flow to include Nequi, joining Bancolombia and Banco de Bogotá. Now, making payments via our payment widget is quicker and simpler for your users with Nequi accounts.

Improved payment widget flow with the last bank account used

Our payment widget just got smarter!! Now, the widget will remember the last bank account used by your user so that the next time they want to make a payment, their account will be pre-selected. This not only simplifies the payment process but also boosts conversion rates.

💪 Improved

ID validation for Colombia PSE

When creating a customer, we added input validation to ensure that your users provide the right ID number format given the ID type for payments using Colombia's PSE network.

Additional filter queries when listing payment intents

When listing payment intents, you can now:

  • use updated_at to filter results within a given time frame
  • use ordering to order the results by most recently updated (in ascending or descending order)
  • use search to filter your results by a given description.

For more information, check out our List Payment Intents API documentation.

Aggregation

🎉 New

Improved data retention with stale_in

We're focusing heavily on making sure that you have complete control over how long Belvo stores user data. That's why we've created a new stale_in parameter that indicates after how many days Belvo should automatically remove data for a link. Read up on this new field in our Data Retention Controls article.

💪 Improved

Additional bill details for OFDA credit card transactions

For our OFDA product, we added the following fields for credit card transactions to give you better clarity regarding which closed bill the transaction appears on:

  • bill_name - The name of the bill that the transaction appears on.
  • bill_due_date - The date when the closed bill is due to be paid.
  • bill_internal_identification - The institutions internal ID for the bill.

For more information, just check the response documentation for our Transactions resource.

API reference documentation excerpt for credit card transactions

API reference documentation excerpt for credit card transactions

Custom URL support for webview widget

We added support for adding your own custom deep-link URL for our Widget for Webviews, allowing you to receive webhook events at the URL of your choice. Check out our Widget for Webviews article for the details!

Customer callback URLs for OFDA widget

When creating OFDA links using our widget, you can now add the URLs your user will be redirected to after completing the process. For more information, read our OFDA widget token configuration documentation.

SAT Tax Returns improvements

Our team has been hard at work analyzing and improving SAT information to enhance your experience (there are some interesting improvements coming!).

This month, we discovered that for business tax returns filed after 2022, the fields estado_resultados, estado_posicion_financiera_balance, and conciliacion_entre_resultado_contable_fiscal are no longer returned and improved our data retrieval process. We updated our documentation to make sure that you know why these fields might be returning null.

⚠️ Deprecated

Balances resource deprecated on 02.10.2023

We've removed support for the Balances resource. You can still retrieve balance information for your link by using the Accounts resource.

SDK limited maintenance until 31.12.2023

We have transitioned to limited maintenance mode for our SDKs and will no longer provide updates for new features. Essential security updates will continue to be provided until December 31, 2023.

After this date, our SDKs will be archived and no further updates will be released (however, you will still be able to download them). While you are welcome to continue using the code please note that you will be solely responsible for managing and implementing any required security patches or updates.

Enrichment

🎉 New

Enrich your own data: Recurring expenses

Want to upload your own data and have Belvo identify your user's recurring expenses? Well it couldn't be easier with our EYOD Recurring Expenses product. Just provide a list of transactions, and Belvo will analyze whether your user has any recurring payments. Check out the details in our EYOD Recurring Expenses documentation.

Documentation Portal

🎉 New

Data retention controls

Our new Data retention controls article breaks down how you can manage data retention at both link and resource levels, helping you make more informed decisions. If you have any more questions, just let us know using the Feedback button on the right!

We also updated our error documentation with the errors you can receive while using the credentials_storage parameter:

Open finance network operational limits

We've put together an essential guide on Brazil's Open Finance network limits, helping you understand how often you can retrieve data and how to manage those limits easily.

💪 Improved

credentials_storage now supports custom date ranges

Previously, when you created a link you were limited to set the credentials_storage to a set period of days. Now, you can choose any value between 1d or 365d. You can read up on the details in our Data Retention control article.

Transaction status improvements

We've improved our transaction status categorization and with that, we've also updated our docs to reflect what possible statuses a transaction can have:

Transaction status enum description

Transaction status enum description

Receivables account example

This is a small one, but we finally added an example JSON payload for Receivable accounts. Now you know exactly what you can expect when requesting details for the account.

OFDA account numbers for credit cards

For credit card account numbers in OFDA, we return a concatenated string of one or more credit card numbers. We forgot to add that in our documentation, but now that's solved!

Updated description for OFDA credit card accounts

Updated description for OFDA credit card accounts

🐞 Fixed

We're always brushing up on typos and improving descriptions, but these are the main ones that you should keep in mind.

  • Query parameter serialization
    Previously for _range or _in query parameters, they query parameter would be inserted for each item you added (for example: ?amount_range=5,amount_range=10 instead of ?amount_range=5,10). We fixed that and now they query parameters are added correctly.
  • List Transactions missing required link query parameter
    In a recent update to our documentation, we accidentally marked the link query parameter as optional. However, thanks to our users, we updated the documentation to show that this field is indeed required when listing transactions.
  • Missing employments-records webhook
    We forgot to publish the webhook you receive for employment record historical updates. But now, it's right here in our shiny DevPortal.

July 2023

by Dominik Cholewski

Ready for some jul-ightful updates? Let's go 🥳

Aggregation

💪 Improved

Improved product support for Colombian institutions

  • Colpatria: we now support retrieving data for credit card accounts
  • BBVA Colombia: we now support up to 12 months of data retrieval
  • Nequi: we now support up to 24 months of data retrieval

⚠️ Deprecated

SDK limited maintenance until 31.12.2023

We have transitioned to limited maintenance mode for our SDKs and will no longer provide updates for new features. Essential security updates will continue to be provided until December 31, 2023.

After this date, our SDKs will be archived and no further updates will be released (however, you will still be able to download them). While you are welcome to continue using the code please note that you will be solely responsible for managing and implementing any required security patches or updates.

Enrichment

🎉 New

Enrich your own data: Risk Insights

Want to send through your own data and get over 130 data points to input into your credit scoring model? Check out our new enrich your own data Risk Insights product and see how easy it is!

💪 Improved

Improved quality enrichment workflow

To give you the absolute best enrichment information, along with a more consistent workflow, we've changed the way we process the data. The new workflow requires you to first make a POST Retrieve Accounts, a POST Retrieve Transactions, and a POST Retrieve Balances request. After that, you can request incomes, recurring expenses, or risk insights.

👍

The advantage of this new workflow is not only quicker calculations and a better data workflow for you, but also a better experience for your users.

Documentation Portal

🎉 New

Open Finance Data Aggregation documentation

With the upcoming release of Belvo's Open Finance Data Aggregation OFDA product for Brazil, we created some in-depth guides and updates to help you understand just how much more data you can access:

A guide to risk insights

To give you some tips and hints on how Risk Insights can help you and your data science team build credit models, we created an in-depth guide to risk insights that will certainly clear up some of those lingering questions.

🐞 Fixed

We're always brushing up on typos and improving descriptions, but these are the main ones that you should keep in mind.

  • Previously, we mentioned that the widget access_token was valid for 60 minutes, however, the correct duration is 10 minutes. Sorry about that!
  • When you create a link with credentials_storage set to nostore or 30d, we forgot to add that if you try to then request data after the period (30 minutes and 30 days, respectively), you'll receive a 404 Not Found error. We fixed that!

June 2023

by Dominik Cholewski

Summer is here! And we're 'junst' in time for some updates!

Aggregation

💪 Improved

Higher-quality responses for IMSS employment records

We're always focused on the quality of the data that we provide. That's why we've tinkered and tweaked our employment records integration with IMSS Mexico to improve not just the quality of the information data retrieved, but also the time it takes to retrieve it.

Support for credit card accounts in colpatria_co_retail

You ask, we deliver! You can now extract credit card account data from Colpatria Colombia!

🐞 Fixed

We do our best to make sure that we're bug-free (and have a whole bunch of insect repellent just in case), but when they do occur, we fix them ASAP:

  • In the links response, we were not including the credentials_storage, fetch_historical, and fetch_resource response parameters.

⚠️ Deprecated

e.firma support for SAT Mexico

We removed the need to add the read_links scope when creating an access token to launch the widget. We've made improvements in the backend to automate this process for you.

Enrichment

🎉 New

Upgraded risk insights!

We've leveraged our expertise, consulted the right folks, and dived into the data to provide your data science teams with over 400 new data points that they can use in their financial models! Check out the details in our Risk Insights API reference🤩.

Payment Initiation

💪 Improved

Metadata in Payment Links

Improved payment transaction filtering

We've added query filters to our List Payment Transactions resource to make finding the right transaction just that much easier 🏎️.

Documentation Portal

💪 Improved

Employment record filters

Previously, we didn't include the query filters for List Employment Records. Now, you can query to your heart's content!

Description of deprecated fields

We added a detailed explanation of how we go about deprecation at Belvo, as well as added callouts to endpoints where you might encounter deprecated fields being returned.

Example of a callout indicating that this resource may return deprecated fields.

Example of a callout indicating that this resource may return deprecated fields.

Improved descriptions for payment status update webhooks

We heard that our descriptions for our PSE and OFPI payment status webhooks weren't overly descriptive: well, we rolled up our sleeves and improved them for you!

🐞 Fixed

We're always brushing up on typos and improving descriptions, but these are the main ones that you should keep in mind.

Accounts schema fixes

In our Accounts schema, we fixed:

  • In the credit_data object, we accidentally included a parameter called end_date, which was not part our API schema.
  • In the credit_data object, we readded the deprecated parameter last_period_balance as you were asking what this parameter was and we didn't have it in our documentation.
  • In the loan_data object, we accidentally wrote that payment_day would return a date in YYYY-MM-DD format, when in fact it's just in DD format.

Omit and fields query parameters for Links and Institutions

We wrote that you could use the omit and fields query parameters when interacting with our Links and Institutions resources. However, when we were doing a sanity check, we found out you can't! So we removed these query parameters from our documentation for Links and Institutions.

May 2023

by Dominik Cholewski

'Mayeth' this not be a shock to you: we've got some pretty cool updates!

Aggregation

🎉 New

New sandbox environment institution: Employment records! 🚀

We have launched our employment data to our sandbox environment, so you can now play with employment data in all our three environments:

  • sandbox: planet_mx_employment
  • development: imss_mx_employment
  • production: imss_mx_employment

Here you’ll find all the info about our new sandbox institutionplanet_mx_employment that will allow you to test employment records with dummy data all you want.

For more info on Employment Records, check our API Reference. And, if this is your first time using our sandbox, you can use our Get started article to get you all set up in less than 10 minutes.

New parameter on link creation: fetch_resources

Our new fetch_resources parameter allows you to get historical update webhooks for your single links! This can significantly improve your data flow as previously, with single links, you would need to make separate POST calls to retrieve the data about the user.

Now, for each resource you list, we'll automatically retrieve the historical data for you and notify you via webhook when the data is ready. Check out the example below:

{
  "access_mode": "recurrent",
  "institution": "erebor_mx_retail",
  "username": "bnk100",
  "password": "full",
  "fetch_historical": true, // must be set to true
  "fetch_resources": [ // For each of the resources listed, we'll notify you via webhook when data is available
    "ACCOUNTS",
    "OWNERS",
    "TRANSACTIONS"
  ]
}

For more information, check out our Register Link request in our API reference.

fetch_resource excerpt in our API reference

fetch_resource excerpt in our API reference

💪 Improved

New and improved institution screen in the widget

We've updated the look and feel of the institution list and search within our widget. With this update, users will:

  • always have access to the search bar.
  • see a larger amount of institutions at first glance.
  • have one step less when looking for their institution.
New institution screen in the widget

New institution screen in the widget

⚠️ Deprecated

Removed read_links from the required scopes for widget token creation

We removed the need to add the read_links scope when creating an access token to launch the widget. We've made improvements in the backend to automate this process for you.

Enrichment

💪 Improved

Incomes examples now “add up” 🤓

We decided to improve our Incomes example and provide you with one that’s semantically correct. You can check our Incomes resource here.

But that’s not all! We’ve also updated our EYOD Income verification example to match Incomes too. We love consistency! Check your API Reference for more info.

🐞 Fixed

EYOD Income Verification missing description

In our Incomes and EYOD Income Verification resources, the allowed_income_types request parameter had no description.

Payment Initiation

💪 Improved

Register individual bank accounts for your customers (🇧🇷 OFPI)

We’ve updated our OFPI guides with info on how to create individual bank accounts for your customers. Here are the new payload examples you can follow to create bank accounts:

{
  "customer_type": "INDIVIDUAL",
  "identifier": "00000000001",
  "identifier_type": "CPF",
  "name": "Caetano Veloso",
  "country": "BRA",
  "email": "[email protected]",
}
{
  "id": "49f244ef-06cd-49cf-ad0c-f43796e370ad",
  "created_at": "2020-04-23T21:30:20.336854+00:00",
  "created_by": "1c83ead8-6665-429c-a17a-ddc76cb3a95e",
  "customer_type": "INDIVIDUAL",
  "name": "Caetano Veloso",
  "country": "BRA",
  "email": "[email protected]",
  "identifier": "00******01",
  "identifier_type": "CPF",
}

Check our API Reference and 🇧🇷 Brazil OFPI guides to learn how to collect money directly into your customer’s bank account.

We now return metadata info in our payment webhooks

You asked. We listened! Our payment webhooks event now show metadata info. Here’s an example of what info you’ll get for a payment intent status_update webhook:

{
  "webhook_id": "3b9a69f7-0f0a-455b-832d-49ad6fd4905c",
  "webhook_type": "PAYMENT_INTENTS",
  "webhook_code": "STATUS_UPDATE",
  "object_id": "d2e40773-19f6-48d1-93c3-3590ec0c74df",
  "data": {
    "status": "SUCCEEDED", // The status of the payment intent.
    "metadata": {"internal_reference_id": "GGq12345w2"} 
  },
}

For more info, check our Payment webhooks article and API Reference.

Dashboard

🎉 New

Lending Analytics

We've released a new version of our Lending Analytics product that takes complete advantage of our improved Income Verification product! With this update, you can now quickly identify different types of income such as salary, government, interest, rent, retirement, freelance, alternative income, transfer, deposit, or unknown income.

New lending analytics section with expanded incomes

New lending analytics section with expanded incomes

Documentation Portal

💪 Improved

Added time-out limit to 408 request_timeout error description

To provide you with all the info you need, we refined our 408 request_timeout error description to include the actual time-out limit for requests, which is set to five (5) minutes. This error occurs when there is a very large amount of data and everything could not be retrieved within the allotted time. You can read more about it in our API and Widget Errors article. 🤓

Removed filters table from our API reference

We want our API Reference to be as simple as possible. That’s why we said goodbye to the extra tables that listed the filterable fields in our LIST methods. We’ve improved our query parameters info and centralized all the info there - now all you need to know to filter responses is in one place.

With ❤️, the definitely-not-trying-to-make-a-star-wars-pun Belvo development team.

April 2023

by Mariel Vergara Gomez

April Fool's Day may be over, but our changelog is no joke!

Aggregation

🎉 New

Returning a new type of document_id for 🇲🇽 Mexico

With our Owners resource, you can retrieve a new type of document_id: RFC (Registro Federal de Contribuyentes). This is a type of document in Mexico that owners can provide to their institution to open an account. Here’s the updated list just in case:

Added new institution type to display in the widget

There’s a new institution type you can set to display in the widget: employment! This new type will let you display employment institutions such as IMMSS.

Check our institution types article to learn how to set it up.

Enrichment

💪 Improved

Enum BIWEEKLY changed to FORTNIGHTLY for accuracy

In our Incomes response, we return the frequency with which transactions are received. To be more precise and avoid confusion, we changed the value BIWEEKLY to FORTNIGHTLY to describe incomes received every two weeks. Here’s the updated list:

🐞 Fixed

Language input returns an error

We had a bug in Incomes (EYOD) that caused the language input to return an invalid_choice error. Sorry about that! This is now fixed.

Wrong income type in Incomes

We noticed there was one wrong income_type listed by mistake in our Incomes resource: the category PENSION shouldn’t have been there. We fixed it right away and here’s the list:

⚠️ Deprecated

Removed institution from our Incomes resource response

We decided to simplify things and remove institution from the Incomes response.

Payment Initiation

🎉 New

New resource in the house: Payment intents!

For those using our Payment Initiation solution in 🇨🇴 Colombia (PSE), we’ve got news for you! The Payment Intents resource will walk you through the necessary steps that you need to guide your user through in order to complete the payment flow. You can check this out in our API Reference.

But that’s not all! To help you navigate the different payment intent flows, we created dedicated guides for Payment intents in 🇨🇴 Colombia (PSE) and updated our ur Postman collection so you can test them out!

And another resource: Payment webhooks!

To keep you always in the loop with your payment flows, we added Payment Webhooks to our API Reference. You can use this resource to register a payment webhook that will let you know about relevant updates that occur during the payment process (such as bank account creation, payment status updates, and so on). Of course, we’ve also updated our Payment webhooks article with this info if you want to know more. 😎

Added last_used and created_at info to our Secret keys resource.

We know that Secret Keys hold sensitive data and we think it’s important to know when secret keys were created and used. That’s why now with every request you make to our Secret keys resource, we return last_used and created_at info.

Added legal_entity to our payment institutions

We take regulatory compliance to heart! So, to be compliant with Brazil’s regulatory authority, we now return the legal_entity name of payment institutions. Check our API Reference for more info on Payment Institutions.

💪 Improved

Bank number now required for PSE

Now the bank account number is required for when you want to register a beneficiary bank account for PSE in Colombia 🇨🇴.

Improved description for our amount field in Payment Links and Payment Intents

When you’re creating a payment link or a payment intent, you can actually choose to send through the amount to be paid by your customer as:

  • a string or an integer for PSE (🇨🇴 Colombia)
  • a string or a float for OFPI (🇧🇷 Brazil)

We’ve added more info on these options in our request parameters to be clearer and to help you collect payments from your customers without hassle.

You can check out our Payment Links and Payment Intents resources for more info.

With ❤️, the Belvo development team.

March 2023

by Dominik Cholewski

Hop on over to our latest changelog, it's Easter-rific! 🐇

Aggregation

🎉 New

New product in the house: Employment Aggregation!

Now you can access employment data, such as work history and salaries, in 🇲🇽 Mexico (IMSS)! With Belvo's employment records resource, you can access information about your user's current social security contributions and employment history. For each user, we return:

  • personal data
  • work history
  • historical and current daily base salary
  • and more!

For more information, check out our DevPortal article and API reference.

Added fetch_historical and credentials_storage

To give more flexibility on data retention, we’ve added two new request parameters for when you’re registering a Link:

  • fetch_historical - setting this to false for a single link creates a one-off link that won’t trigger historical updates.
  • credentials_storage - lets you choose if you want Belvo to store credentials. If set to store, you can also specify the duration for which they should be stored.

For more information, check out our API reference.

💪 Improved

Expanded institution support

We’ve expanded our 🇨🇴 Colombia coverage to include Bancolombia a la Mano. Now you can fetch data from the savings account of Bancolombia Wallet users.
Check our Institutions article for more info.

Enrichment

🎉 New

Income Verification: reloaded!

You wrote. We listened! We've improved our Incomes resource to give you:

  • detailed insights into your customers' income sources to verify their earnings.
  • stability and regularity scores that reflect the consistency of their income history.
  • a confidence level score that forecasts your customers' future income potential, allowing you to make well-informed lending decisions.

But that's not all! You can now use Income Verification to Enrich Your Own Data. Just plug your own raw data into our enrichment engine, whether you have an existing dataset or currently access open finance data, and we will return enriched income information.

For more information, check out our DevPortal article and API reference.

💪 Improved

Transaction categorization taxonomy: introducing more (a lot more) subcategories!

  • For those using our Transaction categorization feature, you can now access 15 primary and 94 subcategories, providing you with the granularity needed to make data-driven decisions. This granularity also comes with higher-quality category predictions. For more information, check out our Subcategorization DevPortal article.
  • Expanded geo-support! We used to support subcategories only in Brazil, well… now we also support 🇨🇴 Colombia and 🇲🇽 Mexico as well!
  • Enrich Your Own Data! Our newly improved taxonomy is also available for our Categorization resource.

Payment Initiation

🎉 New

Set the expiration time of your Payment Links

By using the expires_in parameter, you can now customize the expiration time of a Payment Link (available for 🇨🇴 Colombia PSE and 🇧🇷 Brazil OFPI). The minimum time limit for a payment link to expire is one minute, while the maximum time limit is 90 days. Check out our API reference for more info.

Added regular expressions to the amount parameter in Payment Initiation.

Since we know 🇨🇴 Colombia and 🇧🇷 Brazil handles currency differently, we wanted to help you avoid unnecessary errors when creating payment links in each country. That’s why we’ve added country-specific validations to the amount request parameter for Payment Links. You can check this out in our API Reference.

Added belvo-flow parameter in Payment Links - 🇨🇴 Colombia (PSE)

You can now choose whether you want to use our Belvo flow when you create payment links with Belvo-integrated institutions. Setting this parameter to false will create the payment link using the non-Belvo flow. Check out our API Reference for more info.

💪 Improved

API and Widget Errors article updated with Payment errors.

We improved our page so you can now see what listed errors have an impact on the Payment Initiation API and added a new section for payment-specific errors.

callback_urls are now optional in Payment Links

The callback_urls object is now optional when creating a payment link, which means that you don't have to send URLs that redirect your customer after the payment is completed. This is particularly useful when sharing a payment link with your customer via email and you don't want to redirect them after payment. You can check this out in our API Reference.

🐞 Fixed

wrong date format

We noticed that the created_at field in our Payment Initiation API was returning the wrong format. This is fixed now and we return the value in ISO 8601 format - sorry about that.

⚠️ Deprecated

Removed provider_error_message from payment intents

We want to simplify things for you - that's why we've removed this information from the response since it didn't add value to our clients.

API and documentation

🎉 New

Added fields and omit parameters in our API Reference

To improve our Open API specification, we’ve added the fields and omit parameters to all the endpoints in our Public API.

Dashboard

🎉 New

  • You’re now just one click away from every Help resource and contact us link if you ever need our help. Clean, functional, accessible, and intuitive 🤗.
  • You’ll see some new pop-ups “pop up” in our Dashboard to let you know about our new Payment Initiation product in Brazil and Colombia - Check them out to start collecting payments from your customer!

⚠️ Deprecated

  • We removed the "Back to table" button from Link and Event details to improve your experience with the product.

With ❤️, the chocolate-filled Belvo development team.

February 2023

by Dominik Cholewski

We have some lovely valentine API updates for you 🥰.

API and documentation updates

🎉 New

  • Payment Initiation for 🇧🇷 Brazil (OFPI) and 🇨🇴 Colombia (PSE)
    We can proudly announce that you can now make payments in Brazil and Colombia!
    For more information check out our Payment Initiation guides and API reference.
  • New 🇨🇴 DIAN fields + better response delineation
    You wrote. We listened! We've recently added a whole host of new fields for DIAN Tax Status and Invoice resources. We also made it much clearer (using the OAS oneOf parameter) the responses you can expect to receive for DIAN or SAT. Just click on the institution you're interested in (for one of the responses) and see specific information for that institution.
    [block:image]
    {
    "images": [
    {
    "image": [
    "https://files.readme.io/89f7687-image.png",
    null,
    null
    ],
    "align": "center",
    "caption": "Invoices response example with institution delineation"
    }
    ]
    }
    [/block]

💪 Improved

  • Updated credit card bill payment statuses
    Previously, for credit card accounts we didn't mark payments for credit card bills as INFLOW transactions for Bradesco, NuBank, Santader, Itaú, and Itaucard. We do now!

  • Update the access_mode of a link!
    You can now update the access_mode of a link from recurrent to single (and vice versa) using our new Changle link access mode request.

  • Improved document ID types for owners
    We improved (and added) our descriptions for the types of document IDs we retrieve for our Owners resource.
    [block:image]
    {
    "images": [
    {
    "image": [
    "https://files.readme.io/f36e602-image.png",
    null,
    null
    ],
    "align": "center",
    "caption": "Document ID descriptions"
    }
    ]
    }
    [/block]

  • Better description for our Categorize transactions request
    We noticed that some calls to our Categorize transactions resource were a bit strange. We investigated and decided to update our description to highlight that: Yes, you can send up to 10,000 unique transactions in each POST request 😎.

⚠️ Deprecated

Due to low usage, we deprecated our QuickStart App and will no longer maintain it.

🐞 Fixed

  • We noticed that we had incorrect query filters for our List Tax Returns resource. So we changed them:
    • informacion_general__ejercicio to ejercicio
    • informacion_general__tipo_declaracion to tipo_declaracion

With ❤️, the will-you-be-my-valentine Belvo development team.