October 2022

by Dominik Cholewski

The weather might be cooling, but we're warming up! ๐Ÿ‚

API and documentation updates

๐Ÿ’ช Improved

  • Better DIAN-specific annotations in our API reference
    We know that it was a bit confusing regarding which of our fiscal fields are returned for DIAN or SAT, so we went through it with a fine comb and made annotations for each field that's not applicable for DIAN.
  • Invoices resource now has a PATCH method!
    We added the PATCH method for our Invoices resource so that you can make multiple requests for invoices in DIAN.
  • More recurring expenses categories
    Our recurring expenses resource now returns categories related to credit cards, loans, transportation, traveling, taxation, and more!

โš ๏ธ Deprecated

Our gig economy and investment transaction resources will be deprecated on 30.11.2022. We've added deprecation notices throughout our documentation for additional details which fields, and resources, will no longer be supported.

๐Ÿž Fixed

  • We accidentally removed the UNKNOWN enum from our documentation for transaction categories. It's back now!
  • We erroneously had an example for accouting_date that was a date in YYYY-MM-DD format, but in fact, our API returns a timestamp. We fixed that!
  • Oh, and as always, we found some typos to fix... sorry about that!

September 2022

by Dominik Cholewski

Greenday might want to wake up when September ends, but we were bright-eyed and bushy-tailed! ๐Ÿฟ๏ธ

Dashboard updates

Lending analytics

Because at Belvo we are all about empowering the next generation of financial services to create amazing new financial experiences, we just added a new feature in da-house!

This time, we focus our efforts on lenders, to make their life easier, by providing access to raw and enriched data from open finance, without writing a single line of code.

And we came up with - drum roll - Lending Analytics!

Directly from Belvoโ€™s dashboard, lenders can now access open finance data in three steps:

  1. Customize and connect: personalize the Connect Page with your brand elements and share it with your customers.
  2. Data download: retrieve raw aggregated and enriched data, ready to download in XLS format.
  3. Dig into the data: integrate the data into your current credit models to reinforce credit decisions and enrich your credit scoring.

API and documentation updates

๐ŸŽ‰ New

  • OpenAPI spec now defines all possible filters
    We've added all the possible filters you can use while using the List all method in our documentation.
  • New 30-day refresh rate
    You can now create links with a refresh rate of 30 days! Useful for those of you that want to automatically update information about your clients on a monthly basis.

๐Ÿ’ช Improved

  • Better Balance examples
    Previously we autogenerated the examples for our Balance resource, which resulted in examples that showed balances coming from several different accounts in the same JSON object (which is not possible at all). Now, each Balance example only shows one type of account associated with it.
  • Improved description for num_accounts in Risk Insights
    We received some feedback that the description wasn't that clear to our readers. So we improved that :).

โš ๏ธ Deprecated

No parameters or resources scheduled for deprecation.

๐Ÿž Fixed

And of course, there are always improvements that we can make in our documentation:

  • We improved the examples for our Receivables resource to make them closer to what you'll see in real life.
  • Fixed incorrect Detail examples (we previously showed that the Detail method returned an array, when it should be an object)
  • And of course, quite a few typo and OpenAPI fixes behind the scenes.

August 2022

by Dominik Cholewski

Europe might be on summer vacation, but we definitely weren't โ›ฑ๏ธ.

Dashboard updates

Links view!

So, you know how we're all about bringing you the easiest, most intuitive, and best-in-class developer experience?

Well, you're just going to love what you can do with our newest feature: Links dashboard. But it's so much more than just a dashboard. With this new section you can quickly and easily:

  • view all the links created in your account
  • get the details regarding the webhook events and API calls made for that link
  • dive into each call and event - with just one click!

Now, no matter the complexity of your product, number of users, or size of your team, you'll be able to find, debug, and manage all your links from one place.

We're running around like some maniacs working on another super-secret project that'll surely lend you some ideas.

API and documentation updates

๐ŸŽ‰ New

  • New Institution: Daviplata!
    You can now retrieve information for individuals from Daviplata (Colombia).
  • Custom overlay for the widget
    You can now customize the overlay color that appears when the widget is opened. Check out all the details in our Branding and customization article.

