ondc-code-generator 0.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 (139) hide show
  1. package/.idea/code-generator.iml +12 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/vcs.xml +6 -0
  4. package/LICENSE +21 -0
  5. package/README.md +0 -0
  6. package/custom-loader.js +4 -0
  7. package/dist/Generator/config-compiler.js +53 -0
  8. package/dist/Generator/config-validator.js +21 -0
  9. package/dist/Generator/generators/classes/abstract-generator.js +16 -0
  10. package/dist/Generator/generators/documentation/markdown-message-generator.js +37 -0
  11. package/dist/Generator/generators/documentation/md-generator.js +57 -0
  12. package/dist/Generator/generators/markdown-message-generator.js +25 -0
  13. package/dist/Generator/generators/python/py-generator.js +1 -0
  14. package/dist/Generator/generators/typescript/templates/json-path-utils.js +15 -0
  15. package/dist/Generator/generators/typescript/templates/validation-utils.js +91 -0
  16. package/dist/Generator/generators/typescript/ts-ast.js +50 -0
  17. package/dist/Generator/generators/typescript/ts-generator.js +184 -0
  18. package/dist/Generator/pipline.js +1 -0
  19. package/dist/Generator/validators/abstract-validator.js +6 -0
  20. package/dist/Generator/validators/config-validator.js +32 -0
  21. package/dist/Generator/validators/session-data-config/session-data-validator.js +35 -0
  22. package/dist/Generator/validators/tests-config/sub-validations.js +194 -0
  23. package/dist/Generator/validators/tests-config/test-list-validator.js +36 -0
  24. package/dist/Generator/validators/tests-config/test-validator.js +24 -0
  25. package/dist/Generator/validators/validation-error.js +9 -0
  26. package/dist/constants/operations.js +17 -0
  27. package/dist/constants/syntax.js +75 -0
  28. package/dist/index.js +39 -0
  29. package/dist/services/rename-later/main.js +1 -0
  30. package/dist/services/rename-later/parser.js +22 -0
  31. package/dist/services/rename-later/tokens.js +32 -0
  32. package/dist/services/rename-later/tokens1.js +33 -0
  33. package/dist/services/return-complier/ast-functions/compile-to-markdown.js +66 -0
  34. package/dist/services/return-complier/ast-functions/semantic-validations.js +30 -0
  35. package/dist/services/return-complier/ast.js +92 -0
  36. package/dist/services/return-complier/combined.js +7 -0
  37. package/dist/services/return-complier/parser.js +95 -0
  38. package/dist/services/return-complier/tokens.js +144 -0
  39. package/dist/services/schema-service.js +29 -0
  40. package/dist/types/build.js +1 -0
  41. package/dist/types/compiler-types.js +4 -0
  42. package/dist/types/config-types.js +1 -0
  43. package/dist/types/error-codes.js +1 -0
  44. package/dist/types/general-types.js +1 -0
  45. package/dist/utils/config-utils/json-schema-utils.js +91 -0
  46. package/dist/utils/config-utils/yaml.js +16 -0
  47. package/dist/utils/file-system.js +1 -0
  48. package/dist/utils/fs-utils.js +20 -0
  49. package/dist/utils/general-utils/string-utils.js +56 -0
  50. package/dist/utils/general-utils/test-object-utils.js +12 -0
  51. package/dist/utils/general-utils/validation-utils.js +21 -0
  52. package/dist/utils/json-path-utils/extract-string-paths.js +113 -0
  53. package/dist/utils/json-path-utils/paths.js +46 -0
  54. package/dist/utils/logger.js +41 -0
  55. package/docs/error-gen.md +33 -0
  56. package/docs/return-grammer.md +23 -0
  57. package/docs/sampleConfig.md +39 -0
  58. package/generated/L1-validations/api-tests/cancel.ts +569 -0
  59. package/generated/L1-validations/api-tests/confirm.ts +1162 -0
  60. package/generated/L1-validations/api-tests/init.ts +1063 -0
  61. package/generated/L1-validations/api-tests/on_cancel.ts +2069 -0
  62. package/generated/L1-validations/api-tests/on_confirm.ts +2219 -0
  63. package/generated/L1-validations/api-tests/on_init.ts +1949 -0
  64. package/generated/L1-validations/api-tests/on_search.ts +1574 -0
  65. package/generated/L1-validations/api-tests/on_select.ts +1723 -0
  66. package/generated/L1-validations/api-tests/on_status.ts +2221 -0
  67. package/generated/L1-validations/api-tests/on_update.ts +1969 -0
  68. package/generated/L1-validations/api-tests/search.ts +695 -0
  69. package/generated/L1-validations/api-tests/select.ts +994 -0
  70. package/generated/L1-validations/api-tests/status.ts +443 -0
  71. package/generated/L1-validations/api-tests/update.ts +898 -0
  72. package/generated/L1-validations/error.ts +64 -0
  73. package/generated/L1-validations/index.ts +138 -0
  74. package/generated/L1-validations/page/index.html +2118 -0
  75. package/generated/L1-validations/page/style.css +225 -0
  76. package/generated/L1-validations/readme.md +1779 -0
  77. package/generated/L1-validations/types/test-config.ts +27 -0
  78. package/generated/L1-validations/utils/json-path-utils.ts +17 -0
  79. package/generated/L1-validations/utils/validation-utils.ts +116 -0
  80. package/generated-structure/api-tests/search.ts +24 -0
  81. package/generated-structure/error.ts +0 -0
  82. package/generated-structure/index.ts +0 -0
  83. package/generated-structure/types/test-config.ts +21 -0
  84. package/nodemon.json +5 -0
  85. package/package.json +40 -0
  86. package/samples/build.yaml +24799 -0
  87. package/samples/output.md +91 -0
  88. package/samples/output.ts +27 -0
  89. package/samples/selections.json +216 -0
  90. package/samples/validation-config.json +3422 -0
  91. package/samples/x-validations.yaml +2893 -0
  92. package/src/constants/operations.ts +19 -0
  93. package/src/constants/syntax.ts +81 -0
  94. package/src/example.ts +25 -0
  95. package/src/generator/config-compiler.ts +122 -0
  96. package/src/generator/generators/classes/abstract-generator.ts +29 -0
  97. package/src/generator/generators/documentation/markdown-message-generator.ts +43 -0
  98. package/src/generator/generators/documentation/md-generator.ts +76 -0
  99. package/src/generator/generators/documentation/templates/index.mustache +36 -0
  100. package/src/generator/generators/documentation/templates/style.css +204 -0
  101. package/src/generator/generators/python/py-generator.ts +0 -0
  102. package/src/generator/generators/typescript/templates/api-test.mustache +7 -0
  103. package/src/generator/generators/typescript/templates/json-path-utils.ts +17 -0
  104. package/src/generator/generators/typescript/templates/schema-template.mustache +18 -0
  105. package/src/generator/generators/typescript/templates/test-config.mustache +28 -0
  106. package/src/generator/generators/typescript/templates/test-object.mustache +20 -0
  107. package/src/generator/generators/typescript/templates/validation-code.mustache +39 -0
  108. package/src/generator/generators/typescript/templates/validation-utils.ts +117 -0
  109. package/src/generator/generators/typescript/ts-ast.ts +72 -0
  110. package/src/generator/generators/typescript/ts-generator.ts +275 -0
  111. package/src/generator/validators/abstract-validator.ts +23 -0
  112. package/src/generator/validators/config-validator.ts +55 -0
  113. package/src/generator/validators/session-data-config/session-data-validator.ts +58 -0
  114. package/src/generator/validators/tests-config/sub-validations.ts +302 -0
  115. package/src/generator/validators/tests-config/test-list-validator.ts +59 -0
  116. package/src/generator/validators/tests-config/test-validator.ts +69 -0
  117. package/src/index.ts +2 -0
  118. package/src/services/return-complier/ast-functions/compile-to-markdown.ts +152 -0
  119. package/src/services/return-complier/ast-functions/semantic-validations.ts +44 -0
  120. package/src/services/return-complier/ast.ts +147 -0
  121. package/src/services/return-complier/combined.ts +8 -0
  122. package/src/services/return-complier/parser.ts +128 -0
  123. package/src/services/return-complier/tokens.ts +184 -0
  124. package/src/services/schema-service.ts +42 -0
  125. package/src/types/build.ts +51 -0
  126. package/src/types/compiler-types.ts +3 -0
  127. package/src/types/config-types.ts +27 -0
  128. package/src/types/error-codes.ts +6 -0
  129. package/src/types/general-types.ts +2 -0
  130. package/src/utils/config-utils/json-schema-utils.ts +150 -0
  131. package/src/utils/config-utils/yaml.ts +17 -0
  132. package/src/utils/fs-utils.ts +32 -0
  133. package/src/utils/general-utils/string-utils.ts +76 -0
  134. package/src/utils/general-utils/test-object-utils.ts +14 -0
  135. package/src/utils/general-utils/validation-utils.ts +30 -0
  136. package/src/utils/json-path-utils/extract-string-paths.ts +139 -0
  137. package/src/utils/json-path-utils/paths.ts +44 -0
  138. package/src/utils/logger.ts +53 -0
  139. package/tsconfig.json +17 -0
