REDA One Help Center
EN
Language
English EN Español ES Português PT Italiano coming soon Français FR Deutsch coming soon العربية coming soon
reda.one ↗
Home / REDA Financials AI / General Ledger / Posting Engine / How Posting Works

How Posting Works

Posting is the moment a business document — a sales invoice, a bill, a payment, a journal — turns into accounting. Until you post, a document is just a record of intent: it sits in Draft, you can edit it freely, and it has no effect on your financial statements. When you post it, REDA writes the matching double-entry bookkeeping — equal debits and credits — into your general ledger, and from that instant the document shows up in your Trial Balance, your P&L, and your Balance Sheet.

The posting engine is the heart of REDA Financials. Every number on every financial report traces back to it. This article explains the whole machine in plain language: the statuses a document moves through, the single gateway every entry passes through, the events that trigger posting, the checks that run before anything is written, and worked examples for each kind of document — including the automatic entries REDA generates behind the scenes for cash-basis and intercompany accounting.

Getting there. You don’t open the posting engine directly — you post a source document. Open the App Launcher (the grid icon at the top-left of any page) → REDA Financials AI, open the document (a Sales Invoice, Purchase Invoice, Cash Receipt, Cash Disbursement, or Journal Entry) from its tab, and click Post. The resulting ledger entries are read through the Financial Center tab and the account ledgers.
Access you'll need. Any REDA Financials permission set can view posted entries and reports. Posting itself follows the document’s module: Accounts Payable v2 (or Accounting Admin v2) posts AP documents, Accounts Receivable v2 (or Accounting Admin v2) posts AR documents, and the Accounting Admin v2 or Accounting Controller v2 set posts journal entries. No permission set can write to the ledger by hand — only the engine does.
You don’t need to be an accountant to post. REDA figures out the debits and credits for you from the document and your configured default accounts. This article shows what happens under the hood so you can trust the numbers — and read your ledger with confidence — but day to day, posting is one button.

The three statuses every document moves through

Almost every source document in REDA lives in one of three states — Cash Receipts are the one exception, covered below. The status is the single source of truth for “has this hit the ledger yet?”

StatusWhat it meansLedger impact
Draft Work in progress. You can add lines, change amounts, fix the date, pick different accounts — nothing is committed. None. No accounting transactions exist yet.
Posted Committed to the books. The document is now part of your financial record. Its accounting transactions exist and are locked. Full. Debits and credits are in the ledger and on every report.
Void Cancelled. The document was posted, then reversed out. It stays on file for the audit trail but no longer affects balances. Removed. Its accounting transactions are taken back out (see Void vs Reverse).
Cash Receipts are the exception — their status never says Void. A Cash Receipt is only ever Draft or Posted. Voiding one does not change its status: it sets an Is Voided flag, locks the record, and creates an equal-and-opposite reversal receipt that backs the cash out. The original stays Posted because the money genuinely did post — the reversal is what cancels it, exactly as a bank statement would show. See Voiding a Cash Receipt.
The normal life of an invoice: You create it (Draft) → review and post it (Posted) → it appears on the customer’s statement and in revenue. If it was raised in error, you void it (Void) and the revenue reverses automatically.

One gateway, one set of books

No matter which document you post, the entries are written by a single internal service — the posting engine. There is no second way in. Every debit and credit in your entire general ledger was created by this one gateway, which is exactly why your books stay consistent: the same rules, balancing checks, currency handling, and ledger stamping apply to every transaction without exception.

The entries themselves are stored as Accounting Transactions — the individual debit and credit lines that make up your ledger. They have two defining properties:

  • They can only be created by the engine. You cannot type an Accounting Transaction by hand, import one, or build one in a spreadsheet tool and push it in. The only door is posting a source document.
  • Once created, they never change. An Accounting Transaction is immutable — its account, amounts, date, and dimensions are frozen. If something is wrong, you don’t edit the entry; you void or reverse the document, and the engine writes a fresh, balancing set of entries.
Why this matters for audit (SOX / IFRS / GAAP). A ledger you can’t directly edit is a ledger you can trust. Because the only path to the books is the posting engine, and entries are write-once, REDA gives you a complete, tamper-evident audit trail by construction — every figure has a source document behind it, and corrections are visible as their own entries rather than silent overwrites. Read more in Accounting Transactions.

When does posting happen? The four events

Posting isn’t only the “Post” button. The engine reacts to four distinct events in a document’s life. Understanding them explains why REDA sometimes stops you from editing a record, and what happens when you change a status.

