ondc-code-generator 1.0.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.
- package/alpha/docs/rag-docs/confirm.md +301 -0
- package/alpha/docs/rag-docs/init.md +422 -0
- package/alpha/docs/rag-docs/on_confirm.md +921 -0
- package/alpha/docs/rag-docs/on_init.md +823 -0
- package/alpha/docs/rag-docs/on_search.md +897 -0
- package/alpha/docs/rag-docs/on_select.md +522 -0
- package/alpha/docs/rag-docs/on_status.md +854 -0
- package/alpha/docs/rag-docs/on_update.md +921 -0
- package/alpha/docs/rag-docs/search.md +678 -0
- package/alpha/docs/rag-docs/select.md +344 -0
- package/alpha/docs/rag-docs/status.md +178 -0
- package/alpha/docs/rag-docs/update.md +229 -0
- package/alpha/docs/rag-table-docs/confirm.md +63 -0
- package/alpha/docs/rag-table-docs/init.md +81 -0
- package/alpha/docs/rag-table-docs/on_confirm.md +164 -0
- package/alpha/docs/rag-table-docs/on_init.md +146 -0
- package/alpha/docs/rag-table-docs/on_search.md +163 -0
- package/alpha/docs/rag-table-docs/on_select.md +99 -0
- package/alpha/docs/rag-table-docs/on_status.md +153 -0
- package/alpha/docs/rag-table-docs/on_update.md +164 -0
- package/alpha/docs/rag-table-docs/raw_table.json +11198 -0
- package/alpha/docs/rag-table-docs/search.md +128 -0
- package/alpha/docs/rag-table-docs/select.md +70 -0
- package/alpha/docs/rag-table-docs/status.md +44 -0
- package/alpha/docs/rag-table-docs/update.md +51 -0
- package/alpha/docs/validPaths.json +34134 -0
- package/dist/generator/generators/documentation/markdown-message-generator.js +4 -1
- package/dist/generator/generators/rag/rag-generator.d.ts +39 -28
- package/dist/generator/generators/rag/rag-generator.js +149 -103
- package/dist/generator/generators/rag/rag-table-generator.d.ts +6 -0
- package/dist/generator/generators/rag/rag-table-generator.js +16 -6
- package/package.json +1 -1
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
---
|
|
2
|
+
action: select
|
|
3
|
+
codeName: L1validations
|
|
4
|
+
numTests: 40
|
|
5
|
+
generated: 2026-03-10
|
|
6
|
+
domain: ONDC:FIS12
|
|
7
|
+
version: 2.3.0
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# L1validations — `select` Validations
|
|
11
|
+
|
|
12
|
+
These are the validation rules applied when processing the `select` API call in the L1validations flow.
|
|
13
|
+
There are **40** validation rules organized into **4** top-level group(s).
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
## SELECT_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: SELECT_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: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
35
|
+
|
|
36
|
+
- $.context.location.city.code must be present in the payload
|
|
37
|
+
|
|
38
|
+
**REQUIRED_CONTEXT_DOMAIN**
|
|
39
|
+
`group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
40
|
+
|
|
41
|
+
- $.context.domain must be present in the payload
|
|
42
|
+
|
|
43
|
+
**REQUIRED_CONTEXT_TIMESTAMP**
|
|
44
|
+
`group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
45
|
+
|
|
46
|
+
- $.context.timestamp must be present in the payload
|
|
47
|
+
|
|
48
|
+
**REQUIRED_CONTEXT_BAP_ID**
|
|
49
|
+
`group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
50
|
+
|
|
51
|
+
- $.context.bap_id must be present in the payload
|
|
52
|
+
|
|
53
|
+
**REQUIRED_CONTEXT_BAP_URI**
|
|
54
|
+
`group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
55
|
+
|
|
56
|
+
- $.context.bap_uri must be present in the payload
|
|
57
|
+
|
|
58
|
+
**REQUIRED_CONTEXT_TRANSACTION_ID**
|
|
59
|
+
`group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
60
|
+
|
|
61
|
+
- $.context.transaction_id must be present in the payload
|
|
62
|
+
|
|
63
|
+
**REQUIRED_CONTEXT_MESSAGE_ID**
|
|
64
|
+
`group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
65
|
+
|
|
66
|
+
- $.context.message_id must be present in the payload
|
|
67
|
+
|
|
68
|
+
**REQUIRED_CONTEXT_VERSION**
|
|
69
|
+
`group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
70
|
+
|
|
71
|
+
- $.context.version must be present in the payload
|
|
72
|
+
|
|
73
|
+
**REQUIRED_CONTEXT_TTL**
|
|
74
|
+
`group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
75
|
+
|
|
76
|
+
- $.context.ttl must be present in the payload
|
|
77
|
+
|
|
78
|
+
**REQUIRED_CONTEXT_BPP_ID**
|
|
79
|
+
`group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
80
|
+
|
|
81
|
+
- $.context.bpp_id must be present in the payload
|
|
82
|
+
|
|
83
|
+
**REQUIRED_CONTEXT_BPP_URI**
|
|
84
|
+
`group: SELECT_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: SELECT_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: SELECT_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: SELECT_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: SELECT_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: SELECT_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: SELECT_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: SELECT_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: SELECT_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: SELECT_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
|
+
## REQUIRED_PROVIDER_ID
|
|
175
|
+
|
|
176
|
+
`group: top-level | type: leaf`
|
|
177
|
+
|
|
178
|
+
- $.message.order.provider.id must be present in the payload
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## REQUIRED_ITEM_FIELDS
|
|
183
|
+
|
|
184
|
+
This group contains **4** sub-group(s)/validation(s): REQUIRED_ITEM_ID, REQUIRED_PARENT_ITEM_ID, REQUIRED_XINPUT_ITEMS, and VALID_TAGS.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
**REQUIRED_ITEM_ID**
|
|
189
|
+
`group: REQUIRED_ITEM_FIELDS | type: leaf`
|
|
190
|
+
|
|
191
|
+
- $.message.order.items[*].id must be present in the payload
|
|
192
|
+
|
|
193
|
+
**REQUIRED_PARENT_ITEM_ID**
|
|
194
|
+
`group: REQUIRED_ITEM_FIELDS | type: leaf`
|
|
195
|
+
|
|
196
|
+
- $.message.order.items[*].parent_item_id must be present in the payload
|
|
197
|
+
|
|
198
|
+
### REQUIRED_XINPUT_ITEMS
|
|
199
|
+
|
|
200
|
+
This group contains **3** sub-group(s)/validation(s): SET_LOAN_AMOUNT_FORM, REQUIRED_FORM_SUBMISSION_ID, and BUSINESS_KYC_FORM.
|
|
201
|
+
|
|
202
|
+
> **Skip if:**
|
|
203
|
+
> - $.message.order.items[*].xinput.form.id must **not** be present in the payload
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
#### SET_LOAN_AMOUNT_FORM
|
|
208
|
+
|
|
209
|
+
This is a group of **2** sub-validation(s) that all must pass: REQUIRED_REQUEST_AMOUNT and REQUIRED_REQUEST_TERM.
|
|
210
|
+
|
|
211
|
+
> **Skip if:**
|
|
212
|
+
> - $.message.order.items[*].xinput.head.descriptor.code must **not** equal ["SET_LOAN_AMOUNT"]
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
**REQUIRED_REQUEST_AMOUNT**
|
|
217
|
+
`group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > SET_LOAN_AMOUNT_FORM | type: leaf`
|
|
218
|
+
|
|
219
|
+
- $.message.order.items[*].xinput.form.data.requestAmount.value must be present in the payload
|
|
220
|
+
|
|
221
|
+
**REQUIRED_REQUEST_TERM**
|
|
222
|
+
`group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > SET_LOAN_AMOUNT_FORM | type: leaf`
|
|
223
|
+
|
|
224
|
+
- $.message.order.items[*].xinput.form.data.requestTerm.value must be present in the payload
|
|
225
|
+
|
|
226
|
+
**REQUIRED_FORM_SUBMISSION_ID**
|
|
227
|
+
`group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS | type: leaf`
|
|
228
|
+
|
|
229
|
+
- $.message.order.items[*].xinput.form_response.submission_id must be present in the payload
|
|
230
|
+
|
|
231
|
+
> **Skip if:**
|
|
232
|
+
> - not all elements of $.message.order.items[*].xinput.head.descriptor.code are in ["INDIVIDUAL_KYC", "MANUAL_VERIFICATION"]
|
|
233
|
+
|
|
234
|
+
#### BUSINESS_KYC_FORM
|
|
235
|
+
|
|
236
|
+
This is a group of **4** sub-validation(s) that all must pass: REQUIRED_COMPANY_PAN, REQUIRED_GST_CERTIFICATE, REQUIRED_BUSINESS_PROOF, and REQUIRED_APPLICATION_FORM.
|
|
237
|
+
|
|
238
|
+
> **Skip if:**
|
|
239
|
+
> - $.message.order.items[*].xinput.head.descriptor.code must **not** equal ["BUSINESS_KYC"]
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
**REQUIRED_COMPANY_PAN**
|
|
244
|
+
`group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > BUSINESS_KYC_FORM | type: leaf`
|
|
245
|
+
|
|
246
|
+
- $.message.order.items[*].xinput.form.data.companyPan.value must be present in the payload
|
|
247
|
+
|
|
248
|
+
**REQUIRED_GST_CERTIFICATE**
|
|
249
|
+
`group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > BUSINESS_KYC_FORM | type: leaf`
|
|
250
|
+
|
|
251
|
+
- $.message.order.items[*].xinput.form.data.gstCertificate.value must be present in the payload
|
|
252
|
+
|
|
253
|
+
**REQUIRED_BUSINESS_PROOF**
|
|
254
|
+
`group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > BUSINESS_KYC_FORM | type: leaf`
|
|
255
|
+
|
|
256
|
+
- $.message.order.items[*].xinput.form.data.businessProof.value must be present in the payload
|
|
257
|
+
|
|
258
|
+
**REQUIRED_APPLICATION_FORM**
|
|
259
|
+
`group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > BUSINESS_KYC_FORM | type: leaf`
|
|
260
|
+
|
|
261
|
+
- $.message.order.items[*].xinput.form.data.applicationForm.value must be present in the payload
|
|
262
|
+
|
|
263
|
+
### VALID_TAGS
|
|
264
|
+
|
|
265
|
+
This is a group of **2** sub-validation(s) that all must pass: VALID_ITEM_TAGS and VALID_PLEDGE_TAGS.
|
|
266
|
+
|
|
267
|
+
> **Skip if:**
|
|
268
|
+
> - $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
**VALID_ITEM_TAGS**
|
|
273
|
+
`group: REQUIRED_ITEM_FIELDS > VALID_TAGS | type: leaf`
|
|
274
|
+
|
|
275
|
+
- All elements of $.message.order.items[*].tags[*].descriptor.code must be in ["PLEDGE_REQUIREMENTS"]
|
|
276
|
+
|
|
277
|
+
> **Skip if:**
|
|
278
|
+
> - $.message.order.items[*].tags[*].descriptor.code is not in the payload
|
|
279
|
+
|
|
280
|
+
**VALID_PLEDGE_TAGS**
|
|
281
|
+
`group: REQUIRED_ITEM_FIELDS > VALID_TAGS | type: leaf | scope: $.message.order.items[*].tags[?(@.descriptor.code == PLEDGE_REQUIREMENTS)]`
|
|
282
|
+
|
|
283
|
+
- All elements of $.message.order.items[*].tags[?(@.descriptor.code == PLEDGE_REQUIREMENTS)].list[*].descriptor.code must be in ["SCHEME_CODE", "UNITS_PLEDGED"]
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## REQUIRED_FULFILMENT_ITEMS
|
|
288
|
+
|
|
289
|
+
This group contains **2** sub-group(s)/validation(s): REQUIRED_FULFILLMENT_ID and REQUIRED_CUSTOMER_ITEMS.
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
**REQUIRED_FULFILLMENT_ID**
|
|
294
|
+
`group: REQUIRED_FULFILMENT_ITEMS | type: leaf`
|
|
295
|
+
|
|
296
|
+
- $.message.order.fulfillments[*].id must be present in the payload
|
|
297
|
+
|
|
298
|
+
### REQUIRED_CUSTOMER_ITEMS
|
|
299
|
+
|
|
300
|
+
This group contains **5** sub-group(s)/validation(s): REQUIRED_CUSTOMER_DOB, REQUIRED_CUSTOMER_GENDER, REQUIRED_CREDS, REQUIRED_CUSTOMER_CONTACT_EMAIL, and REQUIRED_CUSTOMER_CONTACT_PHONE.
|
|
301
|
+
|
|
302
|
+
> **Skip if:**
|
|
303
|
+
> - $.message.order.fulfillments[*].customer.person.name must **not** be present in the payload
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
**REQUIRED_CUSTOMER_DOB**
|
|
308
|
+
`group: REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | type: leaf`
|
|
309
|
+
|
|
310
|
+
- $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload
|
|
311
|
+
|
|
312
|
+
**REQUIRED_CUSTOMER_GENDER**
|
|
313
|
+
`group: REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | type: leaf`
|
|
314
|
+
|
|
315
|
+
- $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload
|
|
316
|
+
|
|
317
|
+
#### REQUIRED_CREDS
|
|
318
|
+
|
|
319
|
+
This is a group of **2** sub-validation(s) that all must pass: REQUIRED_CUSTOMER_CREDS_ID and REQUIRED_CUSTOMER_CREDS_TYPE.
|
|
320
|
+
|
|
321
|
+
> **Skip if:**
|
|
322
|
+
> - $.message.order.fulfillments[*].customer.person.creds[*].id must **not** be present in the payload
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
**REQUIRED_CUSTOMER_CREDS_ID**
|
|
327
|
+
`group: REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS > REQUIRED_CREDS | type: leaf`
|
|
328
|
+
|
|
329
|
+
- $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload
|
|
330
|
+
|
|
331
|
+
**REQUIRED_CUSTOMER_CREDS_TYPE**
|
|
332
|
+
`group: REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS > REQUIRED_CREDS | type: leaf`
|
|
333
|
+
|
|
334
|
+
- $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload
|
|
335
|
+
|
|
336
|
+
**REQUIRED_CUSTOMER_CONTACT_EMAIL**
|
|
337
|
+
`group: REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | type: leaf`
|
|
338
|
+
|
|
339
|
+
- $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload
|
|
340
|
+
|
|
341
|
+
**REQUIRED_CUSTOMER_CONTACT_PHONE**
|
|
342
|
+
`group: REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | type: leaf`
|
|
343
|
+
|
|
344
|
+
- $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
action: status
|
|
3
|
+
codeName: L1validations
|
|
4
|
+
numTests: 22
|
|
5
|
+
generated: 2026-03-10
|
|
6
|
+
domain: ONDC:FIS12
|
|
7
|
+
version: 2.3.0
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# L1validations — `status` Validations
|
|
11
|
+
|
|
12
|
+
These are the validation rules applied when processing the `status` API call in the L1validations flow.
|
|
13
|
+
There are **22** validation rules organized into **2** top-level group(s).
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
## STATUS_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: STATUS_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: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
35
|
+
|
|
36
|
+
- $.context.location.city.code must be present in the payload
|
|
37
|
+
|
|
38
|
+
**REQUIRED_CONTEXT_DOMAIN**
|
|
39
|
+
`group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
40
|
+
|
|
41
|
+
- $.context.domain must be present in the payload
|
|
42
|
+
|
|
43
|
+
**REQUIRED_CONTEXT_TIMESTAMP**
|
|
44
|
+
`group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
45
|
+
|
|
46
|
+
- $.context.timestamp must be present in the payload
|
|
47
|
+
|
|
48
|
+
**REQUIRED_CONTEXT_BAP_ID**
|
|
49
|
+
`group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
50
|
+
|
|
51
|
+
- $.context.bap_id must be present in the payload
|
|
52
|
+
|
|
53
|
+
**REQUIRED_CONTEXT_BAP_URI**
|
|
54
|
+
`group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
55
|
+
|
|
56
|
+
- $.context.bap_uri must be present in the payload
|
|
57
|
+
|
|
58
|
+
**REQUIRED_CONTEXT_TRANSACTION_ID**
|
|
59
|
+
`group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
60
|
+
|
|
61
|
+
- $.context.transaction_id must be present in the payload
|
|
62
|
+
|
|
63
|
+
**REQUIRED_CONTEXT_MESSAGE_ID**
|
|
64
|
+
`group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
65
|
+
|
|
66
|
+
- $.context.message_id must be present in the payload
|
|
67
|
+
|
|
68
|
+
**REQUIRED_CONTEXT_VERSION**
|
|
69
|
+
`group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
70
|
+
|
|
71
|
+
- $.context.version must be present in the payload
|
|
72
|
+
|
|
73
|
+
**REQUIRED_CONTEXT_TTL**
|
|
74
|
+
`group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
75
|
+
|
|
76
|
+
- $.context.ttl must be present in the payload
|
|
77
|
+
|
|
78
|
+
**REQUIRED_CONTEXT_BPP_ID**
|
|
79
|
+
`group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
|
|
80
|
+
|
|
81
|
+
- $.context.bpp_id must be present in the payload
|
|
82
|
+
|
|
83
|
+
**REQUIRED_CONTEXT_BPP_URI**
|
|
84
|
+
`group: STATUS_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: STATUS_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: STATUS_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: STATUS_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: STATUS_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: STATUS_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: STATUS_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: STATUS_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: STATUS_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: STATUS_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
|
+
## REQUIRED_ORDER_ID
|
|
175
|
+
|
|
176
|
+
`group: top-level | type: leaf`
|
|
177
|
+
|
|
178
|
+
- $.message.order_id must be present in the payload
|