MCP: short connect text, a handbook, tool annotations, safe local imports
- The 13K-character instructions (clients cut them short) become a
connect text of at most 1,400 characters whose first 512 stand alone,
plus books.handbook and books://handbook/{section}: the old guidance by
section, with no helper commands, home paths, pull requests or
file-reading suggestions (tool_text_lint).
- Every tool has a title and read-only/destructive hints; no
requiresUserInteraction anywhere (owner decision 2026-10-16).
- books.import_local_file reads only regular files inside the import
roots (the downloads folder by default, or --import-root), never the
data dir, books dir, vault or the key's folder, no symlink escapes or
hard links, and the file opened must be the file checked.
- The store lock is a tokio mutex taken off the runtime threads.
- get_info refreshes settings first; a bare books://digest reads.
Review fixes (P0 review, 2026-10-16):
- Fail closed: a tokio mutex never poisons and spawn_blocking caught the
panic, so after a panic mid-mutation the server kept serving a Store
behind its journal. A panic (the task, or while holding the store)
now stops the shared store; every later request on every session is
refused with a plain message; a restart re-verifies the journal. The
join error goes through redact_refusal and never carries the panic's
text.
- books.set_w9 w9_file_path read any path (a link named w9.pdf to the
vault key was stored and get_w9 wrote it out): it now goes through the
import roots' lockdown, its type judged on the canonical path.
- Sealed even inside a root: the key file in force, where a linked one
leads, both folders, and the default key folder whatever the settings
say. Refusals check the roots first, so outside them every path gets
one message (no probing what exists); inside, other books-dir files say
to copy them out first.
- The open is O_NOFOLLOW | O_NONBLOCK (a pipe swapped in after the check
can't hang a thread) and must match the checked file's device and
inode. New dependency: libc (unix only), for those two open flags,
which std doesn't name.
- Default import roots are the downloads folder only (the plan); files
with full TINs (get_w9, vendor_1099 include_tins, the CPA package with
TINs) are never written into an import root, and the server refuses to
import any file it wrote with TINs (by SHA-256).
- set_tin and set_w9 overwrite vault records: destructive_hint = true;
annotations_complete pins the key tools' hints. The read-only hint is
checked in behaviour on every spec_mcp call (journal and data-dir files
unchanged).
- Text: the connect text names the settings file as the one local file
to edit, says every entry balances on real accounts and names its
party, says invoice/bill/payment/payroll tools post unchecked, rewords
the exemptions, and shows the company name as one plain line; the
handbook takes section "all", lists its ids in the schema and says to
read contract first; books.settings drops the config.json path and no
error names the data dir or the key file. tool_text_lint covers the
whole tool JSON and resources and bans git/commit/WL-0001; tool
descriptions over 700 characters are pinned to today's eight (P5).
- digest: an empty since= is bare; the default date is pinned on every
day of a month.
Round-2 review fixes (2026-10-16):
- TIN files (B-26): the in-memory, per-session set of TIN-file hashes
became one registry beside the vault (vault/tin-files.sha256, hashes
only), shared by every session and every later server. It holds the
W-9 set_w9 reads (recorded as read), get_w9 copies, 1099 worksheets
with TINs, CPA packages with TINs and each file in one that holds a
TIN; a file is recorded before it is written, and a failure refuses.
import_local_file, attach_receipt and file_document (base64 was never
checked) refuse a recorded file, and a text file (by type, name, or
UTF-8/UTF-16 decoding) holding a full TIN. Not caught: an altered
binary copy; the docs say so (P2/P7 remove the path tools).
- The text check is narrow (owner/engineer decision, 2026-10-16: bank
exports are filed for reconciliation, and has_full_tin's "nine digits
however separated" refused their routing numbers, long references and
dates run into amounts). Text is refused when it holds (a) a TIN the
vault holds for a party, anywhere, as nine digits, 3-2-4 joined by
hyphens, spaces or dots, or 2-7 joined by a hyphen or space, compared
on the server against the decrypted vault and never returned or
logged (a vault that can't be opened leaves (b)); or (b) a stand-alone
printed SSN (123-45-6789) or EIN (12-3456789) shape: no digit, and no
hyphen or dot followed by a digit, beside it. Full-width digits and
Unicode hyphens and spaces read as ASCII. has_full_tin still guards
refusals and results (redact_refusal). Known limit, for P7: a refusal
under (a) tells the agent a text it chose holds a vault TIN.
New dependency: zeroize in ledger-mcp (already in the workspace
through ledger-vault, same major version), so the vault's TINs decoded
for the scan are wiped from memory on drop as the vault's own are.
- Mutation testing of the final P0 diff (docs/testing.md): tests for
each law a survivor broke (handbook titles, a dropped default root, a
.jpg W-9, the waker, the walk's folder flags against a link and a
pipe, the 40-link limit, save paths refused as such, the package
marking only its TIN files, a registry that can't be read, text types,
the short receipt rule's counts and a 12-character code). Simpler
code where only a race could tell: inspect places an existing path by
canonicalize itself (no second comparison), read_checked's read limit
is its one size check, openat fails on -1 as specified. The 25 MiB
upload test removes its 50 MB of books however it ends.
- The GUI's stale-rule prompt no longer says to open a pull request: it
asks the agent to find the figure from the rule's official authority,
confirm it with the human, pass it explicitly, and tell the human so it
can be reported upstream (as the handbook says); a lib test pins it and
bans files, git, GitHub and pull requests from every attention prompt.
- Import roots (local_files.rs INVARIANT 0): XDG_DOWNLOAD_DIR="$HOME/"
made $HOME (or /) the root. No root may be /, the home folder or hold
it, or hold the books, data dir, vault or a key: a named one stops the
server at startup, a default one is dropped; the default falls back to
~/Downloads only if that is a real folder other than $HOME; with no
root, an import says so.
- The read is a component walk from / with openat(O_NOFOLLOW |
O_DIRECTORY) per folder and O_NOFOLLOW | O_NONBLOCK for the file, so a
folder swapped for a link after the check fails; no step may land on a
protected inode (one renamed into a root); dev/ino and nlink stay. No
/proc. Portable to macOS. (libc's openat, two small unsafe blocks.)
- One refusal for missing, dangling and outside paths: resolved()
follows every link, dangling ones too, so a link's target existing or
not no longer changes the answer.
- Sealing: the key files (in force, default) and their targets always;
their folders only when not $HOME, not a root, not holding a root; and
~/.config/wanderbooks whatever XDG_CONFIG_HOME says.
- Agent text (I-12): RuleNotKnown names the authority (IRS, with its
address) and says to tell the human, never a repo path, PR or GitHub;
the digest's stale_rules drop the repo catalog and path for it; vault,
outside-books, STOPPED and local-file refusals name no git, path or
flag. tool_text_lint bans docs/, .md, /home, data dir, --data-dir,
--import-root, vault.key, .jsonl, sqlite, .gitignore, github, pull
request, and also lints every error template (scanned from source),
built error texts, and the server's refusal constants.
- The receipt rule told (ReceiptPolicy::rule) is the one enforced: the
exact threshold in the base currency (no "$", no rounding), required
and exempt accounts, reversals exempt; the connect text fits 1,400
characters by dropping reasons, then codes, never the rule.
- The connect text follows the parties setting; "offer books.digest"
everywhere. shown_name drops Unicode format characters (bidi, zero
width).
- read_only_tools_change_nothing compares file contents, the database
by every row, the vault and the settings file (raw database bytes did
not change either; rows are the stable comparison).
- import_local_file takes the name and type from the canonical path;
the digest's journal repair says when the tail was set aside, not the
journal's file name; "version-history messages" back in the TIN rule;
openWorldHint false on every tool, pinned in annotations_complete.
- Outside the MCP crate, for the same texts: ledger-core's DatedRule
gains `authority` (the statute or publication with its address) and
RuleNotKnown carries it; ledger-store's "sqlite error" reads "database
error"; ledger-config's ReceiptPolicy::rule takes the base currency.
New dev-dependency: rusqlite in ledger-mcp (already in the workspace,
same version and features as ledger-store), to read the database's
rows in read_only_tools_change_nothing.
- The filing scan is no TIN oracle (tin_files.rs INVARIANT 4): text
holding more than two TIN-shaped numbers (any rendering rule (a)
reads) that end in a known TIN's last four (the books' TIN and W-9
facts, via known_tin_last4, before the vault is opened; then the
vault's own) is refused with TIN_PROBE, the same words whether or not
one is the vault's TIN; only one or two candidates are compared
against the vault. Tests: unit
text_probing_for_a_tin_is_refused_alike_whether_or_not_it_holds_it,
one_or_two_candidates_are_compared_against_the_vault; over HTTP
text_probing_for_a_tin_is_refused_alike_by_every_filing_tool.
Plan: plan/served.md P0, section 6 "Immediate hole (P0)", 4.1, 4.3, 4.9.
Review round 3. S1: a panic stops the server for every session, so no
input may reach one. Dates are four-digit years (new ledger_core::
calendar, 0001-01-01..9999-12-31): the MCP's parse_date is strict
YYYY-MM-DD, periods are bounded, last_day_of_month returns a refusal
(server and store); schedules, assets, recurring entries, periods,
documents, disposals and entries refuse dates outside the calendar, and
replay refuses such journal dates. Every amount a command takes is at
most a line's (draft lines by size, document lines, payouts, payroll,
statements, shares, tax basis, proceeds, recurring templates), on
replay too, so sums are exact; the 1099 vendor part and the K-1
property share use checked products (TooLargeToCompute); a recurring
run makes at most 1,000 drafts. tests/hostile_args.rs drives every tool
with schema-derived hostile arguments and every resource with generated
URIs, asserting the server never stops; the audit's panics are pinned.
S2: a `.` or `..` path name is refused as NO_SUCH_FILE up front. S3:
NUL-interleaved UTF-16 without a byte-order mark is scanned both ways.
S4: resource-read refusals are TIN-redacted. S5: set_w9 records its W-9
only once the call passes every check, just before the vault write.
S8: idempotentHint only on verify, run_depreciation, run_schedules,
run_recurring, set_party_roles (a repeat leaves journal and vault
alone; spec_vault checks every candidate twice); every tool's hints
pinned in one table. C1: books.settings lists receipt_required_accounts
and receipt_exempt_accounts uncut. C2: the default company name reads
"a new company". C3: the parties rule names no-party reasons. C4/C5:
the handbook names the settings file only as books.settings' books_toml,
and restores "check books.digest and offer it". C6: an import root
inside the books, data dir or vault is refused at startup. The lint
catches `just` however it ends and where the books are;
digest_resource_bare_reads reads the server's month.
Review round 4 (2026-10-17): round 3's bounds ran in replay too, so
journals main wrote and reopened (an entry dated 0000-06-01 or
+10000-01-01, a draft line of 2e15, an asset ending past 9999, a basis
or share past the line limit, sub-cent document and payroll lines) no
longer opened. Posted is forever: the bounds are the commands' only.
- Replay applies main's rule exactly: parse_date takes any date chrono
reads; replay_add_line(_fx) has no size bound (add_line/add_line_fx
do); replay_register_asset/correct_asset (chrono overflow only),
replay_set_asset_tax_basis (check_journaled), replay_set_entry_parties
(check_shares_journaled), replay_register_recurring
(validate_recurring_journaled), replay_register_schedule (months 1 to
600), replay_create_period (order only), replay_dispose_asset, and no
line, date, payment or payroll range checks in replay_invoice/bill,
their payments and replay_payroll_run.
- Derived figures over such books refuse (TooLargeToCompute,
DateOutOfRange), never panic: amortization plans, depreciation into
chrono's last month (and the true-up for lives past 9999), intervals,
document totals and aging, net pay and payroll plans, money flows and
share resolution, the asset register, receipt-policy debits; the MCP
tools and the viewer show what can't be computed.
- tests/fixtures/old-books: the review's 13 journals, its control and 15
more edges, written by main's Store API with main's figures
(expected.json); every one opens in the writer and the viewer to those
figures, every derived figure computes or refuses, every MCP tool and
GUI page answers; hostile_args restarts the server after each
property; each bound has a command/replay test pair.
Final review: a schedule's plan refuses a total of 10^26 or more
(TooLargeToCompute) instead of letting Decimal round its cents silently,
and a null `remaining` in the schedule output is always explained by
plan_error. Replay is unaffected: no journaled schedule month can belong
to a total that large (the line limit bounds every posted month).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T3gXMVt7XJPi6ens1or9Dj
This commit is contained in:
161 files changed
+18938
-1110
No files matched your search
@@ -0,0 +1,24 @@
|
||||
# The harness that wrote tests/fixtures/old-books, through the Store API of
|
||||
# the version that wrote them (main 188c90ea, 2026-10-17), and that version's
|
||||
# expected.json (bin/expect). Not a workspace member: point the two paths at
|
||||
# a checkout of the writing version (`git archive 188c90ea | tar -x -C
|
||||
# wb-main`), then
|
||||
# cargo run --bin writer -- OUT (the P0 review's thirteen and control)
|
||||
# cargo run --bin extras -- OUT (the edges of chrono and Decimal)
|
||||
# cargo run --bin extras2 -- OUT (depreciation for 10000-01; 1,044 drafts)
|
||||
# cargo run --bin older -- OUT (x_older_rules, with its JournalWriter)
|
||||
# cargo run --bin expect -- OUT (expected.json beside each journal)
|
||||
# and copy each journal.jsonl, blobs/ and expected.json into old-books/.
|
||||
[package]
|
||||
name = "writer"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
ledger-core = { path = "wb-main/crates/ledger-core" }
|
||||
ledger-store = { path = "wb-main/crates/ledger-store" }
|
||||
chrono = "=0.4.45"
|
||||
rust_decimal = "=1.43.0"
|
||||
serde_json = "1"
|
||||
|
||||
[workspace]
|
||||
@@ -0,0 +1,32 @@
|
||||
//! What MAIN computes for each books dir: verify, the canonical report
|
||||
//! snapshot, and every record as replayed. Written to <dir>/expected.json.
|
||||
fn main() {
|
||||
let root = std::path::PathBuf::from(std::env::args().nth(1).unwrap());
|
||||
let mut names: Vec<_> = std::fs::read_dir(&root).unwrap().map(|e| e.unwrap().path()).filter(|p| p.is_dir()).collect();
|
||||
names.sort();
|
||||
for dir in names {
|
||||
let n = dir.file_name().unwrap().to_string_lossy().to_string();
|
||||
let _ = std::fs::remove_file(dir.join(ledger_store::DB_FILE));
|
||||
let s = match ledger_store::Store::open(&dir) { Ok(s) => s, Err(e) => { println!("FAILS {n}: {e}"); continue } };
|
||||
let l = s.ledger();
|
||||
let entries: Vec<_> = (1..l.next_entry_id()).filter_map(|id| l.get_entry(id)).collect();
|
||||
let parties: Vec<_> = (1..l.next_entry_id()).map(|id| (id, l.entry_parties(id))).filter(|(_, p)| !p.is_empty()).collect();
|
||||
let v = serde_json::json!({
|
||||
"verify": s.verify().map(|_| ()).map_err(|e| e.to_string()),
|
||||
"snapshot": ledger_core::reports::snapshot(l).map_err(|e| e.to_string()),
|
||||
"entries": entries,
|
||||
"assets": l.registered_assets().collect::<Vec<_>>(),
|
||||
"periods": l.list_periods(),
|
||||
"schedules": l.schedules().collect::<Vec<_>>(),
|
||||
"recurring": l.recurring_entries().collect::<Vec<_>>(),
|
||||
"invoices": l.invoices(),
|
||||
"bills": l.bills(),
|
||||
"payroll_runs": l.list_payroll_runs(),
|
||||
"entry_parties": parties,
|
||||
});
|
||||
// Pretty for a reader; one line for books of many entries.
|
||||
let text = if entries.len() > 100 { serde_json::to_string(&v) } else { serde_json::to_string_pretty(&v) };
|
||||
std::fs::write(dir.join("expected.json"), text.unwrap() + "\n").unwrap();
|
||||
println!("EXPECTED {n}: verify={}", v["verify"]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
//! More legal-but-extreme books, written through MAIN's Store API: the
|
||||
//! edges of chrono's calendar and of Decimal, which an earlier wanderbooks
|
||||
//! accepted. Each must open under every later version, and nothing
|
||||
//! computed over them may panic.
|
||||
use chrono::NaiveDate;
|
||||
use ledger_core::*;
|
||||
use ledger_store::Store;
|
||||
use rust_decimal::Decimal;
|
||||
use std::path::PathBuf;
|
||||
|
||||
fn d(y: i32, m: u32, day: u32) -> NaiveDate { NaiveDate::from_ymd_opt(y, m, day).unwrap() }
|
||||
fn dec(s: &str) -> Decimal { s.parse().unwrap() }
|
||||
fn usd(s: &str) -> Money { Money::new(dec(s), Currency::USD) }
|
||||
|
||||
struct B { s: Store, cash: AccountId, eq: AccountId, exp: AccountId }
|
||||
fn books(root: &PathBuf, name: &str) -> B {
|
||||
let dir = root.join(name);
|
||||
let _ = std::fs::remove_dir_all(&dir);
|
||||
std::fs::create_dir_all(&dir).unwrap();
|
||||
let mut s = Store::create(&dir, Currency::USD).unwrap();
|
||||
let cash = s.add_account("1000", "Cash", AccountType::Asset, None, false).unwrap();
|
||||
let eq = s.add_account("3000", "Capital", AccountType::Equity, None, false).unwrap();
|
||||
let exp = s.add_account("6000", "Rent", AccountType::Expense, None, false).unwrap();
|
||||
B { s, cash, eq, exp }
|
||||
}
|
||||
fn report<T: std::fmt::Debug, E: std::fmt::Display>(name: &str, r: Result<T, E>) {
|
||||
match r { Ok(v) => println!("WROTE {name}: {v:?}"), Err(e) => println!("REFUSED {name}: {e}") }
|
||||
}
|
||||
fn post(b: &mut B, date: NaiveDate, dr: AccountId, cr: AccountId, amt: &str) -> Result<u64, ledger_store::StoreError> {
|
||||
let e = b.s.create_entry(date, "edge")?;
|
||||
b.s.add_line(e, dr, Side::Debit, usd(amt))?;
|
||||
b.s.add_line(e, cr, Side::Credit, usd(amt))?;
|
||||
b.s.post_entry(e)?;
|
||||
Ok(e)
|
||||
}
|
||||
|
||||
const MAX: &str = "79228162514264337593543950335";
|
||||
const HALF: &str = "39614081257132168796771975167";
|
||||
const MAX_CENTS: &str = "792281625142643375935439503.35";
|
||||
|
||||
fn main() {
|
||||
let root = PathBuf::from(std::env::args().nth(1).unwrap());
|
||||
// Posted entries on chrono's first and last days, and a draft on each.
|
||||
for (name, date) in [("x_date_max_entry", NaiveDate::MAX), ("x_date_min_entry", NaiveDate::MIN)] {
|
||||
let mut b = books(&root, name);
|
||||
let (cash, eq) = (b.cash, b.eq);
|
||||
report(name, post(&mut b, date, cash, eq, "10.00"));
|
||||
report(name, b.s.create_entry(date, "draft at the edge"));
|
||||
}
|
||||
// A draft whose lines are Decimal's largest: its debits can't be summed.
|
||||
{ let mut b = books(&root, "x_draft_max_lines");
|
||||
let e = b.s.create_entry(d(2026, 3, 1), "huge draft").unwrap();
|
||||
report("x_draft_max_lines", b.s.add_line(e, b.cash, Side::Debit, usd(MAX)));
|
||||
report("x_draft_max_lines", b.s.add_line(e, b.exp, Side::Debit, usd(MAX)));
|
||||
report("x_draft_max_lines", b.s.add_line(e, b.eq, Side::Credit, usd("1.00"))); }
|
||||
// A schedule whose months run past chrono's last day.
|
||||
{ let mut b = books(&root, "x_schedule_chrono_end");
|
||||
let pre = b.s.add_account("1300","Prepaid",AccountType::Asset,None,false).unwrap();
|
||||
report("x_schedule_chrono_end", b.s.register_schedule(NewSchedule { description: "edge".into(), kind: ScheduleKind::PrepaidExpense, total: usd("1200.00"), start: d(262142,6,1), months: 12, balance_account: pre, pl_account: b.exp })); }
|
||||
// An asset whose life ends in chrono's last month.
|
||||
{ let mut b = books(&root, "x_asset_chrono_end");
|
||||
let accum = b.s.add_account("1510","Accum",AccountType::Asset,None,false).unwrap();
|
||||
let fa = b.s.add_account("1500","Equip",AccountType::Asset,None,false).unwrap();
|
||||
report("x_asset_chrono_end", b.s.register_asset(NewAsset { description: "edge".into(), purchase_date: d(262142,1,15), cost: usd("1200.00"), salvage_value: usd("0"), useful_life_months: 11, cost_account: fa, accum_depr_account: accum, expense_account: b.exp })); }
|
||||
// Two members' shares of one entry, each Decimal's largest (a whole number of cents).
|
||||
{ let mut b = books(&root, "x_shares_max");
|
||||
let p = b.s.add_party("Member A", &[Role::Member]).unwrap();
|
||||
let q = b.s.add_party("Member B", &[Role::Member]).unwrap();
|
||||
let (exp, cash) = (b.exp, b.cash);
|
||||
let r = (|| -> Result<(), ledger_store::StoreError> {
|
||||
let e = post(&mut b, d(2026,3,1), exp, cash, "10.00")?;
|
||||
b.s.set_entry_parties(e, &[PartyShare { party: p, share: Share::Amount(dec(MAX)) }, PartyShare { party: q, share: Share::Amount(dec(MAX)) }]) })();
|
||||
report("x_shares_max", r); }
|
||||
// Two assets whose contributor bases are Decimal's largest.
|
||||
{ let mut b = books(&root, "x_tax_basis_max");
|
||||
let accum = b.s.add_account("1510","Accum",AccountType::Asset,None,false).unwrap();
|
||||
let fa = b.s.add_account("1500","Equip",AccountType::Asset,None,false).unwrap();
|
||||
for n in 0..2 {
|
||||
let id = b.s.register_asset(NewAsset { description: format!("thing {n}"), purchase_date: d(2026,1,1), cost: usd("1200.00"), salvage_value: usd("0"), useful_life_months: 36, cost_account: fa, accum_depr_account: accum, expense_account: b.exp }).unwrap();
|
||||
report("x_tax_basis_max", b.s.set_asset_tax_basis(id, TaxBasis { rule: TaxBasisRule::Carryover, contributor_basis: Some(dec(MAX)) }));
|
||||
} }
|
||||
// An exchange rate of Decimal's largest.
|
||||
{ let mut b = books(&root, "x_fx_rate_max");
|
||||
report("x_fx_rate_max", b.s.set_fx_rate(Currency::new("EUR").unwrap(), d(2026,1,1), dec(MAX))); }
|
||||
// A statement whose balances are near Decimal's largest in cents.
|
||||
{ let mut b = books(&root, "x_statement_max");
|
||||
let (cash, eq) = (b.cash, b.eq);
|
||||
report("x_statement_max", post(&mut b, d(2026,3,1), cash, eq, "10.00"));
|
||||
let (att, _, _) = b.s.file_document("statement", "s.pdf", "application/pdf", b"%PDF-1.4 statement", None).unwrap();
|
||||
report("x_statement_max", b.s.record_statement(ledger_store::Statement { attachment_id: att, account_id: cash, period_start: d(2026,3,1), period_end: d(2026,3,31), opening_balance: dec(&format!("-{MAX_CENTS}")), closing_balance: dec(MAX_CENTS) })); }
|
||||
// A recurring entry of half Decimal's largest, generated as drafts.
|
||||
{ let mut b = books(&root, "x_recurring_generated_max");
|
||||
let big = usd(HALF);
|
||||
report("x_recurring_generated_max", b.s.register_recurring(NewRecurring { description: "huge".into(), lines: vec![(b.exp, Side::Debit, big), (b.cash, Side::Credit, big)], frequency: Frequency::Monthly, start: d(2026,1,1), end: Some(d(2026,3,31)) }));
|
||||
report("x_recurring_generated_max", b.s.run_recurring(d(2026,3,31))); }
|
||||
// Periods at chrono's first and last years, the last one closed.
|
||||
{ let mut b = books(&root, "x_periods_chrono_edges");
|
||||
report("x_periods_chrono_edges", b.s.create_period("first", NaiveDate::MIN, d(NaiveDate::MIN.format("%Y").to_string().parse().unwrap(), 12, 31)));
|
||||
let p = b.s.create_period("last", d(262142,1,1), NaiveDate::MAX);
|
||||
report("x_periods_chrono_edges", p.as_ref().map(|_| ()).map_err(|e| e.to_string()));
|
||||
let (cash, eq, exp) = (b.cash, b.eq, b.exp);
|
||||
report("x_periods_chrono_edges", post(&mut b, d(262142,6,1), cash, eq, "100.00"));
|
||||
report("x_periods_chrono_edges", post(&mut b, d(262142,7,1), exp, cash, "40.00"));
|
||||
if let Ok(p) = p { report("x_periods_chrono_edges", b.s.close_period(p)); } }
|
||||
// A weekly recurring entry from year 1 (a hundred thousand due dates).
|
||||
{ let mut b = books(&root, "x_recurring_weekly_year1");
|
||||
let m = usd("5.00");
|
||||
report("x_recurring_weekly_year1", b.s.register_recurring(NewRecurring { description: "weekly".into(), lines: vec![(b.exp, Side::Debit, m), (b.cash, Side::Credit, m)], frequency: Frequency::Weekly, start: d(1,1,1), end: None })); }
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
//! Two more main-era books past bounds P0 added to commands: depreciation
|
||||
//! posted for a month past 9999, and one run of recurring entries that
|
||||
//! created more than MAX_RECURRING_RUN (1000) drafts.
|
||||
use chrono::NaiveDate;
|
||||
use ledger_core::*;
|
||||
use ledger_store::Store;
|
||||
use rust_decimal::Decimal;
|
||||
use std::path::PathBuf;
|
||||
fn d(y: i32, m: u32, day: u32) -> NaiveDate { NaiveDate::from_ymd_opt(y, m, day).unwrap() }
|
||||
fn usd(s: &str) -> Money { Money::new(s.parse::<Decimal>().unwrap(), Currency::USD) }
|
||||
fn books(root: &PathBuf, name: &str) -> (Store, AccountId, AccountId) {
|
||||
let dir = root.join(name);
|
||||
let _ = std::fs::remove_dir_all(&dir);
|
||||
std::fs::create_dir_all(&dir).unwrap();
|
||||
let mut s = Store::create(&dir, Currency::USD).unwrap();
|
||||
let cash = s.add_account("1000", "Cash", AccountType::Asset, None, false).unwrap();
|
||||
s.add_account("3000", "Capital", AccountType::Equity, None, false).unwrap();
|
||||
let exp = s.add_account("6000", "Rent", AccountType::Expense, None, false).unwrap();
|
||||
(s, cash, exp)
|
||||
}
|
||||
fn main() {
|
||||
let root = PathBuf::from(std::env::args().nth(1).unwrap());
|
||||
{ let (mut s, _cash, exp) = books(&root, "x_depreciation_year10000");
|
||||
let accum = s.add_account("1510","Accum",AccountType::Asset,None,false).unwrap();
|
||||
let fa = s.add_account("1500","Equip",AccountType::Asset,None,false).unwrap();
|
||||
let id = s.register_asset(NewAsset { description: "late".into(), purchase_date: d(9999,1,1), cost: usd("1200.00"), salvage_value: usd("0"), useful_life_months: 60, cost_account: fa, accum_depr_account: accum, expense_account: exp }).unwrap();
|
||||
for period in ["9999-12", "10000-01"] {
|
||||
match s.run_depreciation(id, period) { Ok(r) => println!("WROTE x_depreciation_year10000 {period}: {}", r.amount), Err(e) => println!("REFUSED {period}: {e}") }
|
||||
} }
|
||||
{ let (mut s, cash, exp) = books(&root, "x_recurring_run_1043");
|
||||
let m = usd("5.00");
|
||||
s.register_recurring(NewRecurring { description: "weekly".into(), lines: vec![(exp, Side::Debit, m), (cash, Side::Credit, m)], frequency: Frequency::Weekly, start: d(2026,1,1), end: None }).unwrap();
|
||||
match s.run_recurring(d(2045,12,31)) { Ok(v) => println!("WROTE x_recurring_run_1043: {} drafts", v.len()), Err(e) => println!("REFUSED: {e}") } }
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
//! What a wanderbooks older than main wrote and main still opened: a child
|
||||
//! account of another type, partially overlapping periods, a draft line on
|
||||
//! an account that doesn't exist, a foreign line booked before rounding to
|
||||
//! the cent. Written with MAIN's JournalWriter, as
|
||||
//! books_written_under_older_rules_still_open does inline.
|
||||
use ledger_core::*;
|
||||
use ledger_store::{JournalWriter, Store};
|
||||
use serde_json::json;
|
||||
fn main() {
|
||||
let dir = std::path::PathBuf::from(std::env::args().nth(1).unwrap()).join("x_older_rules");
|
||||
let _ = std::fs::remove_dir_all(&dir);
|
||||
std::fs::create_dir_all(&dir).unwrap();
|
||||
let mut store = Store::create(&dir, Currency::USD).unwrap();
|
||||
let cash = store.add_account("1000", "Cash", AccountType::Asset, None, true).unwrap();
|
||||
drop(store);
|
||||
let mut w = JournalWriter::open(&dir.join(ledger_store::JOURNAL_FILE)).unwrap();
|
||||
w.append("account.added", json!({"id": 2, "code": "1010", "name": "Rent", "account_type": "Expense", "parent": cash, "placeholder": false, "currency": "USD"})).unwrap();
|
||||
w.append("period.created", json!({"id": 1, "name": "2026-01", "start": "2026-01-01", "end": "2026-01-31"})).unwrap();
|
||||
w.append("period.created", json!({"id": 2, "name": "straddle", "start": "2026-01-15", "end": "2026-02-15"})).unwrap();
|
||||
w.append("entry.created", json!({"id": 1, "date": "2026-03-01", "description": "draft"})).unwrap();
|
||||
w.append("entry.line_added", json!({"id": 1, "account": 999, "side": "debit", "amount": "10.00", "currency": "USD"})).unwrap();
|
||||
w.append("entry.line_added", json!({"id": 1, "account": cash, "side": "credit", "amount": "108.34567", "currency": "USD", "foreign_currency": "EUR", "foreign_amount": "100.00", "fx_rate": "1.0834567"})).unwrap();
|
||||
drop(w);
|
||||
println!("WROTE x_older_rules");
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
fn main() {
|
||||
let root = std::path::PathBuf::from(std::env::args().nth(1).unwrap());
|
||||
let mut names: Vec<_> = std::fs::read_dir(&root).unwrap().map(|e| e.unwrap().path()).collect();
|
||||
names.sort();
|
||||
for dir in names {
|
||||
let n = dir.file_name().unwrap().to_string_lossy().to_string();
|
||||
let db = dir.join(ledger_store::DB_FILE);
|
||||
let _ = std::fs::remove_file(&db);
|
||||
match ledger_store::Store::open(&dir) {
|
||||
Ok(s) => println!("OPENS {n}: verify={:?}", s.verify().map(|_| ())),
|
||||
Err(e) => println!("FAILS {n}: {e}"),
|
||||
}
|
||||
match ledger_store::Snapshot::load(&dir) { Ok(_) => println!(" viewer ok"), Err(e) => println!(" viewer FAILS: {e}") }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
//! The P0 review's thirteen books (round 3's bounds broke every one) and
|
||||
//! its control (at_limit), written through the writing version's Store
|
||||
//! API: what that version accepted is what every later version must open.
|
||||
use chrono::NaiveDate;
|
||||
use ledger_core::*;
|
||||
use ledger_store::Store;
|
||||
use rust_decimal::Decimal;
|
||||
use std::path::PathBuf;
|
||||
|
||||
fn d(y: i32, m: u32, day: u32) -> NaiveDate { NaiveDate::from_ymd_opt(y, m, day).unwrap() }
|
||||
fn dec(s: &str) -> Decimal { s.parse().unwrap() }
|
||||
fn usd(s: &str) -> Money { Money::new(dec(s), Currency::USD) }
|
||||
|
||||
struct B { s: Store, cash: AccountId, eq: AccountId, exp: AccountId }
|
||||
fn books(root: &PathBuf, name: &str) -> B {
|
||||
let dir = root.join(name);
|
||||
let _ = std::fs::remove_dir_all(&dir);
|
||||
std::fs::create_dir_all(&dir).unwrap();
|
||||
let mut s = Store::create(&dir, Currency::USD).unwrap();
|
||||
let cash = s.add_account("1000", "Cash", AccountType::Asset, None, false).unwrap();
|
||||
let eq = s.add_account("3000", "Capital", AccountType::Equity, None, false).unwrap();
|
||||
let exp = s.add_account("6000", "Rent", AccountType::Expense, None, false).unwrap();
|
||||
B { s, cash, eq, exp }
|
||||
}
|
||||
|
||||
fn report<T: std::fmt::Debug, E: std::fmt::Display>(name: &str, r: Result<T, E>) {
|
||||
match r { Ok(v) => println!("WROTE {name}: {v:?}"), Err(e) => println!("REFUSED {name}: {e}") }
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let root = PathBuf::from(std::env::args().nth(1).unwrap());
|
||||
// 1. draft line over the limit
|
||||
{ let mut b = books(&root, "draft_big_line");
|
||||
let e = b.s.create_entry(d(2026,3,1), "big draft").unwrap();
|
||||
report("draft_big_line", b.s.add_line(e, b.cash, Side::Debit, usd("2000000000000000.00"))); }
|
||||
// 2. entry in year 0
|
||||
for (name, date) in [("year0_entry", d(0,6,1)), ("year10000_entry", d(10000,1,1)), ("yearneg_entry", d(-1,1,1))] {
|
||||
let mut b = books(&root, name);
|
||||
let r = (|| -> Result<u64, ledger_store::StoreError> {
|
||||
let e = b.s.create_entry(date, "far")?;
|
||||
b.s.add_line(e, b.cash, Side::Debit, usd("10.00"))?;
|
||||
b.s.add_line(e, b.eq, Side::Credit, usd("10.00"))?;
|
||||
b.s.post_entry(e)?; Ok(e) })();
|
||||
report(name, r); }
|
||||
// 4. asset late
|
||||
for (name, date, life) in [("asset_late", d(9999,1,1), 60u32), ("asset_long_life", d(2026,1,1), 120_000u32)] {
|
||||
let mut b = books(&root, name);
|
||||
let accum = b.s.add_account("1510","Accum",AccountType::Asset,None,false).unwrap();
|
||||
let fa = b.s.add_account("1500","Equip",AccountType::Asset,None,false).unwrap();
|
||||
report(name, b.s.register_asset(NewAsset { description: "thing".into(), purchase_date: date, cost: usd("1200.00"), salvage_value: usd("0"), useful_life_months: life, cost_account: fa, accum_depr_account: accum, expense_account: b.exp })); }
|
||||
// 6. tax basis big
|
||||
{ let mut b = books(&root, "tax_basis_big");
|
||||
let accum = b.s.add_account("1510","Accum",AccountType::Asset,None,false).unwrap();
|
||||
let fa = b.s.add_account("1500","Equip",AccountType::Asset,None,false).unwrap();
|
||||
let id = b.s.register_asset(NewAsset { description: "thing".into(), purchase_date: d(2026,1,1), cost: usd("1200.00"), salvage_value: usd("0"), useful_life_months: 36, cost_account: fa, accum_depr_account: accum, expense_account: b.exp }).unwrap();
|
||||
report("tax_basis_big", b.s.set_asset_tax_basis(id, TaxBasis { rule: TaxBasisRule::Carryover, contributor_basis: Some(dec("2000000000000000.00")) })); }
|
||||
// 7. schedule late
|
||||
{ let mut b = books(&root, "schedule_late");
|
||||
let pre = b.s.add_account("1300","Prepaid",AccountType::Asset,None,false).unwrap();
|
||||
report("schedule_late", b.s.register_schedule(NewSchedule { description: "late".into(), kind: ScheduleKind::PrepaidExpense, total: usd("1200.00"), start: d(9999,6,1), months: 12, balance_account: pre, pl_account: b.exp })); }
|
||||
// 8. recurring big
|
||||
{ let mut b = books(&root, "recurring_big");
|
||||
let big = usd("2000000000000000.00");
|
||||
report("recurring_big", b.s.register_recurring(NewRecurring { description: "big".into(), lines: vec![(b.exp, Side::Debit, big), (b.cash, Side::Credit, big)], frequency: Frequency::Monthly, start: d(2026,1,1), end: None })); }
|
||||
// 9. shares big
|
||||
{ let mut b = books(&root, "shares_big");
|
||||
let p = b.s.add_party("Acme", &[Role::Member]).unwrap();
|
||||
let r = (|| -> Result<(), ledger_store::StoreError> {
|
||||
let e = b.s.create_entry(d(2026,3,1), "rent")?;
|
||||
b.s.add_line(e, b.exp, Side::Debit, usd("10.00"))?;
|
||||
b.s.add_line(e, b.cash, Side::Credit, usd("10.00"))?;
|
||||
b.s.post_entry(e)?;
|
||||
b.s.set_entry_parties(e, &[PartyShare { party: p, share: Share::Amount(dec("2000000000000000.00")) }]) })();
|
||||
report("shares_big", r); }
|
||||
// 10. payroll with sub-cent parts that cancel in the totals
|
||||
{ let mut b = books(&root, "payroll_fine");
|
||||
let line = |n: &str, fed: &str| PayrollLine { employee_name: n.into(), employee: None, gross_pay: dec("100.00"), federal_withholding: dec(fed), state_withholding: Decimal::ZERO, ss_employee: Decimal::ZERO, medicare_employee: Decimal::ZERO, ss_employer: Decimal::ZERO, medicare_employer: Decimal::ZERO, other_deductions: Decimal::ZERO };
|
||||
report("payroll_fine", b.s.run_payroll(d(2026,3,1), vec![line("A","0.000000000001"), line("B","0.009999999999")], b.cash)); }
|
||||
// 11. invoice with sub-cent lines that cancel
|
||||
{ let mut b = books(&root, "invoice_fine");
|
||||
let c = b.s.add_customer("Cust").unwrap();
|
||||
report("invoice_fine", b.s.create_invoice(c, d(2026,3,1), d(2026,3,31), vec![DocumentLine{description:"a".into(), amount: dec("0.00000000001")}, DocumentLine{description:"b".into(), amount: dec("9.99999999999")}])); }
|
||||
// 12. period year 0
|
||||
{ let mut b = books(&root, "period_year0");
|
||||
report("period_year0", b.s.create_period("y0", d(0,1,1), d(0,12,31))); }
|
||||
// 13. exactly at the limit (control: must open)
|
||||
{ let mut b = books(&root, "at_limit");
|
||||
let r = (|| -> Result<u64, ledger_store::StoreError> {
|
||||
let e = b.s.create_entry(d(9999,12,31), "max")?;
|
||||
b.s.add_line(e, b.cash, Side::Debit, usd("1000000000000000"))?;
|
||||
b.s.add_line(e, b.eq, Side::Credit, usd("1000000000000000"))?;
|
||||
b.s.post_entry(e)?; Ok(e) })();
|
||||
report("at_limit", r); }
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"assets": [
|
||||
{
|
||||
"accum_depr_account": 4,
|
||||
"acquired_by": null,
|
||||
"cost": {
|
||||
"amount": "1200.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"cost_account": 5,
|
||||
"description": "thing",
|
||||
"expense_account": 3,
|
||||
"id": 1,
|
||||
"method": "StraightLine",
|
||||
"purchase_date": "9999-01-01",
|
||||
"salvage_value": {
|
||||
"amount": "0",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"serial": null,
|
||||
"status": "Active",
|
||||
"tag": null,
|
||||
"tax": null,
|
||||
"useful_life_months": 60
|
||||
}
|
||||
],
|
||||
"bills": [],
|
||||
"entries": [],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1510","currency":"USD","id":4,"name":"Accum","parent":null,"placeholder":false},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1500","currency":"USD","id":5,"name":"Equip","parent":null,"placeholder":false},"prev":"3687208a2af32beb0dd029f0af2e0a964b3450747feae27272e1dde15d982765","seq":6,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"accum_depr_account":4,"cost":{"amount":"1200.00","currency":"USD"},"cost_account":5,"description":"thing","expense_account":3,"id":1,"method":"straight_line","purchase_date":"9999-01-01","salvage_value":{"amount":"0","currency":"USD"},"useful_life_months":60},"prev":"40550d9db5ad26a5084e1ac068d15eb40cf4ad15c8d403d00f18f720d9c1c0b6","seq":7,"ts":"2026-10-17T07:34:22Z","type":"asset.registered"}
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"assets": [
|
||||
{
|
||||
"accum_depr_account": 4,
|
||||
"acquired_by": null,
|
||||
"cost": {
|
||||
"amount": "1200.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"cost_account": 5,
|
||||
"description": "thing",
|
||||
"expense_account": 3,
|
||||
"id": 1,
|
||||
"method": "StraightLine",
|
||||
"purchase_date": "2026-01-01",
|
||||
"salvage_value": {
|
||||
"amount": "0",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"serial": null,
|
||||
"status": "Active",
|
||||
"tag": null,
|
||||
"tax": null,
|
||||
"useful_life_months": 120000
|
||||
}
|
||||
],
|
||||
"bills": [],
|
||||
"entries": [],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1510","currency":"USD","id":4,"name":"Accum","parent":null,"placeholder":false},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1500","currency":"USD","id":5,"name":"Equip","parent":null,"placeholder":false},"prev":"3687208a2af32beb0dd029f0af2e0a964b3450747feae27272e1dde15d982765","seq":6,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"accum_depr_account":4,"cost":{"amount":"1200.00","currency":"USD"},"cost_account":5,"description":"thing","expense_account":3,"id":1,"method":"straight_line","purchase_date":"2026-01-01","salvage_value":{"amount":"0","currency":"USD"},"useful_life_months":120000},"prev":"40550d9db5ad26a5084e1ac068d15eb40cf4ad15c8d403d00f18f720d9c1c0b6","seq":7,"ts":"2026-10-17T07:34:22Z","type":"asset.registered"}
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "9999-12-31",
|
||||
"description": "max",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "1000000000000000",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 2,
|
||||
"amount": {
|
||||
"amount": "1000000000000000",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "1000000000000000",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "1000000000000000",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [
|
||||
{
|
||||
"code": "1000",
|
||||
"credit": "0",
|
||||
"debit": "1000000000000000",
|
||||
"name": "Cash"
|
||||
},
|
||||
{
|
||||
"code": "3000",
|
||||
"credit": "1000000000000000",
|
||||
"debit": "0",
|
||||
"name": "Capital"
|
||||
}
|
||||
],
|
||||
"total_credits": "1000000000000000",
|
||||
"total_debits": "1000000000000000"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"date":"9999-12-31","description":"max","id":1},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"entry.created"}
|
||||
{"payload":{"account":1,"amount":"1000000000000000","currency":"USD","id":1,"side":"debit"},"prev":"421efeff9ee1a6887968d2ee8ad9fb56e484240a642798eb8a4ba8e6309982f0","seq":6,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"account":2,"amount":"1000000000000000","currency":"USD","id":1,"side":"credit"},"prev":"6bb996fa055824cfde1a2dfdce03cb789f0084f0bdc5fbd8d015a256553fd664","seq":7,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"9999-12-31","description":"max","id":1,"lines":[{"account":1,"amount":"1000000000000000","currency":"USD","side":"debit"},{"account":2,"amount":"1000000000000000","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"a17108796664be74290b9e17e489b028d5bb2830db1d5220aa72fe7a40554918","seq":8,"ts":"2026-10-17T07:34:22Z","type":"entry.posted"}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "2026-03-01",
|
||||
"description": "big draft",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "2000000000000000.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Draft"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"date":"2026-03-01","description":"big draft","id":1},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"entry.created"}
|
||||
{"payload":{"account":1,"amount":"2000000000000000.00","currency":"USD","id":1,"side":"debit"},"prev":"ca9514b53ce484fb289342f29e0ff787056f72f74c5711dee5a1733aff999c62","seq":6,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "2026-03-01",
|
||||
"description": "Invoice 1",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 4,
|
||||
"amount": {
|
||||
"amount": "10.00000000000",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 5,
|
||||
"amount": {
|
||||
"amount": "10.00000000000",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
}
|
||||
],
|
||||
"entry_parties": [
|
||||
[
|
||||
1,
|
||||
[
|
||||
{
|
||||
"party_id": 1,
|
||||
"share": "derived"
|
||||
}
|
||||
]
|
||||
]
|
||||
],
|
||||
"invoices": [
|
||||
{
|
||||
"amount_paid": "0",
|
||||
"customer_id": 1,
|
||||
"date": "2026-03-01",
|
||||
"due_date": "2026-03-31",
|
||||
"entry_id": 1,
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"amount": "0.00000000001",
|
||||
"description": "a"
|
||||
},
|
||||
{
|
||||
"amount": "9.99999999999",
|
||||
"description": "b"
|
||||
}
|
||||
],
|
||||
"status": "Open"
|
||||
}
|
||||
],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "10",
|
||||
"balanced": true,
|
||||
"current_earnings": "10",
|
||||
"equity": "10",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "10",
|
||||
"revenue": "10"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [
|
||||
{
|
||||
"code": "1200",
|
||||
"credit": "0",
|
||||
"debit": "10",
|
||||
"name": "Accounts Receivable"
|
||||
},
|
||||
{
|
||||
"code": "4000",
|
||||
"credit": "10",
|
||||
"debit": "0",
|
||||
"name": "Revenue"
|
||||
}
|
||||
],
|
||||
"total_credits": "10",
|
||||
"total_debits": "10"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"id":1,"name":"Cust"},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"customer.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1200","currency":"USD","id":4,"name":"Accounts Receivable","parent":null,"placeholder":false},"prev":"db9ff2acb11ed54dfb6145d27c02fa041066292fb2fb157029d15e74d956776a","seq":6,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Revenue","code":"4000","currency":"USD","id":5,"name":"Revenue","parent":null,"placeholder":false},"prev":"0d43d99834e6263210ae147f2bb13c5ec195254953dd0e9b0a7e1c3298c0ec01","seq":7,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"date":"2026-03-01","description":"Invoice 1","id":1},"prev":"95224988c6d4abc0b02ab196f5aa331f2bd71c9906436b8040769cb6fd515ea7","seq":8,"ts":"2026-10-17T07:34:22Z","type":"entry.created"}
|
||||
{"payload":{"account":4,"amount":"10.00000000000","currency":"USD","id":1,"side":"debit"},"prev":"314356e526e6f0cffc3587b1d50035089a1ad99f2da7fc44268874bb6112c62b","seq":9,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"account":5,"amount":"10.00000000000","currency":"USD","id":1,"side":"credit"},"prev":"d4451c24c97f0149e9db613513430d4420d6155f52218017940845a8808c91a5","seq":10,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"2026-03-01","description":"Invoice 1","id":1,"lines":[{"account":4,"amount":"10.00000000000","currency":"USD","side":"debit"},{"account":5,"amount":"10.00000000000","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"1b14e31864cd4cdbdf15926dba73a2e7700364d7a2ef8cfe3b748e5e8f28c3c3","seq":11,"ts":"2026-10-17T07:34:22Z","type":"entry.posted"}
|
||||
{"payload":{"customer_id":1,"date":"2026-03-01","due_date":"2026-03-31","entry_id":1,"id":1,"lines":[{"amount":"0.00000000001","description":"a"},{"amount":"9.99999999999","description":"b"}]},"prev":"762135319365b598ff7cdc64a276fc42c3085e862b9b4f301f54203113b4b28b","seq":12,"ts":"2026-10-17T07:34:22Z","type":"invoice.created"}
|
||||
@@ -0,0 +1,132 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "2026-03-01",
|
||||
"description": "Payroll 2026-03-01",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 4,
|
||||
"amount": {
|
||||
"amount": "200.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 6,
|
||||
"amount": {
|
||||
"amount": "0.010000000000",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
},
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "199.990000000000",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [
|
||||
{
|
||||
"date": "2026-03-01",
|
||||
"entry_id": 1,
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"employee": null,
|
||||
"employee_name": "A",
|
||||
"federal_withholding": "0.000000000001",
|
||||
"gross_pay": "100.00",
|
||||
"medicare_employee": "0",
|
||||
"medicare_employer": "0",
|
||||
"other_deductions": "0",
|
||||
"ss_employee": "0",
|
||||
"ss_employer": "0",
|
||||
"state_withholding": "0"
|
||||
},
|
||||
{
|
||||
"employee": null,
|
||||
"employee_name": "B",
|
||||
"federal_withholding": "0.009999999999",
|
||||
"gross_pay": "100.00",
|
||||
"medicare_employee": "0",
|
||||
"medicare_employer": "0",
|
||||
"other_deductions": "0",
|
||||
"ss_employee": "0",
|
||||
"ss_employer": "0",
|
||||
"state_withholding": "0"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "-199.99",
|
||||
"balanced": true,
|
||||
"current_earnings": "-200",
|
||||
"equity": "-200",
|
||||
"liabilities": "0.01"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "200",
|
||||
"net_income": "-200",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [
|
||||
{
|
||||
"code": "1000",
|
||||
"credit": "199.99",
|
||||
"debit": "0",
|
||||
"name": "Cash"
|
||||
},
|
||||
{
|
||||
"code": "2110",
|
||||
"credit": "0.01",
|
||||
"debit": "0",
|
||||
"name": "Federal Withholding Payable"
|
||||
},
|
||||
{
|
||||
"code": "6100",
|
||||
"credit": "0",
|
||||
"debit": "200",
|
||||
"name": "Salary & Wage Expense"
|
||||
}
|
||||
],
|
||||
"total_credits": "200",
|
||||
"total_debits": "200"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6100","currency":"USD","id":4,"name":"Salary & Wage Expense","parent":null,"placeholder":false},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6110","currency":"USD","id":5,"name":"Payroll Tax Expense","parent":null,"placeholder":false},"prev":"be824f89f4b6d55d081dcd502d96573653c7a7b300ffd2b5230c7947040daea3","seq":6,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Liability","code":"2110","currency":"USD","id":6,"name":"Federal Withholding Payable","parent":null,"placeholder":false},"prev":"ca72af316dc51d9baea024978c9e2b098602f06274046aca2cab1b94576ca9a5","seq":7,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Liability","code":"2120","currency":"USD","id":7,"name":"State Withholding Payable","parent":null,"placeholder":false},"prev":"56fcf8e1c64dfe73104f30ff028211da67238f86273bb11d881327608d5bbe80","seq":8,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Liability","code":"2130","currency":"USD","id":8,"name":"SS Tax Payable","parent":null,"placeholder":false},"prev":"4ec6bbe29744c1ca075f298d09b06481546e02fd786a59e45094fec95f9e3a8e","seq":9,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Liability","code":"2140","currency":"USD","id":9,"name":"Medicare Tax Payable","parent":null,"placeholder":false},"prev":"bff6e37d8dbc7e9245fdef54b4dbf1db3193f97de18509e3184c0c08a1f8aaf1","seq":10,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Liability","code":"2150","currency":"USD","id":10,"name":"Other Deductions Payable","parent":null,"placeholder":false},"prev":"b3ac6908633024c3f125aa4f4f8ed438c304a27d6f0c888834203f7e45e940e1","seq":11,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"date":"2026-03-01","description":"Payroll 2026-03-01","id":1},"prev":"a4d84baf11c5472e62c5047dde5220998b7c98db1cdfb97715a1a76c592fd9fb","seq":12,"ts":"2026-10-17T07:34:22Z","type":"entry.created"}
|
||||
{"payload":{"account":4,"amount":"200.00","currency":"USD","id":1,"side":"debit"},"prev":"7478f4fc6388206100dafeac5f13d027d35677f29790762d5863c77645ffd1f9","seq":13,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"account":6,"amount":"0.010000000000","currency":"USD","id":1,"side":"credit"},"prev":"035b10740d823287f90e5738f98d13c5013defe3dbca524373413f1508968735","seq":14,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"account":1,"amount":"199.990000000000","currency":"USD","id":1,"side":"credit"},"prev":"9234dc111fd9ed30f78df6c550d1fa8ec5b2795edfeba8963d240af5295b646d","seq":15,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"2026-03-01","description":"Payroll 2026-03-01","id":1,"lines":[{"account":4,"amount":"200.00","currency":"USD","side":"debit"},{"account":6,"amount":"0.010000000000","currency":"USD","side":"credit"},{"account":1,"amount":"199.990000000000","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"8dd0a511986b4a68e51731fee1610c4c58d8a1104f5c6bbd5da16d53ef9531d3","seq":16,"ts":"2026-10-17T07:34:22Z","type":"entry.posted"}
|
||||
{"payload":{"date":"2026-03-01","entry_id":1,"id":1,"lines":[{"employee":null,"employee_name":"A","federal_withholding":"0.000000000001","gross_pay":"100.00","medicare_employee":"0","medicare_employer":"0","other_deductions":"0","ss_employee":"0","ss_employer":"0","state_withholding":"0"},{"employee":null,"employee_name":"B","federal_withholding":"0.009999999999","gross_pay":"100.00","medicare_employee":"0","medicare_employer":"0","other_deductions":"0","ss_employee":"0","ss_employer":"0","state_withholding":"0"}]},"prev":"7c78ab8cb62447a6f89547c75bc8f11606f9813f16b6e322faf3792557bffaaa","seq":17,"ts":"2026-10-17T07:34:22Z","type":"payroll.run"}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [
|
||||
{
|
||||
"close_seq": null,
|
||||
"closing_entry": null,
|
||||
"end": "0000-12-31",
|
||||
"id": 1,
|
||||
"member_close": null,
|
||||
"name": "y0",
|
||||
"start": "0000-01-01",
|
||||
"status": "Open"
|
||||
}
|
||||
],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"end":"0000-12-31","id":1,"name":"y0","start":"0000-01-01"},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"period.created"}
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [
|
||||
{
|
||||
"description": "big",
|
||||
"end": null,
|
||||
"frequency": "monthly",
|
||||
"generated": [],
|
||||
"id": 1,
|
||||
"lines": [
|
||||
[
|
||||
3,
|
||||
"Debit",
|
||||
{
|
||||
"amount": "2000000000000000.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
1,
|
||||
"Credit",
|
||||
{
|
||||
"amount": "2000000000000000.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"start": "2026-01-01"
|
||||
}
|
||||
],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"description":"big","end":null,"frequency":"monthly","id":1,"lines":[{"account":3,"amount":"2000000000000000.00","currency":"USD","side":"debit"},{"account":1,"amount":"2000000000000000.00","currency":"USD","side":"credit"}],"start":"2026-01-01"},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"recurring.registered"}
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [
|
||||
{
|
||||
"balance_account": 4,
|
||||
"description": "late",
|
||||
"id": 1,
|
||||
"kind": "prepaid_expense",
|
||||
"months": 12,
|
||||
"pl_account": 3,
|
||||
"posted": [],
|
||||
"start": "9999-06-01",
|
||||
"total": {
|
||||
"amount": "1200.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1300","currency":"USD","id":4,"name":"Prepaid","parent":null,"placeholder":false},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"balance_account":4,"description":"late","id":1,"kind":"prepaid_expense","months":12,"pl_account":3,"start":"9999-06-01","total":{"amount":"1200.00","currency":"USD"}},"prev":"869834a3e96c2de1f9803f4f4d2100ac10407f4cfaaa1246f23f2ce206861d4b","seq":6,"ts":"2026-10-17T07:34:22Z","type":"schedule.registered"}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "2026-03-01",
|
||||
"description": "rent",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 3,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
}
|
||||
],
|
||||
"entry_parties": [
|
||||
[
|
||||
1,
|
||||
[
|
||||
{
|
||||
"party_id": 1,
|
||||
"share": {
|
||||
"amount": "2000000000000000.00"
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "-10",
|
||||
"balanced": true,
|
||||
"current_earnings": "-10",
|
||||
"equity": "-10",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "10",
|
||||
"net_income": "-10",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [
|
||||
{
|
||||
"code": "1000",
|
||||
"credit": "10",
|
||||
"debit": "0",
|
||||
"name": "Cash"
|
||||
},
|
||||
{
|
||||
"code": "6000",
|
||||
"credit": "0",
|
||||
"debit": "10",
|
||||
"name": "Rent"
|
||||
}
|
||||
],
|
||||
"total_credits": "10",
|
||||
"total_debits": "10"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"id":1,"name":"Acme","roles":["member"]},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"party.added"}
|
||||
{"payload":{"date":"2026-03-01","description":"rent","id":1},"prev":"00e486f62a6aa773ff98259e08d1fddb125d311197c464d14f5853ed2469e2d4","seq":6,"ts":"2026-10-17T07:34:22Z","type":"entry.created"}
|
||||
{"payload":{"account":3,"amount":"10.00","currency":"USD","id":1,"side":"debit"},"prev":"2036ce18dc78d804d34dee41bd8fea27029f9c703a263578c4ae60524d3eeb68","seq":7,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"account":1,"amount":"10.00","currency":"USD","id":1,"side":"credit"},"prev":"7138205a32600e928483811a37793c721d3cece684722c238244ad2b47433aac","seq":8,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"2026-03-01","description":"rent","id":1,"lines":[{"account":3,"amount":"10.00","currency":"USD","side":"debit"},{"account":1,"amount":"10.00","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"204d141f4f2352bf67682b3b833953821562008c784715254edad1ac11e97da3","seq":9,"ts":"2026-10-17T07:34:22Z","type":"entry.posted"}
|
||||
{"payload":{"entry_id":1,"parties":[{"party_id":1,"share":{"amount":"2000000000000000.00"}}]},"prev":"bbae936caf0b40b802bbfef2a1fcb01c927586e01f29117d75843898cda1b94d","seq":10,"ts":"2026-10-17T07:34:22Z","type":"entry.parties_set"}
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"assets": [
|
||||
{
|
||||
"accum_depr_account": 4,
|
||||
"acquired_by": null,
|
||||
"cost": {
|
||||
"amount": "1200.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"cost_account": 5,
|
||||
"description": "thing",
|
||||
"expense_account": 3,
|
||||
"id": 1,
|
||||
"method": "StraightLine",
|
||||
"purchase_date": "2026-01-01",
|
||||
"salvage_value": {
|
||||
"amount": "0",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"serial": null,
|
||||
"status": "Active",
|
||||
"tag": null,
|
||||
"tax": {
|
||||
"contributor_basis": "2000000000000000.00",
|
||||
"rule": "carryover"
|
||||
},
|
||||
"useful_life_months": 36
|
||||
}
|
||||
],
|
||||
"bills": [],
|
||||
"entries": [],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1510","currency":"USD","id":4,"name":"Accum","parent":null,"placeholder":false},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1500","currency":"USD","id":5,"name":"Equip","parent":null,"placeholder":false},"prev":"3687208a2af32beb0dd029f0af2e0a964b3450747feae27272e1dde15d982765","seq":6,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"accum_depr_account":4,"cost":{"amount":"1200.00","currency":"USD"},"cost_account":5,"description":"thing","expense_account":3,"id":1,"method":"straight_line","purchase_date":"2026-01-01","salvage_value":{"amount":"0","currency":"USD"},"useful_life_months":36},"prev":"40550d9db5ad26a5084e1ac068d15eb40cf4ad15c8d403d00f18f720d9c1c0b6","seq":7,"ts":"2026-10-17T07:34:22Z","type":"asset.registered"}
|
||||
{"payload":{"asset_id":1,"contributor_basis":"2000000000000000.00","rule":"carryover"},"prev":"bdfa6c877cde9852ee8441bf2107b66fad8ef50ad1b4b5e11d0f4e0a544e1c19","seq":8,"ts":"2026-10-17T07:34:22Z","type":"asset.tax_basis_set"}
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"assets": [
|
||||
{
|
||||
"accum_depr_account": 4,
|
||||
"acquired_by": null,
|
||||
"cost": {
|
||||
"amount": "1200.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"cost_account": 5,
|
||||
"description": "edge",
|
||||
"expense_account": 3,
|
||||
"id": 1,
|
||||
"method": "StraightLine",
|
||||
"purchase_date": "+262142-01-15",
|
||||
"salvage_value": {
|
||||
"amount": "0",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"serial": null,
|
||||
"status": "Active",
|
||||
"tag": null,
|
||||
"tax": null,
|
||||
"useful_life_months": 11
|
||||
}
|
||||
],
|
||||
"bills": [],
|
||||
"entries": [],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:55:28Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"6b73bafa144d8ac8cd57745e8d7d4a35bc8cae9125a576162d7f7e133fbdb0ff","seq":2,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"d6be9a4a8147780c397a14d3ccb362d8a62ead0f5e92b450c17e1d3029ae9bf4","seq":3,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"8747c865cddfe1a1bc2c3d0834e8a46b9876516c5aab2698653f2ea34a9a4314","seq":4,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1510","currency":"USD","id":4,"name":"Accum","parent":null,"placeholder":false},"prev":"9d1ecb55415c9c44b237754aa52191ef10f8288b11a2fcf81ca0c8d1b48db030","seq":5,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1500","currency":"USD","id":5,"name":"Equip","parent":null,"placeholder":false},"prev":"be9592327f2bd0d57060bfeba77b521a80ff5e97bf188dcbb6d2985b85b0ce27","seq":6,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"accum_depr_account":4,"cost":{"amount":"1200.00","currency":"USD"},"cost_account":5,"description":"edge","expense_account":3,"id":1,"method":"straight_line","purchase_date":"+262142-01-15","salvage_value":{"amount":"0","currency":"USD"},"useful_life_months":11},"prev":"9e536908505c89c78fb9d372223a17340c455b9ce239ebdf8f2626bbeb97deb8","seq":7,"ts":"2026-10-17T07:55:28Z","type":"asset.registered"}
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "+262142-12-31",
|
||||
"description": "edge",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 2,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
},
|
||||
{
|
||||
"date": "+262142-12-31",
|
||||
"description": "draft at the edge",
|
||||
"id": 2,
|
||||
"lines": [],
|
||||
"reversal_of": null,
|
||||
"status": "Draft"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "10",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "10",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [
|
||||
{
|
||||
"code": "1000",
|
||||
"credit": "0",
|
||||
"debit": "10",
|
||||
"name": "Cash"
|
||||
},
|
||||
{
|
||||
"code": "3000",
|
||||
"credit": "10",
|
||||
"debit": "0",
|
||||
"name": "Capital"
|
||||
}
|
||||
],
|
||||
"total_credits": "10",
|
||||
"total_debits": "10"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:55:28Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"6b73bafa144d8ac8cd57745e8d7d4a35bc8cae9125a576162d7f7e133fbdb0ff","seq":2,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"d6be9a4a8147780c397a14d3ccb362d8a62ead0f5e92b450c17e1d3029ae9bf4","seq":3,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"8747c865cddfe1a1bc2c3d0834e8a46b9876516c5aab2698653f2ea34a9a4314","seq":4,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"date":"+262142-12-31","description":"edge","id":1},"prev":"9d1ecb55415c9c44b237754aa52191ef10f8288b11a2fcf81ca0c8d1b48db030","seq":5,"ts":"2026-10-17T07:55:28Z","type":"entry.created"}
|
||||
{"payload":{"account":1,"amount":"10.00","currency":"USD","id":1,"side":"debit"},"prev":"4817dd660c509af33a8aa0c67e1cfe2705e991748d565ba085fa61e19deac738","seq":6,"ts":"2026-10-17T07:55:28Z","type":"entry.line_added"}
|
||||
{"payload":{"account":2,"amount":"10.00","currency":"USD","id":1,"side":"credit"},"prev":"02a9a7e5d4589bb852beed7572fdcd61076fd80f4765b4b105c9c591dee08ae5","seq":7,"ts":"2026-10-17T07:55:28Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"+262142-12-31","description":"edge","id":1,"lines":[{"account":1,"amount":"10.00","currency":"USD","side":"debit"},{"account":2,"amount":"10.00","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"d502026ca7c0c3ad258d4980978390328d1b0b8a8c250a8ddd8b5b44ab7db5cd","seq":8,"ts":"2026-10-17T07:55:28Z","type":"entry.posted"}
|
||||
{"payload":{"date":"+262142-12-31","description":"draft at the edge","id":2},"prev":"3221377411be720779441b0f59d675e58b7ab228fae1158fc846e163e0b1dedb","seq":9,"ts":"2026-10-17T07:55:28Z","type":"entry.created"}
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "-262143-01-01",
|
||||
"description": "edge",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 2,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
},
|
||||
{
|
||||
"date": "-262143-01-01",
|
||||
"description": "draft at the edge",
|
||||
"id": 2,
|
||||
"lines": [],
|
||||
"reversal_of": null,
|
||||
"status": "Draft"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "10",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "10",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [
|
||||
{
|
||||
"code": "1000",
|
||||
"credit": "0",
|
||||
"debit": "10",
|
||||
"name": "Cash"
|
||||
},
|
||||
{
|
||||
"code": "3000",
|
||||
"credit": "10",
|
||||
"debit": "0",
|
||||
"name": "Capital"
|
||||
}
|
||||
],
|
||||
"total_credits": "10",
|
||||
"total_debits": "10"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:55:28Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"6b73bafa144d8ac8cd57745e8d7d4a35bc8cae9125a576162d7f7e133fbdb0ff","seq":2,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"d6be9a4a8147780c397a14d3ccb362d8a62ead0f5e92b450c17e1d3029ae9bf4","seq":3,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"8747c865cddfe1a1bc2c3d0834e8a46b9876516c5aab2698653f2ea34a9a4314","seq":4,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"date":"-262143-01-01","description":"edge","id":1},"prev":"9d1ecb55415c9c44b237754aa52191ef10f8288b11a2fcf81ca0c8d1b48db030","seq":5,"ts":"2026-10-17T07:55:28Z","type":"entry.created"}
|
||||
{"payload":{"account":1,"amount":"10.00","currency":"USD","id":1,"side":"debit"},"prev":"052bc5ec2b7b0c2e1e28eca5f4fe277a632362b62e8c7c0f97577fd3a07728df","seq":6,"ts":"2026-10-17T07:55:28Z","type":"entry.line_added"}
|
||||
{"payload":{"account":2,"amount":"10.00","currency":"USD","id":1,"side":"credit"},"prev":"03d773f6ae99ed66042866765652f2cb36194c0d61537a229909e6e8731a22e9","seq":7,"ts":"2026-10-17T07:55:28Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"-262143-01-01","description":"edge","id":1,"lines":[{"account":1,"amount":"10.00","currency":"USD","side":"debit"},{"account":2,"amount":"10.00","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"92b850ef51a04966d1aecd71bd676cef12ce41d6d09d7f8387fff841891ee762","seq":8,"ts":"2026-10-17T07:55:28Z","type":"entry.posted"}
|
||||
{"payload":{"date":"-262143-01-01","description":"draft at the edge","id":2},"prev":"3da53eeacc92151dba84749f1c7aa96130a0db976d38b187ed5f304a8ac8af75","seq":9,"ts":"2026-10-17T07:55:28Z","type":"entry.created"}
|
||||
+147
@@ -0,0 +1,147 @@
|
||||
{
|
||||
"assets": [
|
||||
{
|
||||
"accum_depr_account": 4,
|
||||
"acquired_by": null,
|
||||
"cost": {
|
||||
"amount": "1200.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"cost_account": 5,
|
||||
"description": "late",
|
||||
"expense_account": 3,
|
||||
"id": 1,
|
||||
"method": "StraightLine",
|
||||
"purchase_date": "9999-01-01",
|
||||
"salvage_value": {
|
||||
"amount": "0",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"serial": null,
|
||||
"status": "Active",
|
||||
"tag": null,
|
||||
"tax": null,
|
||||
"useful_life_months": 60
|
||||
}
|
||||
],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "9999-12-31",
|
||||
"description": "Depreciation — late — 9999-12",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 3,
|
||||
"amount": {
|
||||
"amount": "20.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 4,
|
||||
"amount": {
|
||||
"amount": "20.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
},
|
||||
{
|
||||
"date": "+10000-01-31",
|
||||
"description": "Depreciation — late — 10000-01",
|
||||
"id": 2,
|
||||
"lines": [
|
||||
{
|
||||
"account": 3,
|
||||
"amount": {
|
||||
"amount": "20.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 4,
|
||||
"amount": {
|
||||
"amount": "20.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "-40",
|
||||
"balanced": true,
|
||||
"current_earnings": "-40",
|
||||
"equity": "-40",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "40",
|
||||
"net_income": "-40",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [
|
||||
{
|
||||
"code": "1510",
|
||||
"credit": "40",
|
||||
"debit": "0",
|
||||
"name": "Accum"
|
||||
},
|
||||
{
|
||||
"code": "6000",
|
||||
"credit": "0",
|
||||
"debit": "40",
|
||||
"name": "Rent"
|
||||
}
|
||||
],
|
||||
"total_credits": "40",
|
||||
"total_debits": "40"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T08:16:53Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"4aedd589e6e19ed3ca54292afed6d8f6cd25f58b2dfe1c8e198d05642a098ffb","seq":2,"ts":"2026-10-17T08:16:53Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"3535b60ba3e261d3293852a52a39d5bcbbd6dcf743d3b74306875e78cd97a638","seq":3,"ts":"2026-10-17T08:16:53Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ea48c36b35031aa802ca26c14f4a172ab29258540aca87bd539923a435a56501","seq":4,"ts":"2026-10-17T08:16:53Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1510","currency":"USD","id":4,"name":"Accum","parent":null,"placeholder":false},"prev":"53bd7f15fd9a65f750a437948f1eea9e422b06e9fd4744cd35d53f1d6cae1998","seq":5,"ts":"2026-10-17T08:16:53Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1500","currency":"USD","id":5,"name":"Equip","parent":null,"placeholder":false},"prev":"ed7db386573f881104a868e9da19abbd2a1accae22f70a9e7b0400b134620fb0","seq":6,"ts":"2026-10-17T08:16:53Z","type":"account.added"}
|
||||
{"payload":{"accum_depr_account":4,"cost":{"amount":"1200.00","currency":"USD"},"cost_account":5,"description":"late","expense_account":3,"id":1,"method":"straight_line","purchase_date":"9999-01-01","salvage_value":{"amount":"0","currency":"USD"},"useful_life_months":60},"prev":"8995872f88c1a5fc27a6cd8fcac1aa85c51206996e5e879323cb6d200a9ca228","seq":7,"ts":"2026-10-17T08:16:53Z","type":"asset.registered"}
|
||||
{"payload":{"date":"9999-12-31","description":"Depreciation — late — 9999-12","id":1},"prev":"779c649f9ce0ac4cad8fb2c1ab7275aa9171b93e239216c1cc66f817794a2996","seq":8,"ts":"2026-10-17T08:16:53Z","type":"entry.created"}
|
||||
{"payload":{"account":3,"amount":"20.00","currency":"USD","id":1,"side":"debit"},"prev":"7085685dbbae5625c9e2343d65bb43ca26165713b4f610d6e5ecdc7c4957dcdb","seq":9,"ts":"2026-10-17T08:16:53Z","type":"entry.line_added"}
|
||||
{"payload":{"account":4,"amount":"20.00","currency":"USD","id":1,"side":"credit"},"prev":"3d05f1ad3354615d0331bf44af22aaa5d65c8ffd4a7311d5ae4901189500cb57","seq":10,"ts":"2026-10-17T08:16:53Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"9999-12-31","description":"Depreciation — late — 9999-12","id":1,"lines":[{"account":3,"amount":"20.00","currency":"USD","side":"debit"},{"account":4,"amount":"20.00","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"45aaf87f5874d30c7ad337d32f8af8a6d9be2adf3fc8e4033721e990a3982900","seq":11,"ts":"2026-10-17T08:16:53Z","type":"entry.posted"}
|
||||
{"payload":{"amount":"20.00","asset_id":1,"entry_id":1,"period":"9999-12"},"prev":"c8c7eb2791872dbb2bb11e8861c45dea799da07a3f2cf57658103f3853af3277","seq":12,"ts":"2026-10-17T08:16:53Z","type":"asset.depreciation_posted"}
|
||||
{"payload":{"date":"+10000-01-31","description":"Depreciation — late — 10000-01","id":2},"prev":"d1e29c1bb26a8db706ccfbf7bc86de0bf68878d0f8d37f92db41048300849406","seq":13,"ts":"2026-10-17T08:16:53Z","type":"entry.created"}
|
||||
{"payload":{"account":3,"amount":"20.00","currency":"USD","id":2,"side":"debit"},"prev":"2db749d4567e4ad91d24844c19e5b3dcfdf2fc8fc91352d5ba738dcfd9e0262c","seq":14,"ts":"2026-10-17T08:16:53Z","type":"entry.line_added"}
|
||||
{"payload":{"account":4,"amount":"20.00","currency":"USD","id":2,"side":"credit"},"prev":"84a34e9cfa4b9ec8962391538c7efb6d12c48061029b1452141652a1ea559b19","seq":15,"ts":"2026-10-17T08:16:53Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"+10000-01-31","description":"Depreciation — late — 10000-01","id":2,"lines":[{"account":3,"amount":"20.00","currency":"USD","side":"debit"},{"account":4,"amount":"20.00","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"9e81b77169c1a6db9abb640bab828d672e2858ebbcf583e09b86cde03862d010","seq":16,"ts":"2026-10-17T08:16:53Z","type":"entry.posted"}
|
||||
{"payload":{"amount":"20.00","asset_id":1,"entry_id":2,"period":"10000-01"},"prev":"0677bbb75fccf01a0a1c1aa9ccf10144f31d954c936b25a429d3eee5ddd3c712","seq":17,"ts":"2026-10-17T08:16:53Z","type":"asset.depreciation_posted"}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "2026-03-01",
|
||||
"description": "huge draft",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "79228162514264337593543950335",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 3,
|
||||
"amount": {
|
||||
"amount": "79228162514264337593543950335",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 2,
|
||||
"amount": {
|
||||
"amount": "1.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Draft"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:55:28Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"6b73bafa144d8ac8cd57745e8d7d4a35bc8cae9125a576162d7f7e133fbdb0ff","seq":2,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"d6be9a4a8147780c397a14d3ccb362d8a62ead0f5e92b450c17e1d3029ae9bf4","seq":3,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"8747c865cddfe1a1bc2c3d0834e8a46b9876516c5aab2698653f2ea34a9a4314","seq":4,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"date":"2026-03-01","description":"huge draft","id":1},"prev":"9d1ecb55415c9c44b237754aa52191ef10f8288b11a2fcf81ca0c8d1b48db030","seq":5,"ts":"2026-10-17T07:55:28Z","type":"entry.created"}
|
||||
{"payload":{"account":1,"amount":"79228162514264337593543950335","currency":"USD","id":1,"side":"debit"},"prev":"6e4b994a89e578ddd43eff196c9aa10073050e28791cd9a76c5ef2ad00c38a6a","seq":6,"ts":"2026-10-17T07:55:28Z","type":"entry.line_added"}
|
||||
{"payload":{"account":3,"amount":"79228162514264337593543950335","currency":"USD","id":1,"side":"debit"},"prev":"fffb17a5759adfdaf011960e9b5491cfa34464c32882290077e1afa0ecf6c888","seq":7,"ts":"2026-10-17T07:55:28Z","type":"entry.line_added"}
|
||||
{"payload":{"account":2,"amount":"1.00","currency":"USD","id":1,"side":"credit"},"prev":"9668ea822791feadc5c41e03de09156179457801ea24d663a0cb35d9714fff44","seq":8,"ts":"2026-10-17T07:55:28Z","type":"entry.line_added"}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:55:28Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"6b73bafa144d8ac8cd57745e8d7d4a35bc8cae9125a576162d7f7e133fbdb0ff","seq":2,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"d6be9a4a8147780c397a14d3ccb362d8a62ead0f5e92b450c17e1d3029ae9bf4","seq":3,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"8747c865cddfe1a1bc2c3d0834e8a46b9876516c5aab2698653f2ea34a9a4314","seq":4,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"currency":"EUR","date":"2026-01-01","rate":"79228162514264337593543950335"},"prev":"9d1ecb55415c9c44b237754aa52191ef10f8288b11a2fcf81ca0c8d1b48db030","seq":5,"ts":"2026-10-17T07:55:28Z","type":"fx.rate_set"}
|
||||
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "2026-03-01",
|
||||
"description": "draft",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 999,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "108.34567",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"foreign_amount": "100.00",
|
||||
"foreign_currency": [
|
||||
69,
|
||||
85,
|
||||
82
|
||||
],
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Draft"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [
|
||||
{
|
||||
"close_seq": null,
|
||||
"closing_entry": null,
|
||||
"end": "2026-01-31",
|
||||
"id": 1,
|
||||
"member_close": null,
|
||||
"name": "2026-01",
|
||||
"start": "2026-01-01",
|
||||
"status": "Open"
|
||||
},
|
||||
{
|
||||
"close_seq": null,
|
||||
"closing_entry": null,
|
||||
"end": "2026-02-15",
|
||||
"id": 2,
|
||||
"member_close": null,
|
||||
"name": "straddle",
|
||||
"start": "2026-01-15",
|
||||
"status": "Open"
|
||||
}
|
||||
],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T08:13:34Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":true},"prev":"6b42ff2c981429cc709d95ba6c4141177c129eb50827967ccff7ea962db0addb","seq":2,"ts":"2026-10-17T08:13:34Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"1010","currency":"USD","id":2,"name":"Rent","parent":1,"placeholder":false},"prev":"9447ea693fed175549f51db81682c9f26b0ce64a01da7348a02e555f51f237df","seq":3,"ts":"2026-10-17T08:13:34Z","type":"account.added"}
|
||||
{"payload":{"end":"2026-01-31","id":1,"name":"2026-01","start":"2026-01-01"},"prev":"b506fe57c57b2d06a85514808fce4e2c133ade113de8ce81725d55f9daee2105","seq":4,"ts":"2026-10-17T08:13:34Z","type":"period.created"}
|
||||
{"payload":{"end":"2026-02-15","id":2,"name":"straddle","start":"2026-01-15"},"prev":"e483870846f252845b17aaff434e5d73cbc8084299de5ce57c681763912bec6a","seq":5,"ts":"2026-10-17T08:13:34Z","type":"period.created"}
|
||||
{"payload":{"date":"2026-03-01","description":"draft","id":1},"prev":"788557fb85ef80c45d5a728730af89ece4ad8f39c59605eb7dd4fa4f569f524a","seq":6,"ts":"2026-10-17T08:13:34Z","type":"entry.created"}
|
||||
{"payload":{"account":999,"amount":"10.00","currency":"USD","id":1,"side":"debit"},"prev":"c2c8f5de353c8cae01f57b735779c8e90ff1ac8941f14515f12acb3b8a85f8dc","seq":7,"ts":"2026-10-17T08:13:34Z","type":"entry.line_added"}
|
||||
{"payload":{"account":1,"amount":"108.34567","currency":"USD","foreign_amount":"100.00","foreign_currency":"EUR","fx_rate":"1.0834567","id":1,"side":"credit"},"prev":"88c7c49b2b2c912ced50e1d3cf0e339eb8a4363eea020322982356031ba41607","seq":8,"ts":"2026-10-17T08:13:34Z","type":"entry.line_added"}
|
||||
+175
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "+262142-06-01",
|
||||
"description": "edge",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "100.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 2,
|
||||
"amount": {
|
||||
"amount": "100.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
},
|
||||
{
|
||||
"date": "+262142-07-01",
|
||||
"description": "edge",
|
||||
"id": 2,
|
||||
"lines": [
|
||||
{
|
||||
"account": 3,
|
||||
"amount": {
|
||||
"amount": "40.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "40.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
},
|
||||
{
|
||||
"date": "+262142-12-31",
|
||||
"description": "Close period last",
|
||||
"id": 3,
|
||||
"lines": [
|
||||
{
|
||||
"account": 3,
|
||||
"amount": {
|
||||
"amount": "40.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
},
|
||||
{
|
||||
"account": 4,
|
||||
"amount": {
|
||||
"amount": "40.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [
|
||||
{
|
||||
"close_seq": null,
|
||||
"closing_entry": null,
|
||||
"end": "-262143-12-31",
|
||||
"id": 1,
|
||||
"member_close": null,
|
||||
"name": "first",
|
||||
"start": "-262143-01-01",
|
||||
"status": "Open"
|
||||
},
|
||||
{
|
||||
"close_seq": 1,
|
||||
"closing_entry": 3,
|
||||
"end": "+262142-12-31",
|
||||
"id": 2,
|
||||
"member_close": null,
|
||||
"name": "last",
|
||||
"start": "+262142-01-01",
|
||||
"status": "Closed"
|
||||
}
|
||||
],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "60",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "60",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [
|
||||
{
|
||||
"code": "1000",
|
||||
"credit": "0",
|
||||
"debit": "60",
|
||||
"name": "Cash"
|
||||
},
|
||||
{
|
||||
"code": "3000",
|
||||
"credit": "100",
|
||||
"debit": "0",
|
||||
"name": "Capital"
|
||||
},
|
||||
{
|
||||
"code": "3999",
|
||||
"credit": "0",
|
||||
"debit": "40",
|
||||
"name": "Retained Earnings"
|
||||
}
|
||||
],
|
||||
"total_credits": "100",
|
||||
"total_debits": "100"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:55:28Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"6b73bafa144d8ac8cd57745e8d7d4a35bc8cae9125a576162d7f7e133fbdb0ff","seq":2,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"d6be9a4a8147780c397a14d3ccb362d8a62ead0f5e92b450c17e1d3029ae9bf4","seq":3,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"8747c865cddfe1a1bc2c3d0834e8a46b9876516c5aab2698653f2ea34a9a4314","seq":4,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"end":"-262143-12-31","id":1,"name":"first","start":"-262143-01-01"},"prev":"9d1ecb55415c9c44b237754aa52191ef10f8288b11a2fcf81ca0c8d1b48db030","seq":5,"ts":"2026-10-17T07:55:28Z","type":"period.created"}
|
||||
{"payload":{"end":"+262142-12-31","id":2,"name":"last","start":"+262142-01-01"},"prev":"e53bb3cb9818500283966ad8666b6a5c0776ad16b2f89171d5fb33b54e419b97","seq":6,"ts":"2026-10-17T07:55:28Z","type":"period.created"}
|
||||
{"payload":{"date":"+262142-06-01","description":"edge","id":1},"prev":"5258aeeaf59298fc4a648b135f2fb33e1599f367310e320be8fdded49f718f6e","seq":7,"ts":"2026-10-17T07:55:28Z","type":"entry.created"}
|
||||
{"payload":{"account":1,"amount":"100.00","currency":"USD","id":1,"side":"debit"},"prev":"e0513135408d5974af2732a9d102a8c85fe9c3cd4eca8b7119d40f9baacd74c2","seq":8,"ts":"2026-10-17T07:55:28Z","type":"entry.line_added"}
|
||||
{"payload":{"account":2,"amount":"100.00","currency":"USD","id":1,"side":"credit"},"prev":"9bf90d72fea98f7233090c70a53061b15ce42f963cb675464cb82acb94c3e779","seq":9,"ts":"2026-10-17T07:55:28Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"+262142-06-01","description":"edge","id":1,"lines":[{"account":1,"amount":"100.00","currency":"USD","side":"debit"},{"account":2,"amount":"100.00","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"0f0e8cb4ebccae8ab53b6a351f599e1868fb54f20f1d196829b4ae14bfce0ebd","seq":10,"ts":"2026-10-17T07:55:28Z","type":"entry.posted"}
|
||||
{"payload":{"date":"+262142-07-01","description":"edge","id":2},"prev":"b6f20d183855f9df83459767ecbe72b1e4f1181c8c5aa00c2f3b3423c2a5daa7","seq":11,"ts":"2026-10-17T07:55:28Z","type":"entry.created"}
|
||||
{"payload":{"account":3,"amount":"40.00","currency":"USD","id":2,"side":"debit"},"prev":"d1e6102a66acb925b3b080f9db6ab896292b152c6008478e92a95ae2a9955997","seq":12,"ts":"2026-10-17T07:55:28Z","type":"entry.line_added"}
|
||||
{"payload":{"account":1,"amount":"40.00","currency":"USD","id":2,"side":"credit"},"prev":"cd4a3bc3db7183fa75acc756f0dca3b8d3dc91ff3f1bf92b214448486aa45a1c","seq":13,"ts":"2026-10-17T07:55:28Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"+262142-07-01","description":"edge","id":2,"lines":[{"account":3,"amount":"40.00","currency":"USD","side":"debit"},{"account":1,"amount":"40.00","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"b4133cdd376bff5cea41ee1de8b8fdf003756ef8818bca7257bfa279c5cba429","seq":14,"ts":"2026-10-17T07:55:28Z","type":"entry.posted"}
|
||||
{"payload":{"account_type":"Equity","code":"3999","currency":"USD","id":4,"name":"Retained Earnings","parent":null,"placeholder":false},"prev":"26091e252b61951fac39930390baa98c187cc5e7173bbb8a2499374a1caff1e9","seq":15,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"close_to":"retained_earnings","closing_entry":3,"entry":{"date":"+262142-12-31","description":"Close period last","id":3,"lines":[{"account":3,"amount":"40.00","currency":"USD","side":"credit"},{"account":4,"amount":"40.00","currency":"USD","side":"debit"}]},"id":2},"prev":"2f1ea3b5fbd96506d45658fa39b243cdcbd698b2c8b14a3099a61f4d59e12c13","seq":16,"ts":"2026-10-17T07:55:28Z","type":"period.closed"}
|
||||
+174
@@ -0,0 +1,174 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "2026-01-01",
|
||||
"description": "huge",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 3,
|
||||
"amount": {
|
||||
"amount": "39614081257132168796771975167",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "39614081257132168796771975167",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Draft"
|
||||
},
|
||||
{
|
||||
"date": "2026-02-01",
|
||||
"description": "huge",
|
||||
"id": 2,
|
||||
"lines": [
|
||||
{
|
||||
"account": 3,
|
||||
"amount": {
|
||||
"amount": "39614081257132168796771975167",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "39614081257132168796771975167",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Draft"
|
||||
},
|
||||
{
|
||||
"date": "2026-03-01",
|
||||
"description": "huge",
|
||||
"id": 3,
|
||||
"lines": [
|
||||
{
|
||||
"account": 3,
|
||||
"amount": {
|
||||
"amount": "39614081257132168796771975167",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "39614081257132168796771975167",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Draft"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [
|
||||
{
|
||||
"description": "huge",
|
||||
"end": "2026-03-31",
|
||||
"frequency": "monthly",
|
||||
"generated": [
|
||||
"2026-01-01",
|
||||
"2026-02-01",
|
||||
"2026-03-01"
|
||||
],
|
||||
"id": 1,
|
||||
"lines": [
|
||||
[
|
||||
3,
|
||||
"Debit",
|
||||
{
|
||||
"amount": "39614081257132168796771975167",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
1,
|
||||
"Credit",
|
||||
{
|
||||
"amount": "39614081257132168796771975167",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"start": "2026-01-01"
|
||||
}
|
||||
],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:55:28Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"6b73bafa144d8ac8cd57745e8d7d4a35bc8cae9125a576162d7f7e133fbdb0ff","seq":2,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"d6be9a4a8147780c397a14d3ccb362d8a62ead0f5e92b450c17e1d3029ae9bf4","seq":3,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"8747c865cddfe1a1bc2c3d0834e8a46b9876516c5aab2698653f2ea34a9a4314","seq":4,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"description":"huge","end":"2026-03-31","frequency":"monthly","id":1,"lines":[{"account":3,"amount":"39614081257132168796771975167","currency":"USD","side":"debit"},{"account":1,"amount":"39614081257132168796771975167","currency":"USD","side":"credit"}],"start":"2026-01-01"},"prev":"9d1ecb55415c9c44b237754aa52191ef10f8288b11a2fcf81ca0c8d1b48db030","seq":5,"ts":"2026-10-17T07:55:28Z","type":"recurring.registered"}
|
||||
{"payload":{"date":"2026-01-01","entry_id":1,"recurring_id":1},"prev":"6515c4f32e5f80c07f9add898fe915379d4c0cf7af6b378625c550eb42d751f5","seq":6,"ts":"2026-10-17T07:55:28Z","type":"recurring.generated"}
|
||||
{"payload":{"date":"2026-02-01","entry_id":2,"recurring_id":1},"prev":"49a369b61df50ca7c5b73ef660ec03953048b4ba1748f49cacc1d488742a991b","seq":7,"ts":"2026-10-17T07:55:28Z","type":"recurring.generated"}
|
||||
{"payload":{"date":"2026-03-01","entry_id":3,"recurring_id":1},"prev":"7b1a54b1f9689c55d9ef308a230e97d63a507969344ee0996fb51606154b12c6","seq":8,"ts":"2026-10-17T07:55:28Z","type":"recurring.generated"}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"assets":[],"bills":[],"entries":[{"date":"2026-01-01","description":"weekly","id":1,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-01-08","description":"weekly","id":2,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-01-15","description":"weekly","id":3,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-01-22","description":"weekly","id":4,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-01-29","description":"weekly","id":5,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-02-05","description":"weekly","id":6,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-02-12","description":"weekly","id":7,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-02-19","description":"weekly","id":8,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-02-26","description":"weekly","id":9,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-03-05","description":"weekly","id":10,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-03-12","description":"weekly","id":11,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-03-19","description":"weekly","id":12,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-03-26","description":"weekly","id":13,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-04-02","description":"weekly","id":14,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-04-09","description":"weekly","id":15,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-04-16","description":"weekly","id":16,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-04-23","description":"weekly","id":17,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-04-30","description":"weekly","id":18,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-05-07","description":"weekly","id":19,"lines":[{"account":3,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Debit"},{"account":1,"amount":{"amount":"5.00","currency":[85,83,68]},"side":"Credit"}],"reversal_of":null,"status":"Draft"},{"date":"2026-05-14","description":"weekly","id":20,"lines":[{"account":3,"amount":{"amount":"5.00","currencyLine truncated
|
||||
+1049
File diff suppressed because it is too large.
Load diff
+70
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [
|
||||
{
|
||||
"description": "weekly",
|
||||
"end": null,
|
||||
"frequency": "weekly",
|
||||
"generated": [],
|
||||
"id": 1,
|
||||
"lines": [
|
||||
[
|
||||
3,
|
||||
"Debit",
|
||||
{
|
||||
"amount": "5.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
1,
|
||||
"Credit",
|
||||
{
|
||||
"amount": "5.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"start": "0001-01-01"
|
||||
}
|
||||
],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:55:28Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"6b73bafa144d8ac8cd57745e8d7d4a35bc8cae9125a576162d7f7e133fbdb0ff","seq":2,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"d6be9a4a8147780c397a14d3ccb362d8a62ead0f5e92b450c17e1d3029ae9bf4","seq":3,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"8747c865cddfe1a1bc2c3d0834e8a46b9876516c5aab2698653f2ea34a9a4314","seq":4,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"description":"weekly","end":null,"frequency":"weekly","id":1,"lines":[{"account":3,"amount":"5.00","currency":"USD","side":"debit"},{"account":1,"amount":"5.00","currency":"USD","side":"credit"}],"start":"0001-01-01"},"prev":"9d1ecb55415c9c44b237754aa52191ef10f8288b11a2fcf81ca0c8d1b48db030","seq":5,"ts":"2026-10-17T07:55:28Z","type":"recurring.registered"}
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [
|
||||
{
|
||||
"balance_account": 4,
|
||||
"description": "edge",
|
||||
"id": 1,
|
||||
"kind": "prepaid_expense",
|
||||
"months": 12,
|
||||
"pl_account": 3,
|
||||
"posted": [],
|
||||
"start": "+262142-06-01",
|
||||
"total": {
|
||||
"amount": "1200.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:55:28Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"6b73bafa144d8ac8cd57745e8d7d4a35bc8cae9125a576162d7f7e133fbdb0ff","seq":2,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"d6be9a4a8147780c397a14d3ccb362d8a62ead0f5e92b450c17e1d3029ae9bf4","seq":3,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"8747c865cddfe1a1bc2c3d0834e8a46b9876516c5aab2698653f2ea34a9a4314","seq":4,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1300","currency":"USD","id":4,"name":"Prepaid","parent":null,"placeholder":false},"prev":"9d1ecb55415c9c44b237754aa52191ef10f8288b11a2fcf81ca0c8d1b48db030","seq":5,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"balance_account":4,"description":"edge","id":1,"kind":"prepaid_expense","months":12,"pl_account":3,"start":"+262142-06-01","total":{"amount":"1200.00","currency":"USD"}},"prev":"78ffe6a8936c74e0e945a0e9778777b9baf2c28aac7dae65cddfea511397ada1","seq":6,"ts":"2026-10-17T07:55:28Z","type":"schedule.registered"}
|
||||
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "2026-03-01",
|
||||
"description": "edge",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 3,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
}
|
||||
],
|
||||
"entry_parties": [
|
||||
[
|
||||
1,
|
||||
[
|
||||
{
|
||||
"party_id": 1,
|
||||
"share": {
|
||||
"amount": "79228162514264337593543950335"
|
||||
}
|
||||
},
|
||||
{
|
||||
"party_id": 2,
|
||||
"share": {
|
||||
"amount": "79228162514264337593543950335"
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "-10",
|
||||
"balanced": true,
|
||||
"current_earnings": "-10",
|
||||
"equity": "-10",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "10",
|
||||
"net_income": "-10",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [
|
||||
{
|
||||
"code": "1000",
|
||||
"credit": "10",
|
||||
"debit": "0",
|
||||
"name": "Cash"
|
||||
},
|
||||
{
|
||||
"code": "6000",
|
||||
"credit": "0",
|
||||
"debit": "10",
|
||||
"name": "Rent"
|
||||
}
|
||||
],
|
||||
"total_credits": "10",
|
||||
"total_debits": "10"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T08:22:27Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"55baf45fbd49aac57c476eef89d23e10d44ff8f7f4030adec5f97cd425959413","seq":2,"ts":"2026-10-17T08:22:27Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"95754910e5a7d45d9f703ddd36c654eefd39add9ccc49b43a8738fd0333df406","seq":3,"ts":"2026-10-17T08:22:27Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"638c5089d940d8c478230f03d45c408c39527fafe4a83e4169006046c93673b1","seq":4,"ts":"2026-10-17T08:22:27Z","type":"account.added"}
|
||||
{"payload":{"id":1,"name":"Member A","roles":["member"]},"prev":"fe495f6258c31f78595c7bd1d87a98184b017baefcb297f0a1395532efb740b2","seq":5,"ts":"2026-10-17T08:22:27Z","type":"party.added"}
|
||||
{"payload":{"id":2,"name":"Member B","roles":["member"]},"prev":"17a5195bb49d8839c921f1911d807c89d110fcb1c2dbb385de954d8f545a2c91","seq":6,"ts":"2026-10-17T08:22:27Z","type":"party.added"}
|
||||
{"payload":{"date":"2026-03-01","description":"edge","id":1},"prev":"9fabcde9cd89f42a1c2fe7208387e7d4fe96664be7bd99b1f9ca0fa5b46bf16f","seq":7,"ts":"2026-10-17T08:22:27Z","type":"entry.created"}
|
||||
{"payload":{"account":3,"amount":"10.00","currency":"USD","id":1,"side":"debit"},"prev":"3b61ea2d0c246f68c228ab9ceae1c1e6b023ec10a1fb112d733cfaea524a161e","seq":8,"ts":"2026-10-17T08:22:27Z","type":"entry.line_added"}
|
||||
{"payload":{"account":1,"amount":"10.00","currency":"USD","id":1,"side":"credit"},"prev":"4e02665efec89cd05dce418feb25c9410bafa58fabc27c3c2891797e425ddff7","seq":9,"ts":"2026-10-17T08:22:27Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"2026-03-01","description":"edge","id":1,"lines":[{"account":3,"amount":"10.00","currency":"USD","side":"debit"},{"account":1,"amount":"10.00","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"91d083d852b65814d4970944434112d63b83b85a22ae3c3e432c7a4caf37e8fb","seq":10,"ts":"2026-10-17T08:22:27Z","type":"entry.posted"}
|
||||
{"payload":{"entry_id":1,"parties":[{"party_id":1,"share":{"amount":"79228162514264337593543950335"}},{"party_id":2,"share":{"amount":"79228162514264337593543950335"}}]},"prev":"f54290b56189a7ae7a6cef22eb6422fcb92890d3322f00ac48485d6954cea169","seq":11,"ts":"2026-10-17T08:22:27Z","type":"entry.parties_set"}
|
||||
+1
@@ -0,0 +1 @@
|
||||
%PDF-1.4 statement
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "2026-03-01",
|
||||
"description": "edge",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 2,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "10",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "10",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [
|
||||
{
|
||||
"code": "1000",
|
||||
"credit": "0",
|
||||
"debit": "10",
|
||||
"name": "Cash"
|
||||
},
|
||||
{
|
||||
"code": "3000",
|
||||
"credit": "10",
|
||||
"debit": "0",
|
||||
"name": "Capital"
|
||||
}
|
||||
],
|
||||
"total_credits": "10",
|
||||
"total_debits": "10"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:55:28Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"6b73bafa144d8ac8cd57745e8d7d4a35bc8cae9125a576162d7f7e133fbdb0ff","seq":2,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"d6be9a4a8147780c397a14d3ccb362d8a62ead0f5e92b450c17e1d3029ae9bf4","seq":3,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"8747c865cddfe1a1bc2c3d0834e8a46b9876516c5aab2698653f2ea34a9a4314","seq":4,"ts":"2026-10-17T07:55:28Z","type":"account.added"}
|
||||
{"payload":{"date":"2026-03-01","description":"edge","id":1},"prev":"9d1ecb55415c9c44b237754aa52191ef10f8288b11a2fcf81ca0c8d1b48db030","seq":5,"ts":"2026-10-17T07:55:28Z","type":"entry.created"}
|
||||
{"payload":{"account":1,"amount":"10.00","currency":"USD","id":1,"side":"debit"},"prev":"9aebfc58ad445e32ef1a1766310c1a6e687a7c8aadf5988fa369eb0282765fdf","seq":6,"ts":"2026-10-17T07:55:28Z","type":"entry.line_added"}
|
||||
{"payload":{"account":2,"amount":"10.00","currency":"USD","id":1,"side":"credit"},"prev":"7c4cee3fa639c01c7dddc059e6f53a4bd5174a6b041a377307811fc3b889d1b6","seq":7,"ts":"2026-10-17T07:55:28Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"2026-03-01","description":"edge","id":1,"lines":[{"account":1,"amount":"10.00","currency":"USD","side":"debit"},{"account":2,"amount":"10.00","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"8ea0aec78e987cef3e18aa1c24bc0ad57cd5c88042b69af654c55c2ac09576a9","seq":8,"ts":"2026-10-17T07:55:28Z","type":"entry.posted"}
|
||||
{"payload":{"attachment_id":1,"blob_sha":"0e0c4bec05ae31d537ce30a5c68ec87d461395935d32b2745c9fa5f61e35389e","category":"statement","description":null,"entry_id":null,"file_name":"s.pdf","mime_type":"application/pdf","size_bytes":18},"prev":"bf32fe4983dedd23c60dabf8f5d7995c2dc30d5b64318386fec05f06f7123be9","seq":9,"ts":"2026-10-17T07:55:28Z","type":"document.filed"}
|
||||
{"payload":{"account_id":1,"attachment_id":1,"closing_balance":"792281625142643375935439503.35","opening_balance":"-792281625142643375935439503.35","period_end":"2026-03-31","period_start":"2026-03-01"},"prev":"8ad83b7c1e7f05bb6b94e3a1bc9fac70d210caba1fc4081da7e1d4faa19e31b7","seq":10,"ts":"2026-10-17T07:55:28Z","type":"statement.recorded"}
|
||||
{"payload":{"attachment_id":1,"subject":{"id":1,"kind":"account"}},"prev":"7881221006ec7d7d028ba1c75d71a7e9e85e23ae9a239f4baec3880e32314b84","seq":11,"ts":"2026-10-17T07:55:28Z","type":"attachment.linked"}
|
||||
@@ -0,0 +1,104 @@
|
||||
{
|
||||
"assets": [
|
||||
{
|
||||
"accum_depr_account": 4,
|
||||
"acquired_by": null,
|
||||
"cost": {
|
||||
"amount": "1200.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"cost_account": 5,
|
||||
"description": "thing 0",
|
||||
"expense_account": 3,
|
||||
"id": 1,
|
||||
"method": "StraightLine",
|
||||
"purchase_date": "2026-01-01",
|
||||
"salvage_value": {
|
||||
"amount": "0",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"serial": null,
|
||||
"status": "Active",
|
||||
"tag": null,
|
||||
"tax": {
|
||||
"contributor_basis": "79228162514264337593543950335",
|
||||
"rule": "carryover"
|
||||
},
|
||||
"useful_life_months": 36
|
||||
},
|
||||
{
|
||||
"accum_depr_account": 4,
|
||||
"acquired_by": null,
|
||||
"cost": {
|
||||
"amount": "1200.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"cost_account": 5,
|
||||
"description": "thing 1",
|
||||
"expense_account": 3,
|
||||
"id": 2,
|
||||
"method": "StraightLine",
|
||||
"purchase_date": "2026-01-01",
|
||||
"salvage_value": {
|
||||
"amount": "0",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"serial": null,
|
||||
"status": "Active",
|
||||
"tag": null,
|
||||
"tax": {
|
||||
"contributor_basis": "79228162514264337593543950335",
|
||||
"rule": "carryover"
|
||||
},
|
||||
"useful_life_months": 36
|
||||
}
|
||||
],
|
||||
"bills": [],
|
||||
"entries": [],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "0",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "0",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [],
|
||||
"total_credits": "0",
|
||||
"total_debits": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T08:22:27Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"55baf45fbd49aac57c476eef89d23e10d44ff8f7f4030adec5f97cd425959413","seq":2,"ts":"2026-10-17T08:22:27Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"95754910e5a7d45d9f703ddd36c654eefd39add9ccc49b43a8738fd0333df406","seq":3,"ts":"2026-10-17T08:22:27Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"638c5089d940d8c478230f03d45c408c39527fafe4a83e4169006046c93673b1","seq":4,"ts":"2026-10-17T08:22:27Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1510","currency":"USD","id":4,"name":"Accum","parent":null,"placeholder":false},"prev":"fe495f6258c31f78595c7bd1d87a98184b017baefcb297f0a1395532efb740b2","seq":5,"ts":"2026-10-17T08:22:27Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Asset","code":"1500","currency":"USD","id":5,"name":"Equip","parent":null,"placeholder":false},"prev":"d19f715fac1b841fce557a732e3b8a60bf85baab4efb33ec97690d97476bb0e3","seq":6,"ts":"2026-10-17T08:22:27Z","type":"account.added"}
|
||||
{"payload":{"accum_depr_account":4,"cost":{"amount":"1200.00","currency":"USD"},"cost_account":5,"description":"thing 0","expense_account":3,"id":1,"method":"straight_line","purchase_date":"2026-01-01","salvage_value":{"amount":"0","currency":"USD"},"useful_life_months":36},"prev":"5b09fcb8c7446f20ae27e58c6ab12c9867032b596a8f4d14dd29e862e1e27c14","seq":7,"ts":"2026-10-17T08:22:27Z","type":"asset.registered"}
|
||||
{"payload":{"asset_id":1,"contributor_basis":"79228162514264337593543950335","rule":"carryover"},"prev":"f0536e9755e16792c78c4d15bc57b6b263fd6e18ed2926e7ec2dd0e945a8289c","seq":8,"ts":"2026-10-17T08:22:27Z","type":"asset.tax_basis_set"}
|
||||
{"payload":{"accum_depr_account":4,"cost":{"amount":"1200.00","currency":"USD"},"cost_account":5,"description":"thing 1","expense_account":3,"id":2,"method":"straight_line","purchase_date":"2026-01-01","salvage_value":{"amount":"0","currency":"USD"},"useful_life_months":36},"prev":"f1293508aa9cfd3a799504ac242ded794a46a66cbcec926bc0dcc3046ed16c6d","seq":9,"ts":"2026-10-17T08:22:27Z","type":"asset.registered"}
|
||||
{"payload":{"asset_id":2,"contributor_basis":"79228162514264337593543950335","rule":"carryover"},"prev":"181823fd7f196a23d25ba70d6032247c81a9e5eb85b21348ad0e5cb0e90c0b5c","seq":10,"ts":"2026-10-17T08:22:27Z","type":"asset.tax_basis_set"}
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "0000-06-01",
|
||||
"description": "far",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 2,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "10",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "10",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [
|
||||
{
|
||||
"code": "1000",
|
||||
"credit": "0",
|
||||
"debit": "10",
|
||||
"name": "Cash"
|
||||
},
|
||||
{
|
||||
"code": "3000",
|
||||
"credit": "10",
|
||||
"debit": "0",
|
||||
"name": "Capital"
|
||||
}
|
||||
],
|
||||
"total_credits": "10",
|
||||
"total_debits": "10"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"date":"0000-06-01","description":"far","id":1},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"entry.created"}
|
||||
{"payload":{"account":1,"amount":"10.00","currency":"USD","id":1,"side":"debit"},"prev":"2ee0d5eccd6505d6aed20303db8ebdf35ddcc75925161ee3557af8eadf4e3266","seq":6,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"account":2,"amount":"10.00","currency":"USD","id":1,"side":"credit"},"prev":"8bc0b7ab108577732ccb1bc09bdc83e41ba7b1118b0f1d6a8565600167416a5c","seq":7,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"0000-06-01","description":"far","id":1,"lines":[{"account":1,"amount":"10.00","currency":"USD","side":"debit"},{"account":2,"amount":"10.00","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"acf4893d68b1b23139e74f6f8afb5fd9a70c372c44a7f6d4403a0f899e0d5386","seq":8,"ts":"2026-10-17T07:34:22Z","type":"entry.posted"}
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "+10000-01-01",
|
||||
"description": "far",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 2,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "10",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "10",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [
|
||||
{
|
||||
"code": "1000",
|
||||
"credit": "0",
|
||||
"debit": "10",
|
||||
"name": "Cash"
|
||||
},
|
||||
{
|
||||
"code": "3000",
|
||||
"credit": "10",
|
||||
"debit": "0",
|
||||
"name": "Capital"
|
||||
}
|
||||
],
|
||||
"total_credits": "10",
|
||||
"total_debits": "10"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"date":"+10000-01-01","description":"far","id":1},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"entry.created"}
|
||||
{"payload":{"account":1,"amount":"10.00","currency":"USD","id":1,"side":"debit"},"prev":"78104dd11d743149bc07f5c25db24b83dd062fb944938ac235cb3a50032387fb","seq":6,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"account":2,"amount":"10.00","currency":"USD","id":1,"side":"credit"},"prev":"42881eda3cedfa3ac6d67f763465014ddaef7f917bebc7429d36f1c28ec02997","seq":7,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"+10000-01-01","description":"far","id":1,"lines":[{"account":1,"amount":"10.00","currency":"USD","side":"debit"},{"account":2,"amount":"10.00","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"a6374880e5e1b4b66d2416325dfe02b60b2f1726c9b4941074b70f37366ecbcb","seq":8,"ts":"2026-10-17T07:34:22Z","type":"entry.posted"}
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"assets": [],
|
||||
"bills": [],
|
||||
"entries": [
|
||||
{
|
||||
"date": "-0001-01-01",
|
||||
"description": "far",
|
||||
"id": 1,
|
||||
"lines": [
|
||||
{
|
||||
"account": 1,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Debit"
|
||||
},
|
||||
{
|
||||
"account": 2,
|
||||
"amount": {
|
||||
"amount": "10.00",
|
||||
"currency": [
|
||||
85,
|
||||
83,
|
||||
68
|
||||
]
|
||||
},
|
||||
"side": "Credit"
|
||||
}
|
||||
],
|
||||
"reversal_of": null,
|
||||
"status": "Posted"
|
||||
}
|
||||
],
|
||||
"entry_parties": [],
|
||||
"invoices": [],
|
||||
"payroll_runs": [],
|
||||
"periods": [],
|
||||
"recurring": [],
|
||||
"schedules": [],
|
||||
"snapshot": {
|
||||
"Ok": {
|
||||
"balance_sheet": {
|
||||
"assets": "10",
|
||||
"balanced": true,
|
||||
"current_earnings": "0",
|
||||
"equity": "10",
|
||||
"liabilities": "0"
|
||||
},
|
||||
"profit_and_loss": {
|
||||
"expenses": "0",
|
||||
"net_income": "0",
|
||||
"revenue": "0"
|
||||
},
|
||||
"trial_balance": {
|
||||
"lines": [
|
||||
{
|
||||
"code": "1000",
|
||||
"credit": "0",
|
||||
"debit": "10",
|
||||
"name": "Cash"
|
||||
},
|
||||
{
|
||||
"code": "3000",
|
||||
"credit": "10",
|
||||
"debit": "0",
|
||||
"name": "Capital"
|
||||
}
|
||||
],
|
||||
"total_credits": "10",
|
||||
"total_debits": "10"
|
||||
}
|
||||
}
|
||||
},
|
||||
"verify": {
|
||||
"Ok": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{"payload":{"base_currency":"USD"},"prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":1,"ts":"2026-10-17T07:34:22Z","type":"store.created"}
|
||||
{"payload":{"account_type":"Asset","code":"1000","currency":"USD","id":1,"name":"Cash","parent":null,"placeholder":false},"prev":"a834ec5613d8bf4f1f165413cc46e9bfe560f18e11a94152da39b898e225862c","seq":2,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Equity","code":"3000","currency":"USD","id":2,"name":"Capital","parent":null,"placeholder":false},"prev":"538c32d8f8f3e467fd300530e25da5203b0ab10b8307e385ea0adebc4327309d","seq":3,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"account_type":"Expense","code":"6000","currency":"USD","id":3,"name":"Rent","parent":null,"placeholder":false},"prev":"ec025c45565ec15e0ea321f05ae75813a0715d904c4877fc8eef8608a826f645","seq":4,"ts":"2026-10-17T07:34:22Z","type":"account.added"}
|
||||
{"payload":{"date":"-0001-01-01","description":"far","id":1},"prev":"d1659645a822961fd9c25fca77aee74fd5bea3a16b6dea2e7476353997371671","seq":5,"ts":"2026-10-17T07:34:22Z","type":"entry.created"}
|
||||
{"payload":{"account":1,"amount":"10.00","currency":"USD","id":1,"side":"debit"},"prev":"6b433b3ecaf309240644438e804ad696132e4726dca6b5dd765960f02b712bbb","seq":6,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"account":2,"amount":"10.00","currency":"USD","id":1,"side":"credit"},"prev":"f9e186d7f286de30e6505d8ec5f7de3ffc76f975104aff20b52cdce25b4819e2","seq":7,"ts":"2026-10-17T07:34:22Z","type":"entry.line_added"}
|
||||
{"payload":{"date":"-0001-01-01","description":"far","id":1,"lines":[{"account":1,"amount":"10.00","currency":"USD","side":"debit"},{"account":2,"amount":"10.00","currency":"USD","side":"credit"}],"reversal_of":null},"prev":"838d1c5e6055cdbc5ea5526500cf6cabf4555e651a5cd0c280222ee07cb650be","seq":8,"ts":"2026-10-17T07:34:22Z","type":"entry.posted"}
|
||||
Reference in new issue
Block a user