# Create bank account

> Creates a bank account along with its linked ledger (chart-of-accounts) entry in a single transaction. The ledger account code must be a unique 6-digit integer within the company's chart of accounts.

`POST https://api.light.inc/v1/bank-accounts`

## Note

The ledger account is created with fixed attributes you cannot choose: type BANK , active, revalued for FX at end-of-month rates, in the bank account's currency, scoped to the one companyEntityId . Its label defaults to the bank account's name , not the bank name as the description says. code must be exactly six digits ( LEDGER_ACCOUNT_CODE_LENGTH ) and unused ( BANK_ACCOUNT_LEDGER_ACCOUNT_CODE_ALREADY_EXISTS ; nothing is created). bankProvider: OTHER requires bankName ; other providers fill it in. The response's type and paymentSchedulingEligibility are derived from the provider (only Airwallex accounts are VIRTUAL ; only providers Light can pay through are INTERNAL , everything else INELIGIBLE ). Company-admin role only.

## Authorization

- API key
- Bearer token

See https://light.inc/docs/getting-started/authentication.

## Request body

`application/json;charset=UTF-8`


```json
{
  "companyEntityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "string",
  "bankProvider": "ABANCA",
  "currency": "USD",
  "bankCountry": "UNDEFINED",
  "ledgerAccount": {
    "code": 0,
    "label": "string"
  },
  "iban": "string",
  "bic": "string",
  "domesticBankAccountNumber": "string",
  "domesticBankCode": "string",
  "bankName": "string",
  "bankCity": "string",
  "bankAddress": "string",
  "bankZipcode": "string",
  "bankState": "string",
  "defaultChargeBearerCode": "OUR"
}
```

Values above are generated from the schema: the shapes and types are real, the values are placeholders, and fields that exclude each other are all shown. Do not send it unchanged.

## Response

- `paymentSchedulingEligibility` — Derived from the provider: `INTERNAL` for banks Light can pay through, otherwise `INELIGIBLE`. Accounts created here never come back as `BANK_PROVIDER`.

```json
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "companyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "companyEntityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "string",
  "type": "PHYSICAL",
  "bankProvider": "ABANCA",
  "paymentSchedulingEligibility": "INTERNAL",
  "iban": "string",
  "bic": "string",
  "domesticBankAccountNumber": "string",
  "domesticBankCode": "string",
  "currency": "USD",
  "bankCountry": "UNDEFINED",
  "bankCity": "string",
  "bankAddress": "string",
  "bankZipcode": "string",
  "bankName": "string",
  "bankState": "string",
  "ledgerAccountCode": 0,
  "createdAt": "2026-01-15T09:30:00Z"
}
```

Values above are generated from the schema: the shapes and types are real, the values are placeholders.

## Code

```bash
curl -X POST "https://api.light.inc/v1/bank-accounts" \
  -H "Authorization: Basic YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "companyEntityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "string",
  "bankProvider": "ABANCA",
  "currency": "USD",
  "bankCountry": "UNDEFINED",
  "ledgerAccount": {
    "code": 0,
    "label": "string"
  },
  "iban": "string",
  "bic": "string",
  "domesticBankAccountNumber": "string",
  "domesticBankCode": "string",
  "bankName": "string",
  "bankCity": "string",
  "bankAddress": "string",
  "bankZipcode": "string",
  "bankState": "string",
  "defaultChargeBearerCode": "OUR"
}'
```

---

Full page: https://light.inc/docs/api-reference/v1--bank-accounts/create-bank-account · Index: https://light.inc/docs/llms.txt
