LinksDeleteLinkAccounts404Response
{
"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"
}
LinksDeleteLinkAccountsResponse
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
LinksGetDetails404Response
{
"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"
}
LinksGetDetailsResponse
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
LinksListAllResponse
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
LinksPutRequest
{
"type": "object",
"required": [
"institution",
"username",
"password"
],
"properties": {
"token": {
"type": "string",
"example": "1234ab",
"description": "The MFA token required by the bank to log in.\n"
},
"password": {
"type": "string",
"example": "password",
"description": "The end-user's password used to log in to the institution."
},
"password2": {
"type": "string",
"example": "pin",
"description": "The end-user's second password used to log in to the institution.\n\nℹ️ This is only required by some institutions. To know which institutions require a second password, get the [details](https://developers.belvo.com/reference/detailinstitution) for the institution and check the `form_fields` array in the response.\n"
},
"certificate": {
"type": "string",
"example": "1234567890abcd=",
"description": "For certain fiscal institutions, it is possible to log in using a certificate and a private key, which enables a faster connection to the institution.\n\nBelvo supports a base64 encoded `certificate`. If the `certificate` parameter is used, you *must* also provide the `private_key` parameter.\n"
},
"private_key": {
"type": "string",
"example": "1234567890abcd=",
"description": "For certain fiscal institutions, it is possible to log in using a certificate and a private key, which enables a faster connection to the institution.\n\nBelvo supports a base64 encoded `private_key`. If the `private_key` parameter is used, you *must* also provide the `certificate` parameter.\n"
},
"username_type": {
"type": "string",
"example": "001",
"description": "Type of document to be used as a username.\n\n Some banking institutions accept different documents to be used as the `username` to login. For example, the *Cédula de Ciudadanía*, *Cédula de Extranjería*, *Pasaporte'*, and so on.\n\n For banks that require a document to log in, you **must** provide the `username_type` parameter to specify which document is used when creating the link.\n\n ℹ️ To know which institutions require the `username_type` parameter, get the [details](https://developers.belvo.com/reference/detailinstitution) for the institution and check the `form_fields` array in the response.\n\n For a list of standards codes, see the table below.\n\n| Code | Description |\n|-----------|-------|\n| `001` | Cédula de Ciudadanía |\n| `002` | Cédula de Extranjería |\n| `003` | Pasaporte |\n| `004` | Tarjeta de Identidad |\n| `005` | Registro Civil |\n| `006` | Número Identificación Personal |\n| `020` | NIT |\n| `021` | NIT Persona Natural |\n| `022` | NIT Persona Extranjera |\n| `023` | NIT Persona Jurídica |\n| `024` | NIT Menores |\n| `025` | NIT Desasociado |\n| `030` | Trj. Seguro Social Extranjero |\n| `031` | Sociedad Extranjera sin NIT en Colombia |\n| `032` | Fideicomiso |\n| `033` | RIF Venezuela |\n| `034` | CIF |\n| `035` | Número de Identidad |\n| `036` | RTN |\n| `037` | Cédula de Identidad |\n| `038` | DIMEX |\n| `039` | CED |\n| `040` | PAS |\n| `041` | Documento Único de Identidad |\n| `042` | NIT Salvadoreño |\n| `100` | Agência e conta |\n| `101` | Código do operador |\n| `102` | Cartão de crédito |\n| `103` | CPF |\n"
}
}
}
LinksRegisterNewLink401Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
LinksRegisterNewLink428Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/TokenRequiredResponse"
}
}
LinksRegisterNewLink500Response
{
"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"
}
LinksRegisterNewLinkResponse
{
"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/InvalidLinkError"
},
{
"$ref": "#/components/schemas/400InvalidCredentialsStorageError"
},
{
"$ref": "#/components/schemas/400InvalidFetchHistorical"
},
{
"$ref": "#/components/schemas/400InvalidResourcesError"
},
{
"$ref": "#/components/schemas/UnconfirmedLinkError"
},
{
"$ref": "#/components/schemas/UnsupportedOperationError"
}
]
}
}
LinksRequest
{
"type": "object",
"required": [
"institution",
"username"
],
"properties": {
"token": {
"type": "string",
"example": "1234ab",
"description": "The MFA token required by the bank to log in.\n\nWe do not recommend sending the authentication token in the same request as registering the user. See our [Handling multi-factor authentication](https://developers.belvo.com/docs/handling-2-factor-authentication) article for more information and best practices.\n"
},
"password": {
"type": "string",
"example": "password",
"description": "The end-user's password used to log in to the institution.\n\nℹ️ **Note**: You must send through a password for all institutions except for IMSS (`imss_mx_employment`).\n"
},
"stale_in": {
"type": "string",
"example": "42d",
"description": "Indicates how long any data should be stored in Belvo's database for the link (both single and recurrent). For example, if you send through `90d`, Belvo will remove any data from its database relating to the user after 90 days.\n\n> **Note**: Belvo will only remove data for links that have not been updated in the period you provide in `stale_in`.\n> \n> For example, if you set `stale_in` to `42d` and only request information once on that day, then Belvo will remove any data associated with the link after 42 days. However, if you make another request five days later, then Belvo will restart the day counter to that day.\n\nBy default Belvo stores user data for 365 days, unless the link is deleted.\n"
},
"username": {
"type": "string",
"example": "username",
"description": "The end-user's username (or ID) used to log in to the institution."
},
"password2": {
"type": "string",
"example": "pin",
"description": "The end-user's second password used to log in to the institution.\n\nℹ️ This is only required by some institutions. To know which institutions require a second password, get the [details](https://developers.belvo.com/reference/detailinstitution) for the institution and check the `form_fields` array in the response.\n"
},
"username2": {
"type": "string",
"example": "secondusername",
"description": "The end-user's second username (or email address) used to log in to the institution.\n\nℹ️ This is only required by some institutions. To know which institutions require a second username, get the [details](https://developers.belvo.com/reference/detailinstitution) for the institution and check the `form_fields` array in the response.\n"
},
"username3": {
"type": "string",
"example": "thirdusername",
"description": "The end-user's third username used to log in to the institution.\n\nℹ️ This is only required by some institutions. To know which institutions require a third username, get the [details](https://developers.belvo.com/reference/detailinstitution) for the institution and check the `form_fields` array in the response.\n"
},
"access_mode": {
"$ref": "#/components/schemas/EnumLinkAccessModeRequest"
},
"external_id": {
"type": "string",
"example": "56ab5706-6e00-48a4-91c9-ca55968678d9",
"minLength": 3,
"description": "An additional identifier for the link, provided by you, to store\nin the Belvo database. **Cannot** include any Personal Identifiable Information (PII). **Must** be at least three characters long.\n\n\nIf we identify that the identifier contains PII, we will force a `null` value. For more information, see our [Link\ncreation\narticle](https://developers.belvo.com/docs/link-creation-best-practices#adding-your-own-identifier).\n"
},
"institution": {
"type": "string",
"example": "erebor_mx_retail",
"pattern": "[a-z]+_[a-z]{2}_[a-z]+",
"description": "The Belvo name for the institution."
},
"username_type": {
"type": "string",
"example": "001",
"description": "Type of document to be used as a username.\n\nSome banking institutions accept different documents to be used as the `username` to login. For example, the *Cédula de Ciudadanía*, *Cédula de Extranjería*, *Pasaporte'*, and so on.\n\nFor banks that require a document to log in, you **must** provide the `username_type` parameter to specify which document is used when creating the link.\n\nℹ️ To know which institutions require the `username_type` parameter, get the [details](https://developers.belvo.com/reference/detailinstitution) for the institution and check the `form_fields` array in the response.\n\nFor a list of standards codes, see the table below.\n\n| Code | Description |\n|-----------|-------|\n| `001` | Cédula de Ciudadanía |\n| `002` | Cédula de Extranjería |\n| `003` | Pasaporte |\n| `004` | Tarjeta de Identidad |\n| `005` | Registro Civil |\n| `006` | Número Identificación Personal |\n| `020` | NIT |\n| `021` | NIT Persona Natural |\n| `022` | NIT Persona Extranjera |\n| `023` | NIT Persona Jurídica |\n| `024` | NIT Menores |\n| `025` | NIT Desasociado |\n| `030` | Trj. Seguro Social Extranjero |\n| `031` | Sociedad Extranjera sin NIT en Colombia |\n| `032` | Fideicomiso |\n| `033` | RIF Venezuela |\n| `034` | CIF |\n| `035` | Número de Identidad |\n| `036` | RTN |\n| `037` | Cédula de Identidad |\n| `038` | DIMEX |\n| `039` | CED |\n| `040` | PAS |\n| `041` | Documento Único de Identidad |\n| `042` | NIT Salvadoreño |\n| `100` | Agência e conta |\n| `101` | Código do operador |\n| `102` | Cartão de crédito |\n| `103` | CPF |\n"
},
"fetch_resources": {
"type": "array",
"items": {
"type": "string",
"example": "ACCOUNTS",
"description": "A Belvo resource that the institution supports."
},
"example": [
"ACCOUNTS",
"TRANSACTIONS"
],
"description": "An array of resources that you would like to receive a historical update for.\n\nFor banking institutions, you can select the following resources:\n - `ACCOUNTS`\n - `OWNERS`\n - `TRANSACTIONS`\n - `BILLS` (only for OFDA institutions)\n - `INCOMES`\n - `RECURRING_EXPENSES`\n - `RISK_INSIGHTS`\n - `CREDIT_SCORE`\n\n\nFor fiscal institutions, you can select the following resources:\n - `INVOICES`\n - `TAX_COMPLIANCE_STATUS`\n - `TAX_DECLARATIONS`\n - `TAX_RETENTIONS`\n - `TAX_RETURNS`\n - `TAX_STATUS`\n\nFor employment institutions, you can select the following resources:\n - `OWNERS`\n - `EMPLOYMENT_RECORDS`\n - `EMPLOYMENT_METRICS`\n \n"
},
"credentials_storage": {
"type": "string",
"example": "27d",
"description": "Indicates whether or not to store credentials (and the duration for which to store the credentials).\n\n- For recurrent links, this is set to `store` by default (and cannot be changed). \n- For single links, this is set to `365d` by default.\n\nChoose either:\n - `store` to store credentials (until the link is deleted)\n - `nostore` to not store credentials\n - Any value between `1d` and `365d` to indicate the number of days you want the credentials to be stored.\n"
}
}
}
LinksResumeSession401Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
LinksResumeSession428Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/TokenRequiredResponse"
}
}
LinksResumeSession500Response
{
"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"
}
LinksResumeSessionResponse
{
"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"
}
]
}
}
LinksUpdateCredentials401Response
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/UnauthorizedError"
},
{
"$ref": "#/components/schemas/401_consent_without_accounts_error"
}
]
}
}
LinksUpdateCredentials404Response
{
"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"
}
LinksUpdateCredentials428Response
{
"type": "array",
"items": {
"$ref": "#/components/schemas/TokenRequiredResponse"
}
}
LinksUpdateCredentials500Response
{
"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"
}
LinksUpdateCredentialsResponse
{
"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"
}
]
}
}
LoginError
{
"type": "object",
"title": "Login Error",
"properties": {
"code": {
"type": "string",
"example": "login_error",
"description": "A unique error code (`login_error`) that allows you to classify and handle the error programmatically.\n\n\nℹ️ Check our DevPortal for more information on how to handle <a href=\"https://developers.belvo.com/docs/belvo-api-errors#400-login_error\" target=\"_blank\">400 login_error errors</a>.\n"
},
"message": {
"type": "string",
"example": "Invalid credentials provided to login to the institution",
"description": "A short description of the error. \n\n\nFor `login_error` errors, the description can be one of the following:\n\n - `Invalid credentials provided to login to the institution`\n - `A MFA token is required by the institution, but it's not supported yet by Belvo.`\n - `Impossible to login, something unexpected happened while logging into the institution. Try again later.`\n - `Login not attempted due to invalid credentials`\n - `Missing credentials to login to the institution`\n - `The user account access was forbidden by the institution`\n - `The user account is locked, user needs to contact the institution to unlock it`\n \n"
},
"request_id": {
"type": "string",
"example": "9e7b283c6efa449c9c028a16b5c249fb",
"pattern": "[a-f0-9]{32}",
"description": "A 32-character unique ID of the request (matching a regex pattern of: `[a-f0-9]{32}`). Provide this ID when contacting the Belvo\nsupport team to accelerate investigations.\n"
}
},
"description": "This error can occur when:\n\n - the credentials that your user provides are incorrect or missing.\n - the MFA token your user provides is not supported by Belvo.\n - there is an issue with the institution that prevents logins.\n - the user's account is either locked or the user does not have permission to access their internet banking.\n"
}
NetIncomeIndividual
{
"type": "object",
"required": [
"earned_income",
"fee_based_income",
"capital_income",
"non_labor_income"
],
"properties": {
"earned_income": {
"type": "number",
"format": "float",
"example": 115004000,
"description": "Income received from employment."
},
"capital_income": {
"type": "number",
"format": "float",
"example": 0,
"description": "Income received from an investment (such as dividends or from renting a property)."
},
"fee_based_income": {
"type": "number",
"format": "float",
"example": 0,
"description": "Income received from emitted invoices (for example, income independent contractors or freelancers receive)."
},
"non_labor_income": {
"type": "number",
"format": "float",
"example": 0,
"description": "Income that cannot be classified into the other three fields (such as income from cryptocurrencies or regular transfers from parents)."
}
},
"description": "Object containing the declared net income of the tax payer. The values are calculated as the `gross_income` - `non_taxable_income`."
}
NonTaxableIncomeIndividual
{
"type": "object",
"required": [
"earned_income",
"fee_based_income",
"capital_income",
"non_labor_income"
],
"properties": {
"earned_income": {
"type": "number",
"format": "float",
"example": 115004000,
"description": "Income received from employment."
},
"capital_income": {
"type": "number",
"format": "float",
"example": 0,
"description": "Income received from an investment (such as dividends or from renting a property)."
},
"fee_based_income": {
"type": "number",
"format": "float",
"example": 0,
"description": "Income received from emitted invoices (for example, income independent contractors or freelancers receive)."
},
"non_labor_income": {
"type": "number",
"format": "float",
"example": 0,
"description": "Income that cannot be classified into the other three fields (such as income from cryptocurrencies or regular transfers from parents)."
}
},
"description": "Object containing the declared non-taxable income of the tax payer."
}
NotFoundError
{
"type": "object",
"title": "Not Found",
"properties": {
"code": {
"type": "string",
"example": "not_found",
"description": "A unique error code (`not_found`) that allows you to classify and handle the error programmatically.\n\n\nℹ️ Check our DevPortal for more information on how to handle <a href=\"https://developers.belvo.com/docs/belvo-api-errors#404-not_found\" target=\"_blank\">404 not_found errors</a>.\n"
},
"message": {
"type": "string",
"example": "Not found",
"description": "A short description of the error. \n\n\nFor `not_found` errors, the description is:\n \n - `Not found`\n"
},
"request_id": {
"type": "string",
"example": "9e7b283c6efa449c9c028a16b5c249fb",
"pattern": "[a-f0-9]{32}",
"description": "A 32-character unique ID of the request (matching a regex pattern of: `[a-f0-9]{32}`). Provide this ID when contacting the Belvo\nsupport team to accelerate investigations.\n"
}
}
}
Owner
{
"type": "object",
"title": "Owner Standard (Multi-Region)",
"required": [
"id",
"link",
"internal_identification",
"display_name",
"email",
"phone_number",
"address",
"collected_at"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "c749315b-eec2-435d-a458-06912878564f",
"description": "Belvo's unique identifier used to reference the current owner."
},
"link": {
"type": "string",
"format": "uuid",
"example": "30cb4806-6e00-48a4-91c9-ca55968576c8",
"description": "Belvo's unique ID for the current Link."
},
"email": {
"type": "string",
"format": "email",
"example": "johndoe@belvo.com",
"nullable": true,
"maxLength": 256,
"description": "The account owner's registered email address."
},
"address": {
"type": "string",
"example": "Carrer de la Llacuna, 162, 08018 Barcelona",
"nullable": true,
"description": "The accounts owners registered address."
},
"last_name": {
"type": "string",
"example": null,
"nullable": true,
"deprecated": true,
"description": "*This field has been deprecated. For more information regarding Belvo and deprecation, see our [Deprecated fields](https://developers.belvo.com/reference/using-the-api-reference#%EF%B8%8F-deprecated-fields) explanation.*\n\n*The last name of the account owner.*\n"
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2022-02-09T08:45:50.406032Z",
"description": "The ISO-8601 timestamp of when the data point was last updated in Belvo's database.\n"
},
"first_name": {
"type": "string",
"example": null,
"nullable": true,
"deprecated": true,
"description": "*This field has been deprecated. For more information regarding Belvo and deprecation, see our [Deprecated fields](https://developers.belvo.com/reference/using-the-api-reference#%EF%B8%8F-deprecated-fields) explanation.*\n\n*The first name of the account owner.*\n"
},
"document_id": {
"$ref": "#/components/schemas/OwnerDocumentId"
},
"collected_at": {
"type": "string",
"format": "date-time",
"example": "2019-09-27T13:01:41.941Z",
"nullable": true,
"description": "The ISO-8601 timestamp when the data point was collected.\n"
},
"display_name": {
"type": "string",
"example": "John Doe",
"nullable": true,
"maxLength": 128,
"description": "The full name of the owner, as provided by the bank."
},
"phone_number": {
"type": "string",
"example": "+52-XXX-XXX-XXXX",
"nullable": true,
"description": "The account owner's registered phone number."
},
"business_name": {
"type": "string",
"example": null,
"nullable": true,
"deprecated": true,
"description": "*This field has been deprecated. For more information regarding Belvo and deprecation, see our [Deprecated fields](https://developers.belvo.com/reference/using-the-api-reference#%EF%B8%8F-deprecated-fields) explanation.*\n\n*The name of the business.*\n"
},
"second_last_name": {
"type": "string",
"example": null,
"nullable": true,
"deprecated": true,
"description": "*This field has been deprecated. For more information regarding Belvo and deprecation, see our [Deprecated fields](https://developers.belvo.com/reference/using-the-api-reference#%EF%B8%8F-deprecated-fields) explanation.*\n\n*The second last name of the account owner.*\n"
},
"internal_identification": {
"type": "string",
"example": "7e5838e4",
"nullable": true,
"description": "The institution's internal identifier for the owner."
}
}
}
OwnerAddresses
{
"type": "object",
"nullable": true,
"required": [
"is_main",
"address",
"additional_info",
"district_name",
"town",
"town_code",
"state",
"postcode",
"country_name",
"country_code",
"latitude",
"longitude"
],
"properties": {
"town": {
"type": "string",
"example": "Brasilia",
"pattern": "^[\\w\\W\\s]{0,50}$",
"maxLength": 50,
"description": "The user's town.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"state": {
"type": "string",
"example": "SP",
"pattern": "^[\\w\\W\\s]{0,2}$",
"nullable": true,
"maxLength": 2,
"description": "The state that the address is located in.\n"
},
"address": {
"type": "string",
"example": "Av Naburo Ykesaki, 1270",
"pattern": "^[\\w\\W\\s]{0,150}$",
"maxLength": 150,
"description": "The user's address.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"is_main": {
"type": "boolean",
"example": true,
"description": "Boolean to indicate if this is the user's main address.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"latitude": {
"type": "string",
"example": "-23.5475000",
"pattern": "^-?\\d{1,2}\\.\\d{1,9}$",
"nullable": true,
"maxLength": 13,
"description": "The geographic latitude coordinate.\n"
},
"postcode": {
"type": "string",
"example": "17500001",
"pattern": "^\\d{8}$",
"maxLength": 8,
"description": "The postcode of the address.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"longitude": {
"type": "string",
"example": "-46.6361100",
"pattern": "^-?\\d{1,3}\\.\\d{1,8}$",
"nullable": true,
"maxLength": 13,
"description": "The geographic longitude coordinate.\n"
},
"town_code": {
"type": "string",
"example": "3550308",
"pattern": "\\d{7}$",
"nullable": true,
"maxLength": 7,
"description": "The seven-digit code for the town, if applicable.\n\nFor Brazil, this is the IBGE town code.\n"
},
"country_code": {
"type": "string",
"example": "BRA",
"pattern": "^([A-Z]{3})$",
"nullable": true,
"maxLength": 3,
"description": "The three-letter country code (ISO-3166 Alpha 3 compliant).\n"
},
"country_name": {
"type": "string",
"example": "Brasil",
"pattern": "^[\\w\\W\\s]{0,80}$",
"maxLength": 80,
"description": "The name of the country.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"district_name": {
"type": "string",
"example": "CENTRO",
"pattern": "^[\\w\\W\\s]{0,50}$",
"nullable": true,
"maxLength": 50,
"description": "The distrct of the address.\n"
},
"additional_info": {
"type": "string",
"example": "In between two palm trees",
"pattern": "^[\\w\\W\\s]{0,150}$",
"nullable": true,
"maxLength": 150,
"description": "Additional information regarding the user's address.\n"
}
},
"description": "Detailed information regarding the owner's addresses."
}
OwnerBusinessDocumentIds
{
"type": "object",
"nullable": true,
"required": [
"type",
"type_additional_info",
"number",
"check_digit",
"issue_date",
"expiration_date",
"country_of_issuance",
"additional_info"
],
"properties": {
"type": {
"$ref": "#/components/schemas/EnumOwnerIndividualDocumentIdType"
},
"number": {
"type": "string",
"example": "DL-7896829-7",
"pattern": "^[\\w\\W]{0,40}$",
"maxLength": 40,
"description": "The ID document's number.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"issue_date": {
"type": "string",
"format": "date",
"example": null,
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$",
"nullable": true,
"maxLength": 10,
"description": "The date the the ID document was issued, in `YYYY-MM-DD` format.\n\n> **Note**: This field is not applicable for Business ID documents and will return `null`.\n"
},
"check_digit": {
"type": "string",
"example": null,
"pattern": "^[\\w\\W\\s]{0,2}$",
"maxLength": 2,
"description": "The check digit of the ID document.\n\n> **Note**: This field is not applicable for Business ID documents and will return `null`.\n"
},
"additional_info": {
"type": "string",
"example": null,
"pattern": "^[\\w\\W\\s]{0,100}$",
"nullable": true,
"maxLength": 100,
"description": "Additional information about the ID document.\n\n> **Note**: This field is not applicable for Business ID documents and will return `null`.\n"
},
"expiration_date": {
"type": "string",
"format": "date",
"example": "2019-01-01",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$",
"nullable": true,
"maxLength": 10,
"description": "The date the the ID document expires, in `YYYY-MM-DD` format.\n"
},
"country_of_issuance": {
"type": "string",
"example": "CAN",
"pattern": "^(\\w{3}){1}$",
"nullable": true,
"maxLength": 3,
"description": "The three-letter country code that issued the document (in ISO-3166 Alpha 3 format).\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"type_additional_info": {
"type": "string",
"example": "EIN",
"pattern": "^[\\w\\W\\s]{0,70}$",
"nullable": true,
"maxLength": 70,
"description": "Additional information regarding the document type.\n\n> Note: For Business ID documents, this field must return a value from Brazil's open finance network.\n"
}
},
"description": "Detailed information regarding additional documents provided to prove the business's ID."
}
OwnerBusinessEconomicActivies
{
"type": "object",
"nullable": true,
"required": [
"is_main",
"code"
],
"properties": {
"code": {
"type": "string",
"example": "8599604",
"pattern": "^\\d{2,7}$",
"maxLength": 7,
"minLength": 2,
"description": "The code of the economic activity, as given by the country.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `economic_activities` field is available.\n"
},
"is_main": {
"type": "boolean",
"example": true,
"description": "Boolean to indicate whether this is the business's main economic activity.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `economic_activities` field is available.\n"
}
},
"description": "Details regarding the reported economic activities of the business."
}
OwnerBusinessFinancialProfile
{
"type": "object",
"nullable": true,
"required": [
"economic_activities",
"informed_revenue",
"patrimony"
],
"properties": {
"patrimony": {
"$ref": "#/components/schemas/OwnerBusinessPatrimony"
},
"informed_revenue": {
"$ref": "#/components/schemas/OwnerBusinessInformedRevenue"
},
"economic_activities": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerBusinessEconomicActivies"
},
"description": "Details regarding the reported economic activities of the business."
}
},
"description": "Information regarding the financial profile of the individual."
}
OwnerBusinessFinancialRelation
{
"type": "object",
"nullable": true,
"required": [
"start_date",
"product_services",
"procurators",
"products"
],
"properties": {
"products": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerBusinessProducts"
},
"description": "Details regarding any additional products that the business has with the institution."
},
"start_date": {
"type": "string",
"format": "date-time",
"example": "2021-05-21T08:30:00Z",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\\d|2[0123]):(?:[012345]\\d):(?:[012345]\\d)Z$",
"maxLength": 20,
"description": "The ISO-8601 timestamp when the financial relationship between the business and the institution started.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"procurators": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerProcurators"
},
"description": "Information regarding any individuals or companies that can act on behalf of the owner."
},
"product_services": {
"type": "array",
"items": {
"type": "string",
"example": "CONTA_DEPOSITO_A_VISTA",
"description": "The name of the product, according to the institution.\n"
},
"minItems": 1,
"description": "A list of products that the business has with the institution.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
}
},
"description": "Details regarding any additional relationship the business has with the institution (for example, other accounts or products they have with the institution)."
}
OwnerBusinessInformedRevenue
{
"type": "object",
"nullable": true,
"required": [
"frequency",
"frequency_additional_info",
"amount",
"currency",
"year"
],
"properties": {
"year": {
"type": "integer",
"example": 2022,
"maximum": 2090,
"minimum": 1700,
"maxLength": 4,
"description": "The year when revenue was last declared.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `informed_revenue` field is available.\n"
},
"amount": {
"type": "number",
"example": 45391.89,
"pattern": "^\\d{1,15}\\.\\d{2,4}$",
"description": "The reported revenue of the business.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `informed_revenue` field is available.\n"
},
"currency": {
"type": "string",
"example": "BRL",
"pattern": "^[A-Z]{3}$",
"maxLength": 3,
"description": "The three-letter currency code (ISO-4217).\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `informed_revenue` field is available.\n"
},
"frequency": {
"$ref": "#/components/schemas/EnumOwnerBusinessInformedRevenueFrequency"
},
"frequency_additional_info": {
"type": "string",
"example": "Recently switched from weekly to monthly.",
"pattern": "[\\w\\W\\s]*",
"nullable": true,
"maxLength": 100,
"description": "Additional information regarding the frequency.\n"
}
},
"description": "Information regarding the business's reported revenue."
}
OwnerBusinessOpenFinanceBrazil
{
"type": "object",
"title": "Owner Business (OFDA Brazil)",
"required": [
"id",
"link",
"internal_identification",
"collected_at",
"created_at",
"company_name",
"trade_name",
"incorporation_date",
"companies_id",
"document_id",
"additional_documents",
"email",
"emails",
"address",
"addresses",
"phone_number",
"phone_numbers",
"parties",
"financial_profile",
"financial_relation"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "c749315b-eec2-435d-a458-06912878564f",
"description": "Belvo's unique identifier used to reference the current owner."
},
"link": {
"type": "string",
"format": "uuid",
"example": "30cb4806-6e00-48a4-91c9-ca55968576c8",
"description": "Belvo's unique ID for the current Link."
},
"email": {
"type": "string",
"format": "email",
"example": "johndoe@belvo.com",
"nullable": true,
"maxLength": 256,
"description": "The account owner's registered email address."
},
"emails": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerEmails"
},
"minItems": 0,
"description": "Additional list of emails the owner provided."
},
"address": {
"type": "string",
"example": "Carrer de la Llacuna, 162, 08018 Barcelona",
"nullable": true,
"description": "The accounts owners registered address."
},
"parties": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerParties"
},
"minItems": 1,
"description": "Detailed information regarding the parties allowed to act on the owner's behalf.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"addresses": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerAddresses"
},
"minItems": 1,
"description": "Detailed information regarding the owner's addresses."
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2022-02-09T08:45:50.406032Z",
"description": "The ISO-8601 timestamp of when the data point was last updated in Belvo's database.\n"
},
"trade_name": {
"type": "string",
"example": "WayneCorp",
"pattern": "^[\\w\\W]{0,128}$",
"nullable": true,
"maxLength": 128,
"description": "The trade name of the business.\n"
},
"document_id": {
"$ref": "#/components/schemas/OwnerDocumentIdOpenFinanceBrazil"
},
"collected_at": {
"type": "string",
"format": "date-time",
"example": "2019-09-27T13:01:41.941Z",
"nullable": true,
"description": "The ISO-8601 timestamp when the data point was collected.\n"
},
"companies_id": {
"type": "array",
"items": {
"type": "string",
"example": "01773247000103",
"pattern": "^\\d{14}$",
"maxLength": 14,
"description": "The institutions responsible for the creation and verification of the owner.\n"
},
"minItems": 1,
"description": "The institutions responsible for the creation and verification of the owner.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"company_name": {
"type": "string",
"example": "Wayne Enterprises",
"pattern": "^[\\w\\W]{0,128}$",
"maxLength": 128,
"description": "The full (official) name of the business, as provided by the institution.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"phone_number": {
"type": "string",
"example": "+52-XXX-XXX-XXXX",
"nullable": true,
"description": "The account owner's registered phone number."
},
"phone_numbers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerPhoneNumbers"
},
"minItems": 0,
"description": "Detailed information regarding the owner's `phone_number`s."
},
"financial_profile": {
"$ref": "#/components/schemas/OwnerBusinessFinancialProfile"
},
"financial_relation": {
"$ref": "#/components/schemas/OwnerBusinessFinancialRelation"
},
"incorporation_date": {
"type": "string",
"format": "date",
"example": "1988-07-15",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$",
"maxLength": 10,
"description": "The date that the business was incorporated, in `YYYY-MM-DD` format.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"additional_documents": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerBusinessDocumentIds"
},
"minItems": 1,
"description": "Detailed information regarding additional documents provided to prove the business's ID.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"internal_identification": {
"type": "string",
"example": "7e5838e4",
"nullable": true,
"description": "The institution's internal identifier for the owner."
}
}
}
OwnerBusinessPatrimony
{
"type": "object",
"nullable": true,
"required": [
"amount",
"currency",
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"example": "2022-12-12",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$",
"maxLength": 10,
"description": "The date that the reported assets applied, in `YYYY-MM-DD` format.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `patrimony` field is available.\n"
},
"amount": {
"type": "number",
"format": "float",
"example": 45391.89,
"pattern": "^\\d{1,15}\\.\\d{2,4}$",
"description": "The reported assets of the business.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `patrimony` field is available.\n"
},
"currency": {
"type": "string",
"example": "BRL",
"pattern": "^[A-Z]{3}$",
"maxLength": 3,
"description": "The three-letter currency code (ISO-4217).\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `patrimony` field is available.\n"
}
},
"description": "Information regarding the individual's reported assets."
}
OwnerBusinessProducts
{
"type": "object",
"nullable": true,
"required": [
"type",
"subtype",
"agency",
"clearing_code",
"number",
"check_digit"
],
"properties": {
"type": {
"$ref": "#/components/schemas/EnumOwnerBusinessProductType"
},
"agency": {
"type": "string",
"example": "6272",
"pattern": "^\\d{1,4}$",
"nullable": true,
"maxLength": 4,
"description": "The branch code where the product was opened.\n"
},
"number": {
"type": "string",
"example": "24550245",
"pattern": "^\\d{8,20}$",
"maxLength": 20,
"description": "The account number of the product.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `products` field is available.\n"
},
"subtype": {
"type": "string",
"example": "CONJUNTA_SIMPLES",
"description": "The subtype of the product that the business has at the institution.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `products` field is available.\n"
},
"check_digit": {
"type": "string",
"example": "7",
"pattern": "^[\\w\\W\\s]{0,2}$",
"maxLength": 2,
"description": "The check digit of the product's number.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `products` field is available.\n"
},
"clearing_code": {
"type": "string",
"example": "001",
"pattern": "^\\d{3}$",
"maxLength": 3,
"description": "The banking clearing code for the product.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `products` field is available.\n"
}
},
"description": "Details regarding any additional products that the individual has with the institution."
}
OwnerDocumentId
{
"type": "object",
"nullable": true,
"required": [
"document_type",
"document_number"
],
"properties": {
"document_type": {
"type": "string",
"example": "CPF",
"nullable": true,
"description": "The type of document the owner provided to the institution to open the account. Common document types are:\n\n🇧🇷 Brazil\n- `CPF` (*Cadastro de Pessoas Físicas*)\n- `CNPJ`(*Cadastro Nacional de Pessoas Jurídicas*)\n\n🇨🇴 Colombia\n- `CC`(*Cédula de Ciudadanía*)\n- `NIT` (*Número de Identificación Tributaria*)\n\n🇲🇽 Mexico\n- `CURP` (*Clave Única de Registro de Población*)\n- `NISS` (*Número de Seguridad Social*)\n- `RFC` (*Registro Federal de Contribuyentes*)\n"
},
"document_number": {
"type": "string",
"example": "235578435-S",
"nullable": true,
"description": "The document's identification number."
}
},
"description": "Information regarding the identification document the owner provided to the bank."
}
OwnerDocumentIdOpenFinanceBrazil
{
"type": "object",
"required": [
"document_type",
"document_number"
],
"properties": {
"document_type": {
"type": "string",
"example": "CPF",
"description": "The type of document the owner provided to the institution to open the account. Common document types are:\n\n🇧🇷 Brazil\n- `CPF` (*Cadastro de Pessoas Físicas*)\n- `CNPJ`(*Cadastro Nacional de Pessoas Jurídicas*)\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"document_number": {
"type": "string",
"example": "235578435-S",
"description": "The document's identification number.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
}
},
"description": "Information regarding the identification document the owner provided to the bank.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
}
OwnerEmails
{
"type": "object",
"nullable": true,
"required": [
"is_main",
"email"
],
"properties": {
"email": {
"type": "string",
"example": "homen_morcego@gmail.com",
"pattern": "^[\\w\\W\\s]{0,320}$",
"maxLength": 320,
"description": "The user's email address.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"is_main": {
"type": "boolean",
"example": true,
"description": "Boolean to indicate if this is the user's main email address.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
}
},
"description": "Additional list of emails the owner provided."
}
OwnerFiliations
{
"type": "object",
"required": [
"type",
"civil_name",
"social_name"
],
"properties": {
"type": {
"$ref": "#/components/schemas/EnumOwnerFiliationType"
},
"civil_name": {
"type": "string",
"example": "Bruce Wayne",
"pattern": "^[\\w\\W\\s]{0,70}$",
"maxLength": 70,
"description": "The person's full name.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"social_name": {
"type": "string",
"example": "The Dark Knight",
"pattern": "^[\\w\\W\\s]{0,70}$",
"nullable": true,
"maxLength": 70,
"description": "The person's social name.\n"
}
},
"description": "Information regarding any familial relationships of the individual."
}
OwnerIndividualDocumentIds
{
"type": "object",
"nullable": true,
"required": [
"type",
"type_additional_info",
"number",
"check_digit",
"issue_date",
"expiration_date",
"country_of_issuance",
"additional_info"
],
"properties": {
"type": {
"$ref": "#/components/schemas/EnumOwnerIndividualDocumentIdType"
},
"number": {
"type": "string",
"example": "DL-7896829-7",
"pattern": "^[\\w\\W\\s]{0,40}$",
"maxLength": 40,
"description": "The ID document's number.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"issue_date": {
"type": "string",
"format": "date",
"example": "2019-01-01",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$",
"nullable": true,
"maxLength": 10,
"description": "The date the the ID document was issued, in `YYYY-MM-DD` format.\n"
},
"check_digit": {
"type": "string",
"example": "7",
"pattern": "^[\\w\\W\\s]{0,2}$",
"maxLength": 2,
"description": "The check digit of the ID document.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"additional_info": {
"type": "string",
"example": "The document has water damage",
"pattern": "^[\\w\\W\\s]{0,100}$",
"nullable": true,
"maxLength": 100,
"description": "Additional information about the ID document.\n"
},
"expiration_date": {
"type": "string",
"format": "date",
"example": "2019-01-01",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$",
"nullable": true,
"maxLength": 10,
"description": "The date the the ID document expires, in `YYYY-MM-DD` format.\n"
},
"country_of_issuance": {
"type": "string",
"example": "CAN",
"pattern": "^[\\w]{3}$",
"nullable": true,
"maxLength": 3,
"description": "The three-letter country code that issued the document (in ISO-3166 Alpha 3 format).\n\nThis field must be returned when the `type` is `PASSPORT`.\n"
},
"type_additional_info": {
"type": "string",
"example": "Learner's licence",
"pattern": "^[\\w\\W\\s]{0,70}$",
"nullable": true,
"maxLength": 70,
"description": "Additional information regarding the document type.\n\n> Note: For Business ID documents, this field must return a value from Brazil's open finance network.\n"
}
},
"description": "Detailed information regarding additional documents provided to prove the individuals ID."
}
OwnerIndividualFinancialProfile
{
"type": "object",
"nullable": true,
"required": [
"company_id",
"occupation_code",
"occupation_description",
"informed_income",
"patrimony"
],
"properties": {
"patrimony": {
"$ref": "#/components/schemas/OwnerIndividualPatrimony"
},
"company_id": {
"type": "string",
"example": "50685362000135",
"pattern": "^\\d{14}$",
"nullable": true,
"maxLength": 14,
"description": "The identifier of the company where the individual is employed.\n"
},
"informed_income": {
"$ref": "#/components/schemas/OwnerIndividualInformedIncome"
},
"occuptation_code": {
"$ref": "#/components/schemas/EnumOwnerIndividualFinancialProfileOccupationCode"
},
"occupation_description": {
"type": "string",
"example": "01",
"pattern": "[\\w\\W\\s]*",
"nullable": true,
"maxLength": 100,
"description": "Information regarding the individual's occupation.\n"
}
},
"description": "Information regarding the financial profile of the individual."
}
OwnerIndividualFinancialRelation
{
"type": "object",
"nullable": true,
"required": [
"start_date",
"product_services",
"product_services_additional_info",
"procurators",
"products"
],
"properties": {
"products": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerIndividualProducts"
},
"description": "Details regarding any additional products that the individual has with the institution."
},
"start_date": {
"type": "string",
"format": "date-time",
"example": "2021-05-21T08:30:00Z",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\\d|2[0123]):(?:[012345]\\d):(?:[012345]\\d)Z$",
"maxLength": 20,
"description": "The ISO-8601 timestamp when the financial relationship between the individual and the institution started.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"procurators": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerProcurators"
},
"description": "Information regarding any individuals or companies that can act on behalf of the owner."
},
"product_services": {
"type": "array",
"items": {
"type": "string",
"example": "CONTA_DEPOSITO_A_VISTA",
"description": "The name of the product, according to the institution.\n"
},
"minItems": 1,
"description": "A list of products that the individual has with the institution.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"product_services_additional_info": {
"type": "string",
"example": "Joint account with Robin",
"pattern": "^[\\w\\W]*$",
"nullable": true,
"maxLength": 100,
"description": "Additional information regarding the products that the individual has.\n"
}
},
"description": "Details regarding any additional relationship the individual has with the institution (for example, other accounts or products they have with the institution)."
}
OwnerIndividualInformedIncome
{
"type": "object",
"required": [
"frequency",
"amount",
"currency",
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"example": "2020-03-19",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$",
"maxLength": 10,
"description": "Date when the individual last received their salary.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"amount": {
"type": "number",
"format": "float",
"example": 45391.89,
"pattern": "^\\d{1,15}\\.\\d{2,4}$",
"maxLength": 20,
"minLength": 1,
"description": "The reported income that the individual receives.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"currency": {
"type": "string",
"example": "BRL",
"pattern": "^[A-Z]{3}$",
"maxLength": 3,
"description": "The three-letter currency code (ISO-4217).\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"frequency": {
"$ref": "#/components/schemas/EnumOwnerInformedIncomeFrequency"
}
},
"description": "Information regarding the individual's reported income.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
}
OwnerIndividualNationalityDocumentId
{
"type": "object",
"nullable": true,
"required": [
"type",
"type_additional_info",
"number",
"issue_date",
"expiration_date",
"country_of_issuance",
"additional_info"
],
"properties": {
"type": {
"$ref": "#/components/schemas/EnumOwnerIndividualDocumentIdType"
},
"number": {
"type": "string",
"example": "DL-7896829-7",
"pattern": "^[\\w\\W\\s]{0,40}$",
"maxLength": 40,
"description": "The ID document's number.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"issue_date": {
"type": "string",
"format": "date",
"example": "2019-01-01",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$",
"nullable": true,
"maxLength": 10,
"description": "The date the the ID document was issued, in `YYYY-MM-DD` format.\n"
},
"additional_info": {
"type": "string",
"example": "The document has water damage",
"pattern": "^[\\w\\W\\s]{0,100}$",
"nullable": true,
"maxLength": 100,
"description": "Additional information about the ID document.\n"
},
"expiration_date": {
"type": "string",
"format": "date",
"example": "2019-01-01",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$",
"nullable": true,
"maxLength": 10,
"description": "The date the the ID document expires, in `YYYY-MM-DD` format.\n"
},
"country_of_issuance": {
"type": "string",
"example": "CAN",
"pattern": "^[\\w]{3}$",
"nullable": true,
"maxLength": 3,
"description": "The three-letter country code that issued the document (in ISO-3166 Alpha 3 format).\n\nThis field must be returned when the `type` is `PASSPORT`.\n"
}
},
"description": "Detailed information regarding additional documents provided to prove the individuals ID."
}
OwnerIndividualOpenFinanceBrazil
{
"type": "object",
"title": "Owner Individual (OFDA Brazil)",
"required": [
"id",
"link",
"internal_identification",
"collected_at",
"created_at",
"display_name",
"social_name",
"birth_date",
"marital_status",
"marital_status_additional_info",
"gender",
"companies_id",
"is_local_resident",
"document_id",
"additional_documents",
"nationalities",
"email",
"emails",
"address",
"addresses",
"phone_number",
"phone_numbers",
"filiations",
"financial_profile",
"financial_relation"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "c749315b-eec2-435d-a458-06912878564f",
"description": "Belvo's unique identifier used to reference the current owner."
},
"link": {
"type": "string",
"format": "uuid",
"example": "30cb4806-6e00-48a4-91c9-ca55968576c8",
"description": "Belvo's unique ID for the current Link."
},
"email": {
"type": "string",
"format": "email",
"example": "johndoe@belvo.com",
"nullable": true,
"maxLength": 320,
"description": "The account owner's registered email address.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"emails": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerEmails"
},
"minItems": 0,
"description": "Additional list of emails the owner provided.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"gender": {
"$ref": "#/components/schemas/EnumOwnerGender"
},
"address": {
"type": "string",
"example": "Carrer de la Llacuna, 162, 08018 Barcelona",
"nullable": true,
"description": "The account owner's registered address.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"addresses": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerAddresses"
},
"minItems": 1,
"description": "Detailed information regarding the owner's addresses.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"birth_date": {
"type": "string",
"format": "date",
"example": "1988-07-15",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$",
"maxLength": 10,
"description": "The individual's date of birth, in `YYYY-MM-DD` format.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2022-02-09T08:45:50.406032Z",
"description": "The ISO-8601 timestamp of when the data point was last updated in Belvo's database.\n"
},
"filiations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerFiliations"
},
"minItems": 1,
"description": "Information regarding any familial relationships of the individual.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"document_id": {
"$ref": "#/components/schemas/OwnerDocumentIdOpenFinanceBrazil"
},
"social_name": {
"type": "string",
"example": "O Piadista",
"pattern": "^[\\w\\W]{0,128}$",
"nullable": true,
"maxLength": 128,
"description": "The social name of the individual, as generally accepted by the country.\n"
},
"collected_at": {
"type": "string",
"format": "date-time",
"example": "2019-09-27T13:01:41.941Z",
"nullable": true,
"description": "The ISO-8601 timestamp when the data point was collected.\n"
},
"companies_id": {
"type": "array",
"items": {
"type": "string",
"example": "01773247000103",
"pattern": "^\\d{14}$",
"maxLength": 14,
"description": "The institutions responsible for the creation and verification of the owner.\n"
},
"minItems": 1,
"description": "The institutions responsible for the creation and verification of the owner.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"display_name": {
"type": "string",
"example": "Jack Oswald White",
"pattern": "^[\\w\\W]{0,128}$",
"maxLength": 128,
"description": "The full name of the individual, as provided by the institution.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"phone_number": {
"type": "string",
"example": "+52-XXX-XXX-XXXX",
"nullable": true,
"description": "The account owner's registered phone number.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"nationalities": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerNationalities"
},
"minItems": 1,
"nullable": true,
"description": "Detailed information regarding the individual's nationalities.\n\nOnly required to be returned when `is_local_resident` is set to `false`.\n"
},
"phone_numbers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerPhoneNumbers"
},
"minItems": 0,
"description": "Detailed information regarding the owner's phone numbers.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"marital_status": {
"$ref": "#/components/schemas/EnumOwnerMaritalStatus"
},
"financial_profile": {
"$ref": "#/components/schemas/OwnerIndividualFinancialProfile"
},
"is_local_resident": {
"type": "boolean",
"example": true,
"description": "Boolean to indicate if the individual is a local resident of the country.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"financial_relation": {
"$ref": "#/components/schemas/OwnerIndividualFinancialRelation"
},
"additional_documents": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerIndividualDocumentIds"
},
"minItems": 1,
"description": "Detailed information regarding additional documents provided to prove the individuals ID.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"internal_identification": {
"type": "string",
"example": "7e5838e4",
"nullable": true,
"description": "The institution's internal identifier for the owner."
},
"marital_status_additional_info": {
"type": "string",
"example": "It's complicated",
"pattern": "^[\\w\\W]{0,50}$",
"nullable": true,
"maxLength": 50,
"description": "Additional information about the individual's marital status.\n"
}
}
}
OwnerIndividualPatrimony
{
"type": "object",
"nullable": true,
"required": [
"amount",
"currency",
"year"
],
"properties": {
"year": {
"type": "integer",
"format": "int32",
"example": 2020,
"maximum": 2090,
"minimum": 1700,
"description": "The year that the reported assets applied. \n\n> **Non-nullable:** A value must be returned by Brazil's open finance network when the `patrimony` object is available.\n"
},
"amount": {
"type": "number",
"format": "float",
"example": 45391.89,
"pattern": "^\\d{1,15}\\.\\d{2,4}$",
"description": "The reported assets of the individual.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network when the `patrimony` object is available.\n"
},
"currency": {
"type": "string",
"example": "BRL",
"pattern": "^[A-Z]{3}$",
"maxLength": 3,
"description": "The three-letter currency code (ISO-4217).\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network when the `patrimony` object is available.\n"
}
},
"description": "Information regarding the individual's reported assets (if available)."
}
OwnerIndividualProducts
{
"type": "object",
"nullable": true,
"required": [
"type",
"subtype",
"agency",
"clearing_code",
"number",
"check_digit"
],
"properties": {
"type": {
"$ref": "#/components/schemas/EnumOwnerIndividualProductType"
},
"agency": {
"type": "string",
"example": "6272",
"pattern": "^\\d{1,4}$",
"nullable": true,
"maxLength": 4,
"description": "The branch code where the product was opened.\n"
},
"number": {
"type": "string",
"example": "24550245",
"pattern": "^\\d{8,20}$",
"maxLength": 20,
"description": "The account number of the product.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `procurators` field is available.\n"
},
"subtype": {
"type": "string",
"example": "CONJUNTA_SIMPLES",
"nullable": true,
"description": "The subtype of the product that the individual has at the institution.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `products` field is available.\n"
},
"check_digit": {
"type": "string",
"example": "7",
"pattern": "[\\w\\W\\s]*",
"maxLength": 2,
"description": "The check digit of the product's number.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `products` field is available.\n"
},
"clearing_code": {
"type": "string",
"example": "001",
"pattern": "^\\d{3}$",
"maxLength": 3,
"description": "The banking clearing code for the product.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `products` field is available.\n"
}
},
"description": "Details regarding any additional products that the individual has with the institution."
}
OwnerNationalities
{
"type": "object",
"required": [
"info",
"documents"
],
"properties": {
"info": {
"type": "string",
"example": "CAN",
"pattern": "^\\S[\\s\\S]*$",
"nullable": true,
"maxLength": 40,
"description": "The nationality of the individual.\n"
},
"documents": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OwnerIndividualNationalityDocumentId"
}
}
},
"description": "Detailed information regarding the individual's nationalities."
}
OwnerParties
{
"type": "object",
"nullable": true,
"required": [
"person_type",
"type",
"display_name",
"social_name",
"trade_name",
"start_date",
"percentage_type",
"document_type",
"document_number",
"document_issue_date",
"document_expiration_date",
"document_country",
"document_additional_info"
],
"properties": {
"type": {
"$ref": "#/components/schemas/EnumOwnerPartyType"
},
"start_date": {
"type": "string",
"format": "date",
"example": "2021-07-15",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$",
"nullable": true,
"maxLength": 10,
"description": "The date that the party was added to the account, in `YYYY-MM-DD` format.\n"
},
"trade_name": {
"type": "string",
"example": "WayneCorp",
"pattern": "^[\\w\\W]{0,128}$",
"nullable": true,
"maxLength": 128,
"description": "The trade name of the business. Only applicable if the `person_type` is `COMPANY`.\n"
},
"person_type": {
"$ref": "#/components/schemas/EnumOwnerPartyPersonType"
},
"social_name": {
"type": "string",
"example": "O Piadista",
"pattern": "^[\\w\\W]{0,128}$",
"nullable": true,
"maxLength": 128,
"description": "The social name of the individual, as generally accepted by the country. Only applicable if the `person_type` is `INDIVIDUAL`.\n"
},
"company_name": {
"type": "string",
"example": "Wayne Enterprises",
"pattern": "^[\\w\\W]{0,128}$",
"nullable": true,
"maxLength": 128,
"description": "The full (official) name of the business. Only applicable if the `person_type` is `COMPANY`.\n"
},
"display_name": {
"type": "string",
"example": "Jack Oswald White",
"pattern": "^[\\w\\W]{0,128}$",
"nullable": true,
"maxLength": 128,
"description": "The full name of the individual, as provided by the institution. Only applicable if the `person_type` is `INDIVIDUAL`.\n"
},
"document_type": {
"$ref": "#/components/schemas/EnumOwnerPartyDocumentType"
},
"document_number": {
"type": "string",
"example": "DL-7896829-7",
"pattern": "^[\\w\\W\\s]{0,40}$",
"maxLength": 40,
"description": "The ID document's number.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"percentage_type": {
"type": "number",
"format": "float",
"example": 0.51,
"pattern": "^[01]\\.\\d{6}$",
"nullable": true,
"maxLength": 8,
"minLength": 8,
"description": "The party's equity interest.\n"
},
"document_country": {
"type": "string",
"example": "CAN",
"pattern": "^(\\w{3}){1}$",
"nullable": true,
"maxLength": 3,
"description": "The three-letter country code that issued the document (in ISO-3166 Alpha 3 format).\n"
},
"document_issue_date": {
"type": "string",
"format": "date",
"example": "2019-01-01",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$",
"nullable": true,
"maxLength": 10,
"description": "The date the the ID document was issued, in `YYYY-MM-DD` format.\n"
},
"document_additional_info": {
"type": "string",
"example": "Confirmed CPF with their driver's licence.",
"pattern": "^[\\w\\W\\s]{0,100}$",
"nullable": true,
"maxLength": 100,
"description": "Additional information regarding the document.\n"
},
"document_expiration_date": {
"type": "string",
"format": "date",
"example": "2019-01-01",
"pattern": "^(\\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$",
"nullable": true,
"maxLength": 10,
"description": "The date the the ID document expires, in `YYYY-MM-DD` format.\n"
}
},
"description": "Detailed information regarding the parties allowed to act on the owner's behalf."
}
OwnerPhoneNumbers
{
"type": "object",
"nullable": true,
"required": [
"is_main",
"type",
"additional_info",
"number",
"country_code",
"area_code",
"extension"
],
"properties": {
"type": {
"$ref": "#/components/schemas/EnumOwnerPhoneNumberType"
},
"number": {
"type": "string",
"example": "29875132",
"pattern": "^([0-9]{8,11})$",
"maxLength": 11,
"description": "The phone number (not including the country, area, or extension codes).\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"is_main": {
"type": "boolean",
"example": true,
"description": "Boolean to indicate if this is the user's main phone number.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network.\n"
},
"area_code": {
"type": "string",
"example": "21",
"pattern": "^\\d{1,2}$",
"nullable": true,
"maxLength": 2,
"description": "The area dialling code.\n"
},
"extension": {
"type": "string",
"example": "932",
"pattern": "^\\d{1,5}$",
"nullable": true,
"maxLength": 5,
"description": "The extension code.\n"
},
"country_code": {
"type": "string",
"example": "351",
"pattern": "^\\d{1,4}$",
"nullable": true,
"maxLength": 4,
"description": "The country dialling code. For example: `351` (no `+`).\n"
},
"additional_info": {
"type": "string",
"example": "This is their work mobile number.",
"pattern": "^[\\w\\W\\s]{0,100}$",
"nullable": true,
"maxLength": 100,
"description": "Additional information about the phone number.\n"
}
},
"description": "Detailed information regarding the owners's `phone_number`s."
}
OwnerProcurators
{
"type": "object",
"nullable": true,
"required": [
"type",
"civil_name",
"social_name",
"document_number"
],
"properties": {
"type": {
"$ref": "#/components/schemas/EnumOwnerProcuratorType"
},
"civil_name": {
"type": "string",
"example": "Alfred Thaddeus Pennyworth",
"pattern": "^[\\w\\W]*$",
"maxLength": 70,
"description": "The representatives's full name.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `procurators` field is available.\n"
},
"social_name": {
"type": "string",
"example": "Alfred Pennyworth",
"pattern": "^[\\w\\W]*$",
"nullable": true,
"maxLength": 70,
"description": "The person's social name.\n"
},
"document_number": {
"type": "string",
"example": "73677831148",
"pattern": "^\\d{11}$",
"maxLength": 11,
"description": "The document number of the representative.\n\n**Note**: For individuals, this is Brazil's CPF number. For businesses, this is Brazil's CNPJ number.\n\n> **Non-nullable:** A value must be returned by Brazil's open finance network if the `procurators` field is available.\n"
}
},
"description": "Information regarding any individuals or companies that can act on behalf of the owner."
}