array 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"
}
array LinksDeleteLinkAccountsResponse
{
  "type": "array",
  "items": {
    "anyOf": [
      {
        "$ref": "#/components/schemas/UnauthorizedError"
      },
      {
        "$ref": "#/components/schemas/401_consent_without_accounts_error"
      }
    ]
  }
}
array 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"
}
array LinksGetDetailsResponse
{
  "type": "array",
  "items": {
    "anyOf": [
      {
        "$ref": "#/components/schemas/UnauthorizedError"
      },
      {
        "$ref": "#/components/schemas/401_consent_without_accounts_error"
      }
    ]
  }
}
array LinksListAllResponse
{
  "type": "array",
  "items": {
    "anyOf": [
      {
        "$ref": "#/components/schemas/UnauthorizedError"
      },
      {
        "$ref": "#/components/schemas/401_consent_without_accounts_error"
      }
    ]
  }
}
object 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"
    }
  }
}
array LinksRegisterNewLink401Response
{
  "type": "array",
  "items": {
    "anyOf": [
      {
        "$ref": "#/components/schemas/UnauthorizedError"
      },
      {
        "$ref": "#/components/schemas/401_consent_without_accounts_error"
      }
    ]
  }
}
array LinksRegisterNewLink428Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/TokenRequiredResponse"
  }
}
array 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"
}
array 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"
      }
    ]
  }
}
object 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"
    }
  }
}
array LinksResumeSession401Response
{
  "type": "array",
  "items": {
    "anyOf": [
      {
        "$ref": "#/components/schemas/UnauthorizedError"
      },
      {
        "$ref": "#/components/schemas/401_consent_without_accounts_error"
      }
    ]
  }
}
array LinksResumeSession428Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/TokenRequiredResponse"
  }
}
array 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"
}
array 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"
      }
    ]
  }
}
array LinksUpdateCredentials401Response
{
  "type": "array",
  "items": {
    "anyOf": [
      {
        "$ref": "#/components/schemas/UnauthorizedError"
      },
      {
        "$ref": "#/components/schemas/401_consent_without_accounts_error"
      }
    ]
  }
}
array 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"
}
array LinksUpdateCredentials428Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/TokenRequiredResponse"
  }
}
array 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"
}
array 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"
      }
    ]
  }
}
object 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"
}
object 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`."
}
object 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."
}
object 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"
    }
  }
}
object 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."
    }
  }
}
object 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."
}
object 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."
}
object 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."
}
object 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."
}
object 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)."
}
object 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."
}
object 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."
    }
  }
}
object 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."
}
object 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."
}
object 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."
}
object 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"
}
object 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."
}
object 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."
}
object 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."
}
object 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."
}
object 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)."
}
object 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"
}
object 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."
}
object 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"
    }
  }
}
object 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)."
}
object 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."
}
object 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."
}
object 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."
}
object 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."
}
object 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."
}
Load more schemas