T:0T:0 sandbox, test data
Our books, in a real ledger
Purser posts its books to T:0's general ledger, then reads them back, line by line.
What ran live
- 10 Nov: 95 journal entries posted, the main run's books, read back with 0 differences. record ↗
- 10 Nov: T:0's balance sheet balances to the cent; its financing line is our owner funding. record ↗
- 10 Nov: the platform run booked 2 entries. record ↗
- 3 Nov: refused, 403: the shared key could read, not post. record ↗
- 5 Nov: refused, 401: the new key was not accepted. record ↗
Not done
- Accounts are made in T:0's app; its API cannot create them.
- One rate per currency, given by us; no daily rate source yet.
- A supplier bill on T:0's payables account needs a T:0 vendor (refused, 400).
What Purser sends
- One journal entry per entry of Purser's books, debits equal to credits, dated by the movement's day.
- Each line's memo carries its proof: the transaction hash, the clearing receipt or the Airwallex id.
- A stable id per entry (PUR- and a hash of its content) and an idempotency key: a second push posts nothing twice.
- Test money on Metal (*USDZ) is posted as USD, labelled in the memo; other currencies at the rate we give.
- How it works, and the account map ↗
Our books against T:0's, per account (10 Nov)
| T:0 account (ours) | Ours, net debit | T:0 |
|---|---|---|
| 11120 (1200) | 11,144,700.05 | 11,144,700.05 |
| 11210 (1201) | 9,995,581.94 | 9,995,581.94 |
| 11410 (1210) | 20.03 | 20.03 |
| 11999 (1590) | 1.32 | 1.32 |
| 32000 (3000) | -21,140,636.23 | -21,140,636.23 |
| 42000 (4000+4100) | -1.90 | -1.90 |
| 51200 (5000+6350) | 269.48 | 269.48 |
| 63410 (6100) | 50.31 | 50.31 |
| 63700 (6800) | 15.00 | 15.00 |
- All 95 entries match; debits and credits 21,141,221.86 USD each, the same as our books.
- A second push posted 0 and skipped 95: re-running is safe.
- Balance sheet: 26,447,805.98 = 3,807,739.87 + 22,640,066.11 USD, difference 0.00. Cash flow, financing: 21,140,636.23 USD, exactly our owner funding. The entity is shared with other teams, so these totals hold their entries too.
The ids in T:0
- First entry: je_prod_z7kTCuZ1iiwad01q.
- Platform run: je_prod_wop0vx1B8xOmHQl0, je_prod_WN96JsvKXGCY7mYs.