OwnersBusinessPaginatedResponseOpenFinanceBrazil
{
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/common_pagination_properties"
},
{
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerBusinessOpenFinanceBrazil"
},
"description": "Array of owner business (OFDA Brazil) objects."
}
}
}
],
"title": "Owner Business (OFDA Brazil)"
}
OwnersDeleteOwner404Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/NotFoundError"
},
"description": "You made a request where you:\n\n - provided the wrong URL.\n - used an ID (for a link, account, transaction, and so on) that is not associated with your Belvo account.\n \n"
}
OwnersDeleteOwnerResponse
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
OwnersGetDetails401Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
OwnersGetDetails404Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/NotFoundError"
},
"description": "You made a request where you:\n\n - provided the wrong URL.\n - used an ID (for a link, account, transaction, and so on) that is not associated with your Belvo account.\n \n"
}
OwnersGetDetailsResponse
{
"oneOf": [
{
"$ref": "#/components/schemas/Owner"
},
{
"$ref": "#/components/schemas/OwnerIndividualOpenFinanceBrazil"
},
{
"$ref": "#/components/schemas/OwnerBusinessOpenFinanceBrazil"
}
]
}
OwnersGetLinkOwner201Response
{
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/Owner"
},
{
"$ref": "#/components/schemas/OwnerIndividualOpenFinanceBrazil"
},
{
"$ref": "#/components/schemas/OwnerBusinessOpenFinanceBrazil"
}
]
}
}
OwnersGetLinkOwner400Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/TooManySessionsError"
},
{
"$ref": "#/components/schemas/LoginError"
},
{
"$ref": "#/components/schemas/SessionExpiredError"
},
{
"$ref": "#/components/schemas/ValidationError"
},
{
"$ref": "#/components/schemas/InstitutionDownError"
},
{
"$ref": "#/components/schemas/InstitutionUnavailableError"
},
{
"$ref": "#/components/schemas/InstitutionInactiveError"
},
{
"$ref": "#/components/schemas/UnsupportedOperationError"
},
{
"$ref": "#/components/schemas/InvalidLinkError"
},
{
"$ref": "#/components/schemas/UnconfirmedLinkError"
}
]
}
}
OwnersGetLinkOwner401Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
OwnersGetLinkOwner408Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/RequestTimeoutError"
},
"title": "Request Timeout",
"description": "Belvo has a limit regarding the time it takes to log in, retrieve account data, and log out. A timeout occurs when there is a very high amount of data and everything could not be obtained within the allotted time.\n \n"
}
OwnersGetLinkOwner428Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/TokenRequiredResponse"
}
}
OwnersGetLinkOwner500Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/UnexpectedError"
},
"title": "Unexpected Error",
"description": "This error occurs when we (Belvo) have encountered an internal system error (sorry about that) or due to an unsupported response from the institution.\n \n"
}
OwnersGetLinkOwnerResponse
{
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/Owner"
},
{
"$ref": "#/components/schemas/OwnerIndividualOpenFinanceBrazil"
},
{
"$ref": "#/components/schemas/OwnerBusinessOpenFinanceBrazil"
}
]
}
}
OwnersIndividualPaginatedResponseOpenFinanceBrazil
{
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/common_pagination_properties"
},
{
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerIndividualOpenFinanceBrazil"
},
"description": "Array of owner objects."
}
}
}
],
"title": "Owner Individual (OFDA Brazil)"
}
OwnersListAll401Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
OwnersListAllResponse
{
"oneOf": [
{
"$ref": "#/components/schemas/OwnersPaginatedResponse"
},
{
"$ref": "#/components/schemas/OwnersIndividualPaginatedResponseOpenFinanceBrazil"
},
{
"$ref": "#/components/schemas/OwnersBusinessPaginatedResponseOpenFinanceBrazil"
}
]
}
OwnersPaginatedResponse
{
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/common_pagination_properties"
},
{
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Owner"
},
"description": "Array of owner objects."
}
}
}
],
"title": "Owner Standard (Multi-Region)"
}
OwnersResumeRetrieveSession201Response
{
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/Owner"
},
{
"$ref": "#/components/schemas/OwnerIndividualOpenFinanceBrazil"
},
{
"$ref": "#/components/schemas/OwnerBusinessOpenFinanceBrazil"
}
]
}
}
OwnersResumeRetrieveSession400Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/TooManySessionsError"
},
{
"$ref": "#/components/schemas/LoginError"
},
{
"$ref": "#/components/schemas/SessionExpiredError"
},
{
"$ref": "#/components/schemas/ValidationError"
},
{
"$ref": "#/components/schemas/InstitutionDownError"
},
{
"$ref": "#/components/schemas/InstitutionUnavailableError"
},
{
"$ref": "#/components/schemas/InstitutionInactiveError"
},
{
"$ref": "#/components/schemas/UnsupportedOperationError"
},
{
"$ref": "#/components/schemas/InvalidLinkError"
},
{
"$ref": "#/components/schemas/UnconfirmedLinkError"
}
]
}
}
OwnersResumeRetrieveSession401Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
OwnersResumeRetrieveSession408Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/RequestTimeoutError"
},
"title": "Request Timeout",
"description": "Belvo has a limit regarding the time it takes to log in, retrieve account data, and log out. A timeout occurs when there is a very high amount of data and everything could not be obtained within the allotted time.\n \n"
}
OwnersResumeRetrieveSession428Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/TokenRequiredResponse"
}
}
OwnersResumeRetrieveSession500Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/UnexpectedError"
},
"title": "Unexpected Error",
"description": "This error occurs when we (Belvo) have encountered an internal system error (sorry about that) or due to an unsupported response from the institution.\n \n"
}
OwnersResumeRetrieveSessionResponse
{
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/Owner"
},
{
"$ref": "#/components/schemas/OwnerIndividualOpenFinanceBrazil"
},
{
"$ref": "#/components/schemas/OwnerBusinessOpenFinanceBrazil"
}
]
}
}
PaginatedResponseLink
{
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/common_pagination_properties"
},
{
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Link"
}
}
}
}
]
}
PatchBody
{
"type": "object",
"required": [
"session",
"link"
],
"properties": {
"link": {
"type": "string",
"format": "uuid",
"example": "683005d6-f45c-4adb-b289-f1a12f50f80c",
"description": "The `link.id` you want to resume. Must be the same `link.id` as the\none you receive in the 428 Token Required response that contains the\n`session` ID.\n"
},
"token": {
"type": "string",
"example": "1234ab",
"description": "The MFA token generated by the institution and required to continue\na session.\n"
},
"session": {
"type": "string",
"example": "6e7b283c6efa449c9c028a16b5c249fa",
"pattern": "[a-f0-9]{32}",
"description": "The session you want to resume. You need to use the `session` value\nthat is provided in the 428 Token Required response that you receive\nafter you make your POST request.\n"
},
"save_data": {
"type": "boolean",
"default": true,
"example": true,
"description": "Indicates whether or not to persist the data in Belvo. By default, this is set to `true` and we return a 201 Created response.\n\nWhen set to `false`, the data won't be persisted and we return a 200 OK response.\n"
}
},
"description": "A JSON object containing a session UUID and a MFA token"
}
PatchBodyWithoutSaveData
{
"type": "object",
"required": [
"session",
"link"
],
"properties": {
"link": {
"type": "string",
"format": "uuid",
"example": "683005d6-f45c-4adb-b289-f1a12f50f80c",
"description": "The `link.id` you want to resume. Must be the same `link.id` as the\none you receive in the 428 Token Required response that contains the\n`session` ID.\n"
},
"token": {
"type": "string",
"example": "1234ab",
"description": "The MFA token generated by the institution and required to continue\na session.\n"
},
"session": {
"type": "string",
"example": "6e7b283c6efa449c9c028a16b5c249fa",
"pattern": "[a-f0-9]{32}",
"description": "The session you want to resume. You need to use the `session` value\nthat is provided in the 428 Token Required response that you receive\nafter you make your POST request.\n"
}
},
"description": "A JSON object containing a session UUID and a MFA token"
}
PensionIncomeStatementIndividual
{
"type": "object",
"required": [
"net_pension_income",
"net_taxable_pension_income"
],
"properties": {
"net_pension_income": {
"type": "number",
"format": "float",
"example": 0,
"description": "The total net pension of the taxpayer."
},
"net_taxable_pension_income": {
"type": "number",
"format": "float",
"example": 0,
"description": "The total taxable pension income of the taxpayer."
}
},
"description": "Object containing the tax payer's total pension income."
}
RecurringExpenseSourceTransaction
{
"type": "object",
"nullable": true,
"required": [
"amount",
"description",
"value_date"
],
"properties": {
"amount": {
"type": "number",
"format": "float",
"example": 2145.45,
"description": "The transaction amount."
},
"value_date": {
"type": "string",
"format": "date",
"example": "2019-10-23",
"description": "The date when the transaction occurred, in `YYYY-MM-DD` format."
},
"description": {
"type": "string",
"example": "Netflix.com/march",
"nullable": true,
"description": "The description of the transaction provided by the institution. Usually, this is the text that the end user would see in the bank statement. The description can be an empty string.\n\n> **Note:** For EYOD Risk Insights, the description is the one that you provided in the initial request.\n"
}
},
"description": "An array of minified transaction objects used to evaluate the recurring expense. If no transactions were found, we return an empty array."
}
RecurringExpenses
{
"type": "object",
"required": [
"account",
"name",
"transactions",
"frequency",
"average_transaction_amount",
"median_transaction_amount",
"days_since_last_transaction",
"category",
"payment_type"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "076c66e5-90f5-4e01-99c7-50e32f65ae42",
"description": "Belvo's unique identifier used to reference the current recurring expense."
},
"name": {
"type": "string",
"default": null,
"example": "Netflix",
"nullable": true,
"description": "The name for the recurring expense.\n\nℹ️ **Note**: This information is taken from the description section of a transaction and then normalized to provide you with an easy-to-read name. As such, sometimes the name will reflect the merchant the payment is made to (for example, Netflix.com), while for other recurring expenses, this could be something like \"Monthly payment to John\".\n"
},
"account": {
"$ref": "#/components/schemas/Account"
},
"category": {
"$ref": "#/components/schemas/EnumRecurringExpenseCategory"
},
"frequency": {
"$ref": "#/components/schemas/EnumRecurringExpenseFrequency"
},
"payment_type": {
"$ref": "#/components/schemas/EnumRecurringExpensePaymentType"
},
"transactions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RecurringExpenseSourceTransaction"
},
"description": "An array of minified transaction objects used to evaluate the recurring expense. If no transactions were found, we return an empty array."
},
"median_transaction_amount": {
"type": "number",
"format": "float",
"example": 32.9,
"description": "The median transaction amount of the recurring expense."
},
"average_transaction_amount": {
"type": "number",
"format": "float",
"example": 32.9,
"description": "The average transaction amount of the recurring expense."
},
"days_since_last_transaction": {
"type": "integer",
"format": "int32",
"example": 5,
"description": "Number of days since the last recurring expense occurred.\n\nBased on the frequency, you can infer how many days until the next charge will occur.\n"
}
},
"description": "Recurring expense insights.\n\n\nℹ️ If no recurring expense insights are found, we return an empty array.\n"
}
RecurringExpensesDeleteExpense404Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/NotFoundError"
},
"description": "You made a request where you:\n\n - provided the wrong URL.\n - used an ID (for a link, account, transaction, and so on) that is not associated with your Belvo account.\n \n"
}
RecurringExpensesDeleteExpenseResponse
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
RecurringExpensesGetDetails401Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
RecurringExpensesGetDetails404Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/NotFoundError"
},
"description": "You made a request where you:\n\n - provided the wrong URL.\n - used an ID (for a link, account, transaction, and so on) that is not associated with your Belvo account.\n \n"
}
RecurringExpensesGetDetailsResponse
{
"type": "array",
"items": {
"$ref": "#/components/schemas/RecurringExpenses"
}
}
RecurringExpensesGetInsights201Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/RecurringExpenses"
}
}
RecurringExpensesGetInsights400Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/TooManySessionsError"
},
{
"$ref": "#/components/schemas/LoginError"
},
{
"$ref": "#/components/schemas/SessionExpiredError"
},
{
"$ref": "#/components/schemas/ValidationError"
},
{
"$ref": "#/components/schemas/InstitutionDownError"
},
{
"$ref": "#/components/schemas/InstitutionUnavailableError"
},
{
"$ref": "#/components/schemas/InstitutionInactiveError"
},
{
"$ref": "#/components/schemas/UnsupportedOperationError"
},
{
"$ref": "#/components/schemas/InvalidLinkError"
},
{
"$ref": "#/components/schemas/UnconfirmedLinkError"
},
{
"$ref": "#/components/schemas/InvalidPeriodError"
}
]
}
}
RecurringExpensesGetInsights401Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
RecurringExpensesGetInsights408Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/RequestTimeoutError"
},
"title": "Request Timeout",
"description": "Belvo has a limit regarding the time it takes to log in, retrieve account data, and log out. A timeout occurs when there is a very high amount of data and everything could not be obtained within the allotted time.\n \n"
}
RecurringExpensesGetInsights428Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/TokenRequiredResponse"
}
}
RecurringExpensesGetInsights500Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/UnexpectedError"
},
"title": "Unexpected Error",
"description": "This error occurs when we (Belvo) have encountered an internal system error (sorry about that) or due to an unsupported response from the institution.\n \n"
}
RecurringExpensesGetInsightsResponse
{
"type": "array",
"items": {
"$ref": "#/components/schemas/RecurringExpenses"
}
}
RecurringExpensesListAllResponse
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
RecurringExpensesPaginatedResponse
{
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/common_pagination_properties"
},
{
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RecurringExpenses"
},
"description": "Array of recurring expense objects."
}
}
}
]
}
RecurringExpensesRequest
{
"type": "object",
"required": [
"link"
],
"properties": {
"link": {
"type": "string",
"format": "uuid",
"example": "2ccd5e15-194a-4a19-a45a-e7223c7e6717",
"description": "The `link.id` that you want to get information for."
},
"token": {
"type": "string",
"example": "1234ab",
"description": "The OTP token generated by the bank."
},
"date_to": {
"type": "string",
"example": "2022-12-30",
"pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}",
"description": "The date you want to stop getting recurring expenses for, in `YYYY-MM-DD` format, within the last 365 days. When you use this parameter, you must also send `date_from`.\n\n\n\n\n⚠️ The value of `date_to` cannot be greater than today's date (in other words, no future dates).\n"
},
"date_from": {
"type": "string",
"example": "2022-08-01",
"pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}",
"description": "The date from which you want to start getting recurring expenses for, in `YYYY-MM-DD` format, within the last 365 days. When you use this parameter, you must also send `date_to`.\n\n\n\n\n⚠️ The value of `date_from` cannot be greater than `date_to`.\n"
},
"save_data": {
"type": "boolean",
"default": true,
"description": "Indicates whether or not to persist the data in Belvo. By default, this is set to `true` and we return a 201 Created response.\n\nWhen set to `false`, the data won't be persisted and we return a 200 OK response.\n"
}
}
}
RecurringExpensesResumeRequest201Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/RecurringExpenses"
}
}
RecurringExpensesResumeRequest400Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/TooManySessionsError"
},
{
"$ref": "#/components/schemas/LoginError"
},
{
"$ref": "#/components/schemas/SessionExpiredError"
},
{
"$ref": "#/components/schemas/ValidationError"
},
{
"$ref": "#/components/schemas/InstitutionDownError"
},
{
"$ref": "#/components/schemas/InstitutionUnavailableError"
},
{
"$ref": "#/components/schemas/InstitutionInactiveError"
},
{
"$ref": "#/components/schemas/UnsupportedOperationError"
},
{
"$ref": "#/components/schemas/InvalidLinkError"
},
{
"$ref": "#/components/schemas/UnconfirmedLinkError"
}
]
}
}
RecurringExpensesResumeRequest401Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
RecurringExpensesResumeRequest408Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/RequestTimeoutError"
},
"title": "Request Timeout",
"description": "Belvo has a limit regarding the time it takes to log in, retrieve account data, and log out. A timeout occurs when there is a very high amount of data and everything could not be obtained within the allotted time.\n \n"
}
RecurringExpensesResumeRequest428Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/TokenRequiredResponse"
}
}