๐Ÿ’ช Improved

  • Improved performance with List all transactions
    To your experience and performance, we've made the link id a mandatory query parameter when using List all transactions.
  • Added more examples to transactions
    We've added specific examples for transactions coming from savings or checking accounts.
  • Improved error documentation
    In our API reference you'll now see more specific information regarding the possible errors that you can encounter for each endpoint, as well as links to how to debug them.
  • Better external_id description
    To avoid some questions in the future, we rewrote our description and use case for external_id (used when creating links) to underline the fact that it can't contain any personal identifiable information.

โš ๏ธ Deprecated

  • We no longer retrieve thepersonal_information field for Tax Status.

๐Ÿž Fixed

And of course, there's always improvements that we can make in our documentation:

  • We showed an incorrect example for our fund field in investment transactions. Fixed!
  • Added nullable: true to certain institution fields as well as external_id (for those of you using our OpenApi specification to generate their SDKs). No more return errors!
  • Fixed about 50 small typos that were a little embarassing..

With โค๏ธ, the "we-can-finally-enjoy-summer-time" Belvo development team.

Junly (June + July) 2022

by Dominik Cholewski

Summertime... and the writing is eassssy (๐Ÿน + ๐Ÿ + ๐Ÿ˜ด ) (But so many updates!)

API and documentation updates

๐ŸŽ‰ New

  • Introducing: Receivables in Brazil
    You can now have access to receivable account and transaction data with just a few clicks. Check out our Receivables documentation for more information. Along with this new product, we also released two new institutions:

    • Rede
    • Getnet
  • Introducing: Investment Transactions!
    Now, not only do you have access to all the investment portfolio information for a link in Brazil, but also the transactions! At the moment it's limited to XP Investimentos (Brazil) but we'll be adding support for other institutions soon!

  • Widget branding and customization
    We've made a lot of improvements to our widget to make sure that you can:

  • Access to our raw openapi spec
    You asked and we delivered! Now you have access to our full OpenAPI spec, available in JSON and YAML formats.

  • More postman collections
    Head over to our Public Postman Workspace and have a look at our new one-click flows that'll make your experiments with our API even simpler and quicker (more coming soon!):

    • Single Link flows
    • ID verification flows
  • Improved performance with mandatory link_id in Transactions
    To improve your experience, and performance, we've added link_id as a mandatory query parameter when you List transactions.

  • Larger page sizes when listing resources!
    You can now add a page_size query parameter whenever you use our List method to customize how many records you receive per page. It's pretty nifty ;).

๐Ÿ’ช Improved

  • Transactions now have examples from checking and saving accounts
  • A lot of tweaks to our OpenAPI spec (for a super secret project)
  • Our errors in the API reference section had a complete overhaul! More useful, more detailed, more "better".

โš ๏ธ Deprecated

No parameters or resources scheduled for deprecation.

๐Ÿž Fixed

Typos:

  • Our docs for investment portfolio webhooks had a few "small" typos - but no more!

Errors:

  • Our JSON examples for investments had some mismatching information - solved!
  • Our JSON examples for balances showed an account that apparently had loan, credit, gig, and fund information. Which is impossible! So we squashed that issue.

With โค๏ธ, the "damn-are-we-ever-going-to-get-to-rest" Belvo development team.

May 2022

by Dominik Cholewski

Well, we MAYeth worked a bit of overtime ๐Ÿ˜‡.

Dashboard updates

Webhook events!

Ever wanted to see what webhooks we sent? For which link? Well, you don't need to "want" anymore ๐Ÿฅน.

Just click on Events in the sidebar and you'll see all the webhooks we've sent (starting from today).

But I know what you're about to ask: will we support searching by...

  • link_id?
  • webhook_id?
  • webhook_code?
  • webhook_type?

And the answer is... YES ๐Ÿ˜! We're working hard at it and in a few short weeks we'll roll it out ๐Ÿ’ช.

๐ŸŽ‰ New

  • Full method support for our Tax Retentions resource
    We've added the full suite of methods for our Tax Retentions resource. Now you can list all the tax retentions associated with your Belvo account, get the details for just one, or delete it!

  • More institutions and products supported for Investment Portfolios!
    We added a new institution, Orama, as well as expanded the investment products we support for Santander Retail (Brazil).

