Financial Statements (Mexico)
The Financial Statements resource provides a detailed overview of a company, including balance sheets and income statements, specific to Mexico. These financial statements offer a comprehensive view of a company's financial position and performance, covering assets, liabilities, equity, revenues, and expenses for a given year. This resource is essential for understanding the financial health and operational results of companies operating in Mexico.
At the moment, the Financial Statements resource is available for:
- 🇲🇽 Mexico (SAT)
Financial Statement Data Dictionary
For a detailed list of data that our Financial Statement resource returns, please see our dedicated Financial Statements Data (Mexico) guide.
Retrieve data for new links
Create a link
Using the Connect Widget?
If you are using Belvo's Connect Widget to create links, then all you need to do is add
FINANCIAL_STATEMENTS
to thefetch_resources
parameter when generating youraccess_token
. For more details, check out our dedicated Widget SDK and Hosted Widgetguides.
To create a link, you just need to make the following POST Register a new link request:
curl --location 'https://api.belvo.com/api/links/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic BASE64(SECRET_ID:SECRET_PASSWORD) \
--data '{see examples below}'
{
"institution": "sat_mx_fiscal",
"username": "sat_username",
"password": "user_sat_password",
"fetch_resources": ["FINANCIAL_STATEMENTS"],
"access_mode": "single",
"external_id": "COHORT_32_User_6790023X5"
}
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
institution | string | true | The institution where you want to create the link | sat_mx_fiscal |
username | string | true | The SAT username of the individual. | PMO010101000 |
password | string | true | The SAT password of the individual. | superSecretPas$$word |
fetch_resources | array | true | The resources you want Belvo to retrieve. | ["FINANCIAL_STATEMENTS"] |
access_mode | string | true | The type of link to create. For employment data, we recommend using single links. | single |
external_id | string | recommended | Your internal reference for this user. This is extremely useful for you as you'll be able to relate the data that Belvo retrieves for this user in your system. | COHORT_32_User_6790023X5 |
You will receive a 201 - Created
response once the link is succesfully created.
{
"id": "2f8ca7a1-c28f-46f2-bb41-21633099a280",
"institution": "sat_mx_fiscal",
"access_mode": "single",
"status": "valid",
"refresh_rate": null,
"created_by": "6e9be884-4781-4143-b673-aca02475ee8c",
"last_accessed_at": "2024-06-26T16:25:54.344113Z",
"external_id": "COHORT_32_User_6790023X5",
"created_at": "2024-06-26T16:25:54.334413Z",
"institution_user_id": "BidIxnZkKvQx0_F0oSYVx6Jnsh4Zmoat2ot2iOoG018=",
"credentials_storage": "365d",
"stale_in": null,
"fetch_resources": [
"FINANCIAL_STATEMENTS"
]
}
Wait for Webhook
You will receive 201 - Created
and Belvo will asynchronously load the last three years of Financial Statement data for the link. When the information has been retrieved, Belvo will send you the following webhook:
{
"webhook_id": "aadf41a1fc8e4f79a49f7f04027ac999",
"webhook_type": "FINANCIAL_STATEMENTS",
"webhook_code": "historical_update",
"process_type": "historical_update",
"link_id": "2f8ca7a1-c28f-46f2-bb41-21633099a280",
"request_id": "4363b08b-51eb-4350-9c74-5df5ac92a7f6",
"external_id": "COHORT_32_User_6790023X5",
"data": {
"new_financial_statements": 3
}
}
Get data
Once you receive the webhook, you just need to make the following GET Financial Statements request to retrieve the data for the given link:
curl --request GET 'https://api.belvo.com/api/financial-statements/?link={id}' \
-u [Secret Key ID]:[Secret Key PASSWORD]
{
"count": 130,
"next": "https://sandbox.belvo.com/api/{endpoint}/?page=2",
"previous": null,
"results": [
{
"id": "0d3ffb69-f83b-456e-ad8e-208d0998d71d",
"link": "30cb4806-6e00-48a4-91c9-ca55968576c8",
"collected_at": "2022-02-09T08:45:50.406032Z",
"created_at": "2022-02-09T08:45:50.406032Z",
"error": null,
"year": 2020,
"currency": "MXN",
"balance_sheet": {
"current_assets": {
"cash_and_equivalents": 1000000,
"short_term_investments": 2000000,
"accounts_receivable": 3000000,
"notes_receivable": 4000000,
"other_debtors": 5000000,
"bad_debt_provision": 6000000,
"tax_recoverable": 7000000,
"inventory": 8000000,
"prepaid_expenses": 9000000,
"assets_available_for_sale": 10000000,
"total": 11000000
},
"non_current_assets": {
"property_plant_and_equipment": 1000000,
"long_term_accounts_receivable": 2000000,
"prepayment_to_suppliers": 3000000,
"goodwill": 4000000,
"intangible_assets": 5000000,
"investments_in_associates": 6000000,
"long_term_financial_instruments": 7000000,
"total": 8000000
},
"current_liabilities": {
"bank_loans": 1000000,
"accounts_payable": 2000000,
"notes_payable": 3000000,
"financial_instruments": 4000000,
"other_creditors": 5000000,
"income_tax_payable": 6000000,
"customer_advances": 7000000,
"provisions": 8000000,
"taxes_payable": 9000000,
"total": 10000000
},
"non_current_liabilities": {
"long_term_accounts_payable": 1000000,
"long_term_financial_instruments": 2000000,
"deferred_revenue": 3000000,
"contributions_for_future_capital_increases": 4000000,
"deferred_income_tax": 5000000,
"employee_benefits": 6000000,
"long_term_provisions": 7000000,
"total": 8000000
},
"equity": {
"share_capital": 1000000,
"retained_earnings": 2000000,
"other_comprehensive_income": 3000000,
"controlling_interest": 4000000,
"non_controlling_interest": 5000000,
"total": 15000000
}
},
"income_statement": {
"net_revenue": 1000000,
"domestic_sales": 2000000,
"foreign_sales": 3000000,
"materials_used": 4000000,
"cost_of_goods_sold": 5000000,
"cost_of_services_sold": 6000000,
"gross_profit": 7000000,
"gross_loss": 8000000,
"operating_expenses": 9000000,
"operating_income": 10000000,
"operating_loss": 11000000,
"financial_result": -114602,
"equity_in_earnings_of_affiliates": 0,
"income_before_taxes": 12000000,
"loss_before_taxes": 13000000,
"income_taxes": 16838,
"income_from_continuing_operations": 14000000,
"loss_from_continuing_operations": 15000000,
"discontinued_operations": 0,
"net_income": 16000000,
"net_loss": 17000000
}
}
]
}
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
id | string | true | The link_id you receive in your historical_update notification. | 2f8ca7a1-c28f-46f2-bb41-21633099a280 |
Retrieve data for existing links
To retrieve Financial Statement data for existing links, you just need to make the following POST Retrieve Financial Statements request for each link.
curl --location 'https://api.belvo.com/api/financial-statements/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic BASE64(SECRET_ID:SECRET_PASSWORD) \
--data '{see example below}'
{
"link": "link_id"
}
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
link | string | true | The fiscal link id that you want to retrieve financial statement information for. | 2f8ca7a1-c28f-46f2-bb41-21633099a280 |
You will receive 202 - Accepted response
and Belvo will asynchronously load the last three years of Financial Statement data for the link. When the information has been retrieved, Belvo will send you the following webhook:
{
"webhook_id": "aadf41a1fc8e4f79a49f7f04027ac999",
"webhook_type": "FINANCIAL_STATEMENTS",
"webhook_code": "new_financial_statements_available",
"process_type": "async_post",
"link_id": "16f68516-bcbc-4cf7-b815-c500d4204e28",
"request_id": "4363b08b-51eb-4350-9c74-5df5ac92a7f6",
"external_id": "COHORT_32_User_6790023X5",
"data": {
"new_financial_statements": 3
}
}
Once you receive the webhook, you just need to make the following GET Financial Statements request to retrieve the data for the given link:
curl --request GET 'https://api.belvo.com/api/financial-statements/?link={id}' \
-u [Secret Key ID]:[Secret Key PASSWORD]
{
"count": 130,
"next": "https://sandbox.belvo.com/api/{endpoint}/?page=2",
"previous": null,
"results": [
{
"id": "0d3ffb69-f83b-456e-ad8e-208d0998d71d",
"link": "30cb4806-6e00-48a4-91c9-ca55968576c8",
"collected_at": "2022-02-09T08:45:50.406032Z",
"created_at": "2022-02-09T08:45:50.406032Z",
"error": null,
"year": 2020,
"currency": "MXN",
"balance_sheet": {
"current_assets": {
"cash_and_equivalents": 1000000,
"short_term_investments": 2000000,
"accounts_receivable": 3000000,
"notes_receivable": 4000000,
"other_debtors": 5000000,
"bad_debt_provision": 6000000,
"tax_recoverable": 7000000,
"inventory": 8000000,
"prepaid_expenses": 9000000,
"assets_available_for_sale": 10000000,
"total": 11000000
},
"non_current_assets": {
"property_plant_and_equipment": 1000000,
"long_term_accounts_receivable": 2000000,
"prepayment_to_suppliers": 3000000,
"goodwill": 4000000,
"intangible_assets": 5000000,
"investments_in_associates": 6000000,
"long_term_financial_instruments": 7000000,
"total": 8000000
},
"current_liabilities": {
"bank_loans": 1000000,
"accounts_payable": 2000000,
"notes_payable": 3000000,
"financial_instruments": 4000000,
"other_creditors": 5000000,
"income_tax_payable": 6000000,
"customer_advances": 7000000,
"provisions": 8000000,
"taxes_payable": 9000000,
"total": 10000000
},
"non_current_liabilities": {
"long_term_accounts_payable": 1000000,
"long_term_financial_instruments": 2000000,
"deferred_revenue": 3000000,
"contributions_for_future_capital_increases": 4000000,
"deferred_income_tax": 5000000,
"employee_benefits": 6000000,
"long_term_provisions": 7000000,
"total": 8000000
},
"equity": {
"share_capital": 1000000,
"retained_earnings": 2000000,
"other_comprehensive_income": 3000000,
"controlling_interest": 4000000,
"non_controlling_interest": 5000000,
"total": 15000000
}
},
"income_statement": {
"net_revenue": 1000000,
"domestic_sales": 2000000,
"foreign_sales": 3000000,
"materials_used": 4000000,
"cost_of_goods_sold": 5000000,
"cost_of_services_sold": 6000000,
"gross_profit": 7000000,
"gross_loss": 8000000,
"operating_expenses": 9000000,
"operating_income": 10000000,
"operating_loss": 11000000,
"financial_result": -114602,
"equity_in_earnings_of_affiliates": 0,
"income_before_taxes": 12000000,
"loss_before_taxes": 13000000,
"income_taxes": 16838,
"income_from_continuing_operations": 14000000,
"loss_from_continuing_operations": 15000000,
"discontinued_operations": 0,
"net_income": 16000000,
"net_loss": 17000000
}
}
]
}
Where:
{id}
is the link_id
you receive in your new_financial_statements_available
notification.
Errors while extracting Financial Statements
In order to provide you greater visibility regarding the extraction of Financial Statement data, we have included a new error
field in the response payload for each financial statement you will still receive.
If, for a given year where a financial statement is available, we are not able to retrieve data due to the institution not providing the information in the correct format, the error
field will indicate the reason behind the unsuccessful extraction:
[
{
"id": "0d3ffb69-f83b-456e-ad8e-208d0998d71d",
"link": "30cb4806-6e00-48a4-91c9-ca55968576c8",
"collected_at": "2022-02-09T08:45:50.406032Z",
"created_at": "2022-02-09T08:45:50.406032Z",
"error": "Unable to validate if the user has an available financial statement for the specified year.",
"year": 2020,
"currency": "MXN",
"balance_sheet": null,
"income_statement": null
}
]
The possible error messages are:
Unable to validate if the user has an available financial statement for the specified year.
No available financial statement found for the user for the specified year, preventing data extraction.
Unable to verify if the user has _conceptos vigentes_ for the specified year.
The fiscal institution provided the financial statement in an unrecognized format.
If you receive financial statement payloads with these errors, please contact our support team.
Updated 3 months ago