> ## Documentation Index
> Fetch the complete documentation index at: https://docs-api.kravata.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Account

> By consuming this endpoint, you can register bank accounts for both you and your users by providing the required bank account information.

#### Request

| Field | **Type** | Required | Description |
| --- | --- | --- | --- |
| Authorization | Header | Yes | The access token that authenticates the request. |
| userId | UUID | Yes | The unique identifier of either your assigned ID or one of your users, depending on who is the owner of the account. You can obtain the ID through the **GET /admin/users** endpoint. |

#### Request Body

| **Field** | **Type** | **Required** | **Description** |
| --- | --- | --- | --- |
| name | String | Yes | A custom alias to easily identify the bank account. |
| number | String | Yes | The specific bank account number to be registered. For breb, accountNumber is the Bre-B key, not a traditional bank account number. |
| type | String | Yes | Type of bank account. Supported values: "SAVING" or "CHECKING". |
| bankId | Numeric | Required if the paymentMethod is not BREB. | Unique bank identifier from GET /banks. Required for corriente and ahorros. Optional for Bre-B: if omitted, the platform resolves it automatically from the Bre-B key validation. You may still send bankId explicitly for breb if you already know it. |
| currency | String | Required if the currency is not COP. | The 3-letter currency code (ISO 4217). E.g., "COP", "MXN", "USD" |
| paymentMethod | String | No | The channel used to move the funds of the operation. Accepts five values: "BREB", Colombian Bre-B instant payment system. "ACH", ACH transfer in USA or Colombia. "WIRE", domestic transfer in the USA. "SWIFT", international transfer, only for USD. "ACH_WIRE", for U.S. accounts that support both ACH and wire transfers. |
| accountOwnerType | String | YES | Defines who owns the bank account being registered, relative to the user indicated in the path. Accepts three values: "OWN", the account belongs to the user indicated in the path (userId). "PERSON", the account belongs to a third-party natural person. "COMPANY", the account belongs to a third-party legal entity. |
| accountMetadata | Object | Required if the currency is not COP. | Additional regional details. Must include "CLABE" for MX or "ABA" for USD transactions. You may also include an optional 'MEMO' as a custom reference for the bank transfer. |



## OpenAPI

````yaml /stack/openapi.json post /api/v1/admin/account/{user_id}
openapi: 3.1.0
info:
  title: Kravata Stack API
  version: '2.0'
  description: >-
    Kravata Stack API: users, accounts, custody wallets, liquidity ramps and
    fiat payments.
servers:
  - url: https://test-api-kore.kravata.co
    description: Test
  - url: https://partners-api.kravata.co
    description: Production (mTLS + IP allowlist)
security:
  - bearerAuth: []
tags:
  - name: Authentication
  - name: Users
  - name: Accounts
  - name: Earn
  - name: Custody
  - name: Liquidity Ramps
  - name: Payments
  - name: Webhooks
paths:
  /api/v1/admin/account/{user_id}:
    post:
      tags:
        - Accounts
      summary: Create Account
      description: >-
        By consuming this endpoint, you can register bank accounts for both you
        and your users by providing the required bank account information.


        #### Request


        | Field | **Type** | Required | Description |

        | --- | --- | --- | --- |

        | Authorization | Header | Yes | The access token that authenticates the
        request. |

        | userId | UUID | Yes | The unique identifier of either your assigned ID
        or one of your users, depending on who is the owner of the account. You
        can obtain the ID through the **GET /admin/users** endpoint. |


        #### Request Body


        | **Field** | **Type** | **Required** | **Description** |

        | --- | --- | --- | --- |

        | name | String | Yes | A custom alias to easily identify the bank
        account. |

        | number | String | Yes | The specific bank account number to be
        registered. For breb, accountNumber is the Bre-B key, not a traditional
        bank account number. |

        | type | String | Yes | Type of bank account. Supported values: "SAVING"
        or "CHECKING". |

        | bankId | Numeric | Required if the paymentMethod is not BREB. | Unique
        bank identifier from GET /banks. Required for corriente and ahorros.
        Optional for Bre-B: if omitted, the platform resolves it automatically
        from the Bre-B key validation. You may still send bankId explicitly for
        breb if you already know it. |

        | currency | String | Required if the currency is not COP. | The
        3-letter currency code (ISO 4217). E.g., "COP", "MXN", "USD" |

        | paymentMethod | String | No | The channel used to move the funds of
        the operation. Accepts five values: "BREB", Colombian Bre-B instant
        payment system. "ACH", ACH transfer in USA or Colombia. "WIRE", domestic
        transfer in the USA. "SWIFT", international transfer, only for USD.
        "ACH_WIRE", for U.S. accounts that support both ACH and wire transfers.
        |

        | accountOwnerType | String | YES | Defines who owns the bank account
        being registered, relative to the user indicated in the path. Accepts
        three values: "OWN", the account belongs to the user indicated in the
        path (userId). "PERSON", the account belongs to a third-party natural
        person. "COMPANY", the account belongs to a third-party legal entity. |

        | accountMetadata | Object | Required if the currency is not COP. |
        Additional regional details. Must include "CLABE" for MX or "ABA" for
        USD transactions. You may also include an optional 'MEMO' as a custom
        reference for the bank transfer. |
      operationId: create-account
      parameters:
        - name: user_id
          in: path
          required: true
          description: ''
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                type:
                  type: string
                number:
                  type: string
                currency:
                  type: string
                paymentMethod:
                  type: string
                accountOwnerType:
                  type: string
                bankId:
                  type: integer
            example:
              name: My savings account
              type: SAVING
              number: '1234567890'
              currency: COP
              paymentMethod: ACH
              accountOwnerType: OWN
              bankId: 211
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                  type:
                    type: string
                  number:
                    type: string
                  currency:
                    type: string
                  id:
                    type: string
                  userId:
                    type: string
                  bankName:
                    type: string
                  registerDate:
                    type: string
                  status:
                    type: string
                  accountMetadata:
                    type: array
                    items: {}
              examples:
                create-account:
                  summary: Create account
                  value:
                    name: USERTEST
                    type: SAVING
                    number: '324223423'
                    currency: COP
                    id: 8fc7c60a-fd7c-4c23-a282-5fc1c1fc3a07
                    userId: 67960e40-0b5a-465d-8d78-610d7eff2785
                    bankName: ''
                    registerDate: '2026-07-03T18:15:56.477613'
                    status: APPROVED
                    accountMetadata: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Access token from POST /api/v1/client/token.

````