@@ -0,0 +1,1779 @@
1
+
2
+
3
+ - **search** : All the following sub conditions must pass as per the api requirement
4
+
5
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
6
+
7
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
8
+
9
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
10
+
11
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
12
+
13
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
14
+
15
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
16
+
17
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
18
+
19
+ - **condition Enum_Required_8_CONTEXT_ACTION**: all of the following sub conditions must be met:
20
+
21
+ - **condition Enum_Required_8_CONTEXT_ACTION.1**: every element of $.context.action must be in ["search"]
22
+ - **condition Enum_Required_8_CONTEXT_ACTION.2**: $.context.action must be present in the payload
23
+
24
+ - **condition Enum_Required_9_COUNTRY_CODE**: all of the following sub conditions must be met:
25
+
26
+ - **condition Enum_Required_9_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
27
+ - **condition Enum_Required_9_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
28
+
29
+ - **condition Enum_Required_10_CITY_CODE**: $.context.location.city.code must be present in the payload
30
+
31
+ - **condition Enum_Required_11_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
32
+
33
+ - **condition Enum_Required_11_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
34
+ - **condition Enum_Required_11_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
35
+
36
+ - **condition Enum_Required_12_VEHICLE_CATEGORY**: all of the following sub conditions must be met:
37
+
38
+ - **condition Enum_Required_12_VEHICLE_CATEGORY.1**: every element of $.message.intent.fulfillment.vehicle.category must be in ["BUS", "METRO"]
39
+ - **condition Enum_Required_12_VEHICLE_CATEGORY.2**: $.message.intent.fulfillment.vehicle.category must be present in the payload
40
+
41
+ - **condition Enum_Required_13_FULFILLMENT_TYPE**: every element of $.message.intent.fulfillment.type must be in ["ROUTE", "TRIP"]
42
+
43
+ > Note: **Condition Enum_Required_13_FULFILLMENT_TYPE** can be skipped if the following conditions are met:
44
+ >
45
+ > - **condition B**: $.message.intent.fulfillment.type must **not** be present in the payload
46
+
47
+ - **condition Enum_Required_14_STOPS_TYPE**: every element of $.message.intent.fulfillment.stops[*].type must be in ["START", "END", "INTERMEDIATE_STOP", "TRANSIT_STOP"]
48
+
49
+ > Note: **Condition Enum_Required_14_STOPS_TYPE** can be skipped if the following conditions are met:
50
+ >
51
+ > - **condition B**: $.message.intent.fulfillment.stops[*].type must **not** be present in the payload
52
+
53
+ - **condition Enum_Required_15_AUTHORIZATION_TYPE**: every element of $.message.intent.fulfillment.stops[*].authorization.type must be in ["QR"]
54
+
55
+ > Note: **Condition Enum_Required_15_AUTHORIZATION_TYPE** can be skipped if the following conditions are met:
56
+ >
57
+ > - **condition B**: $.message.intent.fulfillment.stops[*].authorization.type must **not** be present in the payload
58
+
59
+ - **condition Enum_Required_16_AUTHORIZATION_STATUS**: every element of $.message.intent.fulfillment.stops[*].authorization.status must be in ["UNCLAIMED", "CLAIMED"]
60
+
61
+ > Note: **Condition Enum_Required_16_AUTHORIZATION_STATUS** can be skipped if the following conditions are met:
62
+ >
63
+ > - **condition B**: $.message.intent.fulfillment.stops[*].authorization.status must **not** be present in the payload
64
+
65
+ - **condition BUYER_FINDER_FEES_Tag_Required_17_DESCRIPTOR_CODE**: every element of $.message.intent.payment.tags[*].descriptor.code must be in ["BUYER_FINDER_FEES", "SETTLEMENT_TERMS"]
66
+
67
+ > Note: **Condition BUYER_FINDER_FEES_Tag_Required_17_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
68
+ >
69
+ > - **condition B**: $.message.intent.payment.tags[*].descriptor.code must **not** be present in the payload
70
+
71
+ - **condition validate_tag_0_BUYER_FINDER_FEES**: every element of $.message.intent.payment.tags[?(@.descriptor.code=='BUYER_FINDER_FEES')].list[*].descriptor.code must be in ["BUYER_FINDER_FEES_TYPE", "BUYER_FINDER_FEES_PERCENTAGE", "BUYER_FINDER_FEES_AMOUNT"]
72
+
73
+ - **condition validate_tag_0_SETTLEMENT_TERMS**: every element of $.message.intent.payment.tags[?(@.descriptor.code=='SETTLEMENT_TERMS')].list[*].descriptor.code must be in ["SETTLEMENT_WINDOW", "SETTLEMENT_BASIS", "SETTLEMENT_TYPE", "MANDATORY_ARBITRATION", "COURT_JURISDICTION", "DELAY_INTEREST", "STATIC_TERMS", "SETTLEMENT_AMOUNT"]
74
+
75
+ - **select** : All the following sub conditions must pass as per the api requirement
76
+
77
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
78
+
79
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
80
+
81
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
82
+
83
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
84
+
85
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
86
+
87
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
88
+
89
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
90
+
91
+ - **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload
92
+
93
+ - **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload
94
+
95
+ - **condition Attri_Required_10_ITEMS_ID**: $.message.order.items[*].id must be present in the payload
96
+
97
+ - **condition Attri_Required_11_SELECTED_COUNT**: $.message.order.items[*].quantity.selected.count must be present in the payload
98
+
99
+ - **condition Attri_Required_12_PROVIDER_ID**: $.message.order.provider.id must be present in the payload
100
+
101
+ - **condition Enum_Required_13_CONTEXT_ACTION**: all of the following sub conditions must be met:
102
+
103
+ - **condition Enum_Required_13_CONTEXT_ACTION.1**: every element of $.context.action must be in ["select"]
104
+ - **condition Enum_Required_13_CONTEXT_ACTION.2**: $.context.action must be present in the payload
105
+
106
+ - **condition Enum_Required_14_COUNTRY_CODE**: all of the following sub conditions must be met:
107
+
108
+ - **condition Enum_Required_14_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
109
+ - **condition Enum_Required_14_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
110
+
111
+ - **condition Enum_Required_15_CITY_CODE**: $.context.location.city.code must be present in the payload
112
+
113
+ - **condition Enum_Required_16_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
114
+
115
+ - **condition Enum_Required_16_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
116
+ - **condition Enum_Required_16_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
117
+
118
+ - **condition Enum_Required_17_DESCRIPTOR_CODE**: every element of $.message.order.items[*].descriptor.code must be in ["SJT", "SFSJT", "RJT", "PASS"]
119
+
120
+ > Note: **Condition Enum_Required_17_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
121
+ >
122
+ > - **condition B**: $.message.order.items[*].descriptor.code must **not** be present in the payload
123
+
124
+ - **condition Enum_Required_18_VEHICLE_CATEGORY**: every element of $.message.order.fulfillments[*].vehicle.category must be in ["BUS", "METRO"]
125
+
126
+ > Note: **Condition Enum_Required_18_VEHICLE_CATEGORY** can be skipped if the following conditions are met:
127
+ >
128
+ > - **condition B**: $.message.order.fulfillments[*].vehicle.category must **not** be present in the payload
129
+
130
+ - **condition Enum_Required_19_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["ROUTE", "TRIP"]
131
+
132
+ > Note: **Condition Enum_Required_19_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
133
+ >
134
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
135
+
136
+ - **condition Enum_Required_20_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["START", "END", "INTERMEDIATE_STOP", "TRANSIT_STOP"]
137
+
138
+ > Note: **Condition Enum_Required_20_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
139
+ >
140
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
141
+
142
+ - **condition Enum_Required_21_AUTHORIZATION_TYPE**: every element of $.message.order.fulfillments[*].stops[*].authorization.type must be in ["QR"]
143
+
144
+ > Note: **Condition Enum_Required_21_AUTHORIZATION_TYPE** can be skipped if the following conditions are met:
145
+ >
146
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.type must **not** be present in the payload
147
+
148
+ - **condition Enum_Required_22_AUTHORIZATION_STATUS**: every element of $.message.order.fulfillments[*].stops[*].authorization.status must be in ["UNCLAIMED", "CLAIMED"]
149
+
150
+ > Note: **Condition Enum_Required_22_AUTHORIZATION_STATUS** can be skipped if the following conditions are met:
151
+ >
152
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.status must **not** be present in the payload
153
+
154
+ - **condition Enum_Required_23_ORDER_STATUS**: every element of $.message.order.status must be in ["SOFT_CANCEL", "CONFIRM_CANCEL", "ACTIVE", "COMPLETE", "CANCELLED"]
155
+
156
+ > Note: **Condition Enum_Required_23_ORDER_STATUS** can be skipped if the following conditions are met:
157
+ >
158
+ > - **condition B**: $.message.order.status must **not** be present in the payload
159
+
160
+ - **condition Enum_Required_24_BREAKUP_TITLE**: every element of $.message.order.quote.breakup[*].title must be in ["BASE_PRICE", "REFUND", "CANCELLATION_CHARGES", "OFFER", "TOLL"]
161
+
162
+ > Note: **Condition Enum_Required_24_BREAKUP_TITLE** can be skipped if the following conditions are met:
163
+ >
164
+ > - **condition B**: $.message.order.quote.breakup[*].title must **not** be present in the payload
165
+
166
+ - **condition ROUTE_INFO_Tag_Required_25_DESCRIPTOR_CODE**: every element of $.message.order.fulfillments[*].tags[*].descriptor.code must be in ["ROUTE_INFO", "TICKET_INFO", "TRIP_DETAILS"]
167
+
168
+ > Note: **Condition ROUTE_INFO_Tag_Required_25_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
169
+ >
170
+ > - **condition B**: $.message.order.fulfillments[*].tags[*].descriptor.code must **not** be present in the payload
171
+
172
+ - **condition validate_tag_0_ROUTE_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='ROUTE_INFO')].list[*].descriptor.code must be in ["ROUTE_ID", "ROUTE_DIRECTION"]
173
+
174
+ - **condition validate_tag_0_TICKET_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TICKET_INFO')].list[*].descriptor.code must be in ["NUMBER"]
175
+
176
+ - **condition validate_tag_0_TRIP_DETAILS**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TRIP_DETAILS')].list[*].descriptor.code must be in ["AVAILABLE_TRIPS", "UTILIZED_TRIPS"]
177
+
178
+ - **init** : All the following sub conditions must pass as per the api requirement
179
+
180
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
181
+
182
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
183
+
184
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
185
+
186
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
187
+
188
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
189
+
190
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
191
+
192
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
193
+
194
+ - **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload
195
+
196
+ - **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload
197
+
198
+ - **condition Attri_Required_10_ITEMS_ID**: $.message.order.items[*].id must be present in the payload
199
+
200
+ - **condition Attri_Required_11_SELECTED_COUNT**: $.message.order.items[*].quantity.selected.count must be present in the payload
201
+
202
+ - **condition Attri_Required_12_PROVIDER_ID**: $.message.order.provider.id must be present in the payload
203
+
204
+ - **condition Attri_Required_13_PAYMENTS_COLLECTED_BY**: $.message.order.payments[*].collected_by must be present in the payload
205
+
206
+ - **condition Attri_Required_14_PAYMENTS_STATUS**: $.message.order.payments[*].status must be present in the payload
207
+
208
+ - **condition Attri_Required_15_PAYMENTS_TYPE**: $.message.order.payments[*].type must be present in the payload
209
+
210
+ - **condition Enum_Required_16_CONTEXT_ACTION**: all of the following sub conditions must be met:
211
+
212
+ - **condition Enum_Required_16_CONTEXT_ACTION.1**: every element of $.context.action must be in ["init"]
213
+ - **condition Enum_Required_16_CONTEXT_ACTION.2**: $.context.action must be present in the payload
214
+
215
+ - **condition Enum_Required_17_COUNTRY_CODE**: all of the following sub conditions must be met:
216
+
217
+ - **condition Enum_Required_17_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
218
+ - **condition Enum_Required_17_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
219
+
220
+ - **condition Enum_Required_18_CITY_CODE**: $.context.location.city.code must be present in the payload
221
+
222
+ - **condition Enum_Required_19_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
223
+
224
+ - **condition Enum_Required_19_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
225
+ - **condition Enum_Required_19_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
226
+
227
+ - **condition Enum_Required_20_DESCRIPTOR_CODE**: every element of $.message.order.items[*].descriptor.code must be in ["SJT", "SFSJT", "RJT", "PASS"]
228
+
229
+ > Note: **Condition Enum_Required_20_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
230
+ >
231
+ > - **condition B**: $.message.order.items[*].descriptor.code must **not** be present in the payload
232
+
233
+ - **condition Enum_Required_21_VEHICLE_CATEGORY**: every element of $.message.order.fulfillments[*].vehicle.category must be in ["BUS", "METRO"]
234
+
235
+ > Note: **Condition Enum_Required_21_VEHICLE_CATEGORY** can be skipped if the following conditions are met:
236
+ >
237
+ > - **condition B**: $.message.order.fulfillments[*].vehicle.category must **not** be present in the payload
238
+
239
+ - **condition Enum_Required_22_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["ROUTE", "TRIP"]
240
+
241
+ > Note: **Condition Enum_Required_22_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
242
+ >
243
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
244
+
245
+ - **condition Enum_Required_23_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["START", "END", "INTERMEDIATE_STOP", "TRANSIT_STOP"]
246
+
247
+ > Note: **Condition Enum_Required_23_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
248
+ >
249
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
250
+
251
+ - **condition Enum_Required_24_AUTHORIZATION_TYPE**: every element of $.message.order.fulfillments[*].stops[*].authorization.type must be in ["QR"]
252
+
253
+ > Note: **Condition Enum_Required_24_AUTHORIZATION_TYPE** can be skipped if the following conditions are met:
254
+ >
255
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.type must **not** be present in the payload
256
+
257
+ - **condition Enum_Required_25_AUTHORIZATION_STATUS**: every element of $.message.order.fulfillments[*].stops[*].authorization.status must be in ["UNCLAIMED", "CLAIMED"]
258
+
259
+ > Note: **Condition Enum_Required_25_AUTHORIZATION_STATUS** can be skipped if the following conditions are met:
260
+ >
261
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.status must **not** be present in the payload
262
+
263
+ - **condition Enum_Required_26_ORDER_STATUS**: every element of $.message.order.status must be in ["SOFT_CANCEL", "CONFIRM_CANCEL", "ACTIVE", "COMPLETE", "CANCELLED"]
264
+
265
+ > Note: **Condition Enum_Required_26_ORDER_STATUS** can be skipped if the following conditions are met:
266
+ >
267
+ > - **condition B**: $.message.order.status must **not** be present in the payload
268
+
269
+ - **condition Enum_Required_27_BREAKUP_TITLE**: every element of $.message.order.quote.breakup[*].title must be in ["BASE_PRICE", "REFUND", "CANCELLATION_CHARGES", "OFFER", "TOLL"]
270
+
271
+ > Note: **Condition Enum_Required_27_BREAKUP_TITLE** can be skipped if the following conditions are met:
272
+ >
273
+ > - **condition B**: $.message.order.quote.breakup[*].title must **not** be present in the payload
274
+
275
+ - **condition BUYER_FINDER_FEES_Tag_Required_28_DESCRIPTOR_CODE**: every element of $.message.order.payments[*].tags[*].descriptor.code must be in ["BUYER_FINDER_FEES", "SETTLEMENT_TERMS"]
276
+
277
+ > Note: **Condition BUYER_FINDER_FEES_Tag_Required_28_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
278
+ >
279
+ > - **condition B**: $.message.order.payments[*].tags[*].descriptor.code must **not** be present in the payload
280
+
281
+ - **condition validate_tag_0_BUYER_FINDER_FEES**: every element of $.message.order.payments[*].tags[?(@.descriptor.code=='BUYER_FINDER_FEES')].list[*].descriptor.code must be in ["BUYER_FINDER_FEES_TYPE", "BUYER_FINDER_FEES_PERCENTAGE", "BUYER_FINDER_FEES_AMOUNT"]
282
+
283
+ - **condition validate_tag_0_SETTLEMENT_TERMS**: every element of $.message.order.payments[*].tags[?(@.descriptor.code=='SETTLEMENT_TERMS')].list[*].descriptor.code must be in ["SETTLEMENT_WINDOW", "SETTLEMENT_BASIS", "SETTLEMENT_TYPE", "MANDATORY_ARBITRATION", "COURT_JURISDICTION", "DELAY_INTEREST", "STATIC_TERMS", "SETTLEMENT_AMOUNT"]
284
+
285
+ - **confirm** : All the following sub conditions must pass as per the api requirement
286
+
287
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
288
+
289
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
290
+
291
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
292
+
293
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
294
+
295
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
296
+
297
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
298
+
299
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
300
+
301
+ - **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload
302
+
303
+ - **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload
304
+
305
+ - **condition Attri_Required_10_ORDER_ID**: $.message.order.id must be present in the payload
306
+
307
+ - **condition Attri_Required_11_ITEMS_ID**: $.message.order.items[*].id must be present in the payload
308
+
309
+ - **condition Attri_Required_12_SELECTED_COUNT**: $.message.order.items[*].quantity.selected.count must be present in the payload
310
+
311
+ - **condition Attri_Required_13_PROVIDER_ID**: $.message.order.provider.id must be present in the payload
312
+
313
+ - **condition Attri_Required_14_PAYMENTS_ID**: $.message.order.payments[*].id must be present in the payload
314
+
315
+ - **condition Attri_Required_15_PARAMS_TRANSACTION_ID**: $.message.order.payments[*].params.transaction_id must be present in the payload
316
+
317
+ - **condition Attri_Required_16_PARAMS_CURRENCY**: $.message.order.payments[*].params.currency must be present in the payload
318
+
319
+ - **condition Attri_Required_17_PARAMS_AMOUNT**: $.message.order.payments[*].params.amount must be present in the payload
320
+
321
+ - **condition Attri_Required_18_PARAMS_TRANSACTION_ID**: $.message.order.payments[*].params.transaction_id must be present in the payload
322
+
323
+ - **condition Attri_Required_19_PARAMS_CURRENCY**: $.message.order.payments[*].params.currency must be present in the payload
324
+
325
+ - **condition Attri_Required_20_PARAMS_AMOUNT**: $.message.order.payments[*].params.amount must be present in the payload
326
+
327
+ - **condition Enum_Required_21_CONTEXT_ACTION**: all of the following sub conditions must be met:
328
+
329
+ - **condition Enum_Required_21_CONTEXT_ACTION.1**: every element of $.context.action must be in ["confirm"]
330
+ - **condition Enum_Required_21_CONTEXT_ACTION.2**: $.context.action must be present in the payload
331
+
332
+ - **condition Enum_Required_22_COUNTRY_CODE**: all of the following sub conditions must be met:
333
+
334
+ - **condition Enum_Required_22_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
335
+ - **condition Enum_Required_22_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
336
+
337
+ - **condition Enum_Required_23_CITY_CODE**: $.context.location.city.code must be present in the payload
338
+
339
+ - **condition Enum_Required_24_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
340
+
341
+ - **condition Enum_Required_24_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
342
+ - **condition Enum_Required_24_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
343
+
344
+ - **condition Enum_Required_25_DESCRIPTOR_CODE**: every element of $.message.order.items[*].descriptor.code must be in ["SJT", "SFSJT", "RJT", "PASS"]
345
+
346
+ > Note: **Condition Enum_Required_25_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
347
+ >
348
+ > - **condition B**: $.message.order.items[*].descriptor.code must **not** be present in the payload
349
+
350
+ - **condition Enum_Required_26_VEHICLE_CATEGORY**: every element of $.message.order.fulfillments[*].vehicle.category must be in ["BUS", "METRO"]
351
+
352
+ > Note: **Condition Enum_Required_26_VEHICLE_CATEGORY** can be skipped if the following conditions are met:
353
+ >
354
+ > - **condition B**: $.message.order.fulfillments[*].vehicle.category must **not** be present in the payload
355
+
356
+ - **condition Enum_Required_27_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["ROUTE", "TRIP"]
357
+
358
+ > Note: **Condition Enum_Required_27_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
359
+ >
360
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
361
+
362
+ - **condition Enum_Required_28_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["START", "END", "INTERMEDIATE_STOP", "TRANSIT_STOP"]
363
+
364
+ > Note: **Condition Enum_Required_28_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
365
+ >
366
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
367
+
368
+ - **condition Enum_Required_29_AUTHORIZATION_TYPE**: every element of $.message.order.fulfillments[*].stops[*].authorization.type must be in ["QR"]
369
+
370
+ > Note: **Condition Enum_Required_29_AUTHORIZATION_TYPE** can be skipped if the following conditions are met:
371
+ >
372
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.type must **not** be present in the payload
373
+
374
+ - **condition Enum_Required_30_AUTHORIZATION_STATUS**: every element of $.message.order.fulfillments[*].stops[*].authorization.status must be in ["UNCLAIMED", "CLAIMED"]
375
+
376
+ > Note: **Condition Enum_Required_30_AUTHORIZATION_STATUS** can be skipped if the following conditions are met:
377
+ >
378
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.status must **not** be present in the payload
379
+
380
+ - **condition Enum_Required_31_PAYMENTS_STATUS**: all of the following sub conditions must be met:
381
+
382
+ - **condition Enum_Required_31_PAYMENTS_STATUS.1**: every element of $.message.order.payments[*].status must be in ["NOT-PAID", "PAID"]
383
+ - **condition Enum_Required_31_PAYMENTS_STATUS.2**: $.message.order.payments[*].status must be present in the payload
384
+
385
+ - **condition Enum_Required_32_PAYMENTS_COLLECTED_BY**: all of the following sub conditions must be met:
386
+
387
+ - **condition Enum_Required_32_PAYMENTS_COLLECTED_BY.1**: every element of $.message.order.payments[*].collected_by must be in ["BPP", "BAP"]
388
+ - **condition Enum_Required_32_PAYMENTS_COLLECTED_BY.2**: $.message.order.payments[*].collected_by must be present in the payload
389
+
390
+ - **condition Enum_Required_33_PAYMENTS_TYPE**: all of the following sub conditions must be met:
391
+
392
+ - **condition Enum_Required_33_PAYMENTS_TYPE.1**: every element of $.message.order.payments[*].type must be in ["PRE-ORDER", "ON-FULFILLMENT", "POST-FULFILLMENT"]
393
+ - **condition Enum_Required_33_PAYMENTS_TYPE.2**: $.message.order.payments[*].type must be present in the payload
394
+
395
+ - **condition Enum_Required_34_BREAKUP_TITLE**: every element of $.message.order.quote.breakup[*].title must be in ["BASE_PRICE", "REFUND", "CANCELLATION_CHARGES", "OFFER", "TOLL"]
396
+
397
+ > Note: **Condition Enum_Required_34_BREAKUP_TITLE** can be skipped if the following conditions are met:
398
+ >
399
+ > - **condition B**: $.message.order.quote.breakup[*].title must **not** be present in the payload
400
+
401
+ - **status** : All the following sub conditions must pass as per the api requirement
402
+
403
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
404
+
405
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
406
+
407
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
408
+
409
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
410
+
411
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
412
+
413
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
414
+
415
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
416
+
417
+ - **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload
418
+
419
+ - **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload
420
+
421
+ - **condition Enum_Required_10_CONTEXT_ACTION**: all of the following sub conditions must be met:
422
+
423
+ - **condition Enum_Required_10_CONTEXT_ACTION.1**: every element of $.context.action must be in ["status"]
424
+ - **condition Enum_Required_10_CONTEXT_ACTION.2**: $.context.action must be present in the payload
425
+
426
+ - **condition Enum_Required_11_COUNTRY_CODE**: all of the following sub conditions must be met:
427
+
428
+ - **condition Enum_Required_11_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
429
+ - **condition Enum_Required_11_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
430
+
431
+ - **condition Enum_Required_12_CITY_CODE**: $.context.location.city.code must be present in the payload
432
+
433
+ - **condition Enum_Required_13_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
434
+
435
+ - **condition Enum_Required_13_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
436
+ - **condition Enum_Required_13_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
437
+
438
+ - **cancel** : All the following sub conditions must pass as per the api requirement
439
+
440
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
441
+
442
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
443
+
444
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
445
+
446
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
447
+
448
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
449
+
450
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
451
+
452
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
453
+
454
+ - **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload
455
+
456
+ - **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload
457
+
458
+ - **condition Attri_Required_10_MESSAGE_ORDER_ID**: $.message.order_id must be present in the payload
459
+
460
+ - **condition Attri_Required_11_MESSAGE_CANCELLATION_REASON_ID**: $.message.cancellation_reason_id must be present in the payload
461
+
462
+ - **condition Attri_Required_12_DESCRIPTOR_NAME**: $.message.descriptor.name must be present in the payload
463
+
464
+ - **condition Enum_Required_13_CONTEXT_ACTION**: all of the following sub conditions must be met:
465
+
466
+ - **condition Enum_Required_13_CONTEXT_ACTION.1**: every element of $.context.action must be in ["cancel"]
467
+ - **condition Enum_Required_13_CONTEXT_ACTION.2**: $.context.action must be present in the payload
468
+
469
+ - **condition Enum_Required_14_COUNTRY_CODE**: all of the following sub conditions must be met:
470
+
471
+ - **condition Enum_Required_14_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
472
+ - **condition Enum_Required_14_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
473
+
474
+ - **condition Enum_Required_15_CITY_CODE**: $.context.location.city.code must be present in the payload
475
+
476
+ - **condition Enum_Required_16_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
477
+
478
+ - **condition Enum_Required_16_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
479
+ - **condition Enum_Required_16_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
480
+
481
+ - **condition Enum_Required_17_DESCRIPTOR_CODE**: all of the following sub conditions must be met:
482
+
483
+ - **condition Enum_Required_17_DESCRIPTOR_CODE.1**: every element of $.message.descriptor.code must be in ["SOFT-CANCEL", "CONFIRM-CANCEL"]
484
+ - **condition Enum_Required_17_DESCRIPTOR_CODE.2**: $.message.descriptor.code must be present in the payload
485
+
486
+ - **update** : All the following sub conditions must pass as per the api requirement
487
+
488
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
489
+
490
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
491
+
492
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
493
+
494
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
495
+
496
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
497
+
498
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
499
+
500
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
501
+
502
+ - **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload
503
+
504
+ - **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload
505
+
506
+ - **condition Attri_Required_10_MESSAGE_UPDATE_TARGET**: $.message.update_target must be present in the payload
507
+
508
+ - **condition Attri_Required_11_ORDER_ID**: $.message.order.id must be present in the payload
509
+
510
+ - **condition Enum_Required_12_CONTEXT_ACTION**: all of the following sub conditions must be met:
511
+
512
+ - **condition Enum_Required_12_CONTEXT_ACTION.1**: every element of $.context.action must be in ["update"]
513
+ - **condition Enum_Required_12_CONTEXT_ACTION.2**: $.context.action must be present in the payload
514
+
515
+ - **condition Enum_Required_13_COUNTRY_CODE**: all of the following sub conditions must be met:
516
+
517
+ - **condition Enum_Required_13_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
518
+ - **condition Enum_Required_13_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
519
+
520
+ - **condition Enum_Required_14_CITY_CODE**: $.context.location.city.code must be present in the payload
521
+
522
+ - **condition Enum_Required_15_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
523
+
524
+ - **condition Enum_Required_15_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
525
+ - **condition Enum_Required_15_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
526
+
527
+ - **condition Enum_Required_16_DESCRIPTOR_CODE**: every element of $.message.order.items[*].descriptor.code must be in ["SJT", "SFSJT", "RJT", "PASS"]
528
+
529
+ > Note: **Condition Enum_Required_16_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
530
+ >
531
+ > - **condition B**: $.message.order.items[*].descriptor.code must **not** be present in the payload
532
+
533
+ - **condition Enum_Required_17_VEHICLE_CATEGORY**: every element of $.message.order.fulfillments[*].vehicle.category must be in ["BUS", "METRO"]
534
+
535
+ > Note: **Condition Enum_Required_17_VEHICLE_CATEGORY** can be skipped if the following conditions are met:
536
+ >
537
+ > - **condition B**: $.message.order.fulfillments[*].vehicle.category must **not** be present in the payload
538
+
539
+ - **condition Enum_Required_18_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["ROUTE", "TRIP"]
540
+
541
+ > Note: **Condition Enum_Required_18_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
542
+ >
543
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
544
+
545
+ - **condition Enum_Required_19_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["START", "END", "INTERMEDIATE_STOP", "TRANSIT_STOP"]
546
+
547
+ > Note: **Condition Enum_Required_19_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
548
+ >
549
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
550
+
551
+ - **condition Enum_Required_20_AUTHORIZATION_TYPE**: every element of $.message.order.fulfillments[*].stops[*].authorization.type must be in ["QR"]
552
+
553
+ > Note: **Condition Enum_Required_20_AUTHORIZATION_TYPE** can be skipped if the following conditions are met:
554
+ >
555
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.type must **not** be present in the payload
556
+
557
+ - **condition Enum_Required_21_AUTHORIZATION_STATUS**: every element of $.message.order.fulfillments[*].stops[*].authorization.status must be in ["UNCLAIMED", "CLAIMED"]
558
+
559
+ > Note: **Condition Enum_Required_21_AUTHORIZATION_STATUS** can be skipped if the following conditions are met:
560
+ >
561
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.status must **not** be present in the payload
562
+
563
+ - **condition Enum_Required_22_PAYMENTS_STATUS**: every element of $.message.order.payments[*].status must be in ["NOT-PAID", "PAID"]
564
+
565
+ > Note: **Condition Enum_Required_22_PAYMENTS_STATUS** can be skipped if the following conditions are met:
566
+ >
567
+ > - **condition B**: $.message.order.payments[*].status must **not** be present in the payload
568
+
569
+ - **condition Enum_Required_23_PAYMENTS_COLLECTED_BY**: every element of $.message.order.payments[*].collected_by must be in ["BPP", "BAP"]
570
+
571
+ > Note: **Condition Enum_Required_23_PAYMENTS_COLLECTED_BY** can be skipped if the following conditions are met:
572
+ >
573
+ > - **condition B**: $.message.order.payments[*].collected_by must **not** be present in the payload
574
+
575
+ - **condition Enum_Required_24_PAYMENTS_TYPE**: every element of $.message.order.payments[*].type must be in ["PRE-ORDER", "ON-FULFILLMENT", "POST-FULFILLMENT"]
576
+
577
+ > Note: **Condition Enum_Required_24_PAYMENTS_TYPE** can be skipped if the following conditions are met:
578
+ >
579
+ > - **condition B**: $.message.order.payments[*].type must **not** be present in the payload
580
+
581
+ - **condition Enum_Required_25_BREAKUP_TITLE**: every element of $.message.order.quote.breakup[*].title must be in ["BASE_PRICE", "REFUND", "CANCELLATION_CHARGES", "OFFER", "TOLL"]
582
+
583
+ > Note: **Condition Enum_Required_25_BREAKUP_TITLE** can be skipped if the following conditions are met:
584
+ >
585
+ > - **condition B**: $.message.order.quote.breakup[*].title must **not** be present in the payload
586
+
587
+ - **on_search** : All the following sub conditions must pass as per the api requirement
588
+
589
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
590
+
591
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
592
+
593
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
594
+
595
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
596
+
597
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
598
+
599
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
600
+
601
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
602
+
603
+ - **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload
604
+
605
+ - **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload
606
+
607
+ - **condition Enum_Required_19_CONTEXT_ACTION**: all of the following sub conditions must be met:
608
+
609
+ - **condition Enum_Required_19_CONTEXT_ACTION.1**: every element of $.context.action must be in ["on_search"]
610
+ - **condition Enum_Required_19_CONTEXT_ACTION.2**: $.context.action must be present in the payload
611
+
612
+ - **condition Enum_Required_20_COUNTRY_CODE**: all of the following sub conditions must be met:
613
+
614
+ - **condition Enum_Required_20_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
615
+ - **condition Enum_Required_20_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
616
+
617
+ - **condition Enum_Required_21_CITY_CODE**: $.context.location.city.code must be present in the payload
618
+
619
+ - **condition Enum_Required_22_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
620
+
621
+ - **condition Enum_Required_22_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
622
+ - **condition Enum_Required_22_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
623
+
624
+ - **on_search_Message_TESTS** : All the following sub conditions must pass as per the api requirement
625
+
626
+ - **condition Attri_Required_10_DESCRIPTOR_NAME**: $.message.catalog.descriptor.name must be present in the payload
627
+
628
+ - **condition Attri_Required_11_PROVIDERS_ID**: $.message.catalog.providers[*].id must be present in the payload
629
+
630
+ - **condition Attri_Required_12_DESCRIPTOR_NAME**: $.message.catalog.providers[*].descriptor.name must be present in the payload
631
+
632
+ - **condition Attri_Required_13_FULFILLMENTS_ID**: $.message.catalog.providers[*].fulfillments[*].id must be present in the payload
633
+
634
+ - **condition Attri_Required_14_LOCATION_GPS**: $.message.catalog.providers[*].fulfillments[*].stops[*].location.gps must be present in the payload
635
+
636
+ - **condition Attri_Required_15_FULFILLMENTS_ID**: $.message.catalog.providers[*].fulfillments[*].id must be present in the payload
637
+
638
+ - **condition Attri_Required_16_CATEGORIES_ID**: $.message.catalog.providers[*].categories[*].id must be present in the payload
639
+
640
+ - **condition Attri_Required_17_RANGE_START**: $.message.catalog.providers[*].time.range.start must be present in the payload
641
+
642
+ - **condition Attri_Required_18_RANGE_END**: $.message.catalog.providers[*].time.range.end must be present in the payload
643
+
644
+ - **condition Enum_Required_23_DESCRIPTOR_CODE**: all of the following sub conditions must be met:
645
+
646
+ - **condition Enum_Required_23_DESCRIPTOR_CODE.1**: every element of $.message.catalog.providers[*].categories[*].descriptor.code must be in ["TICKET", "PASS"]
647
+ - **condition Enum_Required_23_DESCRIPTOR_CODE.2**: $.message.catalog.providers[*].categories[*].descriptor.code must be present in the payload
648
+
649
+ - **condition Enum_Required_24_DESCRIPTOR_CODE**: every element of $.message.catalog.providers[*].descriptor.code must be in ["SJT", "SFSJT", "RJT", "PASS"]
650
+
651
+ > Note: **Condition Enum_Required_24_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
652
+ >
653
+ > - **condition B**: $.message.catalog.providers[*].descriptor.code must **not** be present in the payload
654
+
655
+ - **condition Enum_Required_25_VEHICLE_CATEGORY**: all of the following sub conditions must be met:
656
+
657
+ - **condition Enum_Required_25_VEHICLE_CATEGORY.1**: every element of $.message.catalog.providers[*].fulfillments[*].vehicle.category must be in ["BUS", "METRO"]
658
+ - **condition Enum_Required_25_VEHICLE_CATEGORY.2**: $.message.catalog.providers[*].fulfillments[*].vehicle.category must be present in the payload
659
+
660
+ - **condition Enum_Required_26_FULFILLMENTS_TYPE**: all of the following sub conditions must be met:
661
+
662
+ - **condition Enum_Required_26_FULFILLMENTS_TYPE.1**: every element of $.message.catalog.providers[*].fulfillments[*].type must be in ["ROUTE", "TRIP"]
663
+ - **condition Enum_Required_26_FULFILLMENTS_TYPE.2**: $.message.catalog.providers[*].fulfillments[*].type must be present in the payload
664
+
665
+ - **condition Enum_Required_27_FULFILLMENTS_TYPE**: every element of $.message.catalog.providers[*].fulfillments[*].type must be in ["START", "END", "INTERMEDIATE_STOP", "TRANSIT_STOP"]
666
+
667
+ > Note: **Condition Enum_Required_27_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
668
+ >
669
+ > - **condition B**: $.message.catalog.providers[*].fulfillments[*].type must **not** be present in the payload
670
+
671
+ - **condition Enum_Required_28_AUTHORIZATION_TYPE**: every element of $.message.catalog.providers[*].fulfillments[*].stops[*].authorization.type must be in ["QR"]
672
+
673
+ > Note: **Condition Enum_Required_28_AUTHORIZATION_TYPE** can be skipped if the following conditions are met:
674
+ >
675
+ > - **condition B**: $.message.catalog.providers[*].fulfillments[*].stops[*].authorization.type must **not** be present in the payload
676
+
677
+ - **condition Enum_Required_29_AUTHORIZATION_STATUS**: every element of $.message.catalog.providers[*].fulfillments[*].stops[*].authorization.status must be in ["UNCLAIMED", "CLAIMED"]
678
+
679
+ > Note: **Condition Enum_Required_29_AUTHORIZATION_STATUS** can be skipped if the following conditions are met:
680
+ >
681
+ > - **condition B**: $.message.catalog.providers[*].fulfillments[*].stops[*].authorization.status must **not** be present in the payload
682
+
683
+ - **condition Enum_Required_30_PAYMENTS_STATUS**: every element of $.message.catalog.providers[*].payments[*].status must be in ["NOT-PAID", "PAID"]
684
+
685
+ > Note: **Condition Enum_Required_30_PAYMENTS_STATUS** can be skipped if the following conditions are met:
686
+ >
687
+ > - **condition B**: $.message.catalog.providers[*].payments[*].status must **not** be present in the payload
688
+
689
+ - **condition Enum_Required_31_PAYMENTS_COLLECTED_BY**: all of the following sub conditions must be met:
690
+
691
+ - **condition Enum_Required_31_PAYMENTS_COLLECTED_BY.1**: every element of $.message.catalog.providers[*].payments[*].collected_by must be in ["BPP", "BAP"]
692
+ - **condition Enum_Required_31_PAYMENTS_COLLECTED_BY.2**: $.message.catalog.providers[*].payments[*].collected_by must be present in the payload
693
+
694
+ - **condition Enum_Required_32_PAYMENTS_TYPE**: every element of $.message.catalog.providers[*].payments[*].type must be in ["PRE-ORDER", "ON-FULFILLMENT", "POST-FULFILLMENT"]
695
+
696
+ > Note: **Condition Enum_Required_32_PAYMENTS_TYPE** can be skipped if the following conditions are met:
697
+ >
698
+ > - **condition B**: $.message.catalog.providers[*].payments[*].type must **not** be present in the payload
699
+
700
+ - **condition FARE_POLICY_Tag_Required_33_DESCRIPTOR_CODE**: every element of $.message.catalog.providers[*].items[*].tags[*].descriptor.code must be in ["FARE_POLICY"]
701
+
702
+ > Note: **Condition FARE_POLICY_Tag_Required_33_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
703
+ >
704
+ > - **condition B**: $.message.catalog.providers[*].items[*].tags[*].descriptor.code must **not** be present in the payload
705
+
706
+ - **condition validate_tag_0_FARE_POLICY**: every element of $.message.catalog.providers[*].items[*].tags[?(@.descriptor.code=='FARE_POLICY')].list[*].descriptor.code must be in ["RESTRICTED_PERSON", "RESTRICTION_PROOF"]
707
+
708
+ - **condition ROUTE_INFO_Tag_Required_35_DESCRIPTOR_CODE**: every element of $.message.catalog.providers[*].fulfillments[*].tags[*].descriptor.code must be in ["ROUTE_INFO", "TICKET_INFO", "TRIP_DETAILS"]
709
+
710
+ > Note: **Condition ROUTE_INFO_Tag_Required_35_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
711
+ >
712
+ > - **condition B**: $.message.catalog.providers[*].fulfillments[*].tags[*].descriptor.code must **not** be present in the payload
713
+
714
+ - **condition validate_tag_1_ROUTE_INFO**: every element of $.message.catalog.providers[*].fulfillments[*].tags[?(@.descriptor.code=='ROUTE_INFO')].list[*].descriptor.code must be in ["ROUTE_ID", "ROUTE_DIRECTION"]
715
+
716
+ - **condition validate_tag_1_TICKET_INFO**: every element of $.message.catalog.providers[*].fulfillments[*].tags[?(@.descriptor.code=='TICKET_INFO')].list[*].descriptor.code must be in ["NUMBER"]
717
+
718
+ - **condition validate_tag_1_TRIP_DETAILS**: every element of $.message.catalog.providers[*].fulfillments[*].tags[?(@.descriptor.code=='TRIP_DETAILS')].list[*].descriptor.code must be in ["AVAILABLE_TRIPS", "UTILIZED_TRIPS"]
719
+
720
+ - **condition BUYER_FINDER_FEES_Tag_Required_39_DESCRIPTOR_CODE**: every element of $.message.catalog.providers[*].payments[*].tags[*].descriptor.code must be in ["BUYER_FINDER_FEES", "SETTLEMENT_TERMS"]
721
+
722
+ > Note: **Condition BUYER_FINDER_FEES_Tag_Required_39_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
723
+ >
724
+ > - **condition B**: $.message.catalog.providers[*].payments[*].tags[*].descriptor.code must **not** be present in the payload
725
+
726
+ - **condition validate_tag_2_BUYER_FINDER_FEES**: every element of $.message.catalog.providers[*].payments[*].tags[?(@.descriptor.code=='BUYER_FINDER_FEES')].list[*].descriptor.code must be in ["BUYER_FINDER_FEES_TYPE", "BUYER_FINDER_FEES_PERCENTAGE", "BUYER_FINDER_FEES_AMOUNT"]
727
+
728
+ - **condition validate_tag_2_SETTLEMENT_TERMS**: every element of $.message.catalog.providers[*].payments[*].tags[?(@.descriptor.code=='SETTLEMENT_TERMS')].list[*].descriptor.code must be in ["SETTLEMENT_WINDOW", "SETTLEMENT_BASIS", "SETTLEMENT_TYPE", "MANDATORY_ARBITRATION", "COURT_JURISDICTION", "DELAY_INTEREST", "STATIC_TERMS", "SETTLEMENT_AMOUNT"]
729
+
730
+ - **condition SCHEDULED_INFO_Tag_Required_42_DESCRIPTOR_CODE**: every element of $.message.catalog.providers[*].tags[*].descriptor.code must be in ["SCHEDULED_INFO"]
731
+
732
+ > Note: **Condition SCHEDULED_INFO_Tag_Required_42_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
733
+ >
734
+ > - **condition B**: $.message.catalog.providers[*].tags[*].descriptor.code must **not** be present in the payload
735
+
736
+ - **condition validate_tag_3_SCHEDULED_INFO**: every element of $.message.catalog.providers[*].tags[?(@.descriptor.code=='SCHEDULED_INFO')].list[*].descriptor.code must be in ["GTFS"]
737
+
738
+ - **on_select** : All the following sub conditions must pass as per the api requirement
739
+
740
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
741
+
742
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
743
+
744
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
745
+
746
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
747
+
748
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
749
+
750
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
751
+
752
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
753
+
754
+ - **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload
755
+
756
+ - **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload
757
+
758
+ - **condition Enum_Required_33_CONTEXT_ACTION**: all of the following sub conditions must be met:
759
+
760
+ - **condition Enum_Required_33_CONTEXT_ACTION.1**: every element of $.context.action must be in ["on_select"]
761
+ - **condition Enum_Required_33_CONTEXT_ACTION.2**: $.context.action must be present in the payload
762
+
763
+ - **condition Enum_Required_34_COUNTRY_CODE**: all of the following sub conditions must be met:
764
+
765
+ - **condition Enum_Required_34_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
766
+ - **condition Enum_Required_34_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
767
+
768
+ - **condition Enum_Required_35_CITY_CODE**: $.context.location.city.code must be present in the payload
769
+
770
+ - **condition Enum_Required_36_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
771
+
772
+ - **condition Enum_Required_36_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
773
+ - **condition Enum_Required_36_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
774
+
775
+ - **on_select_Message_TESTS** : All the following sub conditions must pass as per the api requirement
776
+
777
+ - **condition Attri_Required_10_ITEMS_ID**: $.message.order.items[*].id must be present in the payload
778
+
779
+ - **condition Attri_Required_11_PRICE_CURRENCY**: $.message.order.items[*].price.currency must be present in the payload
780
+
781
+ - **condition Attri_Required_12_PRICE_VALUE**: $.message.order.items[*].price.value must be present in the payload
782
+
783
+ - **condition Attri_Required_13_SELECTED_COUNT**: $.message.order.items[*].quantity.selected.count must be present in the payload
784
+
785
+ - **condition Attri_Required_14_ITEMS_FULFILLMENT_IDS**: $.message.order.items[*].fulfillment_ids[*] must be present in the payload
786
+
787
+ - **condition Attri_Required_15_TIME_LABEL**: $.message.order.items[*].time.label must be present in the payload
788
+
789
+ - **condition Attri_Required_16_TIME_DURATION**: $.message.order.items[*].time.duration must be present in the payload
790
+
791
+ - **condition Attri_Required_17_PROVIDER_ID**: $.message.order.provider.id must be present in the payload
792
+
793
+ - **condition Attri_Required_18_DESCRIPTOR_NAME**: $.message.order.provider.descriptor.name must be present in the payload
794
+
795
+ - **condition Attri_Required_19_FULFILLMENTS_ID**: $.message.order.fulfillments[*].id must be present in the payload
796
+
797
+ - **condition Attri_Required_20_LOCATION_GPS**: $.message.order.fulfillments[*].stops[*].location.gps must be present in the payload
798
+
799
+ - **condition Attri_Required_21_FULFILLMENTS_ID**: $.message.order.fulfillments[*].id must be present in the payload
800
+
801
+ - **condition Attri_Required_22_PRICE_VALUE**: $.message.order.quote.price.value must be present in the payload
802
+
803
+ - **condition Attri_Required_23_PRICE_CURRENCY**: $.message.order.quote.price.currency must be present in the payload
804
+
805
+ - **condition Attri_Required_24_ITEM_ID**: $.message.order.quote.breakup[*].item.id must be present in the payload
806
+
807
+ - **condition Attri_Required_25_ITEMS_CATEGORY_IDS**: $.message.order.items[*].category_ids[*] must be present in the payload
808
+
809
+ - **condition Attri_Required_26_RANGE_START**: $.message.order.provider.time.range.start must be present in the payload
810
+
811
+ - **condition Attri_Required_27_RANGE_END**: $.message.order.provider.time.range.end must be present in the payload
812
+
813
+ - **condition Attri_Required_28_PRICE_CURRENCY**: $.message.order.quote.breakup[*].item.price.currency must be present in the payload
814
+
815
+ - **condition Attri_Required_29_PRICE_VALUE**: $.message.order.quote.breakup[*].item.price.value must be present in the payload
816
+
817
+ - **condition Attri_Required_30_SELECTED_COUNT**: $.message.order.quote.breakup[*].item.quantity.selected.count must be present in the payload
818
+
819
+ - **condition Attri_Required_31_EXTERNAL_REF_URL**: $.message.order.cancellation_terms[*].external_ref.url must be present in the payload
820
+
821
+ - **condition Attri_Required_32_EXTERNAL_REF_MIMETYPE**: $.message.order.cancellation_terms[*].external_ref.mimetype must be present in the payload
822
+
823
+ - **condition Enum_Required_37_DESCRIPTOR_CODE**: all of the following sub conditions must be met:
824
+
825
+ - **condition Enum_Required_37_DESCRIPTOR_CODE.1**: every element of $.message.order.items[*].descriptor.code must be in ["SJT", "SFSJT", "RJT", "PASS"]
826
+ - **condition Enum_Required_37_DESCRIPTOR_CODE.2**: $.message.order.items[*].descriptor.code must be present in the payload
827
+
828
+ - **condition Enum_Required_38_VEHICLE_CATEGORY**: all of the following sub conditions must be met:
829
+
830
+ - **condition Enum_Required_38_VEHICLE_CATEGORY.1**: every element of $.message.order.fulfillments[*].vehicle.category must be in ["BUS", "METRO"]
831
+ - **condition Enum_Required_38_VEHICLE_CATEGORY.2**: $.message.order.fulfillments[*].vehicle.category must be present in the payload
832
+
833
+ - **condition Enum_Required_39_FULFILLMENTS_TYPE**: all of the following sub conditions must be met:
834
+
835
+ - **condition Enum_Required_39_FULFILLMENTS_TYPE.1**: every element of $.message.order.fulfillments[*].type must be in ["ROUTE", "TRIP"]
836
+ - **condition Enum_Required_39_FULFILLMENTS_TYPE.2**: $.message.order.fulfillments[*].type must be present in the payload
837
+
838
+ - **condition Enum_Required_40_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["START", "END", "INTERMEDIATE_STOP", "TRANSIT_STOP"]
839
+
840
+ > Note: **Condition Enum_Required_40_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
841
+ >
842
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
843
+
844
+ - **condition Enum_Required_41_AUTHORIZATION_TYPE**: every element of $.message.order.fulfillments[*].stops[*].authorization.type must be in ["QR"]
845
+
846
+ > Note: **Condition Enum_Required_41_AUTHORIZATION_TYPE** can be skipped if the following conditions are met:
847
+ >
848
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.type must **not** be present in the payload
849
+
850
+ - **condition Enum_Required_42_AUTHORIZATION_STATUS**: every element of $.message.order.fulfillments[*].stops[*].authorization.status must be in ["UNCLAIMED", "CLAIMED"]
851
+
852
+ > Note: **Condition Enum_Required_42_AUTHORIZATION_STATUS** can be skipped if the following conditions are met:
853
+ >
854
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.status must **not** be present in the payload
855
+
856
+ - **condition Enum_Required_43_ORDER_STATUS**: every element of $.message.order.status must be in ["SOFT_CANCEL", "CONFIRM_CANCEL", "ACTIVE", "COMPLETE", "CANCELLED"]
857
+
858
+ > Note: **Condition Enum_Required_43_ORDER_STATUS** can be skipped if the following conditions are met:
859
+ >
860
+ > - **condition B**: $.message.order.status must **not** be present in the payload
861
+
862
+ - **condition Enum_Required_44_BREAKUP_TITLE**: all of the following sub conditions must be met:
863
+
864
+ - **condition Enum_Required_44_BREAKUP_TITLE.1**: every element of $.message.order.quote.breakup[*].title must be in ["BASE_PRICE", "REFUND", "CANCELLATION_CHARGES", "OFFER", "TOLL"]
865
+ - **condition Enum_Required_44_BREAKUP_TITLE.2**: $.message.order.quote.breakup[*].title must be present in the payload
866
+
867
+ - **condition ROUTE_INFO_Tag_Required_45_DESCRIPTOR_CODE**: every element of $.message.order.fulfillments[*].tags[*].descriptor.code must be in ["ROUTE_INFO", "TICKET_INFO", "TRIP_DETAILS"]
868
+
869
+ > Note: **Condition ROUTE_INFO_Tag_Required_45_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
870
+ >
871
+ > - **condition B**: $.message.order.fulfillments[*].tags[*].descriptor.code must **not** be present in the payload
872
+
873
+ - **condition validate_tag_0_ROUTE_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='ROUTE_INFO')].list[*].descriptor.code must be in ["ROUTE_ID", "ROUTE_DIRECTION"]
874
+
875
+ - **condition validate_tag_0_TICKET_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TICKET_INFO')].list[*].descriptor.code must be in ["NUMBER"]
876
+
877
+ - **condition validate_tag_0_TRIP_DETAILS**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TRIP_DETAILS')].list[*].descriptor.code must be in ["AVAILABLE_TRIPS", "UTILIZED_TRIPS"]
878
+
879
+ - **condition FARE_POLICY_Tag_Required_49_DESCRIPTOR_CODE**: every element of $.message.order.items[*].tags[*].descriptor.code must be in ["FARE_POLICY"]
880
+
881
+ > Note: **Condition FARE_POLICY_Tag_Required_49_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
882
+ >
883
+ > - **condition B**: $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload
884
+
885
+ - **condition validate_tag_1_FARE_POLICY**: every element of $.message.order.items[*].tags[?(@.descriptor.code=='FARE_POLICY')].list[*].descriptor.code must be in ["RESTRICTED_PERSON", "RESTRICTION_PROOF"]
886
+
887
+ - **on_init** : All the following sub conditions must pass as per the api requirement
888
+
889
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
890
+
891
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
892
+
893
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
894
+
895
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
896
+
897
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
898
+
899
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
900
+
901
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
902
+
903
+ - **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload
904
+
905
+ - **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload
906
+
907
+ - **condition Enum_Required_34_CONTEXT_ACTION**: all of the following sub conditions must be met:
908
+
909
+ - **condition Enum_Required_34_CONTEXT_ACTION.1**: every element of $.context.action must be in ["on_init"]
910
+ - **condition Enum_Required_34_CONTEXT_ACTION.2**: $.context.action must be present in the payload
911
+
912
+ - **condition Enum_Required_35_COUNTRY_CODE**: all of the following sub conditions must be met:
913
+
914
+ - **condition Enum_Required_35_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
915
+ - **condition Enum_Required_35_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
916
+
917
+ - **condition Enum_Required_36_CITY_CODE**: $.context.location.city.code must be present in the payload
918
+
919
+ - **condition Enum_Required_37_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
920
+
921
+ - **condition Enum_Required_37_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
922
+ - **condition Enum_Required_37_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
923
+
924
+ - **on_init_Message_TESTS** : All the following sub conditions must pass as per the api requirement
925
+
926
+ - **condition Attri_Required_10_ITEMS_ID**: $.message.order.items[*].id must be present in the payload
927
+
928
+ - **condition Attri_Required_11_PRICE_CURRENCY**: $.message.order.items[*].price.currency must be present in the payload
929
+
930
+ - **condition Attri_Required_12_PRICE_VALUE**: $.message.order.items[*].price.value must be present in the payload
931
+
932
+ - **condition Attri_Required_13_SELECTED_COUNT**: $.message.order.items[*].quantity.selected.count must be present in the payload
933
+
934
+ - **condition Attri_Required_14_ITEMS_FULFILLMENT_IDS**: $.message.order.items[*].fulfillment_ids[*] must be present in the payload
935
+
936
+ - **condition Attri_Required_15_TIME_LABEL**: $.message.order.items[*].time.label must be present in the payload
937
+
938
+ - **condition Attri_Required_16_TIME_DURATION**: $.message.order.items[*].time.duration must be present in the payload
939
+
940
+ - **condition Attri_Required_17_PROVIDER_ID**: $.message.order.provider.id must be present in the payload
941
+
942
+ - **condition Attri_Required_18_DESCRIPTOR_NAME**: $.message.order.provider.descriptor.name must be present in the payload
943
+
944
+ - **condition Attri_Required_19_FULFILLMENTS_ID**: $.message.order.fulfillments[*].id must be present in the payload
945
+
946
+ - **condition Attri_Required_20_LOCATION_GPS**: $.message.order.fulfillments[*].stops[*].location.gps must be present in the payload
947
+
948
+ - **condition Attri_Required_21_FULFILLMENTS_ID**: $.message.order.fulfillments[*].id must be present in the payload
949
+
950
+ - **condition Attri_Required_22_PRICE_VALUE**: $.message.order.quote.price.value must be present in the payload
951
+
952
+ - **condition Attri_Required_23_PRICE_CURRENCY**: $.message.order.quote.price.currency must be present in the payload
953
+
954
+ - **condition Attri_Required_24_ITEM_ID**: $.message.order.quote.breakup[*].item.id must be present in the payload
955
+
956
+ - **condition Attri_Required_25_PAYMENTS_ID**: $.message.order.payments[*].id must be present in the payload
957
+
958
+ - **condition Attri_Required_26_ITEMS_CATEGORY_IDS**: $.message.order.items[*].category_ids[*] must be present in the payload
959
+
960
+ - **condition Attri_Required_27_RANGE_START**: $.message.order.provider.time.range.start must be present in the payload
961
+
962
+ - **condition Attri_Required_28_RANGE_END**: $.message.order.provider.time.range.end must be present in the payload
963
+
964
+ - **condition Attri_Required_29_SELECTED_COUNT**: $.message.order.quote.breakup[*].item.quantity.selected.count must be present in the payload
965
+
966
+ - **condition Attri_Required_30_PRICE_VALUE**: $.message.order.quote.breakup[*].item.price.value must be present in the payload
967
+
968
+ - **condition Attri_Required_31_PRICE_CURRENCY**: $.message.order.quote.breakup[*].item.price.currency must be present in the payload
969
+
970
+ - **condition Attri_Required_32_EXTERNAL_REF_URL**: $.message.order.cancellation_terms[*].external_ref.url must be present in the payload
971
+
972
+ - **condition Attri_Required_33_EXTERNAL_REF_MIMETYPE**: $.message.order.cancellation_terms[*].external_ref.mimetype must be present in the payload
973
+
974
+ - **condition Enum_Required_38_DESCRIPTOR_CODE**: all of the following sub conditions must be met:
975
+
976
+ - **condition Enum_Required_38_DESCRIPTOR_CODE.1**: every element of $.message.order.items[*].descriptor.code must be in ["SJT", "SFSJT", "RJT", "PASS"]
977
+ - **condition Enum_Required_38_DESCRIPTOR_CODE.2**: $.message.order.items[*].descriptor.code must be present in the payload
978
+
979
+ - **condition Enum_Required_39_VEHICLE_CATEGORY**: all of the following sub conditions must be met:
980
+
981
+ - **condition Enum_Required_39_VEHICLE_CATEGORY.1**: every element of $.message.order.fulfillments[*].vehicle.category must be in ["BUS", "METRO"]
982
+ - **condition Enum_Required_39_VEHICLE_CATEGORY.2**: $.message.order.fulfillments[*].vehicle.category must be present in the payload
983
+
984
+ - **condition Enum_Required_40_FULFILLMENTS_TYPE**: all of the following sub conditions must be met:
985
+
986
+ - **condition Enum_Required_40_FULFILLMENTS_TYPE.1**: every element of $.message.order.fulfillments[*].type must be in ["ROUTE", "TRIP"]
987
+ - **condition Enum_Required_40_FULFILLMENTS_TYPE.2**: $.message.order.fulfillments[*].type must be present in the payload
988
+
989
+ - **condition Enum_Required_41_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["START", "END", "INTERMEDIATE_STOP", "TRANSIT_STOP"]
990
+
991
+ > Note: **Condition Enum_Required_41_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
992
+ >
993
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
994
+
995
+ - **condition Enum_Required_42_AUTHORIZATION_TYPE**: every element of $.message.order.fulfillments[*].stops[*].authorization.type must be in ["QR"]
996
+
997
+ > Note: **Condition Enum_Required_42_AUTHORIZATION_TYPE** can be skipped if the following conditions are met:
998
+ >
999
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.type must **not** be present in the payload
1000
+
1001
+ - **condition Enum_Required_43_AUTHORIZATION_STATUS**: every element of $.message.order.fulfillments[*].stops[*].authorization.status must be in ["UNCLAIMED", "CLAIMED"]
1002
+
1003
+ > Note: **Condition Enum_Required_43_AUTHORIZATION_STATUS** can be skipped if the following conditions are met:
1004
+ >
1005
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.status must **not** be present in the payload
1006
+
1007
+ - **condition Enum_Required_44_PAYMENTS_STATUS**: all of the following sub conditions must be met:
1008
+
1009
+ - **condition Enum_Required_44_PAYMENTS_STATUS.1**: every element of $.message.order.payments[*].status must be in ["NOT-PAID", "PAID"]
1010
+ - **condition Enum_Required_44_PAYMENTS_STATUS.2**: $.message.order.payments[*].status must be present in the payload
1011
+
1012
+ - **condition Enum_Required_45_PAYMENTS_COLLECTED_BY**: all of the following sub conditions must be met:
1013
+
1014
+ - **condition Enum_Required_45_PAYMENTS_COLLECTED_BY.1**: every element of $.message.order.payments[*].collected_by must be in ["BPP", "BAP"]
1015
+ - **condition Enum_Required_45_PAYMENTS_COLLECTED_BY.2**: $.message.order.payments[*].collected_by must be present in the payload
1016
+
1017
+ - **condition Enum_Required_46_PAYMENTS_TYPE**: all of the following sub conditions must be met:
1018
+
1019
+ - **condition Enum_Required_46_PAYMENTS_TYPE.1**: every element of $.message.order.payments[*].type must be in ["PRE-ORDER", "ON-FULFILLMENT", "POST-FULFILLMENT"]
1020
+ - **condition Enum_Required_46_PAYMENTS_TYPE.2**: $.message.order.payments[*].type must be present in the payload
1021
+
1022
+ - **condition Enum_Required_47_BREAKUP_TITLE**: all of the following sub conditions must be met:
1023
+
1024
+ - **condition Enum_Required_47_BREAKUP_TITLE.1**: every element of $.message.order.quote.breakup[*].title must be in ["BASE_PRICE", "REFUND", "CANCELLATION_CHARGES", "OFFER", "TOLL"]
1025
+ - **condition Enum_Required_47_BREAKUP_TITLE.2**: $.message.order.quote.breakup[*].title must be present in the payload
1026
+
1027
+ - **condition ROUTE_INFO_Tag_Required_48_DESCRIPTOR_CODE**: every element of $.message.order.fulfillments[*].tags[*].descriptor.code must be in ["ROUTE_INFO", "TICKET_INFO", "TRIP_DETAILS"]
1028
+
1029
+ > Note: **Condition ROUTE_INFO_Tag_Required_48_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1030
+ >
1031
+ > - **condition B**: $.message.order.fulfillments[*].tags[*].descriptor.code must **not** be present in the payload
1032
+
1033
+ - **condition validate_tag_0_ROUTE_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='ROUTE_INFO')].list[*].descriptor.code must be in ["ROUTE_ID", "ROUTE_DIRECTION"]
1034
+
1035
+ - **condition validate_tag_0_TICKET_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TICKET_INFO')].list[*].descriptor.code must be in ["NUMBER"]
1036
+
1037
+ - **condition validate_tag_0_TRIP_DETAILS**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TRIP_DETAILS')].list[*].descriptor.code must be in ["AVAILABLE_TRIPS", "UTILIZED_TRIPS"]
1038
+
1039
+ - **condition FARE_POLICY_Tag_Required_52_DESCRIPTOR_CODE**: every element of $.message.order.items[*].tags[*].descriptor.code must be in ["FARE_POLICY"]
1040
+
1041
+ > Note: **Condition FARE_POLICY_Tag_Required_52_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1042
+ >
1043
+ > - **condition B**: $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload
1044
+
1045
+ - **condition validate_tag_1_FARE_POLICY**: every element of $.message.order.items[*].tags[?(@.descriptor.code=='FARE_POLICY')].list[*].descriptor.code must be in ["RESTRICTED_PERSON", "RESTRICTION_PROOF"]
1046
+
1047
+ - **condition BUYER_FINDER_FEES_Tag_Required_54_DESCRIPTOR_CODE**: every element of $.message.order.payments[*].tags[*].descriptor.code must be in ["BUYER_FINDER_FEES", "SETTLEMENT_TERMS"]
1048
+
1049
+ > Note: **Condition BUYER_FINDER_FEES_Tag_Required_54_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1050
+ >
1051
+ > - **condition B**: $.message.order.payments[*].tags[*].descriptor.code must **not** be present in the payload
1052
+
1053
+ - **condition validate_tag_2_BUYER_FINDER_FEES**: every element of $.message.order.payments[*].tags[?(@.descriptor.code=='BUYER_FINDER_FEES')].list[*].descriptor.code must be in ["BUYER_FINDER_FEES_TYPE", "BUYER_FINDER_FEES_PERCENTAGE", "BUYER_FINDER_FEES_AMOUNT"]
1054
+
1055
+ - **condition validate_tag_2_SETTLEMENT_TERMS**: every element of $.message.order.payments[*].tags[?(@.descriptor.code=='SETTLEMENT_TERMS')].list[*].descriptor.code must be in ["SETTLEMENT_WINDOW", "SETTLEMENT_BASIS", "SETTLEMENT_TYPE", "MANDATORY_ARBITRATION", "COURT_JURISDICTION", "DELAY_INTEREST", "STATIC_TERMS", "SETTLEMENT_AMOUNT"]
1056
+
1057
+ - **on_confirm** : All the following sub conditions must pass as per the api requirement
1058
+
1059
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
1060
+
1061
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
1062
+
1063
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
1064
+
1065
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
1066
+
1067
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
1068
+
1069
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
1070
+
1071
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
1072
+
1073
+ - **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload
1074
+
1075
+ - **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload
1076
+
1077
+ - **condition Enum_Required_43_CONTEXT_ACTION**: all of the following sub conditions must be met:
1078
+
1079
+ - **condition Enum_Required_43_CONTEXT_ACTION.1**: every element of $.context.action must be in ["on_confirm"]
1080
+ - **condition Enum_Required_43_CONTEXT_ACTION.2**: $.context.action must be present in the payload
1081
+
1082
+ - **condition Enum_Required_44_COUNTRY_CODE**: all of the following sub conditions must be met:
1083
+
1084
+ - **condition Enum_Required_44_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
1085
+ - **condition Enum_Required_44_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
1086
+
1087
+ - **condition Enum_Required_45_CITY_CODE**: $.context.location.city.code must be present in the payload
1088
+
1089
+ - **condition Enum_Required_46_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
1090
+
1091
+ - **condition Enum_Required_46_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
1092
+ - **condition Enum_Required_46_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
1093
+
1094
+ - **on_confirm_Message_TESTS** : All the following sub conditions must pass as per the api requirement
1095
+
1096
+ - **condition Attri_Required_10_ORDER_ID**: $.message.order.id must be present in the payload
1097
+
1098
+ - **condition Attri_Required_11_ITEMS_ID**: $.message.order.items[*].id must be present in the payload
1099
+
1100
+ - **condition Attri_Required_12_DESCRIPTOR_NAME**: $.message.order.items[*].descriptor.name must be present in the payload
1101
+
1102
+ - **condition Attri_Required_13_PRICE_CURRENCY**: $.message.order.items[*].price.currency must be present in the payload
1103
+
1104
+ - **condition Attri_Required_14_PRICE_VALUE**: $.message.order.items[*].price.value must be present in the payload
1105
+
1106
+ - **condition Attri_Required_15_SELECTED_COUNT**: $.message.order.items[*].quantity.selected.count must be present in the payload
1107
+
1108
+ - **condition Attri_Required_16_ITEMS_FULFILLMENT_IDS**: $.message.order.items[*].fulfillment_ids[*] must be present in the payload
1109
+
1110
+ - **condition Attri_Required_17_TIME_LABEL**: $.message.order.items[*].time.label must be present in the payload
1111
+
1112
+ - **condition Attri_Required_18_TIME_DURATION**: $.message.order.items[*].time.duration must be present in the payload
1113
+
1114
+ - **condition Attri_Required_19_PROVIDER_ID**: $.message.order.provider.id must be present in the payload
1115
+
1116
+ - **condition Attri_Required_20_DESCRIPTOR_NAME**: $.message.order.provider.descriptor.name must be present in the payload
1117
+
1118
+ - **condition Attri_Required_21_FULFILLMENTS_ID**: $.message.order.fulfillments[*].id must be present in the payload
1119
+
1120
+ - **condition Attri_Required_22_LOCATION_GPS**: $.message.order.fulfillments[*].stops[*].location.gps must be present in the payload
1121
+
1122
+ - **condition Attri_Required_23_FULFILLMENTS_ID**: $.message.order.fulfillments[*].id must be present in the payload
1123
+
1124
+ - **condition Attri_Required_24_PRICE_VALUE**: $.message.order.quote.price.value must be present in the payload
1125
+
1126
+ - **condition Attri_Required_25_PRICE_CURRENCY**: $.message.order.quote.price.currency must be present in the payload
1127
+
1128
+ - **condition Attri_Required_26_ITEM_ID**: $.message.order.quote.breakup[*].item.id must be present in the payload
1129
+
1130
+ - **condition Attri_Required_27_PAYMENTS_ID**: $.message.order.payments[*].id must be present in the payload
1131
+
1132
+ - **condition Attri_Required_28_PARAMS_TRANSACTION_ID**: $.message.order.payments[*].params.transaction_id must be present in the payload
1133
+
1134
+ - **condition Attri_Required_29_PARAMS_CURRENCY**: $.message.order.payments[*].params.currency must be present in the payload
1135
+
1136
+ - **condition Attri_Required_30_PARAMS_AMOUNT**: $.message.order.payments[*].params.amount must be present in the payload
1137
+
1138
+ - **condition Attri_Required_31_CANCEL_BY_DURATION**: $.message.order.cancellation_terms[*].cancel_by.duration must be present in the payload
1139
+
1140
+ - **condition Attri_Required_32_ORDER_STATUS**: $.message.order.status must be present in the payload
1141
+
1142
+ - **condition Attri_Required_33_ITEMS_CATEGORY_IDS**: $.message.order.items[*].category_ids[*] must be present in the payload
1143
+
1144
+ - **condition Attri_Required_34_RANGE_START**: $.message.order.provider.time.range.start must be present in the payload
1145
+
1146
+ - **condition Attri_Required_35_RANGE_END**: $.message.order.provider.time.range.end must be present in the payload
1147
+
1148
+ - **condition Attri_Required_36_PRICE_VALUE**: $.message.order.quote.breakup[*].item.price.value must be present in the payload
1149
+
1150
+ - **condition Attri_Required_37_PRICE_CURRENCY**: $.message.order.quote.breakup[*].item.price.currency must be present in the payload
1151
+
1152
+ - **condition Attri_Required_38_SELECTED_COUNT**: $.message.order.quote.breakup[*].item.quantity.selected.count must be present in the payload
1153
+
1154
+ - **condition Attri_Required_39_EXTERNAL_REF_URL**: $.message.order.cancellation_terms[*].external_ref.url must be present in the payload
1155
+
1156
+ - **condition Attri_Required_40_EXTERNAL_REF_MIMETYPE**: $.message.order.cancellation_terms[*].external_ref.mimetype must be present in the payload
1157
+
1158
+ - **condition Attri_Required_41_ORDER_CREATED_AT**: $.message.order.created_at must be present in the payload
1159
+
1160
+ - **condition Attri_Required_42_ORDER_UPDATED_AT**: $.message.order.updated_at must be present in the payload
1161
+
1162
+ - **condition Enum_Required_47_DESCRIPTOR_CODE**: all of the following sub conditions must be met:
1163
+
1164
+ - **condition Enum_Required_47_DESCRIPTOR_CODE.1**: every element of $.message.order.items[*].descriptor.code must be in ["SJT", "SFSJT", "RJT", "PASS"]
1165
+ - **condition Enum_Required_47_DESCRIPTOR_CODE.2**: $.message.order.items[*].descriptor.code must be present in the payload
1166
+
1167
+ - **condition Enum_Required_48_VEHICLE_CATEGORY**: all of the following sub conditions must be met:
1168
+
1169
+ - **condition Enum_Required_48_VEHICLE_CATEGORY.1**: every element of $.message.order.fulfillments[*].vehicle.category must be in ["BUS", "METRO"]
1170
+ - **condition Enum_Required_48_VEHICLE_CATEGORY.2**: $.message.order.fulfillments[*].vehicle.category must be present in the payload
1171
+
1172
+ - **condition Enum_Required_49_FULFILLMENTS_TYPE**: all of the following sub conditions must be met:
1173
+
1174
+ - **condition Enum_Required_49_FULFILLMENTS_TYPE.1**: every element of $.message.order.fulfillments[*].type must be in ["ROUTE", "TRIP"]
1175
+ - **condition Enum_Required_49_FULFILLMENTS_TYPE.2**: $.message.order.fulfillments[*].type must be present in the payload
1176
+
1177
+ - **condition Enum_Required_50_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["START", "END", "INTERMEDIATE_STOP", "TRANSIT_STOP"]
1178
+
1179
+ > Note: **Condition Enum_Required_50_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
1180
+ >
1181
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
1182
+
1183
+ - **condition Enum_Required_51_AUTHORIZATION_TYPE**: every element of $.message.order.fulfillments[*].stops[*].authorization.type must be in ["QR"]
1184
+
1185
+ > Note: **Condition Enum_Required_51_AUTHORIZATION_TYPE** can be skipped if the following conditions are met:
1186
+ >
1187
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.type must **not** be present in the payload
1188
+
1189
+ - **condition Enum_Required_52_AUTHORIZATION_STATUS**: every element of $.message.order.fulfillments[*].stops[*].authorization.status must be in ["UNCLAIMED", "CLAIMED"]
1190
+
1191
+ > Note: **Condition Enum_Required_52_AUTHORIZATION_STATUS** can be skipped if the following conditions are met:
1192
+ >
1193
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.status must **not** be present in the payload
1194
+
1195
+ - **condition Enum_Required_53_PAYMENTS_STATUS**: all of the following sub conditions must be met:
1196
+
1197
+ - **condition Enum_Required_53_PAYMENTS_STATUS.1**: every element of $.message.order.payments[*].status must be in ["NOT-PAID", "PAID"]
1198
+ - **condition Enum_Required_53_PAYMENTS_STATUS.2**: $.message.order.payments[*].status must be present in the payload
1199
+
1200
+ - **condition Enum_Required_54_PAYMENTS_COLLECTED_BY**: all of the following sub conditions must be met:
1201
+
1202
+ - **condition Enum_Required_54_PAYMENTS_COLLECTED_BY.1**: every element of $.message.order.payments[*].collected_by must be in ["BPP", "BAP"]
1203
+ - **condition Enum_Required_54_PAYMENTS_COLLECTED_BY.2**: $.message.order.payments[*].collected_by must be present in the payload
1204
+
1205
+ - **condition Enum_Required_55_PAYMENTS_TYPE**: all of the following sub conditions must be met:
1206
+
1207
+ - **condition Enum_Required_55_PAYMENTS_TYPE.1**: every element of $.message.order.payments[*].type must be in ["PRE-ORDER", "ON-FULFILLMENT", "POST-FULFILLMENT"]
1208
+ - **condition Enum_Required_55_PAYMENTS_TYPE.2**: $.message.order.payments[*].type must be present in the payload
1209
+
1210
+ - **condition Enum_Required_56_BREAKUP_TITLE**: all of the following sub conditions must be met:
1211
+
1212
+ - **condition Enum_Required_56_BREAKUP_TITLE.1**: every element of $.message.order.quote.breakup[*].title must be in ["BASE_PRICE", "REFUND", "CANCELLATION_CHARGES", "OFFER", "TOLL"]
1213
+ - **condition Enum_Required_56_BREAKUP_TITLE.2**: $.message.order.quote.breakup[*].title must be present in the payload
1214
+
1215
+ - **condition ROUTE_INFO_Tag_Required_57_DESCRIPTOR_CODE**: every element of $.message.order.fulfillments[*].tags[*].descriptor.code must be in ["ROUTE_INFO", "TICKET_INFO", "TRIP_DETAILS"]
1216
+
1217
+ > Note: **Condition ROUTE_INFO_Tag_Required_57_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1218
+ >
1219
+ > - **condition B**: $.message.order.fulfillments[*].tags[*].descriptor.code must **not** be present in the payload
1220
+
1221
+ - **condition validate_tag_0_ROUTE_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='ROUTE_INFO')].list[*].descriptor.code must be in ["ROUTE_ID", "ROUTE_DIRECTION"]
1222
+
1223
+ - **condition validate_tag_0_TICKET_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TICKET_INFO')].list[*].descriptor.code must be in ["NUMBER"]
1224
+
1225
+ - **condition validate_tag_0_TRIP_DETAILS**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TRIP_DETAILS')].list[*].descriptor.code must be in ["AVAILABLE_TRIPS", "UTILIZED_TRIPS"]
1226
+
1227
+ - **condition FARE_POLICY_Tag_Required_61_DESCRIPTOR_CODE**: every element of $.message.order.items[*].tags[*].descriptor.code must be in ["FARE_POLICY"]
1228
+
1229
+ > Note: **Condition FARE_POLICY_Tag_Required_61_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1230
+ >
1231
+ > - **condition B**: $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload
1232
+
1233
+ - **condition validate_tag_1_FARE_POLICY**: every element of $.message.order.items[*].tags[?(@.descriptor.code=='FARE_POLICY')].list[*].descriptor.code must be in ["RESTRICTED_PERSON", "RESTRICTION_PROOF"]
1234
+
1235
+ - **condition BUYER_FINDER_FEES_Tag_Required_63_DESCRIPTOR_CODE**: every element of $.message.order.payments[*].tags[*].descriptor.code must be in ["BUYER_FINDER_FEES", "SETTLEMENT_TERMS"]
1236
+
1237
+ > Note: **Condition BUYER_FINDER_FEES_Tag_Required_63_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1238
+ >
1239
+ > - **condition B**: $.message.order.payments[*].tags[*].descriptor.code must **not** be present in the payload
1240
+
1241
+ - **condition validate_tag_2_BUYER_FINDER_FEES**: every element of $.message.order.payments[*].tags[?(@.descriptor.code=='BUYER_FINDER_FEES')].list[*].descriptor.code must be in ["BUYER_FINDER_FEES_TYPE", "BUYER_FINDER_FEES_PERCENTAGE", "BUYER_FINDER_FEES_AMOUNT"]
1242
+
1243
+ - **condition validate_tag_2_SETTLEMENT_TERMS**: every element of $.message.order.payments[*].tags[?(@.descriptor.code=='SETTLEMENT_TERMS')].list[*].descriptor.code must be in ["SETTLEMENT_WINDOW", "SETTLEMENT_BASIS", "SETTLEMENT_TYPE", "MANDATORY_ARBITRATION", "COURT_JURISDICTION", "DELAY_INTEREST", "STATIC_TERMS", "SETTLEMENT_AMOUNT"]
1244
+
1245
+ - **on_cancel** : All the following sub conditions must pass as per the api requirement
1246
+
1247
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
1248
+
1249
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
1250
+
1251
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
1252
+
1253
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
1254
+
1255
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
1256
+
1257
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
1258
+
1259
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
1260
+
1261
+ - **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload
1262
+
1263
+ - **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload
1264
+
1265
+ - **condition Enum_Required_38_CONTEXT_ACTION**: all of the following sub conditions must be met:
1266
+
1267
+ - **condition Enum_Required_38_CONTEXT_ACTION.1**: every element of $.context.action must be in ["on_cancel"]
1268
+ - **condition Enum_Required_38_CONTEXT_ACTION.2**: $.context.action must be present in the payload
1269
+
1270
+ - **condition Enum_Required_39_COUNTRY_CODE**: all of the following sub conditions must be met:
1271
+
1272
+ - **condition Enum_Required_39_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
1273
+ - **condition Enum_Required_39_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
1274
+
1275
+ - **condition Enum_Required_40_CITY_CODE**: $.context.location.city.code must be present in the payload
1276
+
1277
+ - **condition Enum_Required_41_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
1278
+
1279
+ - **condition Enum_Required_41_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
1280
+ - **condition Enum_Required_41_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
1281
+
1282
+ - **on_cancel_Message_TESTS** : All the following sub conditions must pass as per the api requirement
1283
+
1284
+ - **condition Attri_Required_10_ORDER_ID**: $.message.order.id must be present in the payload
1285
+
1286
+ - **condition Attri_Required_11_ORDER_STATUS**: $.message.order.status must be present in the payload
1287
+
1288
+ - **condition Attri_Required_12_ITEMS_ID**: $.message.order.items[*].id must be present in the payload
1289
+
1290
+ - **condition Attri_Required_13_DESCRIPTOR_NAME**: $.message.order.items[*].descriptor.name must be present in the payload
1291
+
1292
+ - **condition Attri_Required_14_PRICE_CURRENCY**: $.message.order.items[*].price.currency must be present in the payload
1293
+
1294
+ - **condition Attri_Required_15_PRICE_VALUE**: $.message.order.items[*].price.value must be present in the payload
1295
+
1296
+ - **condition Attri_Required_16_SELECTED_COUNT**: $.message.order.items[*].quantity.selected.count must be present in the payload
1297
+
1298
+ - **condition Attri_Required_17_ITEMS_FULFILLMENT_IDS**: $.message.order.items[*].fulfillment_ids[*] must be present in the payload
1299
+
1300
+ - **condition Attri_Required_18_ITEMS_CATEGORY_IDS**: $.message.order.items[*].category_ids[*] must be present in the payload
1301
+
1302
+ - **condition Attri_Required_19_TIME_LABEL**: $.message.order.items[*].time.label must be present in the payload
1303
+
1304
+ - **condition Attri_Required_20_TIME_DURATION**: $.message.order.items[*].time.duration must be present in the payload
1305
+
1306
+ - **condition Attri_Required_21_PROVIDER_ID**: $.message.order.provider.id must be present in the payload
1307
+
1308
+ - **condition Attri_Required_22_DESCRIPTOR_NAME**: $.message.order.provider.descriptor.name must be present in the payload
1309
+
1310
+ - **condition Attri_Required_23_IMAGES_URL**: $.message.order.provider.descriptor.images[*].url must be present in the payload
1311
+
1312
+ - **condition Attri_Required_24_RANGE_START**: $.message.order.provider.time.range.start must be present in the payload
1313
+
1314
+ - **condition Attri_Required_25_RANGE_END**: $.message.order.provider.time.range.end must be present in the payload
1315
+
1316
+ - **condition Attri_Required_26_FULFILLMENTS_ID**: $.message.order.fulfillments[*].id must be present in the payload
1317
+
1318
+ - **condition Attri_Required_27_FULFILLMENTS_ID**: $.message.order.fulfillments[*].id must be present in the payload
1319
+
1320
+ - **condition Attri_Required_28_LOCATION_GPS**: $.message.order.fulfillments[*].stops[*].location.gps must be present in the payload
1321
+
1322
+ - **condition Attri_Required_29_PRICE_VALUE**: $.message.order.quote.price.value must be present in the payload
1323
+
1324
+ - **condition Attri_Required_30_PRICE_CURRENCY**: $.message.order.quote.price.currency must be present in the payload
1325
+
1326
+ - **condition Attri_Required_31_PAYMENTS_ID**: $.message.order.payments[*].id must be present in the payload
1327
+
1328
+ - **condition Attri_Required_32_PARAMS_BANK_CODE**: $.message.order.payments[*].params.bank_code must be present in the payload
1329
+
1330
+ - **condition Attri_Required_33_PARAMS_BANK_ACCOUNT_NUMBER**: $.message.order.payments[*].params.bank_account_number must be present in the payload
1331
+
1332
+ - **condition Attri_Required_34_EXTERNAL_REF_URL**: $.message.order.cancellation_terms[*].external_ref.url must be present in the payload
1333
+
1334
+ - **condition Attri_Required_35_EXTERNAL_REF_MIMETYPE**: $.message.order.cancellation_terms[*].external_ref.mimetype must be present in the payload
1335
+
1336
+ - **condition Attri_Required_36_CANCELLATION_CANCELLED_BY**: $.message.order.cancellation.cancelled_by must be present in the payload
1337
+
1338
+ - **condition Attri_Required_37_CANCELLATION_TIME**: $.message.order.cancellation.time must be present in the payload
1339
+
1340
+ - **condition Enum_Required_42_DESCRIPTOR_CODE**: all of the following sub conditions must be met:
1341
+
1342
+ - **condition Enum_Required_42_DESCRIPTOR_CODE.1**: every element of $.message.order.items[*].descriptor.code must be in ["SJT", "SFSJT", "RJT", "PASS"]
1343
+ - **condition Enum_Required_42_DESCRIPTOR_CODE.2**: $.message.order.items[*].descriptor.code must be present in the payload
1344
+
1345
+ - **condition Enum_Required_43_VEHICLE_CATEGORY**: all of the following sub conditions must be met:
1346
+
1347
+ - **condition Enum_Required_43_VEHICLE_CATEGORY.1**: every element of $.message.order.fulfillments[*].vehicle.category must be in ["BUS", "METRO"]
1348
+ - **condition Enum_Required_43_VEHICLE_CATEGORY.2**: $.message.order.fulfillments[*].vehicle.category must be present in the payload
1349
+
1350
+ - **condition Enum_Required_44_FULFILLMENTS_TYPE**: all of the following sub conditions must be met:
1351
+
1352
+ - **condition Enum_Required_44_FULFILLMENTS_TYPE.1**: every element of $.message.order.fulfillments[*].type must be in ["ROUTE", "TRIP"]
1353
+ - **condition Enum_Required_44_FULFILLMENTS_TYPE.2**: $.message.order.fulfillments[*].type must be present in the payload
1354
+
1355
+ - **condition Enum_Required_45_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["START", "END", "INTERMEDIATE_STOP", "TRANSIT_STOP"]
1356
+
1357
+ > Note: **Condition Enum_Required_45_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
1358
+ >
1359
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
1360
+
1361
+ - **condition Enum_Required_46_AUTHORIZATION_TYPE**: every element of $.message.order.fulfillments[*].stops[*].authorization.type must be in ["QR"]
1362
+
1363
+ > Note: **Condition Enum_Required_46_AUTHORIZATION_TYPE** can be skipped if the following conditions are met:
1364
+ >
1365
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.type must **not** be present in the payload
1366
+
1367
+ - **condition Enum_Required_47_AUTHORIZATION_STATUS**: every element of $.message.order.fulfillments[*].stops[*].authorization.status must be in ["UNCLAIMED", "CLAIMED"]
1368
+
1369
+ > Note: **Condition Enum_Required_47_AUTHORIZATION_STATUS** can be skipped if the following conditions are met:
1370
+ >
1371
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.status must **not** be present in the payload
1372
+
1373
+ - **condition Enum_Required_48_PAYMENTS_STATUS**: all of the following sub conditions must be met:
1374
+
1375
+ - **condition Enum_Required_48_PAYMENTS_STATUS.1**: every element of $.message.order.payments[*].status must be in ["NOT-PAID", "PAID"]
1376
+ - **condition Enum_Required_48_PAYMENTS_STATUS.2**: $.message.order.payments[*].status must be present in the payload
1377
+
1378
+ - **condition Enum_Required_49_PAYMENTS_COLLECTED_BY**: all of the following sub conditions must be met:
1379
+
1380
+ - **condition Enum_Required_49_PAYMENTS_COLLECTED_BY.1**: every element of $.message.order.payments[*].collected_by must be in ["BPP", "BAP"]
1381
+ - **condition Enum_Required_49_PAYMENTS_COLLECTED_BY.2**: $.message.order.payments[*].collected_by must be present in the payload
1382
+
1383
+ - **condition Enum_Required_50_PAYMENTS_TYPE**: all of the following sub conditions must be met:
1384
+
1385
+ - **condition Enum_Required_50_PAYMENTS_TYPE.1**: every element of $.message.order.payments[*].type must be in ["PRE-ORDER", "ON-FULFILLMENT", "POST-FULFILLMENT"]
1386
+ - **condition Enum_Required_50_PAYMENTS_TYPE.2**: $.message.order.payments[*].type must be present in the payload
1387
+
1388
+ - **condition Enum_Required_51_BREAKUP_TITLE**: all of the following sub conditions must be met:
1389
+
1390
+ - **condition Enum_Required_51_BREAKUP_TITLE.1**: every element of $.message.order.quote.breakup[*].title must be in ["BASE_PRICE", "REFUND", "CANCELLATION_CHARGES", "OFFER", "TOLL"]
1391
+ - **condition Enum_Required_51_BREAKUP_TITLE.2**: $.message.order.quote.breakup[*].title must be present in the payload
1392
+
1393
+ - **condition ROUTE_INFO_Tag_Required_52_DESCRIPTOR_CODE**: every element of $.message.order.fulfillments[*].tags[*].descriptor.code must be in ["ROUTE_INFO", "TICKET_INFO", "TRIP_DETAILS"]
1394
+
1395
+ > Note: **Condition ROUTE_INFO_Tag_Required_52_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1396
+ >
1397
+ > - **condition B**: $.message.order.fulfillments[*].tags[*].descriptor.code must **not** be present in the payload
1398
+
1399
+ - **condition validate_tag_0_ROUTE_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='ROUTE_INFO')].list[*].descriptor.code must be in ["ROUTE_ID", "ROUTE_DIRECTION"]
1400
+
1401
+ - **condition validate_tag_0_TICKET_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TICKET_INFO')].list[*].descriptor.code must be in ["NUMBER"]
1402
+
1403
+ - **condition validate_tag_0_TRIP_DETAILS**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TRIP_DETAILS')].list[*].descriptor.code must be in ["AVAILABLE_TRIPS", "UTILIZED_TRIPS"]
1404
+
1405
+ - **condition FARE_POLICY_Tag_Required_56_DESCRIPTOR_CODE**: every element of $.message.order.items[*].tags[*].descriptor.code must be in ["FARE_POLICY"]
1406
+
1407
+ > Note: **Condition FARE_POLICY_Tag_Required_56_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1408
+ >
1409
+ > - **condition B**: $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload
1410
+
1411
+ - **condition validate_tag_1_FARE_POLICY**: every element of $.message.order.items[*].tags[?(@.descriptor.code=='FARE_POLICY')].list[*].descriptor.code must be in ["RESTRICTED_PERSON", "RESTRICTION_PROOF"]
1412
+
1413
+ - **condition BUYER_FINDER_FEES_Tag_Required_58_DESCRIPTOR_CODE**: every element of $.message.order.payments[*].tags[*].descriptor.code must be in ["BUYER_FINDER_FEES", "SETTLEMENT_TERMS"]
1414
+
1415
+ > Note: **Condition BUYER_FINDER_FEES_Tag_Required_58_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1416
+ >
1417
+ > - **condition B**: $.message.order.payments[*].tags[*].descriptor.code must **not** be present in the payload
1418
+
1419
+ - **condition validate_tag_2_BUYER_FINDER_FEES**: every element of $.message.order.payments[*].tags[?(@.descriptor.code=='BUYER_FINDER_FEES')].list[*].descriptor.code must be in ["BUYER_FINDER_FEES_TYPE", "BUYER_FINDER_FEES_PERCENTAGE", "BUYER_FINDER_FEES_AMOUNT"]
1420
+
1421
+ - **condition validate_tag_2_SETTLEMENT_TERMS**: every element of $.message.order.payments[*].tags[?(@.descriptor.code=='SETTLEMENT_TERMS')].list[*].descriptor.code must be in ["SETTLEMENT_WINDOW", "SETTLEMENT_BASIS", "SETTLEMENT_TYPE", "MANDATORY_ARBITRATION", "COURT_JURISDICTION", "DELAY_INTEREST", "STATIC_TERMS", "SETTLEMENT_AMOUNT"]
1422
+
1423
+ - **on_update** : All the following sub conditions must pass as per the api requirement
1424
+
1425
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
1426
+
1427
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
1428
+
1429
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
1430
+
1431
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
1432
+
1433
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
1434
+
1435
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
1436
+
1437
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
1438
+
1439
+ - **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload
1440
+
1441
+ - **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload
1442
+
1443
+ - **condition Enum_Required_39_CONTEXT_ACTION**: all of the following sub conditions must be met:
1444
+
1445
+ - **condition Enum_Required_39_CONTEXT_ACTION.1**: every element of $.context.action must be in ["on_cancel"]
1446
+ - **condition Enum_Required_39_CONTEXT_ACTION.2**: $.context.action must be present in the payload
1447
+
1448
+ - **condition Enum_Required_40_COUNTRY_CODE**: all of the following sub conditions must be met:
1449
+
1450
+ - **condition Enum_Required_40_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
1451
+ - **condition Enum_Required_40_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
1452
+
1453
+ - **condition Enum_Required_41_CITY_CODE**: $.context.location.city.code must be present in the payload
1454
+
1455
+ - **condition Enum_Required_42_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
1456
+
1457
+ - **condition Enum_Required_42_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
1458
+ - **condition Enum_Required_42_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
1459
+
1460
+ - **on_update_Message_TESTS** : All the following sub conditions must pass as per the api requirement
1461
+
1462
+ - **condition Attri_Required_10_ORDER_ID**: $.message.order.id must be present in the payload
1463
+
1464
+ - **condition Attri_Required_11_ITEMS_ID**: $.message.order.items[*].id must be present in the payload
1465
+
1466
+ - **condition Attri_Required_12_DESCRIPTOR_NAME**: $.message.order.items[*].descriptor.name must be present in the payload
1467
+
1468
+ - **condition Attri_Required_13_PRICE_CURRENCY**: $.message.order.items[*].price.currency must be present in the payload
1469
+
1470
+ - **condition Attri_Required_14_PRICE_VALUE**: $.message.order.items[*].price.value must be present in the payload
1471
+
1472
+ - **condition Attri_Required_15_SELECTED_COUNT**: $.message.order.items[*].quantity.selected.count must be present in the payload
1473
+
1474
+ - **condition Attri_Required_16_ITEMS_FULFILLMENT_IDS**: $.message.order.items[*].fulfillment_ids[*] must be present in the payload
1475
+
1476
+ - **condition Attri_Required_17_TIME_LABEL**: $.message.order.items[*].time.label must be present in the payload
1477
+
1478
+ - **condition Attri_Required_18_TIME_DURATION**: $.message.order.items[*].time.duration must be present in the payload
1479
+
1480
+ - **condition Attri_Required_19_PROVIDER_ID**: $.message.order.provider.id must be present in the payload
1481
+
1482
+ - **condition Attri_Required_20_DESCRIPTOR_NAME**: $.message.order.provider.descriptor.name must be present in the payload
1483
+
1484
+ - **condition Attri_Required_21_FULFILLMENTS_ID**: $.message.order.fulfillments[*].id must be present in the payload
1485
+
1486
+ - **condition Attri_Required_22_INSTRUCTIONS_NAME**: $.message.order.fulfillments[*].stops[*].instructions.name must be present in the payload
1487
+
1488
+ - **condition Attri_Required_23_DESCRIPTOR_NAME**: $.message.order.fulfillments[*].stops[*].location.descriptor.name must be present in the payload
1489
+
1490
+ - **condition Attri_Required_24_DESCRIPTOR_CODE**: $.message.order.fulfillments[*].stops[*].location.descriptor.code must be present in the payload
1491
+
1492
+ - **condition Attri_Required_25_LOCATION_GPS**: $.message.order.fulfillments[*].stops[*].location.gps must be present in the payload
1493
+
1494
+ - **condition Attri_Required_26_AUTHORIZATION_TOKEN**: $.message.order.fulfillments[*].stops[*].authorization.token must be present in the payload
1495
+
1496
+ - **condition Attri_Required_27_AUTHORIZATION_VALID_TO**: $.message.order.fulfillments[*].stops[*].authorization.valid_to must be present in the payload
1497
+
1498
+ - **condition Attri_Required_28_FULFILLMENTS_ID**: $.message.order.fulfillments[*].id must be present in the payload
1499
+
1500
+ - **condition Attri_Required_29_PRICE_VALUE**: $.message.order.quote.price.value must be present in the payload
1501
+
1502
+ - **condition Attri_Required_30_PRICE_CURRENCY**: $.message.order.quote.price.currency must be present in the payload
1503
+
1504
+ - **condition Attri_Required_31_ITEM_ID**: $.message.order.quote.breakup[*].item.id must be present in the payload
1505
+
1506
+ - **condition Attri_Required_32_PRICE_CURRENCY**: $.message.order.quote.breakup[*].price.currency must be present in the payload
1507
+
1508
+ - **condition Attri_Required_33_PRICE_VALUE**: $.message.order.quote.breakup[*].price.value must be present in the payload
1509
+
1510
+ - **condition Attri_Required_34_PAYMENTS_ID**: $.message.order.payments[*].id must be present in the payload
1511
+
1512
+ - **condition Attri_Required_35_PARAMS_TRANSACTION_ID**: $.message.order.payments[*].params.transaction_id must be present in the payload
1513
+
1514
+ - **condition Attri_Required_36_PARAMS_CURRENCY**: $.message.order.payments[*].params.currency must be present in the payload
1515
+
1516
+ - **condition Attri_Required_37_PARAMS_AMOUNT**: $.message.order.payments[*].params.amount must be present in the payload
1517
+
1518
+ - **condition Attri_Required_38_CANCEL_BY_DURATION**: $.message.order.cancellation_terms[*].cancel_by.duration must be present in the payload
1519
+
1520
+ - **condition Enum_Required_43_DESCRIPTOR_CODE**: all of the following sub conditions must be met:
1521
+
1522
+ - **condition Enum_Required_43_DESCRIPTOR_CODE.1**: every element of $.message.order.items[*].descriptor.code must be in ["SJT", "SFSJT", "RJT", "PASS"]
1523
+ - **condition Enum_Required_43_DESCRIPTOR_CODE.2**: $.message.order.items[*].descriptor.code must be present in the payload
1524
+
1525
+ - **condition Enum_Required_44_VEHICLE_CATEGORY**: all of the following sub conditions must be met:
1526
+
1527
+ - **condition Enum_Required_44_VEHICLE_CATEGORY.1**: every element of $.message.order.fulfillments[*].vehicle.category must be in ["BUS", "METRO"]
1528
+ - **condition Enum_Required_44_VEHICLE_CATEGORY.2**: $.message.order.fulfillments[*].vehicle.category must be present in the payload
1529
+
1530
+ - **condition Enum_Required_45_FULFILLMENTS_TYPE**: all of the following sub conditions must be met:
1531
+
1532
+ - **condition Enum_Required_45_FULFILLMENTS_TYPE.1**: every element of $.message.order.fulfillments[*].type must be in ["ROUTE", "TRIP"]
1533
+ - **condition Enum_Required_45_FULFILLMENTS_TYPE.2**: $.message.order.fulfillments[*].type must be present in the payload
1534
+
1535
+ - **condition Enum_Required_46_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["START", "END", "INTERMEDIATE_STOP", "TRANSIT_STOP"]
1536
+
1537
+ > Note: **Condition Enum_Required_46_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
1538
+ >
1539
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
1540
+
1541
+ - **condition Enum_Required_47_AUTHORIZATION_TYPE**: all of the following sub conditions must be met:
1542
+
1543
+ - **condition Enum_Required_47_AUTHORIZATION_TYPE.1**: every element of $.message.order.fulfillments[*].stops[*].authorization.type must be in ["QR"]
1544
+ - **condition Enum_Required_47_AUTHORIZATION_TYPE.2**: $.message.order.fulfillments[*].stops[*].authorization.type must be present in the payload
1545
+
1546
+ - **condition Enum_Required_48_AUTHORIZATION_STATUS**: every element of $.message.order.fulfillments[*].stops[*].authorization.status must be in ["UNCLAIMED", "CLAIMED"]
1547
+
1548
+ > Note: **Condition Enum_Required_48_AUTHORIZATION_STATUS** can be skipped if the following conditions are met:
1549
+ >
1550
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.status must **not** be present in the payload
1551
+
1552
+ - **condition Enum_Required_49_PAYMENTS_STATUS**: all of the following sub conditions must be met:
1553
+
1554
+ - **condition Enum_Required_49_PAYMENTS_STATUS.1**: every element of $.message.order.payments[*].status must be in ["NOT-PAID", "PAID"]
1555
+ - **condition Enum_Required_49_PAYMENTS_STATUS.2**: $.message.order.payments[*].status must be present in the payload
1556
+
1557
+ - **condition Enum_Required_50_PAYMENTS_COLLECTED_BY**: all of the following sub conditions must be met:
1558
+
1559
+ - **condition Enum_Required_50_PAYMENTS_COLLECTED_BY.1**: every element of $.message.order.payments[*].collected_by must be in ["BPP", "BAP"]
1560
+ - **condition Enum_Required_50_PAYMENTS_COLLECTED_BY.2**: $.message.order.payments[*].collected_by must be present in the payload
1561
+
1562
+ - **condition Enum_Required_51_PAYMENTS_TYPE**: all of the following sub conditions must be met:
1563
+
1564
+ - **condition Enum_Required_51_PAYMENTS_TYPE.1**: every element of $.message.order.payments[*].type must be in ["PRE-ORDER", "ON-FULFILLMENT", "POST-FULFILLMENT"]
1565
+ - **condition Enum_Required_51_PAYMENTS_TYPE.2**: $.message.order.payments[*].type must be present in the payload
1566
+
1567
+ - **condition Enum_Required_52_BREAKUP_TITLE**: all of the following sub conditions must be met:
1568
+
1569
+ - **condition Enum_Required_52_BREAKUP_TITLE.1**: every element of $.message.order.quote.breakup[*].title must be in ["BASE_PRICE", "REFUND", "CANCELLATION_CHARGES", "OFFER", "TOLL"]
1570
+ - **condition Enum_Required_52_BREAKUP_TITLE.2**: $.message.order.quote.breakup[*].title must be present in the payload
1571
+
1572
+ - **condition ROUTE_INFO_Tag_Required_53_DESCRIPTOR_CODE**: every element of $.message.order.fulfillments[*].tags[*].descriptor.code must be in ["ROUTE_INFO", "TICKET_INFO", "TRIP_DETAILS"]
1573
+
1574
+ > Note: **Condition ROUTE_INFO_Tag_Required_53_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1575
+ >
1576
+ > - **condition B**: $.message.order.fulfillments[*].tags[*].descriptor.code must **not** be present in the payload
1577
+
1578
+ - **condition validate_tag_0_ROUTE_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='ROUTE_INFO')].list[*].descriptor.code must be in ["ROUTE_ID", "ROUTE_DIRECTION"]
1579
+
1580
+ - **condition validate_tag_0_TICKET_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TICKET_INFO')].list[*].descriptor.code must be in ["NUMBER"]
1581
+
1582
+ - **condition validate_tag_0_TRIP_DETAILS**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TRIP_DETAILS')].list[*].descriptor.code must be in ["AVAILABLE_TRIPS", "UTILIZED_TRIPS"]
1583
+
1584
+ - **condition FARE_POLICY_Tag_Required_57_DESCRIPTOR_CODE**: every element of $.message.order.items[*].tags[*].descriptor.code must be in ["FARE_POLICY"]
1585
+
1586
+ > Note: **Condition FARE_POLICY_Tag_Required_57_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1587
+ >
1588
+ > - **condition B**: $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload
1589
+
1590
+ - **condition validate_tag_1_FARE_POLICY**: every element of $.message.order.items[*].tags[?(@.descriptor.code=='FARE_POLICY')].list[*].descriptor.code must be in ["RESTRICTED_PERSON", "RESTRICTION_PROOF"]
1591
+
1592
+ - **on_status** : All the following sub conditions must pass as per the api requirement
1593
+
1594
+ - **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload
1595
+
1596
+ - **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload
1597
+
1598
+ - **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload
1599
+
1600
+ - **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload
1601
+
1602
+ - **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload
1603
+
1604
+ - **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload
1605
+
1606
+ - **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload
1607
+
1608
+ - **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload
1609
+
1610
+ - **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload
1611
+
1612
+ - **condition Enum_Required_43_CONTEXT_ACTION**: all of the following sub conditions must be met:
1613
+
1614
+ - **condition Enum_Required_43_CONTEXT_ACTION.1**: every element of $.context.action must be in ["on_status"]
1615
+ - **condition Enum_Required_43_CONTEXT_ACTION.2**: $.context.action must be present in the payload
1616
+
1617
+ - **condition Enum_Required_44_COUNTRY_CODE**: all of the following sub conditions must be met:
1618
+
1619
+ - **condition Enum_Required_44_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
1620
+ - **condition Enum_Required_44_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload
1621
+
1622
+ - **condition Enum_Required_45_CITY_CODE**: $.context.location.city.code must be present in the payload
1623
+
1624
+ - **condition Enum_Required_46_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
1625
+
1626
+ - **condition Enum_Required_46_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
1627
+ - **condition Enum_Required_46_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload
1628
+
1629
+ - **on_status_Message_TESTS** : All the following sub conditions must pass as per the api requirement
1630
+
1631
+ - **condition Attri_Required_10_ORDER_ID**: $.message.order.id must be present in the payload
1632
+
1633
+ - **condition Attri_Required_11_ORDER_STATUS**: $.message.order.status must be present in the payload
1634
+
1635
+ - **condition Attri_Required_12_ITEMS_ID**: $.message.order.items[*].id must be present in the payload
1636
+
1637
+ - **condition Attri_Required_13_DESCRIPTOR_NAME**: $.message.order.items[*].descriptor.name must be present in the payload
1638
+
1639
+ - **condition Attri_Required_14_PRICE_CURRENCY**: $.message.order.items[*].price.currency must be present in the payload
1640
+
1641
+ - **condition Attri_Required_15_PRICE_VALUE**: $.message.order.items[*].price.value must be present in the payload
1642
+
1643
+ - **condition Attri_Required_16_SELECTED_COUNT**: $.message.order.items[*].quantity.selected.count must be present in the payload
1644
+
1645
+ - **condition Attri_Required_17_ITEMS_FULFILLMENT_IDS**: $.message.order.items[*].fulfillment_ids[*] must be present in the payload
1646
+
1647
+ - **condition Attri_Required_18_TIME_LABEL**: $.message.order.items[*].time.label must be present in the payload
1648
+
1649
+ - **condition Attri_Required_19_TIME_DURATION**: $.message.order.items[*].time.duration must be present in the payload
1650
+
1651
+ - **condition Attri_Required_20_PROVIDER_ID**: $.message.order.provider.id must be present in the payload
1652
+
1653
+ - **condition Attri_Required_21_DESCRIPTOR_NAME**: $.message.order.provider.descriptor.name must be present in the payload
1654
+
1655
+ - **condition Attri_Required_22_FULFILLMENTS_ID**: $.message.order.fulfillments[*].id must be present in the payload
1656
+
1657
+ - **condition Attri_Required_23_LOCATION_GPS**: $.message.order.fulfillments[*].stops[*].location.gps must be present in the payload
1658
+
1659
+ - **condition Attri_Required_24_FULFILLMENTS_ID**: $.message.order.fulfillments[*].id must be present in the payload
1660
+
1661
+ - **condition Attri_Required_25_PRICE_VALUE**: $.message.order.quote.price.value must be present in the payload
1662
+
1663
+ - **condition Attri_Required_26_PRICE_CURRENCY**: $.message.order.quote.price.currency must be present in the payload
1664
+
1665
+ - **condition Attri_Required_27_ITEM_ID**: $.message.order.quote.breakup[*].item.id must be present in the payload
1666
+
1667
+ - **condition Attri_Required_28_PAYMENTS_ID**: $.message.order.payments[*].id must be present in the payload
1668
+
1669
+ - **condition Attri_Required_29_PARAMS_TRANSACTION_ID**: $.message.order.payments[*].params.transaction_id must be present in the payload
1670
+
1671
+ - **condition Attri_Required_30_PARAMS_CURRENCY**: $.message.order.payments[*].params.currency must be present in the payload
1672
+
1673
+ - **condition Attri_Required_31_PARAMS_AMOUNT**: $.message.order.payments[*].params.amount must be present in the payload
1674
+
1675
+ - **condition Attri_Required_32_CANCEL_BY_DURATION**: $.message.order.cancellation_terms[*].cancel_by.duration must be present in the payload
1676
+
1677
+ - **condition Attri_Required_33_ITEMS_CATEGORY_IDS**: $.message.order.items[*].category_ids[*] must be present in the payload
1678
+
1679
+ - **condition Attri_Required_34_RANGE_START**: $.message.order.provider.time.range.start must be present in the payload
1680
+
1681
+ - **condition Attri_Required_35_RANGE_END**: $.message.order.provider.time.range.end must be present in the payload
1682
+
1683
+ - **condition Attri_Required_36_PRICE_CURRENCY**: $.message.order.quote.breakup[*].item.price.currency must be present in the payload
1684
+
1685
+ - **condition Attri_Required_37_PRICE_VALUE**: $.message.order.quote.breakup[*].item.price.value must be present in the payload
1686
+
1687
+ - **condition Attri_Required_38_SELECTED_COUNT**: $.message.order.quote.breakup[*].item.quantity.selected.count must be present in the payload
1688
+
1689
+ - **condition Attri_Required_39_EXTERNAL_REF_URL**: $.message.order.cancellation_terms[*].external_ref.url must be present in the payload
1690
+
1691
+ - **condition Attri_Required_40_EXTERNAL_REF_MIMETYPE**: $.message.order.cancellation_terms[*].external_ref.mimetype must be present in the payload
1692
+
1693
+ - **condition Attri_Required_41_ORDER_CREATED_AT**: $.message.order.created_at must be present in the payload
1694
+
1695
+ - **condition Attri_Required_42_ORDER_UPDATED_AT**: $.message.order.updated_at must be present in the payload
1696
+
1697
+ - **condition Enum_Required_47_DESCRIPTOR_CODE**: all of the following sub conditions must be met:
1698
+
1699
+ - **condition Enum_Required_47_DESCRIPTOR_CODE.1**: every element of $.message.order.items[*].descriptor.code must be in ["SJT", "SFSJT", "RJT", "PASS"]
1700
+ - **condition Enum_Required_47_DESCRIPTOR_CODE.2**: $.message.order.items[*].descriptor.code must be present in the payload
1701
+
1702
+ - **condition Enum_Required_48_VEHICLE_CATEGORY**: every element of $.message.order.fulfillments[*].vehicle.category must be in ["BUS", "METRO"]
1703
+
1704
+ > Note: **Condition Enum_Required_48_VEHICLE_CATEGORY** can be skipped if the following conditions are met:
1705
+ >
1706
+ > - **condition B**: $.message.order.fulfillments[*].vehicle.category must **not** be present in the payload
1707
+
1708
+ - **condition Enum_Required_49_FULFILLMENTS_TYPE**: all of the following sub conditions must be met:
1709
+
1710
+ - **condition Enum_Required_49_FULFILLMENTS_TYPE.1**: every element of $.message.order.fulfillments[*].type must be in ["ROUTE", "TRIP"]
1711
+ - **condition Enum_Required_49_FULFILLMENTS_TYPE.2**: $.message.order.fulfillments[*].type must be present in the payload
1712
+
1713
+ - **condition Enum_Required_50_FULFILLMENTS_TYPE**: every element of $.message.order.fulfillments[*].type must be in ["START", "END", "INTERMEDIATE_STOP", "TRANSIT_STOP"]
1714
+
1715
+ > Note: **Condition Enum_Required_50_FULFILLMENTS_TYPE** can be skipped if the following conditions are met:
1716
+ >
1717
+ > - **condition B**: $.message.order.fulfillments[*].type must **not** be present in the payload
1718
+
1719
+ - **condition Enum_Required_51_AUTHORIZATION_TYPE**: every element of $.message.order.fulfillments[*].stops[*].authorization.type must be in ["QR"]
1720
+
1721
+ > Note: **Condition Enum_Required_51_AUTHORIZATION_TYPE** can be skipped if the following conditions are met:
1722
+ >
1723
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.type must **not** be present in the payload
1724
+
1725
+ - **condition Enum_Required_52_AUTHORIZATION_STATUS**: every element of $.message.order.fulfillments[*].stops[*].authorization.status must be in ["UNCLAIMED", "CLAIMED"]
1726
+
1727
+ > Note: **Condition Enum_Required_52_AUTHORIZATION_STATUS** can be skipped if the following conditions are met:
1728
+ >
1729
+ > - **condition B**: $.message.order.fulfillments[*].stops[*].authorization.status must **not** be present in the payload
1730
+
1731
+ - **condition Enum_Required_53_PAYMENTS_STATUS**: all of the following sub conditions must be met:
1732
+
1733
+ - **condition Enum_Required_53_PAYMENTS_STATUS.1**: every element of $.message.order.payments[*].status must be in ["NOT-PAID", "PAID"]
1734
+ - **condition Enum_Required_53_PAYMENTS_STATUS.2**: $.message.order.payments[*].status must be present in the payload
1735
+
1736
+ - **condition Enum_Required_54_PAYMENTS_COLLECTED_BY**: all of the following sub conditions must be met:
1737
+
1738
+ - **condition Enum_Required_54_PAYMENTS_COLLECTED_BY.1**: every element of $.message.order.payments[*].collected_by must be in ["BPP", "BAP"]
1739
+ - **condition Enum_Required_54_PAYMENTS_COLLECTED_BY.2**: $.message.order.payments[*].collected_by must be present in the payload
1740
+
1741
+ - **condition Enum_Required_55_PAYMENTS_TYPE**: all of the following sub conditions must be met:
1742
+
1743
+ - **condition Enum_Required_55_PAYMENTS_TYPE.1**: every element of $.message.order.payments[*].type must be in ["PRE-ORDER", "ON-FULFILLMENT", "POST-FULFILLMENT"]
1744
+ - **condition Enum_Required_55_PAYMENTS_TYPE.2**: $.message.order.payments[*].type must be present in the payload
1745
+
1746
+ - **condition Enum_Required_56_BREAKUP_TITLE**: all of the following sub conditions must be met:
1747
+
1748
+ - **condition Enum_Required_56_BREAKUP_TITLE.1**: every element of $.message.order.quote.breakup[*].title must be in ["BASE_PRICE", "REFUND", "CANCELLATION_CHARGES", "OFFER", "TOLL"]
1749
+ - **condition Enum_Required_56_BREAKUP_TITLE.2**: $.message.order.quote.breakup[*].title must be present in the payload
1750
+
1751
+ - **condition ROUTE_INFO_Tag_Required_57_DESCRIPTOR_CODE**: every element of $.message.order.fulfillments[*].tags[*].descriptor.code must be in ["ROUTE_INFO", "TICKET_INFO", "TRIP_DETAILS"]
1752
+
1753
+ > Note: **Condition ROUTE_INFO_Tag_Required_57_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1754
+ >
1755
+ > - **condition B**: $.message.order.fulfillments[*].tags[*].descriptor.code must **not** be present in the payload
1756
+
1757
+ - **condition validate_tag_0_ROUTE_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='ROUTE_INFO')].list[*].descriptor.code must be in ["ROUTE_ID", "ROUTE_DIRECTION"]
1758
+
1759
+ - **condition validate_tag_0_TICKET_INFO**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TICKET_INFO')].list[*].descriptor.code must be in ["NUMBER"]
1760
+
1761
+ - **condition validate_tag_0_TRIP_DETAILS**: every element of $.message.order.fulfillments[*].tags[?(@.descriptor.code=='TRIP_DETAILS')].list[*].descriptor.code must be in ["AVAILABLE_TRIPS", "UTILIZED_TRIPS"]
1762
+
1763
+ - **condition FARE_POLICY_Tag_Required_61_DESCRIPTOR_CODE**: every element of $.message.order.items[*].tags[*].descriptor.code must be in ["FARE_POLICY"]
1764
+
1765
+ > Note: **Condition FARE_POLICY_Tag_Required_61_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1766
+ >
1767
+ > - **condition B**: $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload
1768
+
1769
+ - **condition validate_tag_1_FARE_POLICY**: every element of $.message.order.items[*].tags[?(@.descriptor.code=='FARE_POLICY')].list[*].descriptor.code must be in ["RESTRICTED_PERSON", "RESTRICTION_PROOF"]
1770
+
1771
+ - **condition BUYER_FINDER_FEES_Tag_Required_63_DESCRIPTOR_CODE**: every element of $.message.order.payments[*].tags[*].descriptor.code must be in ["BUYER_FINDER_FEES", "SETTLEMENT_TERMS"]
1772
+
1773
+ > Note: **Condition BUYER_FINDER_FEES_Tag_Required_63_DESCRIPTOR_CODE** can be skipped if the following conditions are met:
1774
+ >
1775
+ > - **condition B**: $.message.order.payments[*].tags[*].descriptor.code must **not** be present in the payload
1776
+
1777
+ - **condition validate_tag_2_BUYER_FINDER_FEES**: every element of $.message.order.payments[*].tags[?(@.descriptor.code=='BUYER_FINDER_FEES')].list[*].descriptor.code must be in ["BUYER_FINDER_FEES_TYPE", "BUYER_FINDER_FEES_PERCENTAGE", "BUYER_FINDER_FEES_AMOUNT"]
1778
+
1779
+ - **condition validate_tag_2_SETTLEMENT_TERMS**: every element of $.message.order.payments[*].tags[?(@.descriptor.code=='SETTLEMENT_TERMS')].list[*].descriptor.code must be in ["SETTLEMENT_WINDOW", "SETTLEMENT_BASIS", "SETTLEMENT_TYPE", "MANDATORY_ARBITRATION", "COURT_JURISDICTION", "DELAY_INTEREST", "STATIC_TERMS", "SETTLEMENT_AMOUNT"]