EventTriggerWhat the engine does
1. Edit lock You try to change a posted document’s header. Guards the record — key fields on a posted document are protected so the books can’t silently drift from the source.
2. Line lock You try to add, change, or remove a line on a posted document. Blocks the line change — a posted document’s lines are what produced the ledger entries, so they’re frozen too.
3. Post Status moves to Posted. Runs all the pre-posting checks, then writes the balancing Accounting Transactions and stamps the document as posted.
4. Unpost A posted document moves back to Draft, or to Void. Cleanly removes the Accounting Transactions the post created, so the document can be edited again (Draft) or cancelled (Void).
This is why editing a posted invoice feels different. REDA doesn’t let a posted document and its ledger entries get out of sync. To change a posted document, you move it back to Draft (which unposts it), make your change, and post again — the engine rewrites the entries to match. On documents where your administrator has enabled transparent edit/delete, REDA does this round-trip for you automatically.

The checks that run before anything is written

Posting is “all or nothing.” Before the engine writes a single entry, a fixed battery of validations runs against the document. If any fail, nothing is posted and REDA shows you all the problems at once, so you can fix everything in one pass rather than discovering issues one at a time.

These are the canonical pre-posting checks, grouped by what they protect:

#CheckWhy it exists
1Entity presentEvery entry belongs to a legal entity — the company whose books it lands in.
2Accounting Period presentThe entry must fall into a defined calendar period for reporting.
3Transaction Date presentEvery entry is dated.
4Date within the periodThe date can’t fall outside the period it’s being booked to.
5Ledger resolvedThe book the entry belongs to must be determinable (explicit → entity default → org default).
6Debits = CreditsThe foundation of double-entry. Totals must balance to the penny (2 decimal places).
7Total > 0A zero-value posting (0 = 0) is meaningless and blocked.
8Date after book closureYou can’t post into a closed period — the date must be after the entity’s relevant Closed Through date (GL for journals, AR for sales, AP for purchases).
9GL Account on every lineEvery debit and credit needs an account to land in.
10GL Account is activeYou can’t post to a deactivated account.
11GL Account entity scopeAn account scoped to one entity can’t be used by another. (Global accounts work everywhere.)
12Per-entity balance (intercompany)Each entity’s slice of the entry must independently balance — REDA does not create offsetting intercompany lines for you.
13Reversing period existsIf the document is set to auto-reverse on a future date, an accounting period must exist for that date — otherwise the reversal would have nowhere to land.
14Per-entity balance (multi-entity journals)A journal that spans entities must balance within each entity, not just overall.
No “period is Open” check? Correct — REDA’s periods are status-less. A period is just a date range, and closing the books is controlled by Closed Through dates on the entity (the book-closure check above), not by a flag on the period. See Closing the Books.

Worked examples: what the engine actually writes

Here is what posting produces for each common document, with real debits and credits. In every case the engine derives the accounts from the document and your configured default GL accounts, so you rarely pick them by hand.

1. Sales Invoice — accrual basis

You invoice a customer $1,000 for services, plus 10% VAT. On posting:

AccountDebitCredit
Accounts Receivable1,100.00
Revenue1,000.00
VAT Output (tax payable)100.00
Total1,100.001,100.00

Revenue is recognised now, at invoice date — that’s what “accrual” means. The customer owes you (AR), and the tax you collected is a liability you owe the tax authority.

2. Purchase Invoice (bill) — accrual basis

A supplier bills you $500 for an expense, plus 10% recoverable VAT. On posting:

AccountDebitCredit
Expense500.00
VAT Input (recoverable tax)50.00
Accounts Payable550.00
Total550.00550.00

The expense hits your P&L immediately, the recoverable VAT becomes an asset (you’ll reclaim it), and you owe the supplier (AP).

The purchase side is always accrual. Expenses are recognised when you accept the bill, regardless of an entity’s accounting basis — this is conservative accounting (don’t delay recognising what you owe). The cash-basis option only affects the sales side, below.

3. Sales Invoice — cash basis (deferred revenue)

Some small businesses recognise revenue only when they’re paid, not when they invoice. If an entity’s accounting basis is Cash, the same $1,000 + 10% VAT invoice posts differently — revenue is parked until the cash arrives:

Step A — on posting the invoice:

AccountDebitCredit
Accounts Receivable1,100.00
Deferred Revenue (liability)1,000.00
VAT Output100.00
Total1,100.001,100.00

No revenue yet — it sits in Deferred Revenue. (Tax is always recognised at invoice date, on either basis.)

