Skip to main content
PATCH
/
gl-accounts
/
{id}
Update a GL account
curl --request PATCH \
  --url https://api.arcuserp.com/v1/gl-accounts/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "description": "<string>",
  "account_sub_type": "<string>",
  "parent_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "tax_line_mapping": "<string>",
  "is_active": true,
  "opening_balance": 123,
  "opening_balance_date": "2023-12-25"
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "account_number": "<string>",
  "name": "<string>",
  "description": "<string>",
  "account_type": "asset",
  "account_sub_type": "<string>",
  "normal_balance": "debit",
  "is_header": true,
  "parent_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "is_system_account": true,
  "system_account_key": "<string>",
  "is_bank_account": true,
  "is_active": true,
  "tax_line_mapping": "<string>",
  "opening_balance": 123,
  "opening_balance_date": "2023-12-25",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z"
}

Documentation Index

Fetch the complete documentation index at: https://docs.arcuserp.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

API key issued per entity via Settings > Developers > API Keys. Each key carries scopes (e.g. orders:read, products:write). Bearer token format: Authorization: Bearer ark_live_ent_Test keys use ark_test_ent_. Both are issued per entity
via Settings > Developers > API Keys.

Path Parameters

id
string<uuid>
required

Body

application/json
name
string
description
string
account_sub_type
string
parent_account_id
string<uuid>
tax_line_mapping
string
is_active
boolean
opening_balance
number
opening_balance_date
string<date>

Response

Updated GL account

A General Ledger account in the chart of accounts. Header accounts (is_header=true) aggregate child accounts and cannot receive postings (Rule A2 / Rule 21). Leaf accounts (is_header=false, is_active=true) are the only valid targets for journal entry lines. System accounts (is_system_account=true) are provisioned by entity-seed-helpers.mjs and cannot be created or modified via the API.

id
string<uuid>
read-only
entity_id
string<uuid>
read-only
account_number
string
read-only

Immutable post-create (e.g. '1300')

name
string
description
string | null
account_type
enum<string>
read-only

Immutable post-create

Available options:
asset,
liability,
equity,
revenue,
expense,
cogs
account_sub_type
string | null
normal_balance
enum<string>
read-only

Immutable post-create

Available options:
debit,
credit
is_header
boolean

True for rollup accounts that aggregate children. Header accounts CANNOT receive journal entry line postings (Rule A2 / assertGLLinesPostable).

parent_account_id
string<uuid> | null
is_system_account
boolean
read-only

True for accounts seeded by entity-seed-helpers.mjs. System accounts cannot be created, updated, or deleted via the API.

system_account_key
string | null
read-only

Lookup key used by posting helpers (e.g. ar_account, cogs, revenue, inventory_fg). Code uses getGLAccountByKey(entityId, key) instead of hardcoded account numbers.

is_bank_account
boolean

True for bank/cash accounts eligible for reconciliation

is_active
boolean
tax_line_mapping
string | null
opening_balance
number | null
opening_balance_date
string<date> | null
created_at
string<date-time>
read-only
updated_at
string<date-time>
read-only