jaz-clio 5.59.1 → 5.59.2

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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-api
3
- version: 5.59.1
3
+ version: 5.59.2
4
4
  description: >-
5
5
  Use this skill whenever you call, debug, or review code that touches the Jaz
6
6
  REST API. Covers field names, response shapes, 159 production gotchas, error
@@ -31,7 +31,7 @@ The rest of this skill — field names, gotchas, error catalog, dependency order
31
31
 
32
32
  **Core fundamentals (read first, every integration):** Identifiers & Dates 1–3; Names & Fields 9–13; Transaction Creation 14–16; Chart of Accounts 17–22; Payments / Cross-Currency 4–8; Journals & Cash 23–26; Credit Notes & Refunds 27–28; Reports 36–37; Tax Profile Scoping 100; Transaction References 104; Draft Finalization Pipeline 81–88; Jaz Magic / PDF-JPG 57–63; Currency Rates 39, 49, 105; Withholding Tax 45, 98.
33
33
 
34
- **Integration depth (API clients, pipelines, batch jobs, MCP/CLI):** Bulk Upsert (Items/Contacts/Rates); Background Jobs (filter `resourceId` not `jobId`); Export Records; Pagination (38); Search & Filter (50–56); Response Shape Gotchas (66–73); Cash Entry Response Shape (74–77); Entity Resolution (78–80); Bank Rules (89–90c); Fixed Assets (91–92c); Subscriptions & Scheduled (93–94); niche endpoints (95–102); Journals balance (103); Quick Fix (107, 111); TTB (108); Dynamic Strings (109–110); Sub-Resource Shapes (112); Nano-Classifier (113); Scheduler Asymmetry (114); Payment Record CRUD (115–117); Bulk Upserts transactions (118–122); Reconciliation write-side (123–127); Drafts lifecycle (128–135); Orders — Sale Quotes / Sale Orders / Purchase Requests / Purchase Orders (`references/orders.md`); Claims — records / lifecycle / bulk + conversion + payouts + Employees + Claim Settings (`references/claims.md`).
34
+ **Integration depth (API clients, pipelines, batch jobs, MCP/CLI):** Bulk Upsert (Items/Contacts/Rates); Background Jobs (filter `resourceId` not `jobId`); Export Records; Pagination (38); Search & Filter (50–56); Response Shape Gotchas (66–73); Cash Entry Response Shape (74–77); Entity Resolution (78–80); Bank Rules (89–90d); Fixed Assets (91–92c); Subscriptions & Scheduled (93–94); niche endpoints (95–102); Journals balance (103); Quick Fix (107, 111); TTB (108); Dynamic Strings (109–110); Sub-Resource Shapes (112); Nano-Classifier (113); Scheduler Asymmetry (114); Payment Record CRUD (115–117); Bulk Upserts transactions (118–122); Reconciliation write-side (123–127); Drafts lifecycle (128–135); Orders — Sale Quotes / Sale Orders / Purchase Requests / Purchase Orders (`references/orders.md`); Claims — records / lifecycle / bulk + conversion + payouts + Employees + Claim Settings (`references/claims.md`).
35
35
 
36
36
  ## When to Use This Skill
37
37
 
@@ -2535,4 +2535,82 @@ Append one review verb to a jot (append-only: annotates, never mutates).
2535
2535
 
2536
2536
  ---
2537
2537
 
