jaz-cli 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/skills/api/SKILL.md +35 -34
- package/assets/skills/api/references/errors.md +15 -7
- package/assets/skills/api/references/feature-glossary.md +2 -0
- package/assets/skills/api/references/field-map.md +3 -3
- package/assets/skills/conversion/SKILL.md +1 -1
- package/assets/skills/transaction-recipes/SKILL.md +124 -14
- package/assets/skills/transaction-recipes/references/bad-debt-provision.md +145 -0
- package/assets/skills/transaction-recipes/references/building-blocks.md +25 -2
- package/assets/skills/transaction-recipes/references/capital-wip.md +167 -0
- package/assets/skills/transaction-recipes/references/dividend.md +111 -0
- package/assets/skills/transaction-recipes/references/employee-accruals.md +154 -0
- package/assets/skills/transaction-recipes/references/fx-revaluation.md +135 -0
- package/assets/skills/transaction-recipes/references/intercompany.md +150 -0
- package/assets/skills/transaction-recipes/references/provisions.md +142 -0
- package/dist/calc/amortization.js +104 -0
- package/dist/calc/blueprint.js +21 -0
- package/dist/calc/depreciation.js +177 -0
- package/dist/calc/ecl.js +89 -0
- package/dist/calc/format.js +389 -0
- package/dist/calc/fx-reval.js +83 -0
- package/dist/calc/lease.js +117 -0
- package/dist/calc/loan.js +97 -0
- package/dist/calc/provision.js +112 -0
- package/dist/calc/types.js +21 -0
- package/dist/calc/validate.js +48 -0
- package/dist/commands/calc.js +200 -0
- package/dist/index.js +2 -0
- package/package.json +3 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: api
|
|
3
|
-
version: 2.
|
|
3
|
+
version: 2.5.0
|
|
4
4
|
description: Complete reference for the Jaz/Juan REST API — the accounting platform backend. Use this skill whenever building, modifying, debugging, or extending any code that calls the API — including API clients, integrations, data seeding, test data, or new endpoint work. Contains every field name, response shape, error, gotcha, and edge case discovered through live production testing.
|
|
5
5
|
license: MIT
|
|
6
6
|
compatibility: Requires Jaz/Juan API key (x-jk-api-key header). Works with Claude Code, Claude Cowork, Claude.ai, and any agent that reads markdown.
|
|
@@ -61,32 +61,33 @@ You are working with the **Jaz/Juan REST API** — the backend for Jaz (Singapor
|
|
|
61
61
|
|
|
62
62
|
### Journals & Cash
|
|
63
63
|
23. **Journals use `journalEntries`** with `amount` + `type: "DEBIT"|"CREDIT"` — NOT `debit`/`credit` number fields.
|
|
64
|
-
24. **Journals
|
|
65
|
-
25. **
|
|
64
|
+
24. **Journals support multi-currency via `currency` object** — same format as invoices/bills: `"currency": { "sourceCurrency": "USD" }` (auto-fetch platform rate) or `"currency": { "sourceCurrency": "USD", "exchangeRate": 1.35 }` (custom rate). Must be enabled for the org. Omit for base currency. Three restrictions apply to foreign currency journals: (a) **no controlled accounts** — accounts with `controlFlag` (AR, AP) are off-limits (use invoices/bills instead), (b) **no FX accounts** — FX Unrealized Gain/Loss/Rounding are system-managed, (c) **bank accounts must match** — can only post to bank accounts in the same currency as the journal (e.g., USD journal → USD bank account only, not SGD bank account). All other non-controlled accounts (expenses, revenue, assets, liabilities) are available.
|
|
65
|
+
25. **`currency` object is the SAME everywhere** — invoices, bills, credit notes, AND journals all use `currency: { sourceCurrency: "USD", exchangeRate?: number }`. Never use `currencyCode: "USD"` (silently ignored on invoices/bills) or `currency: "USD"` (string — causes 400 on invoices/bills).
|
|
66
|
+
26. **Cash entries use `accountResourceId`** at top level for the BANK account + `journalEntries` array for offsets.
|
|
66
67
|
|
|
67
68
|
### Credit Notes & Refunds
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
27. **Credit note application wraps in `credits` array** with `amountApplied` — not flat.
|
|
70
|
+
28. **CN refunds use `refunds` wrapper** with `refundAmount` + `refundMethod` — NOT `payments`/`paymentAmount`/`paymentMethod`.
|
|
70
71
|
|
|
71
72
|
### Inventory Items
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
29. **Inventory items require**: `unit` (e.g., `"pcs"`), `costingMethod` (`"FIXED"` or `"WAC"`), `cogsResourceId`, `blockInsufficientDeductions`, `inventoryAccountResourceId`. `purchaseAccountResourceId` MUST be Inventory-type CoA.
|
|
74
|
+
30. **Delete inventory items via `DELETE /items/:id`** — not `/inventory-items/:id`.
|
|
74
75
|
|
|
75
76
|
### Cash Transfers
|
|
76
|
-
|
|
77
|
+
31. **Cash transfers use `cashOut`/`cashIn` sub-objects** — NOT flat `fromAccountResourceId`/`toAccountResourceId`. Each: `{ accountResourceId, amount }`.
|
|
77
78
|
|
|
78
79
|
### Schedulers
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
32. **Scheduled invoices/bills wrap in `{ invoice: {...} }` or `{ bill: {...} }`** — not flat. Recurrence field is `repeat` (NOT `frequency`/`interval`). `saveAsDraft: false` required.
|
|
81
|
+
33. **Scheduled journals use FLAT structure** with `schedulerEntries` — not nested in `journal` wrapper.
|
|
81
82
|
|
|
82
83
|
### Bookmarks
|
|
83
|
-
|
|
84
|
+
34. **Bookmarks use `items` array wrapper** with `name`, `value`, `categoryCode`, `datatypeCode`.
|
|
84
85
|
|
|
85
86
|
### Custom Fields
|
|
86
|
-
|
|
87
|
+
35. **Do NOT send `appliesTo` on custom field POST** — causes "Invalid request body". Only send `name`, `type`, `printOnDocuments`.
|
|
87
88
|
|
|
88
89
|
### Reports
|
|
89
|
-
|
|
90
|
+
36. **Report field names differ by type** — this is the most error-prone area:
|
|
90
91
|
|
|
91
92
|
| Report | Required Fields |
|
|
92
93
|
|--------|----------------|
|
|
@@ -101,32 +102,32 @@ You are working with the **Jaz/Juan REST API** — the backend for Jaz (Singapor
|
|
|
101
102
|
| Bank balance summary | `primarySnapshotDate` |
|
|
102
103
|
| Equity movement | `primarySnapshotStartDate`, `primarySnapshotEndDate` |
|
|
103
104
|
|
|
104
|
-
|
|
105
|
+
37. **Data exports use simpler field names**: P&L export uses `startDate`/`endDate` (NOT `primarySnapshotDate`). AR/AP export uses `endDate`.
|
|
105
106
|
|
|
106
107
|
### Pagination
|
|
107
|
-
|
|
108
|
+
38. **All list/search endpoints use `limit`/`offset` pagination** — NOT `page`/`size`. Default limit=100, offset=0. Max limit=1000, max offset=65536. `page`/`size` params are silently ignored. Response shape: `{ totalPages, totalElements, data: [...] }`.
|
|
108
109
|
|
|
109
110
|
### Other
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
111
|
+
39. **Currency rates use `/organization-currencies/:code/rates`** — note the HYPHENATED path (NOT `/organization/currencies`). Enable currencies first via `POST /organization/currencies`, then set rates via `POST /organization-currencies/:code/rates` with body `{ "rate": 0.74, "rateApplicableFrom": "YYYY-MM-DD" }` (see Rule 49 for direction). Cannot set rates for org base currency. Full CRUD: POST (create), GET (list), GET/:id, PUT/:id, DELETE/:id.
|
|
112
|
+
40. **FX invoices/bills MUST use `currency` object** — `currencyCode: "USD"` (string) is **silently ignored** (transaction created in base currency!). Use `currency: { sourceCurrency: "USD" }` to auto-fetch platform rate (ECB/FRANKFURTER), or `currency: { sourceCurrency: "USD", exchangeRate: 1.35 }` for a custom rate. Rate hierarchy: org rate → platform/ECB → transaction-level.
|
|
113
|
+
41. **Invoice GET uses `organizationAccountResourceId`** for line item accounts — POST uses `accountResourceId`. Request-side aliases resolve `issueDate` → `valueDate`, `bankAccountResourceId` → `accountResourceId`, etc.
|
|
114
|
+
42. **Scheduler GET returns `interval`** — POST uses `repeat`. (Response-side asymmetry remains.)
|
|
115
|
+
43. **Search sort is an object** — `{ sort: { sortBy: ["valueDate"], order: "DESC" } }`. Required when `offset` is present (even `offset: 0`).
|
|
116
|
+
44. **Bank records: two import methods** — Multipart CSV/OFX via `POST /magic/importBankStatementFromAttachment` (fields: `sourceFile`, `accountResourceId`, `businessTransactionType: "BANK_STATEMENT"`, `sourceType: "FILE"`). JSON via `POST /bank-records/:accountResourceId` with `{ records: [{description, netAmount, valueDate, ...}] }`.
|
|
117
|
+
45. **Withholding tax** on bills/supplier CNs only. Retry pattern: if `WITHHOLDING_CODE_NOT_FOUND`, strip field and retry.
|
|
118
|
+
46. **Known API bugs (500s)**: Contact groups PUT, custom fields PUT, capsules POST, catalogs POST, inventory balances GET — all return 500.
|
|
119
|
+
47. **Non-existent endpoints**: `POST /deposits` and `POST /inventory/adjustments` return 404 — these endpoints are not implemented.
|
|
120
|
+
48. **Attachments require PDF/PNG**: `POST /:type/:id/attachments` uses multipart `file` field but rejects `text/plain`. Use `application/pdf` or `image/png`.
|
|
121
|
+
49. **Currency rate direction: `rate` = functionalToSource (1 base = X foreign)** — POST `rate: 0.74` for a SGD org means 1 SGD = 0.74 USD. **If your data stores rates as "1 USD = 1.35 SGD" (sourceToFunctional), you MUST invert: `rate = 1 / 1.35 = 0.74`.** GET confirms both: `rateFunctionalToSource` (what you POSTed) and `rateSourceToFunctional` (the inverse).
|
|
121
122
|
|
|
122
123
|
### Search & Filter
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
124
|
+
50. **Search endpoint universal pattern** — All 28 `POST /*/search` endpoints share identical structure: `{ filter?, sort: { sortBy: ["field"], order: "ASC"|"DESC" }, limit: 1-1000, offset: 0-65536 }`. Sort is REQUIRED when offset is present (even `offset: 0`). Default limit: 100. `sortBy` is always an array on all endpoints (no exceptions). See `references/search-reference.md` for per-endpoint filter/sort fields.
|
|
125
|
+
51. **Filter operator reference** — String: `eq`, `neq`, `contains`, `in` (array, max 100), `likeIn` (array, max 100), `reg` (regex array, max 100), `isNull` (bool). Numeric: `eq`, `gt`, `gte`, `lt`, `lte`, `in`. Date (YYYY-MM-DD): `eq`, `gt`, `gte`, `lt`, `lte`, `between` (exactly 2 values). DateTime (RFC3339): same operators, converted to epoch ms internally. Boolean: `eq`. JSON: `jsonIn`, `jsonNotIn`. Logical: nest with `and`/`or`/`not` objects, or use `andGroup`/`orGroup` arrays (invoices, bills, journals, credit notes).
|
|
126
|
+
52. **Date format asymmetry (CRITICAL)** — Request dates: `YYYY-MM-DD` strings (all create/update and DateExpression filters). Request datetimes: RFC3339 strings (DateTimeExpression filters for `createdAt`, `updatedAt`, `approvedAt`, `submittedAt`). **ALL response dates**: `int64` epoch milliseconds — including `valueDate`, `createdAt`, `updatedAt`, `approvedAt`, `submittedAt`, `matchDate`. Convert: `new Date(epochMs).toISOString().slice(0,10)`.
|
|
127
|
+
53. **Field aliases on create endpoints** — Middleware transparently maps: `issueDate`/`date` → `valueDate` (invoices, bills, credit notes, journals). `name` → `tagName` (tags) or `internalName` (items). `paymentDate` → `valueDate`, `bankAccountResourceId` → `accountResourceId` (payments). `paymentAmount` → `refundAmount`, `paymentMethod` → `refundMethod` (credit note refunds). `accountType` → `classificationType`, `currencyCode` → `currency` (CoA). Canonical names always work; aliases are convenience only.
|
|
128
|
+
54. **All search/list responses are flat** — every search and list endpoint returns `{ totalElements, totalPages, data: [...] }` directly (no outer `data` wrapper). Access the array via `response.data`, pagination via `response.totalElements`.
|
|
129
|
+
55. **Scheduled endpoints support date aliases** — `txnDateAliases` middleware (mapping `issueDate`/`date` → `valueDate`) now applies to all scheduled create/update endpoints: `POST/PUT /scheduled/invoices`, `POST/PUT /scheduled/bills`, `POST/PUT /scheduled/journals`, `POST/PUT /scheduled/subscriptions`.
|
|
130
|
+
56. **Kebab-case URL aliases** — `capsuleTypes` endpoints also accept kebab-case paths: `/capsule-types` (list, search, CRUD). `moveTransactionCapsules` also accepts `/move-transaction-capsules`. Both camelCase and kebab-case work identically.
|
|
130
131
|
|
|
131
132
|
## Supporting Files
|
|
132
133
|
|
|
@@ -159,4 +160,4 @@ The backend DX overhaul is live. Key improvements now available:
|
|
|
159
160
|
- **Bill payments**: Embed in bill creation body (safest). Standalone `POST /bills/{id}/payments` also works.
|
|
160
161
|
- **Bank records**: Use multipart `POST /magic/importBankStatementFromAttachment`
|
|
161
162
|
- **Scheduled bills**: Wrap as `{ status, startDate, endDate, repeat, bill: {...} }`
|
|
162
|
-
- **FX currency**: `currency: { sourceCurrency: "USD" }` (auto-fetches platform rate) or `currency: { sourceCurrency: "USD", exchangeRate: 1.35 }` (custom rate). **Never use `currencyCode` string** — silently ignored.
|
|
163
|
+
- **FX currency (invoices, bills, credit notes, AND journals)**: `currency: { sourceCurrency: "USD" }` (auto-fetches platform rate) or `currency: { sourceCurrency: "USD", exchangeRate: 1.35 }` (custom rate). Same object form on all transaction types. **Never use `currencyCode` string** — silently ignored.
|
|
@@ -601,17 +601,25 @@ if (acct.code) ctx.coaIds[acct.code] = acct.resourceId;
|
|
|
601
601
|
|
|
602
602
|
## Journal Errors
|
|
603
603
|
|
|
604
|
-
###
|
|
605
|
-
**
|
|
606
|
-
**Fix**: Do NOT include `currency` in journal requests. The correct journal body only needs `saveAsDraft`, `reference`, `valueDate`, and `journalEntries`.
|
|
607
|
-
```json
|
|
608
|
-
// WRONG:
|
|
609
|
-
{ "saveAsDraft": false, "reference": "JV-001", "valueDate": "2026-02-08", "currency": "SGD", "journalEntries": [...] }
|
|
604
|
+
### Multi-currency journals — `currency` object
|
|
605
|
+
Journals support a top-level `currency` object to create entries in a foreign currency — **same format as invoices/bills**: `{ "sourceCurrency": "USD" }` (auto-fetch platform rate) or `{ "sourceCurrency": "USD", "exchangeRate": 1.35 }` (custom rate). The currency must be enabled for the org. Omit the field for base currency journals.
|
|
610
606
|
|
|
611
|
-
|
|
607
|
+
```json
|
|
608
|
+
// Base currency journal (omit currency):
|
|
612
609
|
{ "saveAsDraft": false, "reference": "JV-001", "valueDate": "2026-02-08", "journalEntries": [...] }
|
|
610
|
+
|
|
611
|
+
// Foreign currency journal (auto platform rate):
|
|
612
|
+
{ "saveAsDraft": false, "reference": "JV-001", "valueDate": "2026-02-08", "currency": { "sourceCurrency": "USD" }, "journalEntries": [...] }
|
|
613
|
+
|
|
614
|
+
// Foreign currency journal (custom rate):
|
|
615
|
+
{ "saveAsDraft": false, "reference": "JV-001", "valueDate": "2026-02-08", "currency": { "sourceCurrency": "USD", "exchangeRate": 1.35 }, "journalEntries": [...] }
|
|
613
616
|
```
|
|
614
617
|
|
|
618
|
+
**Three restrictions apply to foreign currency journals:**
|
|
619
|
+
1. **No controlled accounts** — accounts with `controlFlag` (AR, AP) cannot be used. Use invoices/bills for AR/AP entries instead.
|
|
620
|
+
2. **No FX accounts** — FX Unrealized Gain/Loss/Rounding accounts are system-managed and cannot be posted to directly.
|
|
621
|
+
3. **Bank accounts must match currency** — a USD journal can only post to USD-denominated bank accounts, not SGD bank accounts. All other non-controlled accounts (expenses, revenue, assets, liabilities) are available regardless of journal currency.
|
|
622
|
+
|
|
615
623
|
### Journal entry field format
|
|
616
624
|
**Cause**: Using `debit`/`credit` as separate number fields on journal entries.
|
|
617
625
|
**Fix**: Each entry uses `amount` (number) + `type` (`"DEBIT"` or `"CREDIT"`, UPPERCASE strings).
|
|
@@ -66,6 +66,8 @@ There is no dedicated `/deposits` endpoint (returns 404). Deposits are managed t
|
|
|
66
66
|
|
|
67
67
|
Manual accounting entries for non-payment transactions. Three types: Manual Journals (multi-line debit/credit entries), Cash Journals (2-line cash transfers between bank accounts with cross-currency support), and Transfer Journals (year-end trial balance transfers, non-editable).
|
|
68
68
|
|
|
69
|
+
Manual journals support multi-currency — set `currency: { sourceCurrency: "USD" }` (same object form as invoices/bills) to create a journal in a foreign currency. Omit for base currency. Foreign currency journal restrictions: (1) no controlled accounts (AR/AP — use invoices/bills instead), (2) no FX system accounts (Unrealized Gain/Loss/Rounding), (3) bank accounts must match the journal's currency (e.g., USD journal → USD bank only).
|
|
70
|
+
|
|
69
71
|
Minimum 2 balanced entries required. Cash journals are restricted to exactly 2 lines. Bank/cash/current asset/equity/liability accounts cannot have tax profiles applied. Supports scheduled/recurring journals with dynamic scheduler strings (`{{YEAR}}`, `{{MONTH}}`).
|
|
70
72
|
|
|
71
73
|
Cash transfer FX logic: if either side is base currency, keep as-is; if both non-base, fetch rate for cash-out and derive cash-in. Transfer rate = `Cash-in amount / Cash-out amount`.
|
|
@@ -195,7 +195,7 @@ When POSTing, `classificationType` must be one of these exact strings (same as `
|
|
|
195
195
|
| `lines` | `journalEntries` | Same |
|
|
196
196
|
| `entries` | `journalEntries` | Same |
|
|
197
197
|
| `debit` / `credit` (entry) | `amount` + `type` | `amount`: number, `type`: `"DEBIT"` or `"CREDIT"` (UPPERCASE) |
|
|
198
|
-
| `currency` (
|
|
198
|
+
| `currency: "USD"` (string) | `currency: { sourceCurrency: "USD" }` | **Object form** — same as invoices/bills. Auto-fetches platform rate. Add `exchangeRate: 1.35` for custom rate. Omit for base currency. |
|
|
199
199
|
|
|
200
200
|
---
|
|
201
201
|
|
|
@@ -421,8 +421,8 @@ Battle-tested patterns from production Jaz API clients:
|
|
|
421
421
|
| Bill payments | Always embedded in bill creation body, never standalone |
|
|
422
422
|
| Bank records | Multipart import via `importBankStatementFromAttachment` — the only endpoint |
|
|
423
423
|
| Scheduled bills | Wrapped as `{ repeat, startDate, endDate, bill: {...} }`. Field is `repeat` (NOT `frequency`/`interval`) |
|
|
424
|
-
| FX currency | MUST use `currency` OBJECT: `{ sourceCurrency: "USD", exchangeRate: 1.35 }
|
|
424
|
+
| FX currency | MUST use `currency` OBJECT on ALL transaction types (invoices, bills, credit notes, journals): `{ sourceCurrency: "USD" }` (auto platform rate) or `{ sourceCurrency: "USD", exchangeRate: 1.35 }` (custom). String `currencyCode` silently ignored. |
|
|
425
425
|
|
|
426
426
|
---
|
|
427
427
|
|
|
428
|
-
*Last updated: 2026-02-
|
|
428
|
+
*Last updated: 2026-02-18 — Multi-currency journals: `currency` object now documented (same `{ sourceCurrency, exchangeRate? }` form as invoices/bills). Date format matrix: request vs response asymmetry (YYYY-MM-DD in, epoch ms out). Complete middleware alias table from Go source code.*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: conversion
|
|
3
|
-
version: 2.
|
|
3
|
+
version: 2.5.0
|
|
4
4
|
description: Accounting data conversion skill — migrates customer data from Xero, QuickBooks, Sage, MYOB, and Excel exports to Jaz. Covers config, quick, and full conversion workflows, Excel parsing, CoA/contact/tax/items mapping, clearing accounts, TTB, and TB verification.
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: transaction-recipes
|
|
3
|
-
version: 2.
|
|
4
|
-
description:
|
|
3
|
+
version: 2.5.0
|
|
4
|
+
description: 13 IFRS-compliant recipes for modeling complex multi-step accounting scenarios in Jaz — from prepaid amortization and loan schedules to FX revaluation, ECL provisioning, dividend declarations, and intercompany transactions. Each recipe includes journal entries, capsule structure, and verification steps. Paired with 8 financial calculators that produce execution-ready blueprints.
|
|
5
5
|
license: MIT
|
|
6
6
|
compatibility: Works with Claude Code, Claude Cowork, Claude.ai, and any agent that reads markdown. For API payloads, load the jaz-api skill alongside this one.
|
|
7
7
|
---
|
|
@@ -17,7 +17,14 @@ You are modeling **complex multi-step accounting scenarios** in Jaz — transact
|
|
|
17
17
|
- Setting up prepaid expenses, deferred revenue, or accrued liabilities
|
|
18
18
|
- Modeling loan repayment schedules with amortization tables
|
|
19
19
|
- Implementing IFRS 16 lease accounting (right-of-use assets + lease liabilities)
|
|
20
|
-
- Recording depreciation using methods Jaz doesn't natively support (
|
|
20
|
+
- Recording depreciation using methods Jaz doesn't natively support (declining balance, 150DB)
|
|
21
|
+
- FX revaluation of non-AR/AP monetary items at period-end (IAS 21)
|
|
22
|
+
- Calculating expected credit loss provisions on aged receivables (IFRS 9)
|
|
23
|
+
- Accruing employee leave and bonus obligations (IAS 19)
|
|
24
|
+
- Recognizing provisions at PV with discount unwinding (IAS 37)
|
|
25
|
+
- Declaring and paying dividends
|
|
26
|
+
- Recording and reconciling intercompany transactions across entities
|
|
27
|
+
- Capitalizing costs in WIP and transferring to fixed assets
|
|
21
28
|
- Any scenario that groups related transactions in a capsule over multiple periods
|
|
22
29
|
|
|
23
30
|
## Building Blocks
|
|
@@ -27,12 +34,13 @@ Every recipe uses a combination of these Jaz features. See `references/building-
|
|
|
27
34
|
| Building Block | Role in Recipes |
|
|
28
35
|
|---|---|
|
|
29
36
|
| **Capsules** | Group all related entries into one workflow container |
|
|
30
|
-
| **Schedulers** | Automate fixed-amount recurring journals (prepaid, deferred) |
|
|
31
|
-
| **Manual Journals** | Record variable-amount entries (loan interest, IFRS 16 unwinding,
|
|
32
|
-
| **Fixed Assets** | Native straight-line depreciation for ROU assets |
|
|
37
|
+
| **Schedulers** | Automate fixed-amount recurring journals (prepaid, deferred, leave) |
|
|
38
|
+
| **Manual Journals** | Record variable-amount entries (loan interest, IFRS 16 unwinding, FX reval, ECL) |
|
|
39
|
+
| **Fixed Assets** | Native straight-line depreciation for ROU assets and completed capital projects |
|
|
40
|
+
| **Invoices / Bills** | Trade documents for intercompany, supplier bills for capital WIP |
|
|
33
41
|
| **Tracking Tags** | Tag all entries in a scenario for report filtering |
|
|
34
42
|
| **Nano Classifiers** | Classify line items by department, cost center, or project |
|
|
35
|
-
| **Custom Fields** | Record reference numbers (policy, loan, lease contract) |
|
|
43
|
+
| **Custom Fields** | Record reference numbers (policy, loan, lease contract, intercompany ref) |
|
|
36
44
|
|
|
37
45
|
## Key Principle: Schedulers vs Manual Journals
|
|
38
46
|
|
|
@@ -40,15 +48,24 @@ Jaz schedulers generate **fixed-amount** recurring entries. This determines whic
|
|
|
40
48
|
|
|
41
49
|
- **Fixed amounts each period** → Use a scheduler inside a capsule (automated)
|
|
42
50
|
- **Variable amounts each period** → Use manual journals inside a capsule (calculated per period)
|
|
51
|
+
- **One-off or two-entry events** → Use manual journals (e.g., dividend declaration + payment)
|
|
43
52
|
|
|
44
53
|
| Recipe | Pattern | Why |
|
|
45
54
|
|---|---|---|
|
|
46
55
|
| Prepaid Amortization | Scheduler + capsule | Same amount each month |
|
|
47
56
|
| Deferred Revenue | Scheduler + capsule | Same amount each month |
|
|
48
|
-
| Accrued Expenses | Two schedulers + capsule
|
|
57
|
+
| Accrued Expenses | Two schedulers + capsule | Accrual + reversal cycle with end dates |
|
|
58
|
+
| Employee Leave Accrual | Scheduler + capsule | Fixed monthly accrual |
|
|
49
59
|
| Bank Loan | Manual journals + capsule | Interest changes as principal reduces |
|
|
50
|
-
| IFRS 16 Lease | Hybrid (native FA + manual journals) + capsule | ROU depreciation is fixed
|
|
60
|
+
| IFRS 16 Lease | Hybrid (native FA + manual journals) + capsule | ROU depreciation is fixed; liability unwinding changes |
|
|
51
61
|
| Declining Balance | Manual journals + capsule | Depreciation changes as book value reduces |
|
|
62
|
+
| FX Revaluation | Manual journals + capsule | Rates change each period |
|
|
63
|
+
| ECL Provision | Manual journals + capsule | Receivables and rates change each quarter |
|
|
64
|
+
| Provisions (IAS 37) | Manual journals + capsule | Unwinding amount changes each month |
|
|
65
|
+
| Bonus Accrual | Manual journals + capsule | Revenue/profit changes each quarter |
|
|
66
|
+
| Dividends | Manual journals + capsule | One-off: declaration + payment |
|
|
67
|
+
| Intercompany | Invoices/bills + capsule | Mirrored entries in two entities |
|
|
68
|
+
| Capital WIP | Bills/journals + FA registration + capsule | Accumulate then transfer |
|
|
52
69
|
|
|
53
70
|
## Recipe Index
|
|
54
71
|
|
|
@@ -68,17 +85,110 @@ Each recipe includes: scenario description, accounts involved, journal entries,
|
|
|
68
85
|
|
|
69
86
|
5. **[IFRS 16 Lease](references/ifrs16-lease.md)** — Right-of-use asset recognition, lease liability unwinding with changing interest, native FA for ROU straight-line depreciation.
|
|
70
87
|
|
|
71
|
-
6. **[Declining Balance Depreciation](references/declining-balance.md)** —
|
|
88
|
+
6. **[Declining Balance Depreciation](references/declining-balance.md)** — DDB/150DB methods with switch-to-straight-line logic, for assets where Jaz's native SL isn't appropriate.
|
|
89
|
+
|
|
90
|
+
### Tier 3 — Month-End Close Recipes
|
|
91
|
+
|
|
92
|
+
7. **[FX Revaluation — Non-AR/AP Items](references/fx-revaluation.md)** — IAS 21 revaluation of non-AR/AP foreign currency monetary items (intercompany loans, term deposits, FX provisions) with Day 1 reversal. *Paired calculator: `jaz calc fx-reval`*
|
|
93
|
+
|
|
94
|
+
8. **[Bad Debt Provision / ECL](references/bad-debt-provision.md)** — IFRS 9 simplified approach provision matrix using aged receivables and historical loss rates. *Paired calculator: `jaz calc ecl`*
|
|
95
|
+
|
|
96
|
+
9. **[Employee Benefit Accruals](references/employee-accruals.md)** — IAS 19 leave accrual (scheduler, fixed monthly) and bonus accrual (manual journals, variable quarterly) with year-end true-up.
|
|
97
|
+
|
|
98
|
+
### Tier 4 — Corporate Events & Structures
|
|
99
|
+
|
|
100
|
+
10. **[Provisions with PV Unwinding](references/provisions.md)** — IAS 37 provision recognized at PV, with monthly discount unwinding schedule. For warranties, legal claims, decommissioning, restructuring. *Paired calculator: `jaz calc provision`*
|
|
101
|
+
|
|
102
|
+
11. **[Dividend Declaration & Payment](references/dividend.md)** — Board-declared dividend: two journals (declaration reducing retained earnings, then payment).
|
|
103
|
+
|
|
104
|
+
12. **[Intercompany Transactions](references/intercompany.md)** — Mirrored invoices/bills or journals across two Jaz entities with matching intercompany reference, quarterly settlement.
|
|
105
|
+
|
|
106
|
+
13. **[Capital WIP to Fixed Asset](references/capital-wip.md)** — Cost accumulation in CIP account during construction/development, transfer to FA on completion, auto-depreciation via Jaz FA module.
|
|
72
107
|
|
|
73
108
|
## How to Use These Recipes
|
|
74
109
|
|
|
75
110
|
1. **Read the recipe** for your scenario — understand the accounts, journal entries, and capsule structure.
|
|
76
111
|
2. **Create the accounts** listed in the "Accounts Involved" table (if they don't already exist in the CoA).
|
|
77
112
|
3. **Create the capsule** with an appropriate capsule type.
|
|
78
|
-
4. **
|
|
79
|
-
5. **
|
|
80
|
-
6. **For
|
|
81
|
-
7. **
|
|
113
|
+
4. **Run the calculator** (if available) to generate exact amounts: `jaz calc <command> --json` gives you a complete blueprint.
|
|
114
|
+
5. **Record the initial transaction** (bill, invoice, or journal) — assign it to the capsule.
|
|
115
|
+
6. **For scheduler recipes**: Create the scheduler with the same capsule — it generates all subsequent entries automatically.
|
|
116
|
+
7. **For manual journal recipes**: Record each period's journal using the calculator output or worked example, always assigning to the same capsule.
|
|
117
|
+
8. **Verify** using the steps in each recipe (ledger grouping by capsule, trial balance checks).
|
|
118
|
+
|
|
119
|
+
## Financial Calculators (CLI)
|
|
120
|
+
|
|
121
|
+
The `jaz-cli` includes 8 IFRS-compliant financial calculators. Each produces a formatted schedule table with per-period journal entries. Use `--json` for structured output with a complete **blueprint** — an execution plan containing capsule type, name, tags, custom fields, and every journal entry with dates, accounts, and amounts.
|
|
122
|
+
|
|
123
|
+
All calculators support `--currency <code>` for currency labeling and `--json` for agent-parseable output.
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# ── Tier 2 Calculators ──────────────────────────────────────────
|
|
127
|
+
|
|
128
|
+
# Loan amortization schedule (PMT, interest/principal split)
|
|
129
|
+
jaz calc loan --principal 100000 --rate 6 --term 60 [--start-date 2025-01-01] [--currency SGD] [--json]
|
|
130
|
+
|
|
131
|
+
# IFRS 16 lease (PV, liability unwinding, ROU depreciation)
|
|
132
|
+
jaz calc lease --payment 5000 --term 36 --rate 5 [--start-date 2025-01-01] [--currency SGD] [--json]
|
|
133
|
+
|
|
134
|
+
# Depreciation (DDB, 150DB, or straight-line)
|
|
135
|
+
jaz calc depreciation --cost 50000 --salvage 5000 --life 5 [--method ddb|150db|sl] [--frequency annual|monthly] [--currency SGD] [--json]
|
|
136
|
+
|
|
137
|
+
# Prepaid expense recognition
|
|
138
|
+
jaz calc prepaid-expense --amount 12000 --periods 12 [--frequency monthly|quarterly] [--start-date 2025-01-01] [--currency SGD] [--json]
|
|
139
|
+
|
|
140
|
+
# Deferred revenue recognition
|
|
141
|
+
jaz calc deferred-revenue --amount 36000 --periods 12 [--frequency monthly|quarterly] [--start-date 2025-01-01] [--currency SGD] [--json]
|
|
142
|
+
|
|
143
|
+
# ── Tier 3 Calculators ──────────────────────────────────────────
|
|
144
|
+
|
|
145
|
+
# FX revaluation — unrealized gain/loss on non-AR/AP items (IAS 21)
|
|
146
|
+
jaz calc fx-reval --amount 50000 --book-rate 1.35 --closing-rate 1.38 [--currency USD] [--base-currency SGD] [--json]
|
|
147
|
+
|
|
148
|
+
# Expected credit loss provision matrix (IFRS 9)
|
|
149
|
+
jaz calc ecl --current 100000 --30d 50000 --60d 20000 --90d 10000 --120d 5000 --rates 0.5,2,5,10,50 [--existing-provision 3000] [--currency SGD] [--json]
|
|
150
|
+
|
|
151
|
+
# ── Tier 4 Calculator ───────────────────────────────────────────
|
|
152
|
+
|
|
153
|
+
# IAS 37 provision PV + discount unwinding schedule
|
|
154
|
+
jaz calc provision --amount 500000 --rate 4 --term 60 [--start-date 2025-01-01] [--currency SGD] [--json]
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Blueprint Output (`--json`)
|
|
158
|
+
|
|
159
|
+
Every calculator's `--json` output includes a `blueprint` object — a complete execution plan that an AI agent or human can follow to create the capsule and post all transactions in Jaz:
|
|
160
|
+
|
|
161
|
+
```json
|
|
162
|
+
{
|
|
163
|
+
"type": "loan",
|
|
164
|
+
"currency": "SGD",
|
|
165
|
+
"blueprint": {
|
|
166
|
+
"capsuleType": "Loan Repayment",
|
|
167
|
+
"capsuleName": "Bank Loan — SGD 100,000 — 6% — 60 months",
|
|
168
|
+
"tags": ["Bank Loan"],
|
|
169
|
+
"customFields": { "Loan Reference": null },
|
|
170
|
+
"steps": [
|
|
171
|
+
{
|
|
172
|
+
"step": 1,
|
|
173
|
+
"action": "journal",
|
|
174
|
+
"description": "Loan disbursement",
|
|
175
|
+
"date": "2025-01-01",
|
|
176
|
+
"lines": [
|
|
177
|
+
{ "account": "Cash / Bank Account", "debit": 100000, "credit": 0 },
|
|
178
|
+
{ "account": "Loan Payable", "debit": 0, "credit": 100000 }
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**Math guarantees:**
|
|
187
|
+
- Uses `financial` npm package (TypeScript port of numpy-financial) for PV, PMT — no hand-rolled TVM
|
|
188
|
+
- 2 decimal places per period, final period closes balance to exactly $0.00
|
|
189
|
+
- Input validation with clear error messages (negative values, invalid dates, salvage > cost)
|
|
190
|
+
- DDB→SL switch when straight-line >= declining balance or when DDB would breach salvage floor
|
|
191
|
+
- Journal entries balanced (sum of debits = sum of credits in every step)
|
|
82
192
|
|
|
83
193
|
## Cross-References
|
|
84
194
|
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Recipe: Bad Debt Provision / Expected Credit Loss (IFRS 9)
|
|
2
|
+
|
|
3
|
+
## Scenario
|
|
4
|
+
|
|
5
|
+
Your company has $185,000 in trade receivables across five aging buckets. IFRS 9.5.5.15 requires you to recognize lifetime expected credit losses using the simplified approach (provision matrix). You apply historical loss rates to each aging bucket, calculate the total required allowance, compare it to the existing provision balance, and post a journal for the difference.
|
|
6
|
+
|
|
7
|
+
**Pattern:** Manual journal + capsule (provision amount recalculated each quarter)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Accounts Involved
|
|
12
|
+
|
|
13
|
+
| Account | Type | Subtype | Role |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| Bad Debt Expense | Expense | Expense | Period charge for provision increase |
|
|
16
|
+
| Allowance for Doubtful Debts | Asset | Current Asset (contra) | Contra-asset reducing receivables on balance sheet |
|
|
17
|
+
| Accounts Receivable | Asset | Current Asset | Trade receivables (affected on write-off only) |
|
|
18
|
+
|
|
19
|
+
> **Note on write-offs:** When a specific debt is confirmed uncollectible, the write-off journal is: Dr Allowance for Doubtful Debts / Cr Accounts Receivable. Use the `DEBT_WRITE_OFF` payment method in Jaz to record this against the specific invoice.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Journal Entries
|
|
24
|
+
|
|
25
|
+
### Step 1: Calculate Provision Matrix
|
|
26
|
+
|
|
27
|
+
Run the aged receivables report and apply loss rates:
|
|
28
|
+
|
|
29
|
+
| Aging Bucket | Balance | Loss Rate | ECL |
|
|
30
|
+
|---|---|---|---|
|
|
31
|
+
| Current (not overdue) | | *%* | |
|
|
32
|
+
| 1-30 days overdue | | *%* | |
|
|
33
|
+
| 31-60 days overdue | | *%* | |
|
|
34
|
+
| 61-90 days overdue | | *%* | |
|
|
35
|
+
| 91+ days overdue | | *%* | |
|
|
36
|
+
| **Total** | | | **Total ECL** |
|
|
37
|
+
|
|
38
|
+
### Step 2: Provision Adjustment
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
Adjustment = Total ECL − Existing Provision Balance
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**If increase (ECL > existing provision):**
|
|
45
|
+
|
|
46
|
+
| Line | Account | Debit | Credit |
|
|
47
|
+
|---|---|---|---|
|
|
48
|
+
| 1 | Bad Debt Expense | *adjustment* | |
|
|
49
|
+
| 2 | Allowance for Doubtful Debts | | *adjustment* |
|
|
50
|
+
|
|
51
|
+
**If release (ECL < existing provision):**
|
|
52
|
+
|
|
53
|
+
| Line | Account | Debit | Credit |
|
|
54
|
+
|---|---|---|---|
|
|
55
|
+
| 1 | Allowance for Doubtful Debts | *adjustment* | |
|
|
56
|
+
| 2 | Bad Debt Expense | | *adjustment* |
|
|
57
|
+
|
|
58
|
+
### Step 3: Write-Off (when confirmed uncollectible)
|
|
59
|
+
|
|
60
|
+
Use the `DEBT_WRITE_OFF` payment method against the specific invoice:
|
|
61
|
+
|
|
62
|
+
| Line | Account | Debit | Credit |
|
|
63
|
+
|---|---|---|---|
|
|
64
|
+
| 1 | Allowance for Doubtful Debts | *write-off amount* | |
|
|
65
|
+
| 2 | Accounts Receivable | | *write-off amount* |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Capsule Structure
|
|
70
|
+
|
|
71
|
+
**Capsule:** "ECL Provision — Q4 2025"
|
|
72
|
+
**Capsule Type:** "ECL Provision"
|
|
73
|
+
|
|
74
|
+
Contents:
|
|
75
|
+
- 1 provision adjustment journal per quarter
|
|
76
|
+
- Write-off entries as they occur
|
|
77
|
+
- **Total entries:** Varies (typically 1 per quarter + write-offs)
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Worked Example
|
|
82
|
+
|
|
83
|
+
**Setup:**
|
|
84
|
+
- Reporting date: December 31, 2025
|
|
85
|
+
- Existing provision balance: $3,000
|
|
86
|
+
|
|
87
|
+
**Aged receivables and loss rates:**
|
|
88
|
+
|
|
89
|
+
| Aging Bucket | Balance | Loss Rate | ECL |
|
|
90
|
+
|---|---|---|---|
|
|
91
|
+
| Current | $100,000 | 0.5% | $500 |
|
|
92
|
+
| 1-30 days | $50,000 | 2% | $1,000 |
|
|
93
|
+
| 31-60 days | $20,000 | 5% | $1,000 |
|
|
94
|
+
| 61-90 days | $10,000 | 10% | $1,000 |
|
|
95
|
+
| 91+ days | $5,000 | 50% | $2,500 |
|
|
96
|
+
| **Total** | **$185,000** | **3.24%** | **$6,000** |
|
|
97
|
+
|
|
98
|
+
**Adjustment:**
|
|
99
|
+
```
|
|
100
|
+
Required provision: $6,000
|
|
101
|
+
Existing provision: $3,000
|
|
102
|
+
Increase needed: $3,000
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Dec 31, 2025 — Provision journal:**
|
|
106
|
+
- Dr Bad Debt Expense $3,000
|
|
107
|
+
- Cr Allowance for Doubtful Debts $3,000
|
|
108
|
+
- Description: "ECL provision increase — Q4 2025"
|
|
109
|
+
- Assign to capsule
|
|
110
|
+
|
|
111
|
+
**Use the calculator:** `jaz calc ecl --current 100000 --30d 50000 --60d 20000 --90d 10000 --120d 5000 --rates 0.5,2,5,10,50 --existing-provision 3000`
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Enrichment Suggestions
|
|
116
|
+
|
|
117
|
+
| Enrichment | Value | Why |
|
|
118
|
+
|---|---|---|
|
|
119
|
+
| Tracking Tag | "ECL" | Filter all provision-related entries |
|
|
120
|
+
| Tracking Tag | "Bad Debt" | Broader filter including write-offs |
|
|
121
|
+
| Custom Field | "Reporting Period" → "Q4 2025" | Link to specific reporting quarter |
|
|
122
|
+
| Custom Field | "Aged Receivables Report Date" → "2025-12-31" | Audit trail to source report |
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Verification
|
|
127
|
+
|
|
128
|
+
1. **Trial Balance** → Allowance for Doubtful Debts should equal the Total ECL amount ($6,000) after the adjustment.
|
|
129
|
+
2. **P&L for the quarter** → Bad Debt Expense shows only the delta ($3,000), not the full provision.
|
|
130
|
+
3. **Balance Sheet** → Accounts Receivable minus Allowance for Doubtful Debts = net realizable value ($185,000 − $6,000 = $179,000).
|
|
131
|
+
4. **Group General Ledger by Capsule** → Shows all provision adjustments and write-offs for the period.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Variations
|
|
136
|
+
|
|
137
|
+
**First-time adoption:** If no existing provision, the full ECL amount is the initial charge. No "adjustment" calculation needed — just post the total.
|
|
138
|
+
|
|
139
|
+
**Quarterly vs. annual:** IFRS 9 requires assessment at each reporting date. Listed companies do quarterly; SMEs typically do semi-annually or annually. Adjust frequency to match your reporting calendar.
|
|
140
|
+
|
|
141
|
+
**Specific provision overlay:** In addition to the matrix (general provision), you may identify specific receivables that require a higher provision (e.g., a customer in bankruptcy). Add the specific overlay amount to the matrix total.
|
|
142
|
+
|
|
143
|
+
**Recovery of written-off debt:** If a previously written-off customer pays, record: Dr Cash / Cr Bad Debt Expense (or Cr Allowance). This can be handled as a regular receipt against the original invoice using the "Payment" method in Jaz.
|
|
144
|
+
|
|
145
|
+
**Loss rate calibration:** Loss rates should be based on historical data (typically 3-5 years of actual write-offs by aging bucket). Forward-looking adjustments may be needed for macroeconomic conditions (IFRS 9.5.5.17).
|
|
@@ -21,6 +21,13 @@ Capsules group related transactions into a single logical unit for a specific ac
|
|
|
21
21
|
- Loan Repayment
|
|
22
22
|
- Lease Accounting (IFRS 16)
|
|
23
23
|
- Depreciation (Non-Standard)
|
|
24
|
+
- FX Revaluation
|
|
25
|
+
- ECL Provision
|
|
26
|
+
- Employee Benefits
|
|
27
|
+
- Provisions
|
|
28
|
+
- Dividends
|
|
29
|
+
- Intercompany
|
|
30
|
+
- Capital Projects
|
|
24
31
|
|
|
25
32
|
**Reporting:** Capsules are the **only enrichment that supports group-by** in the General Ledger. Grouping by capsule shows the complete lifecycle of a multi-step transaction in one view.
|
|
26
33
|
|
|
@@ -106,7 +113,23 @@ Each recipe lists the specific CoA accounts needed. Common patterns:
|
|
|
106
113
|
| Right-of-Use Asset | Asset | Non-Current Asset | IFRS 16 |
|
|
107
114
|
| Lease Liability | Liability | Non-Current Liability | IFRS 16 |
|
|
108
115
|
| Lease Liability (Current) | Liability | Current Liability | IFRS 16 |
|
|
109
|
-
| Accumulated Depreciation | Asset | Non-Current Asset | Declining balance |
|
|
110
|
-
| Depreciation Expense | Expense | Expense | Declining balance |
|
|
116
|
+
| Accumulated Depreciation | Asset | Non-Current Asset | Declining balance, Capital WIP |
|
|
117
|
+
| Depreciation Expense | Expense | Expense | Declining balance, Capital WIP |
|
|
118
|
+
| FX Unrealized Gain | Revenue | Other Income | FX revaluation |
|
|
119
|
+
| FX Unrealized Loss | Expense | Other Expense | FX revaluation |
|
|
120
|
+
| Bad Debt Expense | Expense | Expense | ECL provision |
|
|
121
|
+
| Allowance for Doubtful Debts | Asset | Current Asset (contra) | ECL provision |
|
|
122
|
+
| Leave Expense | Expense | Expense | Employee accruals |
|
|
123
|
+
| Accrued Leave Liability | Liability | Current Liability | Employee accruals |
|
|
124
|
+
| Bonus Expense | Expense | Expense | Employee accruals |
|
|
125
|
+
| Accrued Bonus Liability | Liability | Current Liability | Employee accruals |
|
|
126
|
+
| Provision Expense | Expense | Expense | IAS 37 provisions |
|
|
127
|
+
| Provision for Obligations | Liability | Non-Current Liability | IAS 37 provisions |
|
|
128
|
+
| Finance Cost — Unwinding | Expense | Expense | IAS 37 provisions, Lease |
|
|
129
|
+
| Retained Earnings | Equity | Retained Earnings | Dividends |
|
|
130
|
+
| Dividends Payable | Liability | Current Liability | Dividends |
|
|
131
|
+
| Intercompany Receivable | Asset | Current Asset | Intercompany |
|
|
132
|
+
| Intercompany Payable | Liability | Current Liability | Intercompany |
|
|
133
|
+
| Capital Work-in-Progress | Asset | Non-Current Asset | Capital WIP |
|
|
111
134
|
|
|
112
135
|
**API:** `POST /chart-of-accounts` or `POST /chart-of-accounts/bulk-upsert`
|