---
title: "Create Account"
method: POST
path: "/"
tags: ["Accounts"]
---

# Create Account

`POST /`

## Request

- Base URL: `https://app2test.infiniaweb.com/infinia_api/v1/accounts`
- URL: `https://app2test.infiniaweb.com/infinia_api/v1/accounts/`
- Auth: HTTP basic

Create a new account.

### Account status and lifecycle

The `status` field reflects where the account is in its lifecycle. Possible values are:

- `PROVISIONING`: the account is being set up and is not yet operational.
- `ACTIVE`: the account is operational.
- `SUSPENDED`: operations are temporarily disabled (e.g. compliance, fraud, legal hold or review).
- `CLOSED`: terminal state — the account has been closed.
- `REJECTED`: terminal state — onboarding was deliberately denied (KYC/KYB/compliance).

When the reason for a status is known, for example why a KYC/KYB verification was rejected, it is returned in `status_reason`. It is null otherwise.

Depending on the rail, a new account may be returned as `ACTIVE` right away, or start in `PROVISIONING` and move to `ACTIVE` once setup finishes. The `status` in this endpoint's response is the account's initial state.

Every time the status changes afterwards, a webhook is sent as an HTTP `POST` to the `status_callback_url` provided in the request body, which you can change later with [Update Account](ref:v1_4_update_account__). The body of that webhook is the account object, using the same schema as the [Get Account Details](ref:v1_2_get_account_) response. No webhook is sent for the initial state, nor when an update leaves the status unchanged.

### Testing in sandbox

Account creation is currently synchronous: the account's status is returned directly in this endpoint's response. In the sandbox, create the account with `label` set to `SIMULATE_STATUS_<STATUS>` (e.g. `SIMULATE_STATUS_SUSPENDED`) to have it created directly in that status, or to `SIMULATE_PROVISIONING_FLOW` to simulate the `PROVISIONING` → `ACTIVE` transition and its webhook.

## Headers

- `x-company-id` integer: ID of a child company for authentication. If not provided, the parent company will be authenticated.

## Request body

- RequestCreateAccount
  - `currency` 'BRL' | 'BRLA' | 'MXN' | 'ARS' | 'COP' | 'CLP' | 'BOB' | 'PYG' | 'SGD' | 'PEN' | 'EUR' | 'GBP' | 'USD' | 'USDT' | 'USDC' | 'UYU' | 'USDC_POL' | 'USDT_POL' | 'EURC_BASE' | 'USDC_BASE' | 'USDT_BASE' | 'USDC_ETH' | 'USDT_ETH' | 'EURC_ETH' | 'USDC_TEMPO' | 'USDT_TEMPO' | 'EURC_TEMPO' | 'OUSD_TEMPO' | 'USDC_MONAD' | 'USDT_MONAD' | 'OUSD_BASE' | 'OUSD_ETH' | 'OUSD_SOL' | 'BRLA_ETH' | 'BRLA_POL' | 'BRLA_BASE' | 'TGBP_ETH' | 'TGBP_POL' | 'TGBP_BASE' | 'USDC_SOL' | 'USDT_SOL' | 'USDT_TRX' | 'MXNB_BASE', required
  - `country` 'BR' | 'AR' | 'CO' | 'CL' | 'BO' | 'PY' | 'SG' | 'PE' | 'MX' | 'UY' | 'US' | 'EU' | 'XX' | 'GB', required
  - `label` string, required: Label of the account
  - `products` AccountProductsEnum[], required: List of products associated with the account. Requires the product to be already enabled for the company. Valid values: PAYOUTS, PAYINS, INTERNAL_TRANSFER
  - `webhook_url` string: URL for movement notifications (will follow the same schema as the Get Movement endpoint)
  - `status_callback_url` string: Callback URL for account-level events (e.g. account status changes). The notification is sent as a POST request whose body is the account object, using the same schema as the Get Account endpoint.
  - `idempotency_key` string: A unique key that ensures a request is processed only once. If the same key is sent with multiple requests, the server returns the original response instead of performing the action again.
  - `owner_id` string: UUID of the account owner, previously created via the Create Account Owner endpoint

## Response `200`

Successful Response

