Nid yw'r dudalen hon ar gael yn eich iaith eto, felly rydym yn ei dangos yn Saesneg.

BlogPeirianneg

November 2024: a ledger that cannot be quietly edited

November 2024 was about trust. The invoicing ledger only ever adds entries: a correction is a new line, not an edit. Here is why that makes the books easier to trust.

Hands working through accounts paperwork with a calculator and a pen

Quick answer

Quick answer: TradeYoke's invoicing ledger is append-only: entries are added and never rewritten, and a correction is a new entry that reverses or adjusts the old one. That means the history of every invoice, payment and credit is always visible, and balances and ageing are worked out from the same record rather than stored separately.

Key takeaways

  • The ledger only adds entries; it never edits or deletes them.
  • A correction is a new entry, so the history stays visible.
  • Balances and ageing are worked out from the ledger, so they cannot disagree with it.
  • Payments that do not match exactly have three clear resolutions: over, short and unmatched.

Why not just edit the invoice?

The obvious way to build invoices is to store them and let people edit them. It is simple and it goes wrong in a very ordinary way: someone changes an amount, the customer's statement no longer matches what they were sent, and nobody can say who changed what or when. For a small business, that is a dispute you cannot easily win.

Append-only, by design

In November 2024 we built the invoicing core as a ledger. Every event (an invoice issued, a payment received, a credit given) is added as a new entry. Nothing already written is changed or removed. If something was wrong, you add an entry that corrects it, and the original stays where it was.

What that buys you

  • A history you can read. For any customer you can see exactly what happened, in order.
  • Balances that cannot disagree. What a customer owes, and how old the debt is, are worked out from the ledger when needed. They are not a second copy that might drift.
  • Safe retries. Each entry has a key so that a payment notification arriving twice is recorded once.
  • Three honest ways to deal with odd payments. When a payment is more than the invoice, less than the invoice, or cannot be matched to one, there are three defined resolutions, not a silent guess.

Many things bill, one place records it

Another design choice: anything in TradeYoke that earns money does so through one doorway. A window cleaning visit, a gardening job or a certificate hands its amount to the invoicing module; it does not write to the ledger itself. That keeps the rules in one place. It is also why credit notes, late fees and statements, which came later, could be built on the ledger without special cases.

The cost

An append-only design is more work to build than an editable table. We think the work is worth it when it means a customer's statement always agrees with what they were sent. Next month: part payments, receipts and the first version of "who owes me".

Questions people ask

Can an issued invoice be edited in TradeYoke?

No. The ledger only adds entries. If something was wrong, a correction is recorded as a new entry, such as a credit note, and the original stays visible.

How does TradeYoke work out what a customer owes?

From the ledger. Balances and how overdue they are are calculated from the recorded entries, so they cannot disagree with the invoices and payments.

Try it on your own week

30 days of Essentials free, no card. Bring your customers and see it against a real week.

AssemblySoft DevOps

The engineering team behind TradeYoke: how it is built, deployed and kept running.

Mwy o'r blog

April 2026: one core, many trades

With window cleaning solid, April 2026 was about whether the core could carry other trades. Each trade is a module on the same core: its own terms, forms and colour.

AssemblySoft DevOps 4 munud o ddarllen