2538
- *Last updated: 2026-07-11 (added Jots judgment journal, section 25). Previous: 2026-04-09 — Added: Contacts bulk-upsert (22), Background Jobs search (23), Export Records (24). 2026-03-13 — Payment record CRUD, nano-classifier, scheduler GET/PUT/DELETE.*
2538
+ ## 26. Bank Rules CRUD
2539
+
2540
+ A bank rule has two halves: the **WHEN** (`searchFilter`, the condition deciding which statement lines it applies to) and the **THEN** (`configuration.reconcileWithDirectCashEntry`, the allocation). **A rule with no `searchFilter` is never suggested** — auto-reconciliation only considers rules whose stored condition is non-null, so it exists, lists, and can be applied by hand, but is never offered. See jaz-api rules 90a-90d for the full payload.
2541
+
2542
+ ### GET /api/v1/bank-rules
2543
+
2544
+ Lists bank rules. Standard pagination (`limit`, `offset`).
2545
+
2546
+ ### GET /api/v1/bank-rules/:resourceId
2547
+
2548
+ Returns one rule, including its `searchFilter`.
2549
+
2550
+ ```json
2551
+ // Response (data):
2552
+ {
2553
+ "resourceId": "uuid",
2554
+ "name": "Grab rides",
2555
+ "actionType": "RECONCILE_WITH_DIRECT_CASH_ENTRY",
2556
+ "appliesToReconciliationAccount": { "code": "1001", "currencyCode": "SGD", "name": "Business Bank Account" },
2557
+ "searchFilter": {
2558
+ "version": 1,
2559
+ "raw": "description:grab",
2560
+ "parsed": { "description": { "contains": "grab" } }
2561
+ },
2562
+ "configuration": { "reconcileWithDirectCashEntry": { "...": "..." } }
2563
+ }
2564
+ ```
2565
+
2566
+ `appliesToReconciliationAccount` comes back as an OBJECT on read but is sent as a bare UUID on write, so a rule cannot be round-tripped without substituting it.
2567
+
2568
+ ### POST /api/v1/bank-rules
2569
+
2570
+ Creates a rule. `searchFilter` is optional on the wire and effectively required in practice.
2571
+
2572
+ ```json
2573
+ // Request:
2574
+ {
2575
+ "name": "Grab rides",
2576
+ "appliesToReconciliationAccount": "<bank-account-uuid>",
2577
+ "searchFilter": {
2578
+ "version": 1,
2579
+ "raw": "description:grab",
2580
+ "parsed": { "description": { "contains": "grab" } }
2581
+ },
2582
+ "configuration": {
2583
+ "reconcileWithDirectCashEntry": {
2584
+ "amountAllocationType": "PERCENTAGE",
2585
+ "reference": "AUTO-{{bankReference}}",
2586
+ "percentageAllocation": [{ "organizationAccountResourceId": "<acct-uuid>", "amount": 100 }]
2587
+ }
2588
+ }
2589
+ }
2590
+ ```
2591
+
2592
+ `searchFilter` rules: `version` must be `1`; `raw` must be PRESENT but **may be the empty string** (the app itself saves conditions that way); `parsed` must be a non-empty object. Condition fields are `description`, `extReference`, `extContactName`, `netAmount`, `valueDate`, plus the account's active custom Bank Fields. An unsupported field path does NOT error — the rule saves and then never fires.
2593
+
2594
+ ### PUT /api/v1/bank-rules/:resourceId
2595
+
2596
+ Full replacement: send `resourceId`, `appliesToReconciliationAccount` and the whole `configuration` every time.
2597
+
2598
+ **`searchFilter` is the one exception to full replacement.** Omit the key and the stored condition is KEPT; send `null` to remove it; send an object to replace it. This matters because the obvious read-modify-write (GET, change the name, PUT) drops the condition unless you carry it across — which silently stops the rule ever being suggested again.
2599
+
2600
+ ### DELETE /api/v1/bank-rules/:resourceId
2601
+
2602
+ Deletes a rule.
2603
+
2604
+ ### POST /api/v1/bank-rules/search
2605
+
2606
+ Searches rules. Filter fields: `name`, `resourceId`, `actionType`, `appliesToReconciliationAccount`, `businessTransactionType`, `reference`, plus `and`/`or`.
2607
+
2608
+ ```json
2609
+ { "filter": { "name": { "contains": "grab" } }, "sort": { "sortBy": ["name"], "order": "ASC" }, "limit": 100 }
2610
+ ```
2611
+
2612
+ **There is no filter on `searchFilter`**, so "which of my rules have no condition" cannot be asked server-side — list the rules and check the field client-side.
2613
+
2614
+ ---
2615
+
2616
+ *Last updated: 2026-09-13 (added Bank Rules CRUD, section 26). Previous: 2026-07-11 — added Jots judgment journal, section 25. Previous: 2026-04-09 — Added: Contacts bulk-upsert (22), Background Jobs search (23), Export Records (24). 2026-03-13 — Payment record CRUD, nano-classifier, scheduler GET/PUT/DELETE.*
@@ -167,7 +167,7 @@ Match bank statement lines to Jaz transactions to verify cash balances. This is
167
167
 
168
168
  **Bank Feeds**: Connect Airwallex, Aspire, Stripe, Wise, or Xendit for automated statement sync (up to 12 months history, daily auto-sync).
169
169
 
170
- **Bank Rules**: Auto-allocate amounts using percentage-only or fixed+percentage splits (max 10 fixed + 10 percentage lines). Support dynamic strings like `#{{bankReference}}`, `#{{payeeName}}`.
170
+ **Bank Rules**: Two halves. The WHEN is the inline `searchFilter` condition deciding which statement lines the rule applies to — without one the rule is never suggested under Apply Rule, only applied by hand. The THEN auto-allocates amounts using percentage-only or fixed+percentage splits (max 10 fixed + 10 percentage lines). Support dynamic strings `{{bankReference}}`, `{{bankPayee}}`, `{{bankDescription}}`.
171
171
 
