---
title: "Register a new bank account"
method: POST
path: "/payments/br/bank-accounts/"
tags: ["Bank Accounts (Brazil)"]
---

# Register a new bank account

`POST /payments/br/bank-accounts/`

Register a new bank account from which to send or request funds.

## Headers

- `X-Belvo-API-Resource-Version` 'Payments-BR.V2'

## Request body

- union
  - CreateBankAccountV2
    - `holder` object, required — Details of the account holder.
      - `name` string, required — The full name or business name of the account holder.
      - `identifier` string, required — The CPF (11 digits) or CNPJ (14 digits) of the account holder.
    - `details` object, required — Details of the bank account.
      - `account_type` 'CHECKINGS' | 'SAVINGS' | 'PAYMENTS', required — The type of bank account. Can be either: - `CHECKINGS` (also known as Conta Corrente in Brazil) - `SAVINGS` (also known as Conta Poupança in Brazil) - `PAYMENTS` (also known as Conta de Pagamento Instantâneo or Conta de Pagamento in Brazil)
      - `agency` string, required — The agency (branch number) of the institution where the account was created.
      - `institution` string, uuid, required — The Belvo ID of the financial institution.
      - `number` string, required — The bank account number. {% admonition type="info" name="Valid Account Number characters" %} You can only send through numbers (`^[0-9]+$`) in the string. For example, `"457220"` is a valid bank account number, while "`45722-0`" is invalid as it contains a hyphen (`-`). {% /admonition %}
    - `external_id` string, uuid — An additional unique identifier for the resource for internal purposes. {% admonition type="success" name="Highly Recommended" %} We recommend using this field to store your own unique identifier for each resource (customer, bank account, payment intent, or enrollment). This can be useful for tracking the resource in your system and for debugging purposes. {% /admonition %}
    - `metadata` MetadataPayments — Optional and customizable object where you can provide any additional key-value pairs for your internal purposes. For example, an internal reference number for the payment intent. {% admonition type="info" name="Metadata Limitations" %} You can only provide up to 50 keys (keys can have up to 50 characters each and each value can be up to 500 characters). We do not support nested objects, only ASCII values. {% /admonition %}
  - CreateBankAccountOfpiBusiness
    - `institution` string, uuid, required — Belvo's unique ID for the institution that the bank account is created in.
    - `external_id` string, uuid — An additional unique identifier for the resource for internal purposes. {% admonition type="success" name="Highly Recommended" %} We recommend using this field to store your own unique identifier for each resource (customer, bank account, payment intent, or enrollment). This can be useful for tracking the resource in your system and for debugging purposes. {% /admonition %}
    - `holder` object, required — Details regarding the business bank account holder.
      - `type` 'BUSINESS', required — The type of bank account. For business bank accounts, this must be set to `BUSINESS`.
      - `information` object, required — Additional information about the bank account holder required in order to create the account for OFPI.
        - `name` string, required — The full name of the business
        - `identifier_type` 'CNPJ', required — The customer's ID document type. For businesses in Brazil, this must be set to `CNPJ`.
        - `identifier` string, required — The CNPJ document number.
    - `details` BankAccountDetailsOfpi, required — Information regarding the bank account.
      - `account_type` 'CHECKINGS' | 'SAVINGS' | 'SALARY' | 'PAYMENTS', required — The type of bank account. Can be either: - `CHECKINGS` (also known as Conta Corrente in Brazil) - `SAVINGS` (also known as Conta Poupança in Brazil) - `SALARY` (also known as Conta Salário in Brazil) - `PAYMENTS` (also known as Conta de Pagamento Instantâneo or Conta de Pagamento in Brazil)
      - `agency` string, required — The agency (branch number) of the institution where the account was created.
      - `number` string, required — The bank account number. > 📘 Valid account number characters > > You can only send through numbers (`^[0-9]+$`) in the string. For example, `"457220"` is a valid bank account number, while "`45722-0`" is invalid as it contains a hyphen (`-`).
  - CreateBankAccountOfpiIndividual
    - `institution` string, uuid, required — Belvo's unique ID for the institution that the bank account is created in.
    - `external_id` string, uuid — An additional unique identifier for the resource for internal purposes. {% admonition type="success" name="Highly Recommended" %} We recommend using this field to store your own unique identifier for each resource (customer, bank account, payment intent, or enrollment). This can be useful for tracking the resource in your system and for debugging purposes. {% /admonition %}
    - `holder` object, required — Details regarding the individual bank account holder.
      - `type` 'INDIVIDUAL', required — The type of bank account. For individuals, this must be set to `INDIVIDUAL`.
      - `information` object, required — Additional information about the bank account holder required in order to create the account for OFPI.
        - `first_name` string, required — The bank account holder's first name.
        - `last_name` string, required — The bank account holder's last name.
        - `identifier_type` 'CPF', required — The customer's ID document type. For individuals in Brazil, this must be set to `CPF`.
        - `identifier` string, required — The document number of the customer's ID.
    - `details` BankAccountDetailsOfpi, required — Information regarding the bank account.
      - `account_type` 'CHECKINGS' | 'SAVINGS' | 'SALARY' | 'PAYMENTS', required — The type of bank account. Can be either: - `CHECKINGS` (also known as Conta Corrente in Brazil) - `SAVINGS` (also known as Conta Poupança in Brazil) - `SALARY` (also known as Conta Salário in Brazil) - `PAYMENTS` (also known as Conta de Pagamento Instantâneo or Conta de Pagamento in Brazil)
      - `agency` string, required — The agency (branch number) of the institution where the account was created.
      - `number` string, required — The bank account number. > 📘 Valid account number characters > > You can only send through numbers (`^[0-9]+$`) in the string. For example, `"457220"` is a valid bank account number, while "`45722-0`" is invalid as it contains a hyphen (`-`).

