This is a reference to how SolaCount posts to the general ledger: what each document debits and credits, and how VAT, reverse charge, payments, credit and debit notes, foreign exchange, fixed assets, period locks and approvals work. It describes the posting services in the product as they are today. Use it to check a journal you see on a document or in reports.
Where to see the postings
- A posted document's journal is linked from its detail page. All journals are listed under Journal Entries → All Entries.
- Default control accounts are set under Settings → Accounting & Tax → Account Defaults.
- Tax codes and VAT accounts are set under Settings → Accounting & Tax → Taxes.
- Lock date and posted-document rules are set under Settings → Accounting & Tax → Precision & Lock Date.
Core principles
| Rule | Detail |
|---|---|
| Draft vs posted | Drafts never touch the ledger. Posting writes one journal per document and fixes its number. |
| One active journal | A document has at most one active posted journal. Unpost voids it, returning the document to draft. Posting again creates a new journal linked to the old one. |
| Balanced | Every journal must balance in document currency and in base currency, or posting is refused. |
| Period check | Posting validates the date against the lock date, the accounting period and the fiscal year. See Locks and periods. |
| Approval check | If approval is enabled for the document type, posting needs a current approval. See Approvals. |
| Reverse, don't delete | Reverse posts an opposite journal on the reversal date and keeps both in the audit trail. |
| Allocations block undo | You can't unpost or void a document while payments are allocated to it ("Cannot unpost: payments are allocated to this invoice. Remove allocations first."). |
Postings by document
Throughout, Bank means the cash or bank account selected on the document. Default codes are given in brackets. Your chart of accounts may use different ones.
Sales
| Document | Debit | Credit | Notes |
|---|---|---|---|
| Quote, Sales order | none | none | No ledger effect |
| Invoice | Accounts Receivable (1200), invoice total | Revenue per line (net); Output VAT per tax code | Revenue account per line comes from the line's account, then the item's income account, then the default sales account. Inventory items also post Dr Cost of Goods Sold, Cr Inventory at cost. |
| Sales receipt (cash sale) | Bank (deposit account), total | Revenue; Output VAT | Inventory: Dr COGS / Cr Inventory. A matching payment record is created automatically. |
| Customer credit note | Sales returns, or Sales allowance for allowance lines; Output VAT | Accounts Receivable, total | Restocked inventory: Dr Inventory / Cr COGS ("COGS reversal"). Applying the note to an invoice is a separate step. |
| Customer refund | Accounts Receivable ("Reduce AR via refund") | Bank ("Cash/Bank payout") | Limited to the available credit ("Amount exceeds available credit.") |
| Customer payment | Bank, full amount | Accounts Receivable for the allocated part; Customer advance (2501) for any unallocated part | Document payments must be fully allocated. Use Advance or Mixed to keep a balance on account. |
Purchases
| Document | Debit | Credit | Notes |
|---|---|---|---|
| Purchase order | none | none | No ledger effect |
| Bill | Expense per line, or Inventory for stock items; Input VAT (recoverable) | Accounts Payable (2100), total | Non-recoverable VAT is added to the expense or inventory cost |
| Expense | Expense lines; Input VAT | Accounts Payable ("Expense payable") | Paid afterwards through a supplier payment |
| Direct Pay | Expense lines; Input VAT | Bank | One step, no supplier balance |
| Supplier debit note | Accounts Payable, total | Expense or Inventory lines; Input VAT | Reduces what you owe |
| Supplier refund | Bank ("Supplier refund received") | Accounts Payable ("Clear supplier debit note balance") | |
| Supplier payment | Accounts Payable for the allocated part; Supplier advance (1704) for any unallocated part | Bank |
Banking and journals
| Document | Debit | Credit |
|---|---|---|
| Bank transfer | Destination account ("Transfer in") | Source account ("Transfer out") |
| Deposit / Withdrawal | Bank / chosen lines | Chosen lines / Bank |
| Manual journal | As entered | As entered. Drafts may be unbalanced, but posting requires balance. |
| Opening balances | As entered | Difference to Opening Balance Equity (3501) |
VAT
- Every taxed line writes a VAT line. Output VAT goes to the Output VAT account (2201) on sales, and Input VAT to the Input VAT account (1703) on purchases. The account is resolved per tax code, and posting fails if it is missing ("Output VAT account not configured for tax.").
- A line with a positive VAT rate can't have zero VAT ("Line 3: VAT amount cannot be zero when a tax rate > 0% is selected.").
- Sales tax codes are only allowed on sales documents, and purchase codes only on purchases.
- Zero-rated purchase lines still record their base amount, so they show up in VAT reports.
Reverse charge
A line is reverse charge if its tax code is marked reverse charge, or if the bill's VAT treatment is Reverse charge and the line has no rate of its own. For these lines:
- The supplier is owed the net amount only (no VAT in Accounts Payable).
- VAT is self-assessed: Dr Input VAT (reverse-charge input) / Cr Output VAT (reverse-charge output) for the same amount, so the net cost is zero when the VAT is recoverable.
- The same rule applies to expenses and Direct Pay ("VAT RC Input / VAT RC Output"), and is undone by debit notes.
VAT return
| Step | Ledger effect |
|---|---|
| Draft | None. Totals are calculated from posted VAT lines in the period. |
| Finalize (status filed) | Journal 1 clears Output VAT and Input VAT into VAT Control. Journal 2 moves the net balance from VAT Control to VAT Suspense (payable or refundable). |
| Record settlement, payment | Dr VAT Suspense ("VAT payment") / Cr Bank |
| Record settlement, refund | Dr Bank ("VAT refund") / Cr VAT Suspense |
| Carry forward (net refundable) | Marks the return settled as carried forward, with no bank movement |
A return can only be settled after it is finalized.
Discounts
The mode is set by the Discount posting mode setting. Gross is the default unless the organization explicitly chooses Net.
- Gross: Revenue is credited at the full price, and the discount is debited to a Sales/Service Discounts account. On bills, the expense is debited gross and the discount is credited to Purchase Discounts. Inventory cost always stays net of purchase discounts.
- Net: lines post at the discounted amount, with no separate discount line.
Foreign currency
- Every journal line stores the document amount and its base-currency equivalent at the document's rate.
- Realized FX: when a payment settles an invoice or bill at a different rate, SolaCount posts a separate settlement journal ("Realized FX settlement PMT-…"). A gain is posted as Dr AR/AP, Cr FX Gain (4305). A loss is posted as Dr FX Loss (6805), Cr AR/AP. The original documents are never changed. Unposting the payment reverses this journal too.
- Unrealized revaluation at period end is done with base-currency adjustments.
Inventory
- A purchase receipt on a bill debits Inventory and updates the item's average cost in base currency. A sale credits Inventory and debits COGS at cost.
- For items whose stock is managed in SolaStock, SolaCount takes quantities and costs from SolaStock.
- Stock adjustments post to Inventory Adjustment Gain (4303) or Loss (6804).
Fixed assets
| Event | Debit | Credit |
|---|---|---|
| Post acquisition | Fixed asset account (cost) | Offset chosen by the acquisition mode: Bank, Cash, Payable, or Clearing (default) |
| Depreciation run | Depreciation Expense | Accumulated Depreciation |
| Disposal | Proceeds account (proceeds); Accumulated Depreciation; Loss on disposal (if any) | Fixed asset account (cost); Gain on disposal (if any) |
Year-end close
Closing a fiscal year posts a system journal dated on the year's last day. It zeroes every revenue and expense account and puts the net result in Retained Earnings (3201). See Fiscal years & lock dates.
Locks and periods
When you post, SolaCount checks the date in this order:
- Organization lock date. A date on or before it is refused: "Cannot post transaction: Date … is on or before the organization lock date …".
- An accounting period must exist: "No accounting period exists for date …".
- The period must not be Locked (audit-final) or Closed. The only exception is the system year-end closing journal, which may post into a closed period.
- The fiscal year must not be Locked.
Unpost and reverse are disabled for documents in closed or locked periods. Reversals post on the reversal date, which must itself pass these checks.
Approvals
If the owner turns on approval for a document type, posting (and pay, send, void, reverse and so on) requires a current approval: "This document must have a current approval before posting." Approval doesn't change the journal. It only gates it. If the financial data changes after approval, the approval is invalidated. See Workflow & Approvals.
Worked example: a reverse-charge import
Al Noor Trading LLC imports consulting services from a UK supplier for AED 20,000, with 5% reverse charge.
Bill posted:
| Account | Debit (AED) | Credit (AED) |
|---|---|---|
| Consulting Expense | 20,000 | |
| Input VAT (reverse charge) | 1,000 | |
| Output VAT (reverse charge) | 1,000 | |
| Accounts Payable | 20,000 |
Paid in full: Dr Accounts Payable 20,000 / Cr Bank 20,000.
In the VAT return, the 1,000 output and 1,000 input cancel out, so the net VAT is nil.
Required default accounts
If one of these is missing, posting stops with an error. Check them under Account Defaults.
| Account | Used by |
|---|---|
| Accounts Receivable | Invoices, credit notes, customer payments, refunds |
| Accounts Payable | Bills, expenses, debit notes, supplier payments |
| Sales revenue (default) | Invoice lines without a mapped account |
| Output / Input VAT, VAT Control, VAT Suspense | Taxed documents and VAT returns |
| Cost of Goods Sold, Inventory | Inventory sales and receipts |
| Customer advance / Supplier advance | Unallocated payments |
| FX Gain / FX Loss | Realized FX ("Realized FX gain account … " error if missing) |
| Retained Earnings | Year-end close ("Retained Earnings account is missing…") |
| Sales / Purchase discounts | Gross discount mode |