172
172
  Statement amounts are recorded in the bank account's currency — no auto-conversion. Cross-currency transactions prompt for cash received/spent in statement currency. Reconciled transactions become uneditable (must reset to edit).
173
173
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-cli
3
- version: 5.59.1
3
+ version: 5.59.2
4
4
  description: >-
5
5
  Use this skill when running Clio CLI commands, building shell scripts with
6
6
  Clio, debugging auth issues, understanding --json output, paginating results,
@@ -259,7 +259,7 @@ Sending `lineItems[]` to the FLAT endpoint silently ignores them and creates a $
259
259
 
260
260
  **Contacts & Configuration**: `contacts`, `contact-groups`, `accounts`, `items`, `tags`, `currencies`, `currency-rates`, `tax-profiles`, `custom-fields`, `bookmarks`, `nano-classifiers`
261
261
 
262
- **Bank & Reconciliation**: `bank` (accounts, get, records, add-records, import, auto-recon), `bank-rules`
262
+ **Bank & Reconciliation**: `bank` (accounts, get, records, add-records, import, auto-recon), `bank-rules` (a rule needs `--search-filter` or auto-reconciliation never suggests it; on `update`, omitting the flag keeps the stored condition and `--clear-search-filter` removes it)
263
263
 
264
264
  **Employee Claims & Settings**: `claims` (lifecycle + `create` + `from-attachment` + convert + payout), `employees`, `claim-types`, `claim-profiles`, `posting-rules`
265
265
 
@@ -318,14 +318,16 @@ EmploymentType: `FULL_TIME` · `PART_TIME` · `CONTRACTOR` · `INTERN` · `TEMPO
318
318
  | Subcommand | Key flags |
319
319
  |------------|-----------|
320
320
  | `list` | `--limit`, `--offset`, `--all`, `--format`, `--json` |
321
- | `get <id>` | `--json` |
322
- | `search <query>` | `--limit`, `--offset` |
323
- | `create` | `--input` (JSON body with rule definition) |
324
- | `update <id>` | `--input` |
321
+ | `get <id>` | `--json`. Prints the rule's condition, or says it has none |
322
+ | `search <query>` | `--limit`, `--offset`, `--account` |
323
+ | `create` | `--name`, `--account`, `--config`, `--search-filter <json>`, `--input` |
324
+ | `update <id>` | `--account` (required), `--name`, `--config`, `--search-filter <json>`, `--clear-search-filter`, `--input` |
325
325
  | `delete <id>` | |
326
326
 
327
327
  Dynamic strings in rules: `{{bankReference}}`, `{{bankPayee}}`, `{{bankDescription}}`
328
328
 
329
+ **A rule without a condition is never suggested.** `--search-filter` is the rule's WHEN side; auto-reconciliation only considers rules whose stored condition is non-null, so a rule created without one exists, lists and applies by hand but is never offered. On `update` the condition is the one field a full-replacement PUT need not resend: **omit `--search-filter` and the stored condition is kept**, pass `--clear-search-filter` to remove it. Shape: `{"version":1,"raw":"description:grab","parsed":{"description":{"contains":"grab"}}}` — `raw` may be blank.
330
+
329
331
  ---
330
332
 
331
333
  ## Fixed Assets & Inventory
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-conversion
3
- version: 5.59.1
3
+ version: 5.59.2
4
4
  description: >-
5
5
  Use this skill when migrating accounting data into Jaz — importing from Xero,
6
6
  QuickBooks, Sage, MYOB, or Excel exports. Covers the full conversion pipeline:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-kit
3
- version: 5.59.1
3
+ version: 5.59.2
4
4
  description: >-
5
5
  Use this skill when an accountant, bookkeeper, or owner is running real books
6
6
  in Jaz across one or more organizations from the terminal — setting up a
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-pseudo-sql
3
- version: 5.59.1
3
+ version: 5.59.2
4
4
  description: >-
5
5
  Use this skill when answering ad-hoc data questions that aren't covered by
6
6
  download_export (canonical reports — anomaly, audit, aging, P&L, BS, GL,
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-jobs
3
- version: 5.59.1
3
+ version: 5.59.2
4
4
  description: >-
5
5
  Use this skill for recurring accounting workflows — month/quarter/year-end
6
6
  close, bank reconciliation, GST/VAT filing, payment runs, credit control,
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-recipes
3
- version: 5.59.1
3
+ version: 5.59.2
4
4
  description: >-
5
5
  Use this skill when modeling complex multi-step accounting transactions —
6
6
  anything that spans multiple periods, involves changing amounts, or requires