InstitutionPortfolioInstruments
Orama Retail (Brazil)FIXED_INCOME, VARIABLE_INCOMEBOND, FUND, STOCKS
Santander Retail (Brazil)FIXED_INCOME, VARIABLE_INCOMEDEPOSIT,BOND*, FUND*
  • Caixa Retail (Brazil) authorization flow
    We've added a pretty detailed explanation regarding Caixa's authorization flow for connecting a new account. Check it out in our MFA edge cases section!

๐Ÿ’ช Improved

  • Python SDK docs now autogenerate
    We've worked really hard in order to increase our automation for SDK docs. And now, our Python docs will never be out of step!

  • Improved Open API specification
    We'll be making our API reference Open API spec publicly available for everyone in the next few weeks. It included a whole host of additional information that will help you integrate with Belvo even faster.

  • Added required and nullable fields to our Enrichment resources
    Now, you'll never need to wonder which fields our API always returns. It'll be clear as day in our documentation!

  • Query filter for our List methods
    We added the recommendation to use the account or link id when using our List methods to improve your performance.

โš ๏ธ Deprecated

  • We sunset our Statements resource on 09.05.2022.
  • For gig economy transactions, we deprecated the pickup_latitude, pickup_longitude, dropoff_latitude, and dropoff_longitude parameters due to changes in our gig-economy providers' platforms.
  • Removed the already-deprecated encryption request body parameter from our documentation.

๐Ÿž Fixed

  • Our Node SDK docs displayed all methods twice due to a small bug. Now we we will never duplicate another method again again!

  • The session and request IDs previously stated that they were UUIDs separated with hyphens, when in fact we actually remove the hyphens. Sorryaboutthat.

  • Owner document_id and document_number were incorrectly labeled as UUIDs, when in fact they're alphanumeric strings.

  • Fixed a whole host of examples in our API reference (such as settlement_date, operation_date, incorrect UUID formt for id examples, enums for investment portfolios, and much much more).

With โค๏ธ, the "dear-god-we-ate-too-much-during-the-holidays" Belvo development team.

April 2022

by Dominik Cholewski

Yes, we published the April changelog on May 4 just to say: May the fourth be with you... ๐Ÿค“

API and documentation updates

๐ŸŽ‰ New

  • Filter the list of institutions using just a one character
    When filtering by display_name, our API now supports partial searches of at least one character in length. For example, if you use display_name=Banco, we'll return Banco Bradesco, Banco do Brasil, Bancolombia, Banco de Bogotรก, Banco Falabella, Hey Banco, and so on.

We've also implemented this in our widget's search functionality (though there you need to input at least three characters).

  • New MFA parameter in 428 response
    MFA is also keeping us on our toes, but now we have a new field that indicates whether or not the user needs to provide some kind of input to log in or not.

  • Link your privacy policy in the widget
    You can now link your own privacy policy in the widget.

  • New products supported for Bradesco
    We're very happy to tell you that we now support credit cards for Bradesco Business and loan accounts in Bradesco Retail.

๐Ÿ’ช Improved

  • Ruby SDK docs now autogenerate
    We're on an automation high at the moment to keep things as up to date as possible. Now, any changes to our Ruby SDK are automatically reflected in our SDK reference docs.

  • Added SDK examples for our transactions_updated webhook
    Now, you can see exactly how to query for updated transactions using our SDKs.

  • Better SAT e.firma documentation
    We added a new section in our Fiscal documentation detailing how to use SAT's e.firma to create links with Belvo.

  • Widget now supports MFA for SAT
    Yep, that's right: users that have MFA for their SAT accounts can now easily connect with Belvo's widget.

  • SAT Tax Returns: PFAI support for monthly returns
    We've done some work under the hood so that we can now return both PFAE and PFAI personal monthly tax returns.

โš ๏ธ Deprecated

We will be sunsetting our Statements resource on the 09.05.2022. We've already informed clients using this resource that it will no longer be supported.

๐Ÿž Fixed

  • Mentions of invoices in tax retentions
    We unfortunately mentioned invoices a lot in our tax retentions resource, which led to some confusion. Our humblest apologies, it won't happen again!

March 2022

by Dominik Cholewski

