ondc-code-generator 0.9.0 → 1.0.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.
Files changed (56) hide show
  1. package/alpha/docs/rag-docs/confirm.md +301 -0
  2. package/alpha/docs/rag-docs/init.md +422 -0
  3. package/alpha/docs/rag-docs/on_confirm.md +921 -0
  4. package/alpha/docs/rag-docs/on_init.md +823 -0
  5. package/alpha/docs/rag-docs/on_search.md +897 -0
  6. package/alpha/docs/rag-docs/on_select.md +522 -0
  7. package/alpha/docs/rag-docs/on_status.md +854 -0
  8. package/alpha/docs/rag-docs/on_update.md +921 -0
  9. package/alpha/docs/rag-docs/search.md +678 -0
  10. package/alpha/docs/rag-docs/select.md +344 -0
  11. package/alpha/docs/rag-docs/status.md +178 -0
  12. package/alpha/docs/rag-docs/update.md +229 -0
  13. package/alpha/docs/rag-table-docs/confirm.md +63 -0
  14. package/alpha/docs/rag-table-docs/init.md +81 -0
  15. package/alpha/docs/rag-table-docs/on_confirm.md +164 -0
  16. package/alpha/docs/rag-table-docs/on_init.md +146 -0
  17. package/alpha/docs/rag-table-docs/on_search.md +163 -0
  18. package/alpha/docs/rag-table-docs/on_select.md +99 -0
  19. package/alpha/docs/rag-table-docs/on_status.md +153 -0
  20. package/alpha/docs/rag-table-docs/on_update.md +164 -0
  21. package/alpha/docs/rag-table-docs/raw_table.json +11198 -0
  22. package/alpha/docs/rag-table-docs/search.md +128 -0
  23. package/alpha/docs/rag-table-docs/select.md +70 -0
  24. package/alpha/docs/rag-table-docs/status.md +44 -0
  25. package/alpha/docs/rag-table-docs/update.md +51 -0
  26. package/alpha/docs/validPaths.json +34134 -0
  27. package/alpha/possible-json-paths.json +34134 -0
  28. package/alpha/table/rag-table-docs/confirm.md +3 -0
  29. package/alpha/table/rag-table-docs/init.md +3 -0
  30. package/alpha/table/rag-table-docs/on_confirm.md +3 -0
  31. package/alpha/table/rag-table-docs/on_init.md +3 -0
  32. package/alpha/table/rag-table-docs/on_search.md +3 -0
  33. package/alpha/table/rag-table-docs/on_select.md +3 -0
  34. package/alpha/table/rag-table-docs/on_status.md +3 -0
  35. package/alpha/table/rag-table-docs/on_update.md +3 -0
  36. package/alpha/table/rag-table-docs/search.md +3 -0
  37. package/alpha/table/rag-table-docs/select.md +3 -0
  38. package/alpha/table/rag-table-docs/status.md +3 -0
  39. package/alpha/table/rag-table-docs/update.md +3 -0
  40. package/dist/generator/config-compiler.d.ts +16 -2
  41. package/dist/generator/config-compiler.js +45 -19
  42. package/dist/generator/generators/classes/abstract-generator.d.ts +2 -0
  43. package/dist/generator/generators/documentation/markdown-message-generator.js +4 -1
  44. package/dist/generator/generators/documentation/md-generator.d.ts +2 -1
  45. package/dist/generator/generators/documentation/md-generator.js +3 -2
  46. package/dist/generator/generators/go/go-generator.js +1 -1
  47. package/dist/generator/generators/javascript/js-generator.js +1 -1
  48. package/dist/generator/generators/python/py-generator.js +1 -1
  49. package/dist/generator/generators/rag/rag-generator.d.ts +39 -28
  50. package/dist/generator/generators/rag/rag-generator.js +149 -103
  51. package/dist/generator/generators/rag/rag-table-generator.d.ts +7 -1
  52. package/dist/generator/generators/rag/rag-table-generator.js +24 -8
  53. package/dist/generator/generators/typescript/ts-generator.js +1 -1
  54. package/dist/index.test.js +12 -3
  55. package/dist/types/build.d.ts +4 -0
  56. package/package.json +1 -1