- AccountResponse
  - `status` 'success'
  - `data` PublicAccountSchema, required
    - `id` integer, required: Account ID
    - `created_at` string, date-time: Creation date of the account
    - `updated_at` string, date-time: Last update date of the account
    - `status` 'PROVISIONING' | 'ACTIVE' | 'SUSPENDED' | 'CLOSED' | 'REJECTED'
    - `status_reason` string: Why the account is in its current status, when known (e.g. the reason a KYC/KYB verification was rejected). Usually set for SUSPENDED, REJECTED or CLOSED accounts; null otherwise.
    - `label` string: Account label
    - `idempotency_key` string: Idempotency key for the account creation, it can also be used as an external identifier
    - `bank` string, required: Name of the bank where the account is held
    - `company_id` integer: Company ID associated with the account
    - `currency` 'BRL' | 'BRLA' | 'MXN' | 'ARS' | 'COP' | 'CLP' | 'BOB' | 'PYG' | 'SGD' | 'PEN' | 'EUR' | 'GBP' | 'USD' | 'USDT' | 'USDC' | 'UYU' | 'USDC_POL' | 'USDT_POL' | 'EURC_BASE' | 'USDC_BASE' | 'USDT_BASE' | 'USDC_ETH' | 'USDT_ETH' | 'EURC_ETH' | 'USDC_TEMPO' | 'USDT_TEMPO' | 'EURC_TEMPO' | 'OUSD_TEMPO' | 'USDC_MONAD' | 'USDT_MONAD' | 'OUSD_BASE' | 'OUSD_ETH' | 'OUSD_SOL' | 'BRLA_ETH' | 'BRLA_POL' | 'BRLA_BASE' | 'TGBP_ETH' | 'TGBP_POL' | 'TGBP_BASE' | 'USDC_SOL' | 'USDT_SOL' | 'USDT_TRX' | 'MXNB_BASE', required
    - `country` 'BR' | 'AR' | 'CO' | 'CL' | 'BO' | 'PY' | 'SG' | 'PE' | 'MX' | 'UY' | 'US' | 'EU' | 'XX' | 'GB', required
    - `account_number` string: Account number
    - `enabled` boolean: Indicates if the account is enabled or not. Disabled accounts will not be able to perform any operations until they are enabled again.
    - `account_type` string: Type of the account
    - `document_number` string: Document number of the account holder
    - `document_type` string: Document type of the account holder
    - `funding_instructions` union: Funding instructions for the account, if applicable
      - FiatFundingInstructions
        - `type` 'fiat'
        - `account_number` string: Account number to fund
        - `bank_name` string: Bank name associated with the account number
        - `bank_code` string: Bank identifier (routing number in USA, sort code in UK, ISPB in BR, etc.)
        - `br_code` string: BR code for Brazil (BRL) funding instructions
        - `breb_key` string: BREB key for Colombia (COP) funding instructions
        - `ted_brl` TedBRLFundingRail
          - `bank_code` string, required
          - `branch_number` string, required
          - `account_number` string, required
          - `account_type` string, required
          - `beneficiary_name` string
          - `beneficiary_document` string
        - `pix_key_brl` PixKeyBrlFundingRail
          - `pix_key` string, required
        - `br_code_brl` BrCodeBrlFundingRail
          - `br_code` string, required
        - `pen` PenFundingRail
          - `cci` string, required
          - `qr` PenQrFundingRail
            - `qr_code` string, required
            - `expiration_date` string, required
        - `fps_gbp` FPSGBP
          - `account_number` string, required
          - `sort_code` string, required
          - `account_holder_name` string, required
        - `iban` string: European IBAN
        - `bic` string: Swift/BIC code
      - CryptoFundingInstructions
        - `type` 'crypto'
        - `crypto_address` string, required: Crypto address to funds
        - `crypto_network` string, required: Crypto network to fund
    - `balance_details` BalanceSchema
      - `total` number: The overall balance, including both available and held funds.
      - `available` number: The portion of the balance that is currently available for transactions, excluding amounts held for pending operations.
      - `last_update` string, date-time: The timestamp of the last balance update, reflecting the most recent change.
    - `is_virtual_account` boolean: Indicates if the account is a virtual account
    - `webhook_url` string: Webhook URL for movement notifications
    - `status_callback_url` string: Callback URL for account-level events
    - `products` AccountProductsEnum[]: List of products associated with the account
    - `owner_id` string: UUID of the Account Owner linked to this account

## Other responses

- `400`: Bad Request
- `422`: Validation Error
- `500`: Internal Server Error
- `503`: Service Unavailable

---

[API](https://skmtc.dev/infiniaweb/apis/accounts.md) - [All operations](https://skmtc.dev/infiniaweb/apis/accounts/llms.txt) - [OpenAPI document](https://skmtc.dev/infiniaweb/apis/accounts/revisions/2faae77050e4?raw)