We promise we were really hard at work making some snazzy improvements to our API, widget, and docs ๐Ÿ˜Ž

API and documentation updates

๐ŸŽ‰ New

  • New resource: Tax retentions
    Want to get the tax retention data for SAT invoices? Well then, now you can with our Tax retentions resource! We only support POST requests for now, but we'll be expanding the range of methods ASAP!

  • Handle "secret question" MFA
    Our API (and widget) now handles the secret question MFA challenge! Check our Handling multi-factor authentication DevPortal article for more information.

  • Get notified of new balances with our new webhooks
    We've taken out a bit of the manual steps of getting the balances for your links. You can now receive historical update and new balances available webhooks!

  • Better duplicate transaction handling with our transaction_delete webhook
    We regularly monitor and clean transactional data in our database to improve the consistency of the data you receive. And now, whenever we spot a duplicated transaction, we'll send you a transaction deleted webhook.

  • Set up webviews in your React Native app!
    Yep, we finally finally have some documentation on how to implement Widget for webviews in your React Native app.

  • Welcome ๐Ÿ‡จ๐Ÿ‡ด Nequi and ๐Ÿ‡ง๐Ÿ‡ท Sicoob to our institution offering
    We've added Nequi (Colombia) and Sicoob Business (Brazil) to our list of supported institutions.

๐Ÿ’ช Improved

Not a week goes by where we don't find a typo that we needed to fix - and this fortnight wasn't any different!

โš ๏ธ Deprecated

No fields scheduled to be deprecated

๐Ÿž Fixed

  • Deprecated fields in our accounts.loan_data object
    We noticed that we didn't add a deprecated note in our API Reference examples for loan accounts - sorry for any confusion!

With โค๏ธ, the very caffeinated Belvo development team.

February 2022

by Dominik Cholewski

Well, for those lovers of open finance and documentation, we've been got some pretty cool updates for you ๐Ÿ˜.

API and documentation updates

๐ŸŽ‰ New

  • New Accounts paramter: balance_type
    We added the balance_type to our Accounts schema so that you can quickly and easily identify if a balance is an asset (like a checking account) or a liability (for example, a credit card).

  • New Link parameter: institution_user_id
    For links created after 08-02-2022, you'll now receive the institution_user_id parameter. It's a unique 44-character string that can be used to identify a user at a given institution. For more information on how to use it, check out our tips for avoiding duplicated links.

  • New recurrent link refresh rate: 7d
    You can now set your recurrent link refresh rate to seven days! For more info, have a look at our recurrent link documentation.

  • Investment portfolios links now support recurrent mode!
    You can now create recurrent investment portfolio links - that's pretty awesome, right? And this of course comes with an added perk: historical and new investment portfolio webhooks!

  • New resources parameter for institutions
    We now list all the API resources you can use to interact with each individual institution. Just look at the resources parameter in the response of any institution.

๐Ÿ“˜

With this improvement, you can also make sure that you only load the institutions that you want in the widget. For example, if you only want to display institutions that support investment portfolios, you just need to add INVESTMENT_PORTFOLIOS to the resources parameter in the widget startup configuration.

  • New WARNING event for disabled institutions in the widget
    We added a new WARNING event in the widget that's triggered when your users try to create a link with an institution that's currently disabled. Read more about the institution_disabled warning in our docs!

  • 403 access_to_production_denied error
    To help you improve your error handling, and also understand why you might be blocked when trying to make an API call, we've added the access_to_production_denied error.

  • 403 Forbidden error
    We finally documented our 403 Forbidden error that occurs when we find irregularities in the volume of calls you make.