@@ -0,0 +1,897 @@
1
+ ---
2
+ action: on_search
3
+ codeName: L1validations
4
+ numTests: 115
5
+ generated: 2026-03-10
6
+ domain: ONDC:FIS12
7
+ version: 2.3.0
8
+ ---
9
+
10
+ # L1validations — `on_search` Validations
11
+
12
+ These are the validation rules applied when processing the `on_search` API call in the L1validations flow.
13
+ There are **115** validation rules organized into **10** top-level group(s).
14
+
15
+ ---
16
+ ## ON_SEARCH_CONTEXT
17
+
18
+ This group contains **3** sub-group(s)/validation(s): CONTEXT_REQUIRED, CONTEXT_ENUM, and CONTEXT_REGEX.
19
+
20
+ ---
21
+
22
+ ### CONTEXT_REQUIRED
23
+
24
+ This is a group of **12** sub-validation(s) that all must pass: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, and REQUIRED_CONTEXT_BPP_URI.
25
+
26
+ ---
27
+
28
+ **REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE**
29
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | type: leaf`
30
+
31
+ - $.context.location.country.code must be present in the payload
32
+
33
+ **REQUIRED_CONTEXT_LOCATION_CITY_CODE**
34
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | type: leaf`
35
+
36
+ - $.context.location.city.code must be present in the payload
37
+
38
+ **REQUIRED_CONTEXT_DOMAIN**
39
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | type: leaf`
40
+
41
+ - $.context.domain must be present in the payload
42
+
43
+ **REQUIRED_CONTEXT_TIMESTAMP**
44
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | type: leaf`
45
+
46
+ - $.context.timestamp must be present in the payload
47
+
48
+ **REQUIRED_CONTEXT_BAP_ID**
49
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | type: leaf`
50
+
51
+ - $.context.bap_id must be present in the payload
52
+
53
+ **REQUIRED_CONTEXT_BAP_URI**
54
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | type: leaf`
55
+
56
+ - $.context.bap_uri must be present in the payload
57
+
58
+ **REQUIRED_CONTEXT_TRANSACTION_ID**
59
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | type: leaf`
60
+
61
+ - $.context.transaction_id must be present in the payload
62
+
63
+ **REQUIRED_CONTEXT_MESSAGE_ID**
64
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | type: leaf`
65
+
66
+ - $.context.message_id must be present in the payload
67
+
68
+ **REQUIRED_CONTEXT_VERSION**
69
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | type: leaf`
70
+
71
+ - $.context.version must be present in the payload
72
+
73
+ **REQUIRED_CONTEXT_TTL**
74
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | type: leaf`
75
+
76
+ - $.context.ttl must be present in the payload
77
+
78
+ **REQUIRED_CONTEXT_BPP_ID**
79
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | type: leaf`
80
+
81
+ - $.context.bpp_id must be present in the payload
82
+
83
+ **REQUIRED_CONTEXT_BPP_URI**
84
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | type: leaf`
85
+
86
+ - $.context.bpp_uri must be present in the payload
87
+
88
+ ### CONTEXT_ENUM
89
+
90
+ This is a group of **2** sub-validation(s) that all must pass: VALID_CONTEXT_LOCATION_COUNTRY_CODE and VALID_CONTEXT_DOMAIN.
91
+
92
+ ---
93
+
94
+ **VALID_CONTEXT_LOCATION_COUNTRY_CODE**
95
+ `group: ON_SEARCH_CONTEXT > CONTEXT_ENUM | type: leaf`
96
+
97
+ - All elements of $.context.location.country.code must be in ["IND"]
98
+
99
+ > **Skip if:**
100
+ > - $.context.location.country.code is not in the payload
101
+
102
+ **VALID_CONTEXT_DOMAIN**
103
+ `group: ON_SEARCH_CONTEXT > CONTEXT_ENUM | type: leaf`
104
+
105
+ - All elements of $.context.domain must be in ["ONDC:FIS12"]
106
+
107
+ > **Skip if:**
108
+ > - $.context.domain is not in the payload
109
+
110
+ ### CONTEXT_REGEX
111
+
112
+ This is a group of **7** sub-validation(s) that all must pass: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, and REGEX_CONTEXT_BPP_URI.
113
+
114
+ ---
115
+
116
+ **REGEX_CONTEXT_LOCATION_CITY_CODE**
117
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REGEX | type: leaf`
118
+
119
+ - All elements of $.context.location.city.code must follow every regex in ["(\\*)|(^std\\:[0-9]{2,4}$)"]
120
+
121
+ > **Skip if:**
122
+ > - $.context.location.city.code is not in the payload
123
+
124
+ **REGEX_CONTEXT_TIMESTAMP_1**
125
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REGEX | type: leaf`
126
+
127
+ - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})$"]
128
+
129
+ > **Skip if:**
130
+ > - $.context.timestamp is not in the payload
131
+
132
+ **REGEX_CONTEXT_BAP_ID**
133
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REGEX | type: leaf`
134
+
135
+ - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http|https|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"]
136
+
137
+ > **Skip if:**
138
+ > - $.context.bap_id is not in the payload
139
+
140
+ **REGEX_CONTEXT_BAP_URI**
141
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REGEX | type: leaf`
142
+
143
+ - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"]
144
+
145
+ > **Skip if:**
146
+ > - $.context.bap_uri is not in the payload
147
+
148
+ **REQUIRED_CONTEXT_TTL**
149
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REGEX | type: leaf`
150
+
151
+ - All elements of $.context.ttl must follow every regex in ["^P(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"]
152
+
153
+ > **Skip if:**
154
+ > - $.context.ttl is not in the payload
155
+
156
+ **REGEX_CONTEXT_BPP_ID**
157
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REGEX | type: leaf`
158
+
159
+ - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http|https|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"]
160
+
161
+ > **Skip if:**
162
+ > - $.context.bpp_id is not in the payload
163
+
164
+ **REGEX_CONTEXT_BPP_URI**
165
+ `group: ON_SEARCH_CONTEXT > CONTEXT_REGEX | type: leaf`
166
+
167
+ - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"]
168
+
169
+ > **Skip if:**
170
+ > - $.context.bpp_uri is not in the payload
171
+
172
+ ---
173
+
174
+ ## ON_SEARCH_CATALOG_NAME
175
+
176
+ `group: top-level | type: leaf`
177
+
178
+ - $.message.catalog.descriptor.name must be present in the payload
179
+
180
+ ---
181
+
182
+ ## ON_SEARCH_PROVIDER
183
+
184
+ This is a group of **4** sub-validation(s) that all must pass: ON_SEARCH_PROVIDER_ID, ON_SEARCH_PROVIDER_NAME, ON_SEARCH_PROVIDER_IMAGES_URL, and ON_SEARCH_PROVIDER_IMAGES_SIZE_TYPE.
185
+
186
+ ---
187
+
188
+ **ON_SEARCH_PROVIDER_ID**
189
+ `group: ON_SEARCH_PROVIDER | type: leaf`
190
+
191
+ - $.message.catalog.providers[*].id must be present in the payload
192
+
193
+ **ON_SEARCH_PROVIDER_NAME**
194
+ `group: ON_SEARCH_PROVIDER | type: leaf`
195
+
196
+ - $.message.catalog.providers[*].descriptor.name must be present in the payload
197
+
198
+ **ON_SEARCH_PROVIDER_IMAGES_URL**
199
+ `group: ON_SEARCH_PROVIDER | type: leaf`
200
+
201
+ - $.message.catalog.providers[*].descriptor.images[*].url must be present in the payload
202
+
203
+ **ON_SEARCH_PROVIDER_IMAGES_SIZE_TYPE**
204
+ `group: ON_SEARCH_PROVIDER | type: leaf`
205
+
206
+ - $.message.catalog.providers[*].descriptor.images[*].size_type must be present in the payload
207
+
208
+ ---
209
+
210
+ ## ON_SEARCH_CATEGORIES
211
+
212
+ This is a group of **5** sub-validation(s) that all must pass: ON_SEARCH_CATEGORIES_NAME, ON_SEARCH_CATEGORIES_CODE, ON_SEARCH_CATEGORIES_ID, ON_SEARCH_CATEGORIES_PARENT_ID, and VALID_ENUM_CATEGORY_CODE.
213
+
214
+ > **Skip if:**
215
+ > - $.message.catalog.providers[*].categories[*].id must **not** be present in the payload
216
+
217
+ ---
218
+
219
+ **ON_SEARCH_CATEGORIES_NAME**
220
+ `group: ON_SEARCH_CATEGORIES | type: leaf`
221
+
222
+ - $.message.catalog.providers[*].categories[*].descriptor.name must be present in the payload
223
+
224
+ **ON_SEARCH_CATEGORIES_CODE**
225
+ `group: ON_SEARCH_CATEGORIES | type: leaf`
226
+
227
+ - $.message.catalog.providers[*].categories[*].descriptor.code must be present in the payload
228
+
229
+ **ON_SEARCH_CATEGORIES_ID**
230
+ `group: ON_SEARCH_CATEGORIES | type: leaf`
231
+
232
+ - $.message.catalog.providers[*].categories[*].id must be present in the payload
233
+
234
+ **ON_SEARCH_CATEGORIES_PARENT_ID**
235
+ `group: ON_SEARCH_CATEGORIES | type: leaf`
236
+
237
+ - $.message.catalog.providers[*].categories[*].parent_category_id must be present in the payload
238
+
239
+ > **Skip if:**
240
+ > - any of $.message.catalog.providers[*].categories[*].descriptor.code are in ["LOAN"]
241
+
242
+ **VALID_ENUM_CATEGORY_CODE**
243
+ `group: ON_SEARCH_CATEGORIES | type: leaf`
244
+
245
+ - All elements of $.message.catalog.providers[*].categories[*].descriptor.code must be in ["LOAN", "UNSECURED_PERSONAL", "SECURED_PERSONAL", "OFFERS", "ADDITIONAL_DATA", "PERSONAL_FINANCING", "CONSUMER_INVOICE_FINANCING", "AGRI_PURCHASE_FINANCE", "ELECTRONICS_PURCHASE_FINANCE", "BUSINESS", "SOLE_PROPRIETORSHIP", "OTHER", "PARTNERSHIP_FIRM", "PRIVATE_LTD", "INVOICE_FINANCING", "GOLD_LOAN", "LAMF", "TERM_LOAN", "CREDIT_LINE", "DOCUMENT_BASED_DRAWDOWN", "NON_DOCUMENT_BASED_DRAWDOWN", "BANKING", "STATEMENT_UPLOAD", "AA_BANKING", "GST", "AA_GST", "GSP", "RETURN_UPLOAD", "MUTUAL_FUND", "AA_LOAN", "MFC", "ITR", "UPLOAD", "BUREAU_LOAN", "DERIVED_DATA", "ADDITIONAL_UPLOAD", "RTA"]
246
+
247
+ > **Skip if:**
248
+ > - $.message.catalog.providers[*].categories[*].descriptor.code is not in the payload
249
+
250
+ ---
251
+
252
+ ## ON_SEARCH_ITEMS
253
+
254
+ This group contains **2** sub-group(s)/validation(s): REQUIRED_ITEMS and VALID_ENUM_ITEMS.
255
+
256
+ ---
257
+
258
+ ### REQUIRED_ITEMS
259
+
260
+ This group contains **6** sub-group(s)/validation(s): REQUIRED_ITEM_ID, REQUIRED_ITEM_CODE, REQUIRED_ITEM_CATEGORY_ID, CHECK_CATEGORY_ID, REQUIRED_ITEM_FULFILLMENT_ID, and REQUIRED_XINPUT_FIELDS.
261
+
262
+ ---
263
+
264
+ **REQUIRED_ITEM_ID**
265
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS | type: leaf`
266
+
267
+ - $.message.catalog.providers[*].items[*].id must be present in the payload
268
+
269
+ **REQUIRED_ITEM_CODE**
270
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS | type: leaf`
271
+
272
+ - $.message.catalog.providers[*].items[*].descriptor.code must be present in the payload
273
+
274
+ **REQUIRED_ITEM_CATEGORY_ID**
275
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS | type: leaf`
276
+
277
+ - $.message.catalog.providers[*].items[*].category_ids[*] must be present in the payload
278
+
279
+ **CHECK_CATEGORY_ID**
280
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS | type: leaf`
281
+
282
+ - At least one of $.message.catalog.providers[*].items[*].category_ids[*] must be in $.message.catalog.providers[*].categories[*].id
283
+
284
+ > **Skip if:**
285
+ > - $.message.catalog.providers[*].categories[*].id is not in the payload
286
+
287
+ **REQUIRED_ITEM_FULFILLMENT_ID**
288
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS | type: leaf`
289
+
290
+ - $.message.catalog.providers[*].items[*].fulfillment_ids[*] must be present in the payload
291
+
292
+ #### REQUIRED_XINPUT_FIELDS
293
+
294
+ This group contains **14** sub-group(s)/validation(s): REQUIRED_HEAD_CODE, REQUIRED_HEAD_NAME, REQUIRED_FORM_HEADINGS, REQUIRED_FORM_ID, REQUIRED_FORM_MIME_TYPE, PERSONAL_LOAN_FIELDS, REQUIRED_CONSENT_FIELDS, INVOICE_LOAN_FIELDS, GOLD_LOAN_FIELDS, WORKING_CAPITAL_LOAN_FIELDS, BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS, TERM_LOAN_FIELDS, TERM_LOAN_FIELDS_GST, and LAMF_FIELDS.
295
+
296
+ > **Skip if:**
297
+ > **All of the following must be true:**
298
+ > - $.message.catalog.providers[*].items[*].tags[*].descriptor.code must **not** be present in the payload
299
+ > - Not all elements of $.message.catalog.providers[*].items[*].tags[*].descriptor.code may be in ["LOAN_INFO"]
300
+
301
+ ---
302
+
303
+ **REQUIRED_HEAD_CODE**
304
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | type: leaf`
305
+
306
+ - $.message.catalog.providers[*].items[*].xinput.head.descriptor.code must be present in the payload
307
+
308
+ **REQUIRED_HEAD_NAME**
309
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | type: leaf`
310
+
311
+ - $.message.catalog.providers[*].items[*].xinput.head.descriptor.name must be present in the payload
312
+
313
+ **REQUIRED_FORM_HEADINGS**
314
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | type: leaf`
315
+
316
+ - $.message.catalog.providers[*].items[*].xinput.head.headings[*] must be present in the payload
317
+
318
+ **REQUIRED_FORM_ID**
319
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | type: leaf`
320
+
321
+ - $.message.catalog.providers[*].items[*].xinput.form.id must be present in the payload
322
+
323
+ **REQUIRED_FORM_MIME_TYPE**
324
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | type: leaf`
325
+
326
+ - $.message.catalog.providers[*].items[*].xinput.form.mime_type must be present in the payload
327
+
328
+ ##### PERSONAL_LOAN_FIELDS
329
+
330
+ This is a group of **9** sub-validation(s) that all must pass: REQUIRED_FIELD_PAN_NAME, REQUIRED_FIELD_DOB, REQUIRED_FIELD_GENDER, REQUIRED_FIELD_PAN, REQUIRED_FIELD_CONTACT_NUMBER, REQUIRED_FIELD_EMPLOYMENT_TYPE, REQUIRED_FIELD_INCOME, REQUIRED_FIELD_COMPANY_NAME, and REQUIRED_FIELD_BUREAU_CONSENT.
331
+
332
+ > **Skip if:**
333
+ > - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION"]
334
+
335
+ ---
336
+
337
+ **REQUIRED_FIELD_PAN_NAME**
338
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | type: leaf`
339
+
340
+ - $.message.catalog.providers[*].items[*].xinput.form.data.panName.type must be present in the payload
341
+
342
+ **REQUIRED_FIELD_DOB**
343
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | type: leaf`
344
+
345
+ - $.message.catalog.providers[*].items[*].xinput.form.data.dob.type must be present in the payload
346
+
347
+ **REQUIRED_FIELD_GENDER**
348
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | type: leaf`
349
+
350
+ - $.message.catalog.providers[*].items[*].xinput.form.data.gender.type must be present in the payload
351
+
352
+ **REQUIRED_FIELD_PAN**
353
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | type: leaf`
354
+
355
+ - $.message.catalog.providers[*].items[*].xinput.form.data.pan.type must be present in the payload
356
+
357
+ **REQUIRED_FIELD_CONTACT_NUMBER**
358
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | type: leaf`
359
+
360
+ - $.message.catalog.providers[*].items[*].xinput.form.data.contactNumber.type must be present in the payload
361
+
362
+ **REQUIRED_FIELD_EMPLOYMENT_TYPE**
363
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | type: leaf`
364
+
365
+ - $.message.catalog.providers[*].items[*].xinput.form.data.employmentType.type must be present in the payload
366
+
367
+ **REQUIRED_FIELD_INCOME**
368
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | type: leaf`
369
+
370
+ - $.message.catalog.providers[*].items[*].xinput.form.data.income.type must be present in the payload
371
+
372
+ **REQUIRED_FIELD_COMPANY_NAME**
373
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | type: leaf`
374
+
375
+ - $.message.catalog.providers[*].items[*].xinput.form.data.companyName.type must be present in the payload
376
+
377
+ **REQUIRED_FIELD_BUREAU_CONSENT**
378
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | type: leaf`
379
+
380
+ - $.message.catalog.providers[*].items[*].xinput.form.data.bureauConsent.type must be present in the payload
381
+
382
+ ##### REQUIRED_CONSENT_FIELDS
383
+
384
+ This is a group of **1** sub-validation(s) that all must pass: REQUIRED_FIELD_CONSENT_HANDLER.
385
+
386
+ > **Skip if:**
387
+ > - None of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["CONSENT_APPROVAL"]
388
+
389
+ ---
390
+
391
+ **REQUIRED_FIELD_CONSENT_HANDLER**
392
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_CONSENT_FIELDS | type: leaf`
393
+
394
+ - $.message.catalog.providers[*].items[*].xinput.form.data.consent_handler must be present in the payload
395
+
396
+ ##### INVOICE_LOAN_FIELDS
397
+
398
+ This is a group of **1** sub-validation(s) that all must pass: REQUIRED_FIELD_BUREAU_CONSENT.
399
+
400
+ > **Skip if:**
401
+ > - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["ORGANIZATION_INFORMATION"]
402
+
403
+ ---
404
+
405
+ **REQUIRED_FIELD_BUREAU_CONSENT**
406
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > INVOICE_LOAN_FIELDS | type: leaf`
407
+
408
+ - $.message.catalog.providers[*].items[*].xinput.form.data.bureauConsent.type must be present in the payload
409
+
410
+ ##### GOLD_LOAN_FIELDS
411
+
412
+ This group contains **10** sub-group(s)/validation(s): REQUIRED_FIELD_PAN, REQUIRED_FULL_NAME, REQUIRED_FIELD_GENDER, REQUIRED_FIELD_DOB, REQUIRED_FIELD_CONTACT_NUMBER, REQUIRED_FIELD_PINCODE, REQUIRED_FIELD_JWELLERY, REQUIRED_FIELD_PURITY, REQUIRED_FIELD_BUREAU_CONSENT, and REQUIRED_CONSENT_FIELDS.
413
+
414
+ > **Skip if:**
415
+ > - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION_GOLD"]
416
+
417
+ ---
418
+
419
+ **REQUIRED_FIELD_PAN**
420
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | type: leaf`
421
+
422
+ - $.message.catalog.providers[*].items[*].xinput.form.data.pan.type must be present in the payload
423
+
424
+ **REQUIRED_FULL_NAME**
425
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | type: leaf`
426
+
427
+ - $.message.catalog.providers[*].items[*].xinput.form.data.fullName.type must be present in the payload
428
+
429
+ **REQUIRED_FIELD_GENDER**
430
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | type: leaf`
431
+
432
+ - $.message.catalog.providers[*].items[*].xinput.form.data.gender.type must be present in the payload
433
+
434
+ **REQUIRED_FIELD_DOB**
435
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | type: leaf`
436
+
437
+ - $.message.catalog.providers[*].items[*].xinput.form.data.dob.type must be present in the payload
438
+
439
+ **REQUIRED_FIELD_CONTACT_NUMBER**
440
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | type: leaf`
441
+
442
+ - $.message.catalog.providers[*].items[*].xinput.form.data.contactNumber.type must be present in the payload
443
+
444
+ **REQUIRED_FIELD_PINCODE**
445
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | type: leaf`
446
+
447
+ - $.message.catalog.providers[*].items[*].xinput.form.data.pincode.type must be present in the payload
448
+
449
+ **REQUIRED_FIELD_JWELLERY**
450
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | type: leaf`
451
+
452
+ - $.message.catalog.providers[*].items[*].xinput.form.data.jewellery.type must be present in the payload
453
+
454
+ **REQUIRED_FIELD_PURITY**
455
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | type: leaf`
456
+
457
+ - $.message.catalog.providers[*].items[*].xinput.form.data.purity.type must be present in the payload
458
+
459
+ **REQUIRED_FIELD_BUREAU_CONSENT**
460
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | type: leaf`
461
+
462
+ - $.message.catalog.providers[*].items[*].xinput.form.data.bureauConsent.type must be present in the payload
463
+
464
+ ###### REQUIRED_CONSENT_FIELDS
465
+
466
+ This is a group of **1** sub-validation(s) that all must pass: REQUIRED_FIELD_AA_ID.
467
+
468
+ > **Skip if:**
469
+ > - None of $.message.order.items[*].xinput.head.descriptor.code may be in ["CONSENT_APPROVAL"]
470
+
471
+ ---
472
+
473
+ **REQUIRED_FIELD_AA_ID**
474
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS > REQUIRED_CONSENT_FIELDS | type: leaf`
475
+
476
+ - $._EXTERNAL._SELF.message.catalog.providers[*].items[*].xinput.form.data.bureauConsent.type must be present in the payload
477
+
478
+ ##### WORKING_CAPITAL_LOAN_FIELDS
479
+
480
+ This is a group of **8** sub-validation(s) that all must pass: REQUIRED_FIELD_GSTIN_PROFILE_1, REQUIRED_FIELD_GSTR_B2B_INVOICE_1, REQUIRED_FIELD_GSTR_B2B_CDNR_1, REQUIRED_FIELD_GSTR_B2B_INVOICES_1, REQUIRED_FIELD_GSTR_3B_SUMMARY_1, REQUIRED_FIELD_BANK_STATEMENT_FILES, REQUIRED_FIELD_BANK_NAME, and REQUIRED_FIELD_MIME_TYPE.
481
+
482
+ > **Skip if:**
483
+ > - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["BANK_STATEMENT_AND_GST_RETURNS"]
484
+
485
+ ---
486
+
487
+ **REQUIRED_FIELD_GSTIN_PROFILE_1**
488
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | type: leaf`
489
+
490
+ - $.message.catalog.providers[*].items[*].xinput.form.data.gstinProfile_1.type must be present in the payload
491
+
492
+ **REQUIRED_FIELD_GSTR_B2B_INVOICE_1**
493
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | type: leaf`
494
+
495
+ - $.message.catalog.providers[*].items[*].xinput.form.data.gstr1B2bInvoice_1.type must be present in the payload
496
+
497
+ **REQUIRED_FIELD_GSTR_B2B_CDNR_1**
498
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | type: leaf`
499
+
500
+ - $.message.catalog.providers[*].items[*].xinput.form.data.gstr1B2bCdnr_1.type must be present in the payload
501
+
502
+ **REQUIRED_FIELD_GSTR_B2B_INVOICES_1**
503
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | type: leaf`
504
+
505
+ - $.message.catalog.providers[*].items[*].xinput.form.data.gstr2aB2bInvoices_1.type must be present in the payload
506
+
507
+ **REQUIRED_FIELD_GSTR_3B_SUMMARY_1**
508
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | type: leaf`
509
+
510
+ - $.message.catalog.providers[*].items[*].xinput.form.data.gstr3bSummary_1.type must be present in the payload
511
+
512
+ **REQUIRED_FIELD_BANK_STATEMENT_FILES**
513
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | type: leaf`
514
+
515
+ - $.message.catalog.providers[*].items[*].xinput.form.data.bankStatementFiles_1.type must be present in the payload
516
+
517
+ **REQUIRED_FIELD_BANK_NAME**
518
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | type: leaf`
519
+
520
+ - $.message.catalog.providers[*].items[*].xinput.form.data.bankName_1.type must be present in the payload
521
+
522
+ **REQUIRED_FIELD_MIME_TYPE**
523
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | type: leaf`
524
+
525
+ - $.message.catalog.providers[*].items[*].xinput.form.data.mimeType_1.type must be present in the payload
526
+
527
+ ##### BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS
528
+
529
+ This is a group of **3** sub-validation(s) that all must pass: REQUIRED_FIELD_FINANCIAL_STATEMENTS, REQUIRED_FIELD_SHAREHOLDING_PATTERN, and REQUIRED_FIELD_ITR.
530
+
531
+ > **Skip if:**
532
+ > - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["BUSINESS_AND_FINANCIAL_DOCUMENTS"]
533
+
534
+ ---
535
+
536
+ **REQUIRED_FIELD_FINANCIAL_STATEMENTS**
537
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS | type: leaf`
538
+
539
+ - $.message.catalog.providers[*].items[*].xinput.form.data.financialStatements.type must be present in the payload
540
+
541
+ **REQUIRED_FIELD_SHAREHOLDING_PATTERN**
542
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS | type: leaf`
543
+
544
+ - $.message.catalog.providers[*].items[*].xinput.form.data.shareholdingPattern.type must be present in the payload
545
+
546
+ **REQUIRED_FIELD_ITR**
547
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS | type: leaf`
548
+
549
+ - $.message.catalog.providers[*].items[*].xinput.form.data.itr.type must be present in the payload
550
+
551
+ ##### TERM_LOAN_FIELDS
552
+
553
+ This is a group of **9** sub-validation(s) that all must pass: REQUIRED_FIELD_PAN, REQUIRED_FULL_NAME, REQUIRED_DOB, REQUIRED_CONSTITUTION, REQUIRED_BUSINESS_PAN, REQUIRED_DOI, REQUIRED_NATURE_OF_BUSINESS, REQUIRED_ANNUAL_TURNOVER, and REQUIRED_BUSINESS_PINCODE.
554
+
555
+ > **Skip if:**
556
+ > - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION_TERM"]
557
+
558
+ ---
559
+
560
+ **REQUIRED_FIELD_PAN**
561
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | type: leaf`
562
+
563
+ - $.message.catalog.providers[*].items[*].xinput.form.data.pan.type must be present in the payload
564
+
565
+ **REQUIRED_FULL_NAME**
566
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | type: leaf`
567
+
568
+ - $.message.catalog.providers[*].items[*].xinput.form.data.fullName.type must be present in the payload
569
+
570
+ **REQUIRED_DOB**
571
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | type: leaf`
572
+
573
+ - $.message.catalog.providers[*].items[*].xinput.form.data.dob.type must be present in the payload
574
+
575
+ **REQUIRED_CONSTITUTION**
576
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | type: leaf`
577
+
578
+ - $.message.catalog.providers[*].items[*].xinput.form.data.constitution.type must be present in the payload
579
+
580
+ **REQUIRED_BUSINESS_PAN**
581
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | type: leaf`
582
+
583
+ - $.message.catalog.providers[*].items[*].xinput.form.data.businessPan.type must be present in the payload
584
+
585
+ **REQUIRED_DOI**
586
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | type: leaf`
587
+
588
+ - $.message.catalog.providers[*].items[*].xinput.form.data.doi.type must be present in the payload
589
+
590
+ **REQUIRED_NATURE_OF_BUSINESS**
591
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | type: leaf`
592
+
593
+ - $.message.catalog.providers[*].items[*].xinput.form.data.natureOfBusiness.type must be present in the payload
594
+
595
+ **REQUIRED_ANNUAL_TURNOVER**
596
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | type: leaf`
597
+
598
+ - $.message.catalog.providers[*].items[*].xinput.form.data.annualTurnover.type must be present in the payload
599
+
600
+ **REQUIRED_BUSINESS_PINCODE**
601
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | type: leaf`
602
+
603
+ - $.message.catalog.providers[*].items[*].xinput.form.data.businessPincode.type must be present in the payload
604
+
605
+ ##### TERM_LOAN_FIELDS_GST
606
+
607
+ This is a group of **1** sub-validation(s) that all must pass: REQUIRED_FIELD_BUREAU_CONSENT.
608
+
609
+ > **Skip if:**
610
+ > - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION_TERM_GST"]
611
+
612
+ ---
613
+
614
+ **REQUIRED_FIELD_BUREAU_CONSENT**
615
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS_GST | type: leaf`
616
+
617
+ - $.message.catalog.providers[*].items[*].xinput.form.data.bureauConsent.type must be present in the payload
618
+
619
+ ##### LAMF_FIELDS
620
+
621
+ This is a group of **9** sub-validation(s) that all must pass: REQUIRED_FIELD_PAN, REQUIRED_FIELD_FULL_NAME, REQUIRED_FIELD_CONSTITUION, REQUIRED_FIELD_GENDER, REQUIRED_FIELD_EMPLOYMENT_TYPE, REQUIRED_FIELD_DOB, REQUIRED_FIELD_ANNUAL_INCOME, REQUIRED_FIELD_MOBILE_NUMBER, and REQUIRED_FIELD_EMAIL_ID.
622
+
623
+ > **Skip if:**
624
+ > - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION_LAMF"]
625
+
626
+ ---
627
+
628
+ **REQUIRED_FIELD_PAN**
629
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | type: leaf`
630
+
631
+ - $.message.catalog.providers[*].items[*].xinput.form.data.pan.type must be present in the payload
632
+
633
+ **REQUIRED_FIELD_FULL_NAME**
634
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | type: leaf`
635
+
636
+ - $.message.catalog.providers[*].items[*].xinput.form.data.fullName.type must be present in the payload
637
+
638
+ **REQUIRED_FIELD_CONSTITUION**
639
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | type: leaf`
640
+
641
+ - $.message.catalog.providers[*].items[*].xinput.form.data.constitution.type must be present in the payload
642
+
643
+ **REQUIRED_FIELD_GENDER**
644
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | type: leaf`
645
+
646
+ - $.message.catalog.providers[*].items[*].xinput.form.data.gender.type must be present in the payload
647
+
648
+ **REQUIRED_FIELD_EMPLOYMENT_TYPE**
649
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | type: leaf`
650
+
651
+ - $.message.catalog.providers[*].items[*].xinput.form.data.employmentType.type must be present in the payload
652
+
653
+ **REQUIRED_FIELD_DOB**
654
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | type: leaf`
655
+
656
+ - $.message.catalog.providers[*].items[*].xinput.form.data.dob.type must be present in the payload
657
+
658
+ **REQUIRED_FIELD_ANNUAL_INCOME**
659
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | type: leaf`
660
+
661
+ - $.message.catalog.providers[*].items[*].xinput.form.data.annualIncome.type must be present in the payload
662
+
663
+ **REQUIRED_FIELD_MOBILE_NUMBER**
664
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | type: leaf`
665
+
666
+ - $.message.catalog.providers[*].items[*].xinput.form.data.mobileNumber.type must be present in the payload
667
+
668
+ **REQUIRED_FIELD_EMAIL_ID**
669
+ `group: ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | type: leaf`
670
+
671
+ - $.message.catalog.providers[*].items[*].xinput.form.data.emailId.type must be present in the payload
672
+
673
+ ### VALID_ENUM_ITEMS
674
+
675
+ This is a group of **2** sub-validation(s) that all must pass: VALID_ITEM_CODE and VALID_HEAD_CODE.
676
+
677
+ ---
678
+
679
+ **VALID_ITEM_CODE**
680
+ `group: ON_SEARCH_ITEMS > VALID_ENUM_ITEMS | type: leaf`
681
+
682
+ - All elements of $.message.catalog.providers[*].items[*].descriptor.code must be in ["LOAN"]
683
+
684
+ > **Skip if:**
685
+ > - $.message.catalog.providers[*].items[*].descriptor.code is not in the payload
686
+
687
+ **VALID_HEAD_CODE**
688
+ `group: ON_SEARCH_ITEMS > VALID_ENUM_ITEMS | type: leaf`
689
+
690
+ - All elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code must be in ["PERSONAL_INFORMATION", "CONSENT_APPROVAL", "ORGANIZATION_INFORMATION", "MERCHANT_AND_PRDOUCT_DETAILS", "BANK_STATEMENT_AND_GST_RETURNS", "BUSINESS_AND_FINANCIAL_DOCUMENTS", "ORGANIZATION_INFORMATION", "PERSONAL_INFORMATION_TERM", "PERSONAL_INFORMATION_GOLD", "PERSONAL_INFORMATION_TERM_GST", "PERSONAL_INFORMATION_BUSINESS_TERM", "PERSONAL_INFORMATION_LAMF"]
691
+
692
+ > **Skip if:**
693
+ > - $.message.catalog.providers[*].items[*].xinput.head.descriptor.code is not in the payload
694
+
695
+ ---
696
+
697
+ ## ON_SEARCH_FULFILLMENTS
698
+
699
+ This group contains **3** sub-group(s)/validation(s): REQUIRED_FULFILLMENT_ITEMS, VALID_FULFILLMENT_ITEMS, and VALID_FULFILLMENT_TAGS.
700
+
701
+ ---
702
+
703
+ ### REQUIRED_FULFILLMENT_ITEMS
704
+
705
+ This is a group of **2** sub-validation(s) that all must pass: REQUIRED_FULFILLMENT_ID and REQUIRED_FULFILLMENT_TYPE.
706
+
707
+ ---
708
+
709
+ **REQUIRED_FULFILLMENT_ID**
710
+ `group: ON_SEARCH_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | type: leaf`
711
+
712
+ - $.message.catalog.providers[*].fulfillments[*].id must be present in the payload
713
+
714
+ **REQUIRED_FULFILLMENT_TYPE**
715
+ `group: ON_SEARCH_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | type: leaf`
716
+
717
+ - $.message.catalog.providers[*].fulfillments[*].type must be present in the payload
718
+
719
+ ### VALID_FULFILLMENT_ITEMS
720
+
721
+ This is a group of **1** sub-validation(s) that all must pass: VALID_FULFILLMENT_TYPE.
722
+
723
+ ---
724
+
725
+ **VALID_FULFILLMENT_TYPE**
726
+ `group: ON_SEARCH_FULFILLMENTS > VALID_FULFILLMENT_ITEMS | type: leaf`
727
+
728
+ - All elements of $.message.catalog.providers[*].fulfillments[*].type must be in ["ONLINE", "SEMI_ONLINE"]
729
+
730
+ > **Skip if:**
731
+ > - $.message.catalog.providers[*].fulfillments[*].type is not in the payload
732
+
733
+ ### VALID_FULFILLMENT_TAGS
734
+
735
+ This is a group of **2** sub-validation(s) that all must pass: REQUIRED_FULFILLMENT_TAGS and REQUIRED_CHECKLISTS_ITEM.
736
+
737
+ ---
738
+
739
+ **REQUIRED_FULFILLMENT_TAGS**
740
+ `group: ON_SEARCH_FULFILLMENTS > VALID_FULFILLMENT_TAGS | type: leaf`
741
+
742
+ - All elements of $.message.catalog.providers[*].fulfillments[*].tags[*].descriptor.code must be in ["CHECKLISTS"]
743
+
744
+ > **Skip if:**
745
+ > - $.message.catalog.providers[*].fulfillments[*].tags[*].descriptor.code is not in the payload
746
+
747
+ **REQUIRED_CHECKLISTS_ITEM**
748
+ `group: ON_SEARCH_FULFILLMENTS > VALID_FULFILLMENT_TAGS | type: leaf | scope: $.message.catalog.providers[*].fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)]`
749
+
750
+ - All elements of $.message.catalog.providers[*].fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)].list[*].descriptor.code must be in ["PERSONAL_INFORMATION", "CONSENT_APPROVAL", "SET_LOAN_AMOUNT", "KYC", "KYC_OFFLINE", "EMANDATE", "LOAN_AGREEMENT", "ACCOUNT_MONITORING", "ORGANIZATION_INFORMATION", "INDIVIDUAL_KYC", "ENTITY_KYC", "MERCHANT_AND_PRDOUCT_DETAILS", "SET_DOWN_PAYMENT", "ESIGN", "BANK_STATEMENT_AND_GST_RETURNS", "BUSINESS_AND_FINANCIAL_DOCUMENTS", "BUSINESS_KYC", "PERSONAL_DISCUSSION", "PHYSICAL_VERIFICATION", "ENACH", "PROCESSING_FEE", "MANUAL_VERIFICATION", "LIEN_MARKING", "PERSONAL_INFORMATION_TERM", "PERSONAL_INFORMATION_LAMF", "PERSONAL_INFORMATION_TERM_GST"]
751
+
752
+ ---
753
+
754
+ ## ON_SEARCH_PAYMENTS
755
+
756
+ This group contains **2** sub-group(s)/validation(s): REQUIRED_PAYMENT_ITEMS and VALID_PAYMENT_ITEMS.
757
+
758
+ ---
759
+
760
+ ### REQUIRED_PAYMENT_ITEMS
761
+
762
+ This is a group of **5** sub-validation(s) that all must pass: REQUIRED_PAYMENT_TYPE, REQUIRED_PAYMENT_ID, REQUIRED_PAYMENT_STATUS, REQUIRED_PAYMENT_COLLECTED_BY, and REQUIRED_PAYMENT_TIME_LABEL.
763
+
764
+ ---
765
+
766
+ **REQUIRED_PAYMENT_TYPE**
767
+ `group: ON_SEARCH_PAYMENTS > REQUIRED_PAYMENT_ITEMS | type: leaf`
768
+
769
+ - $.message.catalog.providers[*].payments[*].type must be present in the payload
770
+
771
+ **REQUIRED_PAYMENT_ID**
772
+ `group: ON_SEARCH_PAYMENTS > REQUIRED_PAYMENT_ITEMS | type: leaf`
773
+
774
+ - $.message.catalog.providers[*].payments[*].id must be present in the payload
775
+
776
+ **REQUIRED_PAYMENT_STATUS**
777
+ `group: ON_SEARCH_PAYMENTS > REQUIRED_PAYMENT_ITEMS | type: leaf`
778
+
779
+ - $.message.catalog.providers[*].payments[*].status must be present in the payload
780
+
781
+ **REQUIRED_PAYMENT_COLLECTED_BY**
782
+ `group: ON_SEARCH_PAYMENTS > REQUIRED_PAYMENT_ITEMS | type: leaf`
783
+
784
+ - $.message.catalog.providers[*].payments[*].collected_by must be present in the payload
785
+
786
+ **REQUIRED_PAYMENT_TIME_LABEL**
787
+ `group: ON_SEARCH_PAYMENTS > REQUIRED_PAYMENT_ITEMS | type: leaf`
788
+
789
+ - $.message.catalog.providers[*].payments[*].time.label must be present in the payload
790
+
791
+ ### VALID_PAYMENT_ITEMS
792
+
793
+ This is a group of **4** sub-validation(s) that all must pass: VALID_PAYMENT_TYPE, VALID_PAYMENT_STATUS, VALID_PAYMENT_COLLECTOR, and VALID_PAYMENT_LABEL.
794
+
795
+ ---
796
+
797
+ **VALID_PAYMENT_TYPE**
798
+ `group: ON_SEARCH_PAYMENTS > VALID_PAYMENT_ITEMS | type: leaf`
799
+
800
+ - All elements of $.message.catalog.providers[*].payments[*].type must be in ["ON_ORDER", "ON_FULFILLMENT", "POST_FULFILLMENT"]
801
+
802
+ > **Skip if:**
803
+ > - $.message.catalog.providers[*].payments[*].type is not in the payload
804
+
805
+ **VALID_PAYMENT_STATUS**
806
+ `group: ON_SEARCH_PAYMENTS > VALID_PAYMENT_ITEMS | type: leaf`
807
+
808
+ - All elements of $.message.catalog.providers[*].payments[*].status must be in ["NOT-PAID", "PAID", "DEFERRED", "DELAYED"]
809
+
810
+ > **Skip if:**
811
+ > - $.message.catalog.providers[*].payments[*].status is not in the payload
812
+
813
+ **VALID_PAYMENT_COLLECTOR**
814
+ `group: ON_SEARCH_PAYMENTS > VALID_PAYMENT_ITEMS | type: leaf`
815
+
816
+ - All elements of ["BPP", "CONSUMER"] must be in $.message.catalog.providers[*].payments[*].collected_by
817
+
818
+ > **Skip if:**
819
+ > - $.message.catalog.providers[*].payments[*].collected_by is not in the payload
820
+
821
+ **VALID_PAYMENT_LABEL**
822
+ `group: ON_SEARCH_PAYMENTS > VALID_PAYMENT_ITEMS | type: leaf`
823
+
824
+ - All elements of ["INSTALLMENT", "LOAN_DISBURSMENT"] must be in $.message.catalog.providers[*].payments[*].time.label
825
+
826
+ > **Skip if:**
827
+ > - $.message.catalog.providers[*].payments[*].time.label is not in the payload
828
+
829
+ ---
830
+
831
+ ## ON_SEARCH_TAGS
832
+
833
+ This is a group of **2** sub-validation(s) that all must pass: REQUIRED_PAYMENT_TAGS and REQUIRED_BPP_TERMS.
834
+
835
+ ---
836
+
837
+ **REQUIRED_PAYMENT_TAGS**
838
+ `group: ON_SEARCH_TAGS | type: leaf`
839
+
840
+ - All elements of $.message.catalog.tags[*].descriptor.code must be in ["BAP_TERMS", "BPP_TERMS"]
841
+
842
+ > **Skip if:**
843
+ > - $.message.catalog.tags[*].descriptor.code is not in the payload
844
+
845
+ **REQUIRED_BPP_TERMS**
846
+ `group: ON_SEARCH_TAGS | type: leaf | scope: $.message.catalog.tags[?(@.descriptor.code == BPP_TERMS)]`
847
+
848
+ - All elements of $.message.catalog.tags[?(@.descriptor.code == BPP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"]
849
+
850
+ ---
851
+
852
+ ## ON_SEARCH_PROVIDER_TAGS
853
+
854
+ This is a group of **3** sub-validation(s) that all must pass: VALID_PROVODER_TAGS, REQUIRED_CONTACT_INFO, and REQUIRED_LSP_INFO.
855
+
856
+ ---
857
+
858
+ **VALID_PROVODER_TAGS**
859
+ `group: ON_SEARCH_PROVIDER_TAGS | type: leaf`
860
+
861
+ - All elements of $.message.catalog.providers[*].tags[*].descriptor.code must be in ["CONTACT_INFO", "LSP_INFO"]
862
+
863
+ > **Skip if:**
864
+ > - $.message.catalog.providers[*].tags[*].descriptor.code is not in the payload
865
+
866
+ **REQUIRED_CONTACT_INFO**
867
+ `group: ON_SEARCH_PROVIDER_TAGS | type: leaf | scope: $.message.catalog.providers[*].tags[?(@.descriptor.code == CONTACT_INFO)]`
868
+
869
+ - All elements of $.message.catalog.providers[*].tags[?(@.descriptor.code == CONTACT_INFO)].list[*].descriptor.code must be in ["GRO_NAME", "GRO_EMAIL", "GRO_CONTACT_NUMBER", "CUSTOMER_SUPPORT_LINK", "CUSTOMER_SUPPORT_CONTACT_NUMBER", "CUSTOMER_SUPPORT_CONTACT_NUMBER"]
870
+
871
+ **REQUIRED_LSP_INFO**
872
+ `group: ON_SEARCH_PROVIDER_TAGS | type: leaf | scope: $.message.catalog.providers[*].tags[?(@.descriptor.code == LSP_INFO)]`
873
+
874
+ - All elements of $.message.catalog.providers[*].tags[?(@.descriptor.code == LSP_INFO)].list[*].descriptor.code must be in ["LSP_NAME", "LSP_EMAIL", "LSP_CONTACT_NUMBER", "LSP_ADDRESS"]
875
+
876
+ ---
877
+
878
+ ## ON_SEARCH_ITEM_TAGS
879
+
880
+ This is a group of **2** sub-validation(s) that all must pass: REQUIRED_LOAN_INFO_TAG_GROUP and REQUIRED_LOAN_OFFER_TAGS.
881
+
882
+ > **Skip if:**
883
+ > **All of the following must be true:**
884
+ > - $.message.catalog.providers[*].items[*].tags[*].descriptor.code must **not** be present in the payload
885
+ > - Not all elements of $.message.catalog.providers[*].items[*].tags[*].descriptor.code may be in ["LOAN_INFO", "LOAN_OFFER"]
886
+
887
+ ---
888
+
889
+ **REQUIRED_LOAN_INFO_TAG_GROUP**
890
+ `group: ON_SEARCH_ITEM_TAGS | type: leaf | scope: $.message.catalog.providers[*].items[*].tags[?(@.descriptor.code == LOAN_INFO)]`
891
+
892
+ - All elements of $.message.catalog.providers[*].items[*].tags[?(@.descriptor.code == LOAN_INFO)].list[*].descriptor.code must be in ["INTEREST_RATE", "TERM", "INTEREST_RATE_TYPE", "APPLICATION_FEE", "FORECLOSURE_FEE", "INTEREST_RATE_CONVERSION_CHARGE", "DELAY_PENALTY_FEE", "OTHER_PENALTY_FEE", "ANNUAL_PERCENTAGE_RATE", "REPAYMENT_FREQUENCY", "NUMBER_OF_INSTALLMENTS", "TNC_LINK", "COOL_OFF_PERIOD", "INSTALLMENT_AMOUNT", "KFS_LINK", "INVOICE_NUMBER", "WORKING_CAPITAL_LIMIT", "INSURANCE_CHARGES", "RATE_ANNUALISED_PENAL_CHARGES", "KYC_MODE", "CO_APPLICANT"]
893
+
894
+ **REQUIRED_LOAN_OFFER_TAGS**
895
+ `group: ON_SEARCH_ITEM_TAGS | type: leaf | scope: $.message.catalog.providers[*].items[*].tags[?(@.descriptor.code == LOAN_OFFER)]`
896
+
897
+ - All elements of $.message.catalog.providers[*].items[*].tags[?(@.descriptor.code == LOAN_OFFER)].list[*].descriptor.code must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT", "PROCESSING_FEE", "OTHER_UPFRONT_CHARGES", "INSURANCE_CHARGES", "NET_DISBURSED_AMOUNT", "OTHER_CHARGES", "OFFER_VALIDITY", "WORKING_CAPITAL_LIMIT", "CURRENT_UTLIZATION"]