v54

latestOpenAPI 3.0.0raw.githubusercontent.com2026-08-01235140905.8 KB
Accounting

Creates a new chart of accounts

put/Accounts

Headers

Idempotency-Keystring

This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Request body

Codestring

Customer defined alpha numeric account code e.g 200 or SALES (max length = 10)

Namestring

Name of account (max length = 150)

AccountIDstring uuid

The Xero identifier for an account – specified as a string following the endpoint name e.g. /297c2dc5-cc47-4afd-8ec8-74990b8761e9

Type'BANK' | 'CURRENT' | 'CURRLIAB' | 'DEPRECIATN' | 'DIRECTCOSTS' | 'EQUITY' | 'EXPENSE' | 'FIXED' | 'INVENTORY' | 'LIABILITY' | 'NONCURRENT' | 'OTHERINCOME' | 'OVERHEADS' | 'PREPAYMENT' | 'REVENUE' | 'SALES' | 'TERMLIAB' | 'PAYG'

See Account Types

BankAccountNumberstring

For bank accounts only (Account Type BANK)

Status'ACTIVE' | 'ARCHIVED' | 'DELETED'

Accounts with a status of ACTIVE can be updated to ARCHIVED. See Account Status Codes

Descriptionstring

Description of the Account. Valid for all types of accounts except bank accounts (max length = 4000)

BankAccountType'BANK' | 'CREDITCARD' | 'PAYPAL' | 'NONE' | ''

For bank accounts only. See Bank Account types

CurrencyCode'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EEK' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LTL' | 'LVL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SKK' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'STD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VEF' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZMK' | 'ZWD'

3 letter alpha code for the currency – see list of currency codes

TaxTypestring

The tax type from taxRates

EnablePaymentsToAccountboolean

Boolean – describes whether account can have payments applied to it

ShowInExpenseClaimsboolean

Boolean – describes whether account code is available for use with expense claims

Class'ASSET' | 'EQUITY' | 'EXPENSE' | 'LIABILITY' | 'REVENUE'

See Account Class Types

SystemAccount'DEBTORS' | 'CREDITORS' | 'BANKCURRENCYGAIN' | 'GST' | 'GSTONIMPORTS' | 'HISTORICAL' | 'REALISEDCURRENCYGAIN' | 'RETAINEDEARNINGS' | 'ROUNDING' | 'TRACKINGTRANSFERS' | 'UNPAIDEXPCLM' | 'UNREALISEDCURRENCYGAIN' | 'WAGEPAYABLES' | 'CISASSETS' | 'CISASSET' | 'CISLABOUR' | 'CISLABOUREXPENSE' | 'CISLABOURINCOME' | 'CISLIABILITY' | 'CISMATERIALS' | ''

If this is a system account then this element is returned. See System Account types. Note that non-system accounts may have this element set as either “” or null.

ReportingCodestring

Shown if set

ReportingCodeNamestring

Shown if set

HasAttachmentsboolean

boolean to indicate if an account has an attachment (read only)

UpdatedDateUTCstring

Last modified date UTC format

AddToWatchlistboolean

Boolean – describes whether the account is shown in the watchlist widget on the dashboard

Example request

{
  "Name": "Food Sales",
  "AccountID": "00000000-0000-0000-0000-000000000000",
  "UpdatedDateUTC": "/Date(1573755038314)/"
}

Response

Success - created new Account and return response of type Accounts array with new Account

Example response

{
  "Accounts": [
    {
      "Name": "Food Sales",
      "AccountID": "00000000-0000-0000-0000-000000000000",
      "UpdatedDateUTC": "/Date(1573755038314)/"
    }
  ]
}