๐Ÿ’ช Improved

  • Sandbox improvements
    We updated our sandbox, and along with that, our documentation as well! Namely:

    • We removed the ironbank_mx_retail and ironbank_co_retail institutions (as they didn't actually exist in our sandbox - sorry about that).
    • Updated the amount of information retrieved for sandbox fiscal links.
    • Updated the number of balances retrieved for banking links.
  • Postman documentation
    To make sure that you always have the most up-to-date documentation in Postman, we've added links straight to our API reference and DevPortal. Now, we'll always be on the same page.

  • Updated quickstart application
    Our quickstart application now supports our branding and customization features! Check out our quickstart documentation for more information.

  • Our API now returns only one type of timestamp!
    We now only return ISO 8601-format timestamps, that is, 2022-02-01T20:25:47.307911Z.

  • Even better request validation and schema improvements
    We've been improving our API reference schema with more field validations to make sure that your requests are picture-perfect every time. And we've got some pretty cool things in line for Postman coming up too!

  • itau_br_business now supports credit cards
    Retrieve up to three months of credit card transactions with ease from itau_br_business

โš ๏ธ Deprecated

  • Renamedsender_blacklist_status, receiver_blacklist_status, and not_blacklisted
    We renamed these parameters to sender_tax_fraud_status and receiver_tax_fraud_status to more accurately represent the information that we receive from SAT. Additionally, we renamed the not_blacklisted enum to no_tax_fraud_status.

๐Ÿž Fixed

  • Widget SDK code examples
    In our Widget for Web, we found a few typos in our python and ruby code examples. Sorry about that - but now it's fixed!
  • Python SDK code examples for transaction webhooks
    Thank you so much for finding the typo! We had Transaction instead of Transactions. Sorry for any errors this caused!
  • SAT XML limits with eFirma
    Previously, we stated that you can retrieve up to 6000 invoices from SAT using eFirma. However, after some bug hunting, we found that it's just up to 2000 invoices.
  • Added missing payment methods to our SAT catalogs
    No idea how we missed this, but previously we didn't list the 30 and 31 payment types in our SAT catalogs documentation. Luckily someone caught it and we fixed it!

With โค๏ธ, the very caffeinated Belvo development team.

January 2022

by Dominik Cholewski

Happy New Year everyone! ๐Ÿฅ‚ We hope you had a great start of the year, and to get us slowly into an awesome 2022, here's what we got up to:

Dashboard updates

Filtering activity logs

OK, so you have better activity log descriptions, a completely new design, and can search by link or request ID. But then we thought to ourselves: What would make it even more awesome? The answer: FILTERS ๐ŸŽ‰

As of this second, you can filter your activity logs by:

  • Endpoint
  • Institution
  • HTTP Method
  • Source (whether the request was made from the API or Widget)
  • Status (Success or Failure)
  • HTTP Response code

And before you ask: Yes, you can combine filters and search results to get even more precise results ๐Ÿค“.

Oh and just wait - we have one more loggy surprise coming your way soon!

API and documentation updates

๐ŸŽ‰ New

  • SAT Blacklist Status
    We've added two new fields to our Invoices schema: sender_blacklist_status and receiver_blacklist_status. With these new fields, you can quickly find out if the invoice's sender or receiver is currently under investigation, blacklisted, or innocent of any incorrect activities according to Mexico's SAT.
  • 403 quota_limit_reached error
    We've added a new error to the Belvo API, and naturally, documentation on what to do when you encounter it.

๐Ÿ’ช Improved

  • Added filtering examples Risk Insights, Recurring Expenses, and Investment Portfolios
    Now, when you use the List resource for Risk Insights, Recurring Expenses, and Investment Portfolios, you can see examples of how to filter your results in all our SDKs.

  • Improved Balance description
    We've updated the balance_available description for Loan accounts to reflect that this is the current amount remaining to pay on the loan.
    Note: If the institution does not provide this value, we return null.

  • IOF now standardized as OPERATION_FEE
    To increase consistency in our returned results, we've updated our schema to return OPERATION_FEE whenever we encounter IOF (or similar) for our Loan accounts and Investment Portfolios in Brazil ๐Ÿ‡ง๐Ÿ‡ท.

  • Better tips to avoid duplicated links
    We updated our Link creation best practices with some additional tips on how to avoid duplicated links in your application ๐Ÿฅธ.

  • Better request validation and schema improvements
    We've been improving our API reference schema with more field validations to make sure that your requests are picture-perfect every time.

  • More pagination examples
    We went through our API reference to double check and add some additional pagination examples, to make your lives a little bit easier.

โš ๏ธ Deprecated

No deprecation scheduled for this fortnight.

๐Ÿž Fixed

  • Error in our Android documentation for Widget for Webviews
    We fixed a small bug in our Android Widget for Webviews documentation that would throw an error when you copy and pasted in the code example.
  • Error in our Ruby SDK example for Transactions
    We noticed our Ruby SDK example to retrieve transactions had a bug in it - but we corrected it quicker than it took to get the bug spray.

With :heart:, the post-new-year-festivities-and-ready-for-an-amazing-2022 Belvo development team.

December 2021

by Dominik Cholewski

Welcome to our documentation changelog where we provide you with a detailed list of changes made to our API, documentation, and dashboard!.

Dashboard updates

New activity logs

Have you seen our new Activity Logs? They've had a bit of a makeover!

As part of the improvements, you can:

  • Enjoy better navigation with our redesigned table and side panel
  • Get more detailed information for each request
  • Work faster thanks to our paginated view
  • Easily share request or response bodies to debug faster

Now get back to it and enjoy a smoother developer experience ^^.

Search through activity logs

Tired of scrolling through activity logs looking for that one specific event? Want to filter all your requests for just the ones for a given link? Well, now you can!

In your activity logs, just paste the Request ID or Link Id in the search box, and you'll get just the results you want ^^.

API and documentation updates

๐ŸŽ‰ New

  • Risk insights (open BETA)
    Our new Enrichment product is available for all users to test out. Check out our docs on how to make the most of this new resource!

  • Investment Portfolios (open BETA) and Investment Transactions (Coming soon) documentation
    Want to get an overview of your user's investments? Then look no further than our Investment Portfolios resource!

  • New Institutions
    We added XP Investimentos and BTG Investimentos to our range of supported institutions. You can use these institutions with our Institution Portfolios.

๐Ÿšง

Investment Portfolios are in open BETA for everyone to use. At the moment we only support single links for the following institutions and investment products:

InstitutionPortfolioInstruments
Bradesco Retail (Brazil)FIXED_INCOMEDEPOSIT
Itau Retail (Brazil)FIXED_INCOME, VARIABLE_INCOMEDEPOSIT, FUNDS
Santander Retail (Brazil)FIXED_INCOMEDEPOSIT

๐Ÿ’ช Improved

  • As part of an ongoing documentation audit to improve our accuracy, we identified that some fields were incorrectly marked as integers when they were supposed to be floats. Now that should all be a thing of the past! But if you think you spot a mistake - just write to us at [email protected]!

  • Loan accounts now return the contract_amount field in the loan_data object
    Now, you can know what was the initial calculated cost of the loan (principal + interest + fees).

  • Updated currency descriptions in API reference
    Previously, our description for this response parameter may have indicated that only three specific currencies would be returned. We changed it so that you now know that you can expect any currency to be returned, such as USD or EUR.

  • Improved Postman collection endpoint names
    To avoid confusion, the endpoint names in our Postman collection now reflect the naming in our API reference.

  • Gig-economy description for accounts.balance
    We added what the available and current balance means for gig-economy accounts.

  • Better description for Balances endpoint
    To save you some time and head scratching, we added a note about Savings accounts and the Balances endpoint. Now, you should be able to easily identify which accounts you can use the Balances endpoint for an get accurate data.

โš ๏ธ Deprecated

  • We've removed the Accounts object from our Owners resource in order to save on duplicated information being sent. If you want to get account information for an owner, just use our Accounts resource.

  • We're removing the following fields from the loans_data object in our Accounts resource:

    • cutting_date
    • cutting_day
    • payment_due_day
    • limit_day
    • limit_date
    • no_interest_payment
    • last_payment_date
    • last_period_balance
    • next_payment_date

๐Ÿž Fixed

  • Incorrect SDK examples for our Investment Portfolios and Investment Transactions
    Sorry about that - now you should be able to use our SDK for making calls to Invesment Portfolios without a problem.

  • Some schema examples did not show the id field in resource responses (both for 200 and 201 responses)
    Now, no matter what, we'll always return the id field for any resource. However, please remember that unless you make a request with save_data equal to true, then we will not persist the response to our database.

  • Missing fields in sandbox documentation
    We missed adding the external_id and created_at fields in our Advanced MFA flow example.

  • Incorrect error example in our Widget for Web Exit Callback
    Previously, we showed the Link duplicated error in the example, which is now no longer possible. We changed it to reflect our latest updates and to avoid confusion for you.

With โค๏ธ, the very caffeinated Belvo development team.