jaz-clio 4.48.10 → 4.49.1
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 +1 -1
- package/assets/skills/api/references/search-enums.md +479 -0
- package/assets/skills/cli/SKILL.md +1 -1
- package/assets/skills/conversion/SKILL.md +1 -1
- package/assets/skills/jobs/SKILL.md +1 -1
- package/assets/skills/transaction-recipes/SKILL.md +1 -1
- package/cli.mjs +392 -385
- package/help-center-mirror/ai-agents.md +142 -0
- package/help-center-mirror/approvals.md +68 -0
- package/help-center-mirror/bank-reconciliations.md +662 -0
- package/help-center-mirror/bills.md +1122 -0
- package/help-center-mirror/cashflow.md +105 -0
- package/help-center-mirror/collaboration.md +58 -0
- package/help-center-mirror/contacts.md +199 -0
- package/help-center-mirror/customer-credits.md +745 -0
- package/help-center-mirror/deposits.md +75 -0
- package/help-center-mirror/get-started.md +478 -0
- package/help-center-mirror/help-center-embeddings.json +1 -0
- package/help-center-mirror/help-center-index.json +1 -0
- package/help-center-mirror/import-data.md +256 -0
- package/help-center-mirror/index.md +22 -0
- package/help-center-mirror/invoices.md +1389 -0
- package/help-center-mirror/journal-entries.md +350 -0
- package/help-center-mirror/products.md +201 -0
- package/help-center-mirror/reports.md +852 -0
- package/help-center-mirror/security-privacy.md +42 -0
- package/help-center-mirror/settings.md +1778 -0
- package/help-center-mirror/supplier-credits.md +703 -0
- package/package.json +1 -1
|
@@ -0,0 +1,479 @@
|
|
|
1
|
+
# Jaz API — Search Enum Values & Field Reference
|
|
2
|
+
|
|
3
|
+
> Valid enum values for every searchable field, organized by entity.
|
|
4
|
+
> For filter syntax and operators, see [search-reference.md](./search-reference.md).
|
|
5
|
+
> For complex composition and recipes, see [search-recipes.md](./search-recipes.md).
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Universal Enums
|
|
10
|
+
|
|
11
|
+
These values are shared across multiple entities.
|
|
12
|
+
|
|
13
|
+
### approvalStatus
|
|
14
|
+
|
|
15
|
+
| Value | Meaning |
|
|
16
|
+
|-------|---------|
|
|
17
|
+
| `PENDING` | Awaiting approval |
|
|
18
|
+
| `APPROVED` | Approved |
|
|
19
|
+
|
|
20
|
+
Used by: invoices, bills, customer credit notes, supplier credit notes.
|
|
21
|
+
|
|
22
|
+
### paymentMethod
|
|
23
|
+
|
|
24
|
+
| Value |
|
|
25
|
+
|-------|
|
|
26
|
+
| `CASH` |
|
|
27
|
+
| `CREDIT_CARD` |
|
|
28
|
+
| `BANK_TRANSFER` |
|
|
29
|
+
| `E_WALLET` |
|
|
30
|
+
| `CHEQUE` |
|
|
31
|
+
| `WITHHOLDING_TAX_CERTIFICATE` |
|
|
32
|
+
| `CLEARING_SETTLEMENT` |
|
|
33
|
+
| `DEBT_WRITE_OFF` |
|
|
34
|
+
| `INTER_COMPANY` |
|
|
35
|
+
| `OTHER` |
|
|
36
|
+
| `PAYMENT_GATEWAY` |
|
|
37
|
+
|
|
38
|
+
Used by: sale payments, purchase payments, batch payments, credit note refunds.
|
|
39
|
+
|
|
40
|
+
### currencyCode
|
|
41
|
+
|
|
42
|
+
ISO 4217 3-letter codes. Common values: `SGD`, `USD`, `PHP`, `MYR`, `IDR`, `THB`, `VND`, `EUR`, `GBP`, `AUD`, `HKD`, `JPY`, `CNY`, `INR`, `KRW`, `NZD`, `CAD`, `CHF`.
|
|
43
|
+
|
|
44
|
+
Used by: invoices, bills, credit notes, journals, items, scheduled transactions, fixed assets.
|
|
45
|
+
|
|
46
|
+
### accountClass (Chart of Accounts)
|
|
47
|
+
|
|
48
|
+
| Value |
|
|
49
|
+
|-------|
|
|
50
|
+
| `Asset` |
|
|
51
|
+
| `Liability` |
|
|
52
|
+
| `Equity` |
|
|
53
|
+
| `Revenue` |
|
|
54
|
+
| `Expense` |
|
|
55
|
+
|
|
56
|
+
### accountType (Chart of Accounts)
|
|
57
|
+
|
|
58
|
+
| Value |
|
|
59
|
+
|-------|
|
|
60
|
+
| `Bank Accounts` |
|
|
61
|
+
| `Cash and Cash Equivalents` |
|
|
62
|
+
| `Current Assets` |
|
|
63
|
+
| `Non-Current Assets` |
|
|
64
|
+
| `Current Liabilities` |
|
|
65
|
+
| `Non-Current Liabilities` |
|
|
66
|
+
| `Equity` |
|
|
67
|
+
| `Revenue` |
|
|
68
|
+
| `Cost of Goods Sold` |
|
|
69
|
+
| `Operating Expenses` |
|
|
70
|
+
| `Other Income` |
|
|
71
|
+
| `Other Expenses` |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Per-Entity Enum Values
|
|
76
|
+
|
|
77
|
+
### 1. Invoices (`POST /api/v1/invoices/search`)
|
|
78
|
+
|
|
79
|
+
| Field | Valid Values |
|
|
80
|
+
|-------|-------------|
|
|
81
|
+
| `status` | `DRAFT`, `UNPAID`, `PARTIALLY_PAID`, `PAID`, `VOID` |
|
|
82
|
+
| `approvalStatus` | `PENDING`, `APPROVED` |
|
|
83
|
+
| `currencyCode` | ISO 4217 (see above) |
|
|
84
|
+
| `terms` | `0`, `7`, `15`, `30`, `45`, `60` (integer — payment terms in days) |
|
|
85
|
+
|
|
86
|
+
**Amount fields**: `totalAmount`, `balanceAmount`, `reconciledAmount`, `paymentRecordedAmount`, `creditAppliedAmount`
|
|
87
|
+
**Date fields**: `valueDate`, `dueDate`, `createdAt` (DateTime), `updatedAt` (DateTime), `approvedAt`, `submittedAt`
|
|
88
|
+
|
|
89
|
+
> **Note**: `OVERDUE` is not a direct status value. To find overdue invoices, use a compound filter: `status IN [UNPAID, PARTIALLY_PAID] AND dueDate < {today}`. See [search-recipes.md](./search-recipes.md#virtual-statuses).
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### 2. Bills (`POST /api/v1/bills/search`)
|
|
94
|
+
|
|
95
|
+
| Field | Valid Values |
|
|
96
|
+
|-------|-------------|
|
|
97
|
+
| `status` | `DRAFT`, `UNPAID`, `PARTIALLY_PAID`, `PAID`, `VOID` |
|
|
98
|
+
| `approvalStatus` | `PENDING`, `APPROVED` |
|
|
99
|
+
| `currencyCode` | ISO 4217 |
|
|
100
|
+
| `terms` | `0`, `7`, `15`, `30`, `45`, `60` |
|
|
101
|
+
|
|
102
|
+
**Amount fields**: `totalAmount`, `balanceAmount`, `reconciledAmount`, `paymentRecordedAmount`, `creditAppliedAmount`
|
|
103
|
+
**Date fields**: `valueDate`, `dueDate`, `createdAt` (DateTime), `updatedAt` (DateTime), `approvedAt`, `submittedAt`
|
|
104
|
+
|
|
105
|
+
> Same status values and structure as invoices. Same overdue caveat applies.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### 3. Customer Credit Notes (`POST /api/v1/customer-credit-notes/search`)
|
|
110
|
+
|
|
111
|
+
| Field | Valid Values |
|
|
112
|
+
|-------|-------------|
|
|
113
|
+
| `status` | `DRAFT`, `UNAPPLIED`, `PARTIALLY_APPLIED`, `APPLIED`, `VOID` |
|
|
114
|
+
| `approvalStatus` | `PENDING`, `APPROVED` |
|
|
115
|
+
| `currencyCode` | ISO 4217 |
|
|
116
|
+
|
|
117
|
+
**Date fields**: `valueDate`, `createdAt` (DateTime), `updatedAt` (DateTime), `approvedAt`, `submittedAt`
|
|
118
|
+
|
|
119
|
+
> **No amount filter fields** — use `totalAmount` only via sort. To find available credits, filter `status IN [UNAPPLIED, PARTIALLY_APPLIED]`.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### 4. Supplier Credit Notes (`POST /api/v1/supplier-credit-notes/search`)
|
|
124
|
+
|
|
125
|
+
| Field | Valid Values |
|
|
126
|
+
|-------|-------------|
|
|
127
|
+
| `status` | `DRAFT`, `UNAPPLIED`, `PARTIALLY_APPLIED`, `APPLIED`, `VOID` |
|
|
128
|
+
| `approvalStatus` | `PENDING`, `APPROVED` |
|
|
129
|
+
| `currencyCode` | ISO 4217 |
|
|
130
|
+
|
|
131
|
+
**Date fields**: `valueDate`, `createdAt` (DateTime), `updatedAt` (DateTime), `approvedAt`, `submittedAt`
|
|
132
|
+
|
|
133
|
+
> Same structure as customer credit notes.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
### 5. Journals (`POST /api/v1/journals/search`)
|
|
138
|
+
|
|
139
|
+
| Field | Valid Values |
|
|
140
|
+
|-------|-------------|
|
|
141
|
+
| `status` | `DRAFT`, `ACTIVE`, `VOID` |
|
|
142
|
+
| `type` | `JOURNAL_MANUAL`, `JOURNAL_DIRECT_CASH_IN`, `JOURNAL_DIRECT_CASH_OUT`, `JOURNAL_CASHFLOW`, `JOURNAL_CASH_TRANSFER`, `JOURNAL_TRANSFER_BALANCE`, `JOURNAL_CASHFLOW_BANK_RECON`, `JOURNAL_CASHFLOW_ADJUSTMENT` |
|
|
143
|
+
| `templateType` | `CASH_TRANSFER`, `DIRECT_CASH_IN`, `DIRECT_CASH_OUT` |
|
|
144
|
+
|
|
145
|
+
**Date fields**: `valueDate`, `createdAt` (DateTime), `updatedAt` (DateTime)
|
|
146
|
+
**String fields**: `reference`, `tags`, `internalNotes`
|
|
147
|
+
|
|
148
|
+
> **Gotcha**: Journal status uses `ACTIVE` (not `APPROVED` or `POSTED`). Use `type` to distinguish manual journals from system-generated ones.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
### 6. Contacts (`POST /api/v1/contacts/search`)
|
|
153
|
+
|
|
154
|
+
| Field | Valid Values |
|
|
155
|
+
|-------|-------------|
|
|
156
|
+
| `status` | `ACTIVE`, `INACTIVE` |
|
|
157
|
+
| `customer` | `true`, `false` (BooleanExpression) |
|
|
158
|
+
| `supplier` | `true`, `false` (BooleanExpression) |
|
|
159
|
+
|
|
160
|
+
**String fields**: `name`, `email`, `taxId`, `registrationId`, `website`, `notes`, `networkId`, `organizationId`
|
|
161
|
+
**Date fields**: `createdAt`, `updatedAt`
|
|
162
|
+
|
|
163
|
+
> **Gotcha**: Use `customer` (not `isCustomer`) and `supplier` (not `isSupplier`). These are boolean filters: `{ "customer": { "eq": true } }`.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
### 7. Items (`POST /api/v1/items/search`)
|
|
168
|
+
|
|
169
|
+
| Field | Valid Values |
|
|
170
|
+
|-------|-------------|
|
|
171
|
+
| `status` | `ACTIVE`, `INACTIVE` |
|
|
172
|
+
| `itemCategory` | `INVENTORY`, `NON_INVENTORY` |
|
|
173
|
+
| `appliesToSale` | `true`, `false` (BooleanExpression) |
|
|
174
|
+
| `appliesToPurchase` | `true`, `false` (BooleanExpression) |
|
|
175
|
+
|
|
176
|
+
**String fields**: `resourceId`, `saleAccountResourceId`, `purchaseAccountResourceId`
|
|
177
|
+
|
|
178
|
+
> **Gotcha**: Sort uses `internalName` and `itemCode` — these are sort-only fields, NOT available as filter fields.
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
### 8. Chart of Accounts (`POST /api/v1/chart-of-accounts/search`)
|
|
183
|
+
|
|
184
|
+
| Field | Valid Values |
|
|
185
|
+
|-------|-------------|
|
|
186
|
+
| `status` | `ACTIVE`, `INACTIVE` |
|
|
187
|
+
| `accountClass` | `Asset`, `Liability`, `Equity`, `Revenue`, `Expense` |
|
|
188
|
+
| `accountType` | See 12 values in Universal Enums above |
|
|
189
|
+
| `appliesTo` | `Sales & Sale Credits`, `Purchases & Purchase Credits`, `Payments` |
|
|
190
|
+
| `controlFlag` | `true`, `false` (BooleanExpression) |
|
|
191
|
+
|
|
192
|
+
**String fields**: `code`, `name`, `currencyCode`, `sgaName`
|
|
193
|
+
**Date fields**: `createdAt`, `updatedAt`
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
### 9. Bank Records (`POST /api/v1/bank-records/:accountResourceId/search`)
|
|
198
|
+
|
|
199
|
+
| Field | Valid Values |
|
|
200
|
+
|-------|-------------|
|
|
201
|
+
| `status` | `RECONCILED`, `UNRECONCILED`, `ARCHIVED`, `POSSIBLE_DUPLICATE` |
|
|
202
|
+
|
|
203
|
+
**Amount fields**: `netAmount`
|
|
204
|
+
**Date fields**: `valueDate`
|
|
205
|
+
**String fields**: `description`, `extAccountNumber`, `extContactName`, `extReference`
|
|
206
|
+
**Nested**: `reconciledBy` (UserNestedFilter)
|
|
207
|
+
|
|
208
|
+
> **Gotcha**: Requires `accountResourceId` as a **path parameter** (UUID of a bank-type CoA account). This is NOT a filter field — it's in the URL.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
### 10. Cashflow Transactions (`POST /api/v1/cashflow-transactions/search`)
|
|
213
|
+
|
|
214
|
+
| Field | Valid Values |
|
|
215
|
+
|-------|-------------|
|
|
216
|
+
| `direction` | `PAYIN`, `PAYOUT` |
|
|
217
|
+
| `businessTransactionType` | `SALE`, `PURCHASE`, `SALE_CREDIT_NOTE`, `PURCHASE_CREDIT_NOTE`, `JOURNAL_MANUAL`, `JOURNAL_DIRECT_CASH_IN`, `JOURNAL_DIRECT_CASH_OUT`, `JOURNAL_CASHFLOW`, `JOURNAL_CASH_TRANSFER`, `JOURNAL_CASHFLOW_BANK_RECON`, `JOURNAL_CASHFLOW_ADJUSTMENT`, `PAYMENT_SALE`, `PAYMENT_PURCHASE`, `PAYMENT_SALE_CREDIT_NOTE`, `PAYMENT_PURCHASE_CREDIT_NOTE`, `BATCH_SALE`, `BATCH_PURCHASE`, `FIXED_ASSETS` |
|
|
218
|
+
| `businessTransactionStatus` | `ACTIVE`, `UNPAID`, `PARTIALLY_PAID`, `PAID`, `VOID`, `DRAFT`, `UNAPPLIED`, `PARTIALLY_APPLIED`, `APPLIED` |
|
|
219
|
+
|
|
220
|
+
**Amount fields**: `totalAmount`, `balanceAmount`
|
|
221
|
+
**Date fields**: `valueDate`, `matchDate`
|
|
222
|
+
**String fields**: `businessTransactionReference`, `organizationAccountResourceId`, `bankStatementEntryResourceId`
|
|
223
|
+
**Nested**: `contact` (ContactNestedFilter), `account` (OrganizationAccountNestedFilter)
|
|
224
|
+
|
|
225
|
+
> **Gotcha**: `businessTransactionStatus` values vary by transaction type — invoices use UNPAID/PAID, credit notes use UNAPPLIED/APPLIED, journals use ACTIVE.
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
### 11. Tax Profiles (`POST /api/v1/tax-profiles/search`)
|
|
230
|
+
|
|
231
|
+
| Field | Valid Values |
|
|
232
|
+
|-------|-------------|
|
|
233
|
+
| `status` | `ACTIVE`, `INACTIVE` |
|
|
234
|
+
| `isDefault` | `true`, `false` (BooleanExpression) |
|
|
235
|
+
| `isShipping` | `true`, `false` (BooleanExpression) |
|
|
236
|
+
| `appliesToSale` | `true`, `false` (BooleanExpression) |
|
|
237
|
+
| `appliesToSaleCreditNote` | `true`, `false` (BooleanExpression) |
|
|
238
|
+
| `appliesToPurchase` | `true`, `false` (BooleanExpression) |
|
|
239
|
+
| `appliesToPurchaseCreditNote` | `true`, `false` (BooleanExpression) |
|
|
240
|
+
|
|
241
|
+
**Amount fields**: `vatValue`, `withholdingValue`
|
|
242
|
+
**String fields**: `name`, `description`, `taxTypeCode`, `taxTypeName`, `organizationResourceId`
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
### 12. Fixed Assets (`POST /api/v1/fixed-assets/search`)
|
|
247
|
+
|
|
248
|
+
| Field | Valid Values |
|
|
249
|
+
|-------|-------------|
|
|
250
|
+
| `status` | `ACTIVE`, `DRAFT`, `DISPOSED`, `SOLD`, `DISCARDED`, `COMPLETED`, `ONGOING` |
|
|
251
|
+
| `category` | `TANGIBLE`, `INTANGIBLE` |
|
|
252
|
+
| `depreciationMethod` | `NO_DEPRECIATION`, `STRAIGHT_LINE` |
|
|
253
|
+
| `disposalType` | `SOLD`, `DISCARDED` |
|
|
254
|
+
| `registrationType` | `NEW`, `TRANSFER` |
|
|
255
|
+
|
|
256
|
+
**Amount fields**: `purchaseAmount`, `bookValueAmount`, `netBookAtDisposalAmount`, `assetDisposalGainLossAmount`
|
|
257
|
+
**Date fields**: `purchaseDate`, `disposalValueDate`, `depreciationStartDate`, `depreciationEndDate`
|
|
258
|
+
**String fields**: `name`, `reference`, `typeName`, `typeCode`, `tags`, `currencyCode`, `purchaseBusinessTransactionType`
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
### 13. Fixed Asset Types (`POST /api/v1/fixed-assets-types/search`)
|
|
263
|
+
|
|
264
|
+
No enum fields. String filters only: `categoryCode`, `typeName`, `typeCode`, `resourceId`.
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
### 14. Scheduled Transactions (`POST /api/v1/scheduled-transaction/search`)
|
|
269
|
+
|
|
270
|
+
| Field | Valid Values |
|
|
271
|
+
|-------|-------------|
|
|
272
|
+
| `status` | `ACTIVE`, `INACTIVE` |
|
|
273
|
+
| `subscriptionStatus` | `ACTIVE`, `CANCELLED`, `INACTIVE` |
|
|
274
|
+
| `interval` | `ONE_TIME`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY` |
|
|
275
|
+
|
|
276
|
+
**Amount fields**: `totalAmount`, `paymentRecordedAmount`
|
|
277
|
+
**Date fields**: `startDate`, `endDate`, `lastScheduleDate`, `nextScheduleDate`, `proratedStartDate`
|
|
278
|
+
**String fields**: `businessTransactionReference`, `businessTransactionResourceId`, `businessTransactionType`, `schedulerType`, `contactResourceId`, `currencyCode`, `referenceGenerationMode`
|
|
279
|
+
**Nested**: `contact` (ContactNestedFilter)
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
### 15. Tags (`POST /api/v1/tags/search`)
|
|
284
|
+
|
|
285
|
+
| Field | Valid Values |
|
|
286
|
+
|-------|-------------|
|
|
287
|
+
| `status` | `ACTIVE`, `INACTIVE` |
|
|
288
|
+
|
|
289
|
+
**String fields**: `tagName`, `organizationResourceId`
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
### 16. Custom Fields (`POST /api/v1/custom-fields/search`)
|
|
294
|
+
|
|
295
|
+
| Field | Valid Values |
|
|
296
|
+
|-------|-------------|
|
|
297
|
+
| `status` | `ACTIVE`, `INACTIVE` |
|
|
298
|
+
| `datatypeCode` | `TEXT`, `NUMBER`, `BOOLEAN`, `DATE`, `LINK` |
|
|
299
|
+
|
|
300
|
+
**String fields**: `customFieldName`, `organizationResourceId`, `applyToPurchase`, `applyToPurchaseCreditNote`, `applyToSales`, `applyToSaleCreditNote`, `appliesToFixedAssets`, `appliesToItems`, `applyToCreditNote`, `applyToPayment`
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
### 17. Contact Groups (`POST /api/v1/contact-groups/search`)
|
|
305
|
+
|
|
306
|
+
No enum fields. String filters only: `resourceId`, `name`.
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
### 18. Capsules (`POST /api/v1/capsules/search`)
|
|
311
|
+
|
|
312
|
+
| Field | Valid Values |
|
|
313
|
+
|-------|-------------|
|
|
314
|
+
| `status` | `ACTIVE`, `INACTIVE` |
|
|
315
|
+
|
|
316
|
+
**Date fields**: `startDate`, `endDate`
|
|
317
|
+
**String fields**: `title`, `description`
|
|
318
|
+
|
|
319
|
+
> **Gotcha**: Capsules use `title` (not `name`) for the display name.
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
### 19. Capsule Types (`POST /api/v1/capsuleTypes/search`)
|
|
324
|
+
|
|
325
|
+
| Field | Valid Values |
|
|
326
|
+
|-------|-------------|
|
|
327
|
+
| `status` | `ACTIVE`, `INACTIVE` |
|
|
328
|
+
| `controlFlag` | `true`, `false` (BooleanExpression) |
|
|
329
|
+
| `isLocked` | `true`, `false` (BooleanExpression) |
|
|
330
|
+
|
|
331
|
+
**String fields**: `name`, `displayName`, `description`
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
### 20. Nano Classifiers (`POST /api/v1/nano-classifiers/search`)
|
|
336
|
+
|
|
337
|
+
No enum fields on the top level. String filters: `resourceId`, `type`.
|
|
338
|
+
**Nested**: `classes` (className, resourceId).
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
### 21. Organization Users (`POST /api/v1/organization-users/search`)
|
|
343
|
+
|
|
344
|
+
| Field | Valid Values |
|
|
345
|
+
|-------|-------------|
|
|
346
|
+
| `status` | `ACTIVE`, `INACTIVE` |
|
|
347
|
+
| `role` | `ADMIN`, `CUSTOM_USER` |
|
|
348
|
+
|
|
349
|
+
**String fields**: `name`, `email`
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
### 22. Bank Rules (`POST /api/v1/bank-rules/search`)
|
|
354
|
+
|
|
355
|
+
No documented enum values for `actionType` or `businessTransactionType` in the filter schema. Use string operators.
|
|
356
|
+
|
|
357
|
+
**String fields**: `name`, `reference`, `resourceId`, `appliesToReconciliationAccount`, `actionType`, `businessTransactionType`
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
### 23. Purchase Items (`POST /api/v1/purchase-items/search`)
|
|
362
|
+
|
|
363
|
+
No enum fields. Plain string filters (no operators): `currencyCode`, `name`, `purchaseResourceId`, `resourceId`, `reference`.
|
|
364
|
+
|
|
365
|
+
> **Gotcha**: This endpoint uses **plain string matching** — filter values are NOT expression objects. `{ "name": "Widget" }` instead of `{ "name": { "contains": "Widget" } }`.
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
## Nested Filter Paths
|
|
370
|
+
|
|
371
|
+
Several endpoints support filtering on nested relationships. The nested object wraps standard operators.
|
|
372
|
+
|
|
373
|
+
### contact (ContactNestedFilter)
|
|
374
|
+
|
|
375
|
+
Available on: invoices, bills, credit notes, journals, cashflow transactions, scheduled transactions.
|
|
376
|
+
|
|
377
|
+
| Nested Field | Type | Example |
|
|
378
|
+
|-------------|------|---------|
|
|
379
|
+
| `contact.name` | StringExpression | `{ "contact": { "name": { "contains": "Acme" } } }` |
|
|
380
|
+
| `contact.resourceId` | StringExpression | `{ "contact": { "resourceId": { "eq": "uuid" } } }` |
|
|
381
|
+
| `contact.status` | StringExpression | `{ "contact": { "status": { "eq": "ACTIVE" } } }` |
|
|
382
|
+
| `contact.taxId` | StringExpression | `{ "contact": { "taxId": { "contains": "T12" } } }` |
|
|
383
|
+
|
|
384
|
+
### account (OrganizationAccountNestedFilter)
|
|
385
|
+
|
|
386
|
+
Available on: cashflow transactions.
|
|
387
|
+
|
|
388
|
+
| Nested Field | Type | Example |
|
|
389
|
+
|-------------|------|---------|
|
|
390
|
+
| `account.accountType` | StringExpression | `{ "account": { "accountType": { "eq": "Bank Accounts" } } }` |
|
|
391
|
+
| `account.accountClass` | StringExpression | `{ "account": { "accountClass": { "eq": "Asset" } } }` |
|
|
392
|
+
| `account.code` | StringExpression | `{ "account": { "code": { "eq": "1000" } } }` |
|
|
393
|
+
| `account.name` | StringExpression | `{ "account": { "name": { "contains": "DBS" } } }` |
|
|
394
|
+
| `account.resourceId` | StringExpression | `{ "account": { "resourceId": { "eq": "uuid" } } }` |
|
|
395
|
+
|
|
396
|
+
### approvedBy / submittedBy / reconciledBy (UserNestedFilter)
|
|
397
|
+
|
|
398
|
+
Available on: invoices, bills, credit notes (approvedBy, submittedBy); bank records (reconciledBy).
|
|
399
|
+
|
|
400
|
+
| Nested Field | Type |
|
|
401
|
+
|-------------|------|
|
|
402
|
+
| `*.email` | StringExpression |
|
|
403
|
+
| `*.firstName` | StringExpression |
|
|
404
|
+
| `*.lastName` | StringExpression |
|
|
405
|
+
| `*.resourceId` | StringExpression |
|
|
406
|
+
| `*.status` | StringExpression |
|
|
407
|
+
|
|
408
|
+
Example: `{ "approvedBy": { "email": { "contains": "admin@" } } }`
|
|
409
|
+
|
|
410
|
+
### attachments (AttachmentNestedFilter)
|
|
411
|
+
|
|
412
|
+
Available on: invoices, bills.
|
|
413
|
+
|
|
414
|
+
| Nested Field | Type |
|
|
415
|
+
|-------------|------|
|
|
416
|
+
| `attachments.fileName` | StringExpression |
|
|
417
|
+
| `attachments.fileType` | StringExpression |
|
|
418
|
+
| `attachments.fileUrl` | StringExpression |
|
|
419
|
+
| `attachments.resourceId` | StringExpression |
|
|
420
|
+
|
|
421
|
+
To check if attachments exist: `{ "attachments": { "resourceId": { "isNull": "false" } } }`
|
|
422
|
+
To check no attachments: `{ "attachments": { "resourceId": { "isNull": "true" } } }`
|
|
423
|
+
|
|
424
|
+
### createdBy / updatedBy (JsonExpression)
|
|
425
|
+
|
|
426
|
+
Available on: invoices, bills.
|
|
427
|
+
|
|
428
|
+
Uses `jsonIn` / `jsonNotIn` operators with key-value pairs:
|
|
429
|
+
```json
|
|
430
|
+
{ "createdBy": { "jsonIn": [{ "key": "email", "value": "admin@company.com" }] } }
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
### creator (UserNestedFilter)
|
|
434
|
+
|
|
435
|
+
Available on: journals only (not `createdBy` — journals use `creator`).
|
|
436
|
+
|
|
437
|
+
| Nested Field | Type |
|
|
438
|
+
|-------------|------|
|
|
439
|
+
| `creator.email` | StringExpression |
|
|
440
|
+
| `creator.firstName` | StringExpression |
|
|
441
|
+
| `creator.lastName` | StringExpression |
|
|
442
|
+
| `creator.resourceId` | StringExpression |
|
|
443
|
+
|
|
444
|
+
---
|
|
445
|
+
|
|
446
|
+
## Response Field Mapping
|
|
447
|
+
|
|
448
|
+
### Date Format Asymmetry
|
|
449
|
+
|
|
450
|
+
| Direction | Format | Example |
|
|
451
|
+
|-----------|--------|---------|
|
|
452
|
+
| **Request** (filter dates) | `YYYY-MM-DD` string | `"2026-01-15"` |
|
|
453
|
+
| **Request** (filter datetimes) | RFC3339 string | `"2026-01-15T00:00:00Z"` |
|
|
454
|
+
| **Response** (ALL dates) | `int64` epoch milliseconds | `1705276800000` |
|
|
455
|
+
|
|
456
|
+
Convert response dates: `new Date(epochMs).toISOString().slice(0, 10)` -> `YYYY-MM-DD`
|
|
457
|
+
|
|
458
|
+
### Which Fields Use DateTimeExpression (RFC3339)?
|
|
459
|
+
|
|
460
|
+
Only `createdAt` and `updatedAt` on invoices, bills, customer credit notes, supplier credit notes, and journals use `DateTimeExpression` (RFC3339 input format).
|
|
461
|
+
|
|
462
|
+
All other date fields (`valueDate`, `dueDate`, `startDate`, `endDate`, `purchaseDate`, `approvedAt`, `submittedAt`, `matchDate`, etc.) use `DateExpression` (`YYYY-MM-DD` input format).
|
|
463
|
+
|
|
464
|
+
### Response Shapes
|
|
465
|
+
|
|
466
|
+
All search endpoints return:
|
|
467
|
+
```json
|
|
468
|
+
{
|
|
469
|
+
"totalElements": 142,
|
|
470
|
+
"totalPages": 2,
|
|
471
|
+
"data": [...]
|
|
472
|
+
}
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
**Exception**: `POST /organization-report-template/search` returns a plain array (no pagination metadata).
|
|
476
|
+
|
|
477
|
+
---
|
|
478
|
+
|
|
479
|
+
*Source of truth: Jaz API backend Go structs + OpenAPI specification. Last updated: 2026-03-31.*
|