Accounts

Create Account

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. The body of that webhook is the account object, using the same schema as the Get Account Details 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.

post/

Request

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

Headers

x-company-idinteger

ID of a child company for authentication. If not provided, the parent company will be authenticated.

Request body

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
labelstring required

Label of the account

productsAccountProductsEnum[] 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_urlstring

URL for movement notifications (will follow the same schema as the Get Movement endpoint)

status_callback_urlstring

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_keystring

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_idstring

UUID of the account owner, previously created via the Create Account Owner endpoint

Example request

{
  "products": [
    "PAYOUTS",
    "PAYINS",
    "INTERNAL_TRANSFER"
  ]
}

Response

Successful Response

status'success'

Changes

No recorded changes to this operation across all 1 revision of this API.