# The chart of accounts and journal entries

> How ArmPOS writes your sales, purchases and expenses to the ledger, how to add a ledger account, and how to write and post your own journal entry.

*Section: Accounting · Updated: 2026-10-19 · Needs the plan feature: accounting*

By the end you will know how ArmPOS keeps a ledger of your sales, purchases and expenses, how to add an account to it, and how to write your own journal entry.

> **Note:** The ledger sits under **Accounting**, which comes with some plans only. It is for whoever keeps your books. For the day-to-day figures, the reports under **Reports** are enough.

## How the ledger fills itself

Each time you record one of these, ArmPOS writes a journal entry for you, already posted:

| You record | The entry |
| --- | --- |
| A sale | Accounts Receivable up, Sales Revenue up |
| A customer's payment | Cash (or the account it went into) up, Accounts Receivable down |
| A sale return | Sales Returns up, Accounts Receivable down |
| A purchase | Inventory up, Accounts Payable up |
| A payment to a supplier | Accounts Payable down, Cash (or the account) down |
| An expense | Expenses up, the paying account down |

The ledger accounts these need (**1000-CASH**, **1100-AR**, **1200-INV**, **2100-AP**, **4000-REV**, **4010-RET**, **EXP**) are made the first time they are used.

Deposits, transfers between your money accounts, accounts' opening balances, purchase returns and the cost of the goods you sell are **not** written to the ledger. Deleting or editing a sale, a payment or an expense doesn't change its entry either. Add a journal entry yourself for those.

**System Settings › Feature Toggles › Automatic Journal Entries** turns the automatic entries on or off. They are on for a new shop.

## The chart of accounts

**[Accounting › Chart of Accounts](/app/accounting-v2/chart-of-accounts)** lists the ledger's accounts with their **Code**, **Name**, **Parent**, **Type** and whether they are **Active**.

![Chart of Accounts: Search, Create and Import Chart of Accounts, then Code, Name, Parent, Type, Active and Action, with 1000-CASH Cash, 1100-AR Accounts Receivable, 1200-INV Inventory, 2100-AP Accounts Payable, 3000 Owner's capital, 4000-REV Sales Revenue, 4010-RET Sales Returns and EXP Expenses.](https://armpos.online/storage/help/fc3003c430-chart-of-accounts-and-journal-1-chart.webp)
*The accounts with a letter code were made by ArmPOS. 3000 Owner's capital was added by hand.*

1. **Click Create.**
2. **Fill the Code and the Name.** For example **3000** and **Owner's capital**.
3. **Pick the Type.** **Asset**, **Liability**, **Equity**, **Income** or **Expense**.
4. **Pick a Parent if the account belongs under another one,** and leave **Status** on **Active**.
5. **Click Save.** **Save** waits until Code, Name and Type are filled.

![The New Account window: Code 3000, Name Owner's capital, Type Equity, Parent None, Status Active, with Cancel and Save.](https://armpos.online/storage/help/4876c538ca-chart-of-accounts-and-journal-2-account.webp)
*Code, Name and Type are required. Parent groups an account under another.*

**Import Chart of Accounts** loads many at once from a CSV with the columns **code**, **name**, **type**, and optionally **parent\_code** and **is\_active**. **Download example** gives a file in that shape. Rows whose code already exists are updated.

> **Warning:** Don't rename or delete the accounts ArmPOS made (**1000-CASH**, **1100-AR** and the others): deleting one leaves its entries pointing nowhere, and ArmPOS makes a new one the next time it needs it.

## Write a journal entry

1. **Open [Accounting › Journal Entries](/app/accounting-v2/journal-entries)** and **click Create.**
2. **Check the Date and write the Description.** Say what happened, for example "Owner adds cash to the till".
3. **Fill one line per account.** Pick the **Account**, then put the amount in **Debit** or in **Credit**, never both. **Memo** is optional. **Add line** adds more lines.
4. **Check the badge says Balanced.** **Total Debit** must equal **Total Credit**.
5. **Click Save.** The entry is saved as a **Draft**.
6. **Post it.** On the entry's row, click the check icon. A draft that doesn't balance is refused.

![The journal entry window: Date 19/10/2026, Description "Owner adds cash to the till", line 1 1000-CASH Cash with Debit 100, line 2 3000 Owner's capital with Credit 100, Total Debit 100.00, Total Credit 100.00, Balanced, and Cancel and Save.](https://armpos.online/storage/help/873becf935-chart-of-accounts-and-journal-3-entry.webp)
*Money coming into Cash is a debit; the owner's capital going up is a credit. The badge turns Balanced when both sides match.*

![Journal Entries: Date, Description, Source, Status and Action, with "Owner adds cash to the till", manual, Posted, above the automatic entries such as Expense #40, Purchase #PR\_0010 and Sale #SL\_0380.](https://armpos.online/storage/help/f1df001118-chart-of-accounts-and-journal-4-journal.webp)
*Source says where an entry came from: manual for yours, sale, payment\_sale, expense and the rest for ArmPOS's.*

A draft can be edited or deleted. A posted entry can't: to correct one, post a new entry that reverses it.

## What's next

Read the ledger's totals in [Trial balance, profit and loss, balance sheet, tax](/app/help/financial-statements).