Step B — when the customer pays and you apply the receipt: the engine books the cash and automatically releases the revenue:

AccountDebitCredit
Cash1,100.00
Accounts Receivable1,100.00
Deferred Revenue1,000.00
Revenue1,000.00

The second pair is the magic: REDA moves $1,000 out of Deferred Revenue and into Revenue at the moment of payment. Pay half the invoice and only half the revenue is released — the rest stays deferred. This is all automatic; you simply apply the receipt.

4. Intercompany settlement — automatic offsets

Suppose Entity B raised an invoice, but Entity A collected the cash and you apply Entity A’s receipt to Entity B’s invoice. The cash is in A; the receivable was in B. To keep each company’s books self-balancing, REDA automatically posts an intercompany offset:

EntityAccountDebitCredit
Entity B (the invoice)Intercompany Receivable1,100.00
Entity BAccounts Receivable1,100.00
Entity A (the cash)Cash1,100.00
Entity AIntercompany Payable1,100.00

Now Entity B’s receivable is cleared — replaced by an intercompany receivable from A (A owes B the money it collected). Entity A holds the cash and shows an intercompany payable to B. Each entity balances on its own (validation #12), and the two intercompany accounts net to zero when you consolidate.

Intercompany offsets require consent on both sides. REDA only creates cross-entity entries when both entities have opted in to cross-entity settlement, and both have their Intercompany Receivable/Payable default accounts configured. Without bilateral consent, the engine won’t settle across entities — it’s a deliberate control, not an oversight.

The automations you don’t see

Several things happen automatically every time you post, so you don’t have to think about them:

  • Tax lines. VAT/GST and other taxes are calculated and posted to the correct tax accounts — output tax as a liability on sales, input (recoverable) tax as an asset on purchases.
  • Withholding tax. Where applicable, the engine splits out withholding and books it to the right account at the right moment.
  • Cash-basis deferral & release. As shown above, revenue is parked and released automatically on cash-basis entities.
  • Intercompany offsets. Cross-entity settlements generate their balancing IC entries with no manual journal.
  • Multi-currency. Every entry is stored in three currency tiers (document, entity/functional, and corporate/reporting) with the exchange rates used, so currency translation is built in.
  • Posting dimensions. Your custom analysis fields (department, project, property…) are copied from the document straight onto each ledger entry — see Posting Dimensions.

Void vs Reverse — two ways to undo

Both undo a posting, but they leave different audit trails. Choose based on whether the original entry should disappear or stay visible.

VoidReverse
What it doesRemoves the original Accounting Transactions outright.Leaves the originals and posts a new, opposite set that cancels them.
Net effect on balancesZero — as if it never posted.Zero — original + reversal net to nothing.
Audit trailDocument stays as “Void”; the entries are gone.Both the original and the mirror entry remain visible in the ledger.
Use whenThe document was a mistake — clean cancellation.The original was legitimate but needs unwinding in a later period (e.g. an accrual reversing next month).
Closed periodsBlocked if it would touch a closed period.Allowed — the reversal posts into an open period, the original stays put.
Rule of thumb. If the document should never have existed, void it. If it was right at the time but you need to back it out cleanly while preserving history — especially across a period boundary — reverse it.

Where to go next

  1. Accounting Transactions — the ledger lines posting creates.
  2. Grouped vs Line-Level Posting — control the number of entries.
  3. Posting Dimensions — tag entries as they post.
  4. Accounting Periods — the period each posting lands in.
  5. Creating a Journal Entry — post a manual entry yourself.

Frequently asked questions

Not directly — a posted document and its ledger entries are locked together. Move it back to Draft (which unposts it and removes the entries), make your change, and post again. On documents where your administrator enabled transparent edit/delete, REDA performs this round-trip automatically when you save.

By design. The engine runs every pre-posting check and reports them all together so you can fix everything in one go instead of one error per attempt. Resolve each listed item and post again.

No. Accounting Transactions can only be created by posting a source document — there is no manual or import path into the ledger. If you need an adjustment that isn’t tied to an invoice or payment, post a Journal Entry; it’s the document type built for exactly that.

Yes. The engine still stores all three currency tiers; in a single-currency org they’re identical and the exchange rate is 1. You get the same balancing, validation, and audit behaviour either way.

Grouped posting changes how many ledger entries a document produces — lines hitting the same account (and the same dimension values) are summed into one entry instead of one per line — without changing the totals. It’s a territory-level setting that affects AR and AP documents only; journal entries always post line by line. See Grouped vs Line-Level Posting.

Was this article helpful?