## Response `201`

OK (Created)

- union
  - BankAccountV2
    - `id` string, uuid, required — Belvo's unique identifier for the current item.
    - `created_at` string, date-time, required — The ISO-8601 timestamp of when the data point was created in Belvo's database.
    - `updated_at` string, date-time, required — The ISO-8601 timestamp of when the data point was updated in Belvo's database.
    - `active` boolean, required — Indicates if the bank account is active (and can be used to receive funds).
    - `holder` object, required — Details of the account holder.
      - `name` string, required — The full name or business name of the account holder.
      - `identifier` string, required — The CPF (11 digits) or CNPJ (14 digits) of the account holder.
    - `details` object, required — Details of the bank account.
      - `institution` string, uuid, required — The Belvo ID of the financial institution.
      - `account_type` 'CHECKINGS' | 'SAVINGS' | 'PAYMENTS', required — The type of bank account. Can be either: - `CHECKINGS` (also known as Conta Corrente in Brazil) - `SAVINGS` (also known as Conta Poupança in Brazil) - `PAYMENTS` (also known as Conta de Pagamento Instantâneo or Conta de Pagamento in Brazil)
      - `agency` string, required — The agency (branch number) of the institution where the account was created.
      - `number` string, required — The bank account number. {% admonition type="info" name="Valid Account Number characters" %} You can only send through numbers (`^[0-9]+$`) in the string. For example, `"457220"` is a valid bank account number, while "`45722-0`" is invalid as it contains a hyphen (`-`). {% /admonition %}
    - `external_id` string, uuid, required — An additional unique identifier for the resource for internal purposes. {% admonition type="success" name="Highly Recommended" %} We recommend using this field to store your own unique identifier for each resource (customer, bank account, payment intent, or enrollment). This can be useful for tracking the resource in your system and for debugging purposes. {% /admonition %}
    - `metadata` MetadataPayments, required — Optional and customizable object where you can provide any additional key-value pairs for your internal purposes. For example, an internal reference number for the payment intent. {% admonition type="info" name="Metadata Limitations" %} You can only provide up to 50 keys (keys can have up to 50 characters each and each value can be up to 500 characters). We do not support nested objects, only ASCII values. {% /admonition %}
  - BankAccountOfpiResponse
    - `id` string, uuid, required — Belvo's unique identifier for the current item.
    - `created_at` string, date-time, required — The ISO-8601 timestamp of when the data point was created in Belvo's database.
    - `created_by` string, uuid, required — The unique ID for the user that created this item.
    - `customer` string, uuid, nullable, required — Belvo's unique ID for the customer associated with the bank account. For `BUSINESS` bank accounts, this field is `null`.
    - `external_id` string, uuid — An additional unique identifier for the resource for internal purposes. {% admonition type="success" name="Highly Recommended" %} We recommend using this field to store your own unique identifier for each resource (customer, bank account, payment intent, or enrollment). This can be useful for tracking the resource in your system and for debugging purposes. {% /admonition %}
    - `institution` string, uuid, nullable, required — Belvo's unique ID for the institution that the bank account is created in. For `BUSINESS` bank accounts that Belvo creates for organizations, this field is set to `null`.
    - `details` BankAccountDetailsOfpi, required — Information regarding the bank account.
      - `account_type` 'CHECKINGS' | 'SAVINGS' | 'SALARY' | 'PAYMENTS', required — The type of bank account. Can be either: - `CHECKINGS` (also known as Conta Corrente in Brazil) - `SAVINGS` (also known as Conta Poupança in Brazil) - `SALARY` (also known as Conta Salário in Brazil) - `PAYMENTS` (also known as Conta de Pagamento Instantâneo or Conta de Pagamento in Brazil)
      - `agency` string, required — The agency (branch number) of the institution where the account was created.
      - `number` string, required — The bank account number. > 📘 Valid account number characters > > You can only send through numbers (`^[0-9]+$`) in the string. For example, `"457220"` is a valid bank account number, while "`45722-0`" is invalid as it contains a hyphen (`-`).
    - `holder` union, required
      - HolderResponseOfpiIndividual — Details regarding the individual bank account holder.
        - `type` 'INDIVIDUAL', required — The type of bank account. For individuals, this must be set to `INDIVIDUAL`.
        - `information` HolderInformationIndividualOfpiResponse, required — Details regarding the individual bank account holder.
          - `first_name` string, required — The bank account holder's first name.
          - `last_name` string, required — The bank account holder's last name.
          - `identifier_type` 'CPF', required — The customer's ID document type. For individuals in Brazil, this must be set to `CPF`.
          - `identifier` string, required — The document number of the customer's ID.
      - HolderResponseOfpiBusiness — Details regarding the business bank account holder.
        - `type` 'BUSINESS', required — The type of bank account. For businesses, this must be set to `BUSINESS`.
        - `information` HolderInformationBusinessOfpiResponse, required — Details regarding the individual bank account holder.
          - `name` string, required — The bank account holder's first name.
          - `identifier_type` 'CNPJ', required — The customer's ID document type. For businesses in Brazil, this must be set to `CNPJ`.
          - `identifier` string, required — The CNPJ document number.

## Other responses

- `400` — Validation Error
- `401` — Unauthorized
- `403` — Access to Belvo API denied
- `404` — Not Found Error
- `408` — Request Timeout
- `500` — Unexpected Error

---

[API](https://skmtc.net/belvo/apis/belvo-api-docs.md) · [All operations](https://skmtc.net/belvo/apis/belvo-api-docs/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/belvo/belvo-api-docs/revisions/3423c786ece5/schema)
