Skip to main content

Journals and deltas

A journal​

A journal is what General Ledger sends to your accounting system. One journal covers one business unit and one business date, and lists each account with a debit amount and a credit amount:

{
"businessUnitId": "EU002",
"businessDate": "2026-09-23",
"journalId": 41,
"accounts": [
{ "accountId": "3000", "debitAmount": 0, "creditAmount": 800 },
{ "accountId": "2610", "debitAmount": 0, "creditAmount": 200 },
{ "accountId": "1920", "debitAmount": 1000, "creditAmount": 0 }
]
}
  • Every journal balances: its debits add up to its credits.
  • journalId numbers the journals of a business unit. It increases with every journal for that business unit, across all dates. It is not a count per day.
  • A business date on which a store recorded nothing produces no journal.

When journals are sent​

General Ledger exports every 30 minutes between 02:00 and 05:30 UTC, every day. Each run sends a journal for every store-day that has something new to send:

  • A business day is sent once it has ended in the store's own time zone. A store in Central Europe is normally sent at 02:00 UTC. A store further west, whose day ends later, is sent in a later run that night, or at 02:00 UTC the following night.
  • Anything that arrives after the night's last run waits until 02:00 UTC the next night.

The first journal, and every journal after it​

The first journal for a store-day holds the day as it stood at that moment. What if more arrives for that day later, for example from a till that was offline, or a transaction sent late?

General Ledger never sends the whole day again. It sends a new journal with only the difference.

Journal 41 exports all of 23 September. A sale from 23 September that arrives late on the 24th is exported on the 25th as journal 43, containing only that sale. Journal 42 is the normal export for the 24th.

So your accounting system posts every journal it receives, as it is, and the day adds up:

the day in your accounts = the sum of all journals for that business unit and business date

This is what "delta" means. A later journal changes the day's figures, and each journal is a complete, balanced posting in its own right, so nothing has to be reversed by hand.

What a delta looks like​

A delta journal is calculated per account: what the day is now, minus everything already sent for that day.

Change since the last journalWhat the delta journal shows for that account
the account went up on the credit sidea credit for the increase
the account went up on the debit sidea debit for the increase
the account's credit went downa debit for the decrease. Never a negative credit.
the account is no longer used at allthe full amount already sent, on the opposite side, so the account returns to zero
the account did not changenot in the journal

⚠ Amounts are never negative. A correction that lowers an account appears as a posting on its other side. Your integration must post debits and credits as they come and must not assume that a sales account only ever receives credits.

⚠ Increases stay gross; decreases are netted. When late transactions only add to a day, the delta keeps debits and credits apart, as the first journal does: a late sale of 50 and a late return of 20 on the same sales account give credit 50.00 and debit 20.00. Only when a side has gone down, which normally happens after a recompute, is the decrease moved to the other side and combined with it. Then the account appears with a single net figure.

How far back late transactions are picked up​

A transaction that arrives late is picked up automatically if its business date is within about the last month. For anything older, recompute the date. The transaction is stored, and a recompute includes it. See Correcting and resending.

Where else the journals go​

Each journal is also stored, unchanged, for ten years. That store is what re-export sends from. It is not a place you can read from directly: to see a day's figures, use the API or the General Ledger tool. To receive the journals, see Receiving the journals.