ondc-code-generator 0.8.9 → 0.9.0

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 (86) hide show
  1. package/alpha/table/page/index.html +11487 -0
  2. package/alpha/table/page/style.css +449 -0
  3. package/alpha/table/rag-table-docs/confirm.md +60 -0
  4. package/alpha/table/rag-table-docs/init.md +78 -0
  5. package/alpha/table/rag-table-docs/on_confirm.md +161 -0
  6. package/alpha/table/rag-table-docs/on_init.md +143 -0
  7. package/alpha/table/rag-table-docs/on_search.md +160 -0
  8. package/alpha/table/rag-table-docs/on_select.md +96 -0
  9. package/alpha/table/rag-table-docs/on_status.md +150 -0
  10. package/alpha/table/rag-table-docs/on_update.md +161 -0
  11. package/alpha/table/rag-table-docs/raw_table.json +11198 -0
  12. package/alpha/table/rag-table-docs/search.md +125 -0
  13. package/alpha/table/rag-table-docs/select.md +67 -0
  14. package/alpha/table/rag-table-docs/status.md +41 -0
  15. package/alpha/table/rag-table-docs/update.md +48 -0
  16. package/alpha/table/readme.md +1312 -0
  17. package/alpha/table/validPaths.json +34134 -0
  18. package/alpha/table.zip +0 -0
  19. package/dist/bin/cli.js +4 -0
  20. package/dist/generator/config-compiler.js +12 -0
  21. package/dist/generator/generators/documentation/md-generator.d.ts +11 -5
  22. package/dist/generator/generators/documentation/md-generator.js +22 -28
  23. package/dist/generator/generators/documentation/templates/index.mustache +162 -26
  24. package/dist/generator/generators/documentation/templates/style.css +387 -142
  25. package/dist/generator/generators/rag/rag-generator.d.ts +48 -0
  26. package/dist/generator/generators/rag/rag-generator.js +185 -0
  27. package/dist/generator/generators/rag/rag-table-generator.d.ts +55 -0
  28. package/dist/generator/generators/rag/rag-table-generator.js +263 -0
  29. package/dist/types/compiler-types.d.ts +3 -1
  30. package/dist/types/compiler-types.js +2 -0
  31. package/package.json +1 -1
  32. package/alpha/docs/page/index.html +0 -6137
  33. package/alpha/docs/page/style.css +0 -204
  34. package/alpha/docs/readme.md +0 -5939
  35. package/alpha/docs/validPaths.json +0 -14351
  36. package/alpha/page/index.html +0 -6137
  37. package/alpha/page/style.css +0 -204
  38. package/alpha/readme.md +0 -5939
  39. package/alpha/validationpkg/examples/search.json +0 -143
  40. package/alpha/validationpkg/examples_output/search/case-001/output.json +0 -12
  41. package/alpha/validationpkg/go.mod +0 -8
  42. package/alpha/validationpkg/go.sum +0 -4
  43. package/alpha/validationpkg/jsonvalidations/cancel.go +0 -1289
  44. package/alpha/validationpkg/jsonvalidations/confirm.go +0 -9121
  45. package/alpha/validationpkg/jsonvalidations/init.go +0 -4864
  46. package/alpha/validationpkg/jsonvalidations/issue.go +0 -4868
  47. package/alpha/validationpkg/jsonvalidations/on_cancel.go +0 -7111
  48. package/alpha/validationpkg/jsonvalidations/on_confirm.go +0 -8903
  49. package/alpha/validationpkg/jsonvalidations/on_init.go +0 -4445
  50. package/alpha/validationpkg/jsonvalidations/on_issue.go +0 -2828
  51. package/alpha/validationpkg/jsonvalidations/on_issue_status.go +0 -1938
  52. package/alpha/validationpkg/jsonvalidations/on_search.go +0 -3356
  53. package/alpha/validationpkg/jsonvalidations/on_status.go +0 -8129
  54. package/alpha/validationpkg/jsonvalidations/on_track.go +0 -1415
  55. package/alpha/validationpkg/jsonvalidations/on_update.go +0 -8700
  56. package/alpha/validationpkg/jsonvalidations/search.go +0 -3585
  57. package/alpha/validationpkg/jsonvalidations/status.go +0 -1073
  58. package/alpha/validationpkg/jsonvalidations/track.go +0 -1073
  59. package/alpha/validationpkg/jsonvalidations/update.go +0 -3012
  60. package/alpha/validationpkg/main-validator.go +0 -196
  61. package/alpha/validationpkg/main-validator_test.go +0 -165
  62. package/alpha/validationpkg/storageutils/api_save_utils.go +0 -83
  63. package/alpha/validationpkg/storageutils/cancel.go +0 -30
  64. package/alpha/validationpkg/storageutils/confirm.go +0 -30
  65. package/alpha/validationpkg/storageutils/index.go +0 -132
  66. package/alpha/validationpkg/storageutils/init.go +0 -30
  67. package/alpha/validationpkg/storageutils/issue.go +0 -30
  68. package/alpha/validationpkg/storageutils/on_cancel.go +0 -30
  69. package/alpha/validationpkg/storageutils/on_confirm.go +0 -30
  70. package/alpha/validationpkg/storageutils/on_init.go +0 -30
  71. package/alpha/validationpkg/storageutils/on_issue.go +0 -30
  72. package/alpha/validationpkg/storageutils/on_issue_status.go +0 -30
  73. package/alpha/validationpkg/storageutils/on_search.go +0 -30
  74. package/alpha/validationpkg/storageutils/on_status.go +0 -30
  75. package/alpha/validationpkg/storageutils/on_track.go +0 -30
  76. package/alpha/validationpkg/storageutils/on_update.go +0 -30
  77. package/alpha/validationpkg/storageutils/save_utils.go +0 -75
  78. package/alpha/validationpkg/storageutils/search.go +0 -30
  79. package/alpha/validationpkg/storageutils/status.go +0 -30
  80. package/alpha/validationpkg/storageutils/track.go +0 -30
  81. package/alpha/validationpkg/storageutils/update.go +0 -30
  82. package/alpha/validationpkg/validationutils/json_normalizer.go +0 -152
  83. package/alpha/validationpkg/validationutils/json_path_utils.go +0 -173
  84. package/alpha/validationpkg/validationutils/storage-interface.go +0 -107
  85. package/alpha/validationpkg/validationutils/test-config.go +0 -69
  86. package/alpha/validationpkg/validationutils/validation_utils.go +0 -429
@@ -0,0 +1,1312 @@
1
+ ---
2
+ action: search
3
+ codeName: search
4
+ numTests: 110
5
+ generated: 2026-03-10
6
+ ---
7
+
8
+ # search — `search` Validations (Table View)
9
+
10
+ **88** leaf validation rule(s) applied to `search` in the **search** flow.
11
+ Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
12
+
13
+ ---
14
+ | # | Type | Test Name | Group | Scope | Description | Skip If | Error Code |
15
+ | ---: | :---: | :--- | :--- | :--- | :--- | :--- | :---: |
16
+ | 1 | GRP | **SEARCH_CONTEXT** | — | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
17
+ | 2 | GRP | **CONTEXT_REQUIRED** | SEARCH_CONTEXT | — | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
18
+ | 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.country.code must be present in the payload | — | 30000 |
19
+ | 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.city.code must be present in the payload | — | 30000 |
20
+ | 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.domain must be present in the payload | — | 30000 |
21
+ | 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.timestamp must be present in the payload | — | 30000 |
22
+ | 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_id must be present in the payload | — | 30000 |
23
+ | 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_uri must be present in the payload | — | 30000 |
24
+ | 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.transaction_id must be present in the payload | — | 30000 |
25
+ | 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.message_id must be present in the payload | — | 30000 |
26
+ | 11 | LF | `REQUIRED_CONTEXT_VERSION` | SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.version must be present in the payload | — | 30000 |
27
+ | 12 | LF | `REQUIRED_CONTEXT_TTL` | SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.ttl must be present in the payload | — | 30000 |
28
+ | 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_id must be present in the payload | - $.message.intent.provider.id must **not** be present in the payload | 30000 |
29
+ | 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_uri must be present in the payload | - $.message.intent.provider.id must **not** be present in the payload | 30000 |
30
+ | 15 | GRP | **CONTEXT_ENUM** | SEARCH_CONTEXT | — | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
31
+ | 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | SEARCH_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
32
+ | 17 | LF | `VALID_CONTEXT_DOMAIN` | SEARCH_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
33
+ | 18 | GRP | **CONTEXT_REGEX** | SEARCH_CONTEXT | — | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
34
+ | 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
35
+ | 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
36
+ | 21 | LF | `REGEX_CONTEXT_BAP_ID` | SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
37
+ | 22 | LF | `REGEX_CONTEXT_BAP_URI` | SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
38
+ | 23 | LF | `REQUIRED_CONTEXT_TTL` | SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
39
+ | 24 | LF | `REGEX_CONTEXT_BPP_ID` | SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | **All of the following must be true:** - $.context.bpp_id must **not** be present in the payload - $.message.intent.provider.id must **not** be present in the payload | 30000 |
40
+ | 25 | LF | `REGEX_CONTEXT_BPP_URI` | SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | **All of the following must be true:** - $.context.bpp_uri must **not** be present in the payload - $.message.intent.provider.id must **not** be present in the payload | 30000 |
41
+ | 26 | GRP | **SEARCH_CATEGORY_CODE** | — | — | Sub-tests: REQUIRED_CATEGORY_CODE, VALID_ENUM_CATEGORY_CODE | - $.message.intent.provider.id must be present in the payload | — |
42
+ | 27 | LF | `REQUIRED_CATEGORY_CODE` | SEARCH_CATEGORY_CODE | — | - $.message.intent.category.descriptor.code must be present in the payload | — | 30000 |
43
+ | 28 | LF | `VALID_ENUM_CATEGORY_CODE` | SEARCH_CATEGORY_CODE | — | - All elements of $.message.intent.category.descriptor.code must be in ["LOAN", "UNSECURED_PERSONAL", "SECURED_PERSONAL", "OFFERS", "ADDITIONAL_DATA", "PERSONAL_FINANCING", "CONSUMER_INVOICE_FINANCING", "AGRI_PURCHASE_FINANCE", "ELECTRONICS_PURCHASE_FINANCE", "BUSINESS", "SOLE_PROPRIETORSHIP", "OTHER", "PARTNERSHIP_FIRM", "PRIVATE_LTD", "INVOICE_FINANCING", "GOLD_LOAN", "LAMF", "TERM_LOAN", "CREDIT_LINE", "DOCUMENT_BASED_DRAWDOWN", "NON_DOCUMENT_BASED_DRAWDOWN", "BANKING", "STATEMENT_UPLOAD", "AA_BANKING", "GST", "AA_GST", "GSP", "RETURN_UPLOAD", "MUTUAL_FUND", "AA_LOAN", "MFC", "ITR", "UPLOAD", "BUREAU_LOAN", "DERIVED_DATA", "ADDITIONAL_UPLOAD", "RTA"] | - $.message.intent.category.descriptor.code must **not** be present in the payload | 30000 |
44
+ | 29 | GRP | **SEARCH_ITEMS** | — | — | Sub-tests: REQUIRED_ITEM_FIELDS | - $.message.intent.provider.id must **not** be present in the payload | — |
45
+ | 30 | GRP | **REQUIRED_ITEM_FIELDS** | SEARCH_ITEMS | — | Sub-tests: REQUIRED_PROVIDER_ID, REQUIRED_PROVIDER_ITEM_ID, REQUIRED_XINPUT_FIELDS, VALID_XINPUT_ENUMS | — | — |
46
+ | 31 | LF | `REQUIRED_PROVIDER_ID` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS | — | - $.message.intent.provider.id must be present in the payload | — | 30000 |
47
+ | 32 | LF | `REQUIRED_PROVIDER_ITEM_ID` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS | — | - $.message.intent.provider.items[*].id must be present in the payload | — | 30000 |
48
+ | 33 | GRP | **REQUIRED_XINPUT_FIELDS** | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS | — | Sub-tests: REQUIRED_HEAD_CODE, REQUIRED_FORM_ID, REQUIRED_SUBMISSION_ID, PERSONAL_LOAN_FIELDS, REQUIRED_CONSENT_FIELDS, GOLD_LOAN_FIELDS, WORKING_CAPITAL_LOAN_FIELDS, BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS, TERM_LOAN_FIELDS, LAMF_FIELDS, INVOICE_LOAN_FIELDS | — | — |
49
+ | 34 | LF | `REQUIRED_HEAD_CODE` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS | — | - $.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
50
+ | 35 | LF | `REQUIRED_FORM_ID` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.id must be present in the payload | — | 30000 |
51
+ | 36 | LF | `REQUIRED_SUBMISSION_ID` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS | — | - $.message.intent.provider.items[*].xinput.form_response.submission_id must be present in the payload | - $._EXTERNAL._SELF.message.intent.provider.id must **not** equal CONSENT_APPROVAL | 30000 |
52
+ | 37 | GRP | **PERSONAL_LOAN_FIELDS** | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_PAN_NAME_1, REQUIRED_FIELD_DOB, REQUIRED_FIELD_GENDER, REQUIRED_FIELD_PAN, REQUIRED_FIELD_CONTACT_NUMBER, REQUIRED_FIELD_EMPLOYMENT_TYPE, REQUIRED_FIELD_INCOME, REQUIRED_FIELD_COMPANY_NAME, REQUIRED_FIELD_BUREAU_CONSENT | - Not all elements of $.message.intent.provider.items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION"] | — |
53
+ | 38 | LF | `REQUIRED_FIELD_PAN_NAME_1` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.panName.value must be present in the payload | — | 30000 |
54
+ | 39 | LF | `REQUIRED_FIELD_DOB` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.dob.value must be present in the payload | — | 30000 |
55
+ | 40 | LF | `REQUIRED_FIELD_GENDER` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.gender.value must be present in the payload | — | 30000 |
56
+ | 41 | LF | `REQUIRED_FIELD_PAN` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.pan.value must be present in the payload | — | 30000 |
57
+ | 42 | LF | `REQUIRED_FIELD_CONTACT_NUMBER` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.contactNumber.value must be present in the payload | — | 30000 |
58
+ | 43 | LF | `REQUIRED_FIELD_EMPLOYMENT_TYPE` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.employmentType.value must be present in the payload | — | 30000 |
59
+ | 44 | LF | `REQUIRED_FIELD_INCOME` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.income.value must be present in the payload | — | 30000 |
60
+ | 45 | LF | `REQUIRED_FIELD_COMPANY_NAME` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.companyName.value must be present in the payload | — | 30000 |
61
+ | 46 | LF | `REQUIRED_FIELD_BUREAU_CONSENT` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.bureauConsent.value must be present in the payload | — | 30000 |
62
+ | 47 | GRP | **REQUIRED_CONSENT_FIELDS** | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_CONSENT_HANDLER | - None of $.message.intent.provider.items[*].xinput.head.descriptor.code may be in ["CONSENT_APPROVAL"] | — |
63
+ | 48 | LF | `REQUIRED_FIELD_CONSENT_HANDLER` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > REQUIRED_CONSENT_FIELDS | — | - $.message.intent.provider.items[*].xinput.form_response.submission_id must be present in the payload | — | 30000 |
64
+ | 49 | GRP | **GOLD_LOAN_FIELDS** | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_PAN, REQUIRED_FULL_NAME, REQUIRED_FIELD_GENDER, REQUIRED_FIELD_DOB, REQUIRED_FIELD_CONTACT_NUMBER, REQUIRED_FIELD_PINCODE, REQUIRED_FIELD_JWELLERY, REQUIRED_FIELD_PURITY, REQUIRED_FIELD_BUREAU_CONSENT | - Not all elements of $.message.intent.provider.items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION_GOLD"] | — |
65
+ | 50 | LF | `REQUIRED_FIELD_PAN` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
66
+ | 51 | LF | `REQUIRED_FULL_NAME` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
67
+ | 52 | LF | `REQUIRED_FIELD_GENDER` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
68
+ | 53 | LF | `REQUIRED_FIELD_DOB` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
69
+ | 54 | LF | `REQUIRED_FIELD_CONTACT_NUMBER` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
70
+ | 55 | LF | `REQUIRED_FIELD_PINCODE` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
71
+ | 56 | LF | `REQUIRED_FIELD_JWELLERY` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
72
+ | 57 | LF | `REQUIRED_FIELD_PURITY` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
73
+ | 58 | LF | `REQUIRED_FIELD_BUREAU_CONSENT` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
74
+ | 59 | GRP | **WORKING_CAPITAL_LOAN_FIELDS** | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_GSTIN_PROFILE_1, REQUIRED_FIELD_GSTR_B2B_INVOICE_1, REQUIRED_FIELD_GSTR_B2B_CDNR_1, REQUIRED_FIELD_GSTR_B2B_INVOICES_1, REQUIRED_FIELD_GSTR_3B_SUMMARY_1, REQUIRED_FIELD_BANK_STATEMENT_FILES, REQUIRED_FIELD_BANK_NAME, REQUIRED_FIELD_MIME_TYPE | - Not all elements of $.message.intent.provider.items[*].xinput.head.descriptor.code may be in ["BANK_STATEMENT_AND_GST_RETURNS"] | — |
75
+ | 60 | LF | `REQUIRED_FIELD_GSTIN_PROFILE_1` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
76
+ | 61 | LF | `REQUIRED_FIELD_GSTR_B2B_INVOICE_1` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
77
+ | 62 | LF | `REQUIRED_FIELD_GSTR_B2B_CDNR_1` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
78
+ | 63 | LF | `REQUIRED_FIELD_GSTR_B2B_INVOICES_1` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
79
+ | 64 | LF | `REQUIRED_FIELD_GSTR_3B_SUMMARY_1` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
80
+ | 65 | LF | `REQUIRED_FIELD_BANK_STATEMENT_FILES` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
81
+ | 66 | LF | `REQUIRED_FIELD_BANK_NAME` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
82
+ | 67 | LF | `REQUIRED_FIELD_MIME_TYPE` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $._EXTERNAL._SELF.message.intent.provider.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
83
+ | 68 | GRP | **BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS** | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_FINANCIAL_STATEMENTS, REQUIRED_FIELD_SHAREHOLDING_PATTERN, REQUIRED_FIELD_ITR | - Not all elements of $.message.intent.provider.items[*].xinput.head.descriptor.code may be in ["BUSINESS_AND_FINANCIAL_DOCUMENTS"] | — |
84
+ | 69 | LF | `REQUIRED_FIELD_FINANCIAL_STATEMENTS` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.financialStatements.value must be present in the payload | — | 30000 |
85
+ | 70 | LF | `REQUIRED_FIELD_SHAREHOLDING_PATTERN` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.shareholdingPattern.value must be present in the payload | — | 30000 |
86
+ | 71 | LF | `REQUIRED_FIELD_ITR` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.itr.value must be present in the payload | — | 30000 |
87
+ | 72 | GRP | **TERM_LOAN_FIELDS** | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_PAN, REQUIRED_FULL_NAME, REQUIRED_DOB, REQUIRED_CONSTITUTION, REQUIRED_BUSINESS_PAN, REQUIRED_DOI, REQUIRED_NATURE_OF_BUSINESS, REQUIRED_ANNUAL_TURNOVER, REQUIRED_BUSINESS_PINCODE | - Not all elements of $.message.intent.provider.items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION_TERM"] | — |
88
+ | 73 | LF | `REQUIRED_FIELD_PAN` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.pan.value must be present in the payload | — | 30000 |
89
+ | 74 | LF | `REQUIRED_FULL_NAME` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.fullName.value must be present in the payload | — | 30000 |
90
+ | 75 | LF | `REQUIRED_DOB` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.dob.value must be present in the payload | — | 30000 |
91
+ | 76 | LF | `REQUIRED_CONSTITUTION` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.constitution.value must be present in the payload | — | 30000 |
92
+ | 77 | LF | `REQUIRED_BUSINESS_PAN` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.businessPan.value must be present in the payload | — | 30000 |
93
+ | 78 | LF | `REQUIRED_DOI` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.doi.value must be present in the payload | — | 30000 |
94
+ | 79 | LF | `REQUIRED_NATURE_OF_BUSINESS` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.natureOfBusiness.value must be present in the payload | — | 30000 |
95
+ | 80 | LF | `REQUIRED_ANNUAL_TURNOVER` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.annualTurnover.value must be present in the payload | — | 30000 |
96
+ | 81 | LF | `REQUIRED_BUSINESS_PINCODE` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.businessPincode.value must be present in the payload | — | 30000 |
97
+ | 82 | GRP | **LAMF_FIELDS** | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_PAN, REQUIRED_FIELD_FULL_NAME, REQUIRED_FIELD_CONSTITUION, REQUIRED_FIELD_GENDER, REQUIRED_FIELD_EMPLOYMENT_TYPE, REQUIRED_FIELD_DOB, REQUIRED_FIELD_ANNUAL_INCOME, REQUIRED_FIELD_MOBILE_NUMBER, REQUIRED_FIELD_EMAIL_ID | - Not all elements of $.message.intent.provider.items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION_LAMF"] | — |
98
+ | 83 | LF | `REQUIRED_FIELD_PAN` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.pan.value must be present in the payload | — | 30000 |
99
+ | 84 | LF | `REQUIRED_FIELD_FULL_NAME` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.fullName.value must be present in the payload | — | 30000 |
100
+ | 85 | LF | `REQUIRED_FIELD_CONSTITUION` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.constitution.value must be present in the payload | — | 30000 |
101
+ | 86 | LF | `REQUIRED_FIELD_GENDER` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.gender.value must be present in the payload | — | 30000 |
102
+ | 87 | LF | `REQUIRED_FIELD_EMPLOYMENT_TYPE` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.employmentType.value must be present in the payload | — | 30000 |
103
+ | 88 | LF | `REQUIRED_FIELD_DOB` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.dob.value must be present in the payload | — | 30000 |
104
+ | 89 | LF | `REQUIRED_FIELD_ANNUAL_INCOME` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.annualIncome.value must be present in the payload | — | 30000 |
105
+ | 90 | LF | `REQUIRED_FIELD_MOBILE_NUMBER` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.mobileNumber.value must be present in the payload | — | 30000 |
106
+ | 91 | LF | `REQUIRED_FIELD_EMAIL_ID` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.intent.provider.items[*].xinput.form.data.emailId.value must be present in the payload | — | 30000 |
107
+ | 92 | GRP | **INVOICE_LOAN_FIELDS** | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_BUREAU_CONSENT | - Not all elements of $.message.intent.provider.items[*].xinput.head.descriptor.code may be in ["ORGANIZATION_INFORMATION"] | — |
108
+ | 93 | LF | `REQUIRED_FIELD_BUREAU_CONSENT` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_FIELDS > INVOICE_LOAN_FIELDS | — | - $.message.intent.providers.items[*].xinput.form.data.bureauConsent.value must be present in the payload | — | 30000 |
109
+ | 94 | GRP | **VALID_XINPUT_ENUMS** | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS | — | Sub-tests: REQUIRED_HEAD_CODE | — | — |
110
+ | 95 | LF | `REQUIRED_HEAD_CODE` | SEARCH_ITEMS > REQUIRED_ITEM_FIELDS > VALID_XINPUT_ENUMS | — | - All elements of $.message.intent.provider.items[*].xinput.head.descriptor.code must be in ["PERSONAL_INFORMATION", "CONSENT_APPROVAL", "ORGANIZATION_INFORMATION", "MERCHANT_AND_PRDOUCT_DETAILS", "BANK_STATEMENT_AND_GST_RETURNS", "BUSINESS_AND_FINANCIAL_DOCUMENTS", "ORGANIZATION_INFORMATION", "PERSONAL_INFORMATION_TERM", "PERSONAL_INFORMATION_GOLD", "PERSONAL_INFORMATION_TERM_GST", "PERSONAL_INFORMATION_BUSINESS_TERM", "PERSONAL_INFORMATION_LAMF"] | - $.message.intent.provider.items[*].xinput.head.descriptor.code must **not** be present in the payload | 30000 |
111
+ | 96 | GRP | **SEARCH_FULFILLMENTS** | — | — | Sub-tests: REQUIRED_FULFILLMENT_ITEMS | - $.message.intent.provider.fulfillments[*].customer.person.name must **not** be present in the payload | — |
112
+ | 97 | GRP | **REQUIRED_FULFILLMENT_ITEMS** | SEARCH_FULFILLMENTS | — | Sub-tests: REQUIRED_PERSON_NAME, REQUIRED_PERSON_DOB, REQUIRED_PERSON_GENDER, REQUIRED_CREDS_ID, REQUIRED_CREDS_TYPE, REQUIRED_CONTACT_EMAIL, REQUIRED_CONTACT_PHONE | — | — |
113
+ | 98 | LF | `REQUIRED_PERSON_NAME` | SEARCH_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $._EXTERNAL._SELF.message.intent.provider.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
114
+ | 99 | LF | `REQUIRED_PERSON_DOB` | SEARCH_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $._EXTERNAL._SELF.message.intent.provider.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
115
+ | 100 | LF | `REQUIRED_PERSON_GENDER` | SEARCH_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $._EXTERNAL._SELF.message.intent.provider.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
116
+ | 101 | LF | `REQUIRED_CREDS_ID` | SEARCH_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $._EXTERNAL._SELF.message.intent.provider.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
117
+ | 102 | LF | `REQUIRED_CREDS_TYPE` | SEARCH_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $._EXTERNAL._SELF.message.intent.provider.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
118
+ | 103 | LF | `REQUIRED_CONTACT_EMAIL` | SEARCH_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $._EXTERNAL._SELF.message.intent.provider.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
119
+ | 104 | LF | `REQUIRED_CONTACT_PHONE` | SEARCH_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $._EXTERNAL._SELF.message.intent.provider.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
120
+ | 105 | GRP | **SEARCH_PAYMENT** | — | — | Sub-tests: REQUIRED_PAYMENT_ITEMS | — | — |
121
+ | 106 | GRP | **REQUIRED_PAYMENT_ITEMS** | SEARCH_PAYMENT | — | Sub-tests: REQUIRED_PAYMENT_COLLECTED_BY | — | — |
122
+ | 107 | LF | `REQUIRED_PAYMENT_COLLECTED_BY` | SEARCH_PAYMENT > REQUIRED_PAYMENT_ITEMS | — | - $.message.intent.payment.collected_by must be present in the payload | — | 30000 |
123
+ | 108 | GRP | **SEARCH_TAGS** | — | — | Sub-tests: REQUIRED_PAYMENT_TAGS, REQUIRED_BAP_TERMS | — | — |
124
+ | 109 | LF | `REQUIRED_PAYMENT_TAGS` | SEARCH_TAGS | — | - All elements of $.message.intent.tags[*].descriptor.code must be in ["BAP_TERMS", "BPP_TERMS"] | - $.message.intent.tags[*].descriptor.code must **not** be present in the payload | 30000 |
125
+ | 110 | LF | `REQUIRED_BAP_TERMS` | SEARCH_TAGS | `$.message.intent.tags[?(@.descriptor.code == BAP_TERMS)]` | - All elements of $.message.intent.tags[?(@.descriptor.code == BAP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
126
+
127
+
128
+ ---
129
+ action: on_search
130
+ codeName: on_search
131
+ numTests: 145
132
+ generated: 2026-03-10
133
+ ---
134
+
135
+ # on_search — `on_search` Validations (Table View)
136
+
137
+ **115** leaf validation rule(s) applied to `on_search` in the **on_search** flow.
138
+ Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
139
+
140
+ ---
141
+ | # | Type | Test Name | Group | Scope | Description | Skip If | Error Code |
142
+ | ---: | :---: | :--- | :--- | :--- | :--- | :--- | :---: |
143
+ | 1 | GRP | **ON_SEARCH_CONTEXT** | — | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
144
+ | 2 | GRP | **CONTEXT_REQUIRED** | ON_SEARCH_CONTEXT | — | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
145
+ | 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.country.code must be present in the payload | — | 30000 |
146
+ | 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.city.code must be present in the payload | — | 30000 |
147
+ | 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.domain must be present in the payload | — | 30000 |
148
+ | 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.timestamp must be present in the payload | — | 30000 |
149
+ | 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_id must be present in the payload | — | 30000 |
150
+ | 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_uri must be present in the payload | — | 30000 |
151
+ | 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.transaction_id must be present in the payload | — | 30000 |
152
+ | 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.message_id must be present in the payload | — | 30000 |
153
+ | 11 | LF | `REQUIRED_CONTEXT_VERSION` | ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.version must be present in the payload | — | 30000 |
154
+ | 12 | LF | `REQUIRED_CONTEXT_TTL` | ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.ttl must be present in the payload | — | 30000 |
155
+ | 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_id must be present in the payload | — | 30000 |
156
+ | 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | ON_SEARCH_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_uri must be present in the payload | — | 30000 |
157
+ | 15 | GRP | **CONTEXT_ENUM** | ON_SEARCH_CONTEXT | — | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
158
+ | 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | ON_SEARCH_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
159
+ | 17 | LF | `VALID_CONTEXT_DOMAIN` | ON_SEARCH_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
160
+ | 18 | GRP | **CONTEXT_REGEX** | ON_SEARCH_CONTEXT | — | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
161
+ | 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | ON_SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
162
+ | 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | ON_SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
163
+ | 21 | LF | `REGEX_CONTEXT_BAP_ID` | ON_SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
164
+ | 22 | LF | `REGEX_CONTEXT_BAP_URI` | ON_SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
165
+ | 23 | LF | `REQUIRED_CONTEXT_TTL` | ON_SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
166
+ | 24 | LF | `REGEX_CONTEXT_BPP_ID` | ON_SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bpp_id must **not** be present in the payload | 30000 |
167
+ | 25 | LF | `REGEX_CONTEXT_BPP_URI` | ON_SEARCH_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bpp_uri must **not** be present in the payload | 30000 |
168
+ | 26 | LF | `ON_SEARCH_CATALOG_NAME` | — | — | - $.message.catalog.descriptor.name must be present in the payload | — | 30000 |
169
+ | 27 | GRP | **ON_SEARCH_PROVIDER** | — | — | Sub-tests: ON_SEARCH_PROVIDER_ID, ON_SEARCH_PROVIDER_NAME, ON_SEARCH_PROVIDER_IMAGES_URL, ON_SEARCH_PROVIDER_IMAGES_SIZE_TYPE | — | — |
170
+ | 28 | LF | `ON_SEARCH_PROVIDER_ID` | ON_SEARCH_PROVIDER | — | - $.message.catalog.providers[*].id must be present in the payload | — | 30000 |
171
+ | 29 | LF | `ON_SEARCH_PROVIDER_NAME` | ON_SEARCH_PROVIDER | — | - $.message.catalog.providers[*].descriptor.name must be present in the payload | — | 30000 |
172
+ | 30 | LF | `ON_SEARCH_PROVIDER_IMAGES_URL` | ON_SEARCH_PROVIDER | — | - $.message.catalog.providers[*].descriptor.images[*].url must be present in the payload | — | 30000 |
173
+ | 31 | LF | `ON_SEARCH_PROVIDER_IMAGES_SIZE_TYPE` | ON_SEARCH_PROVIDER | — | - $.message.catalog.providers[*].descriptor.images[*].size_type must be present in the payload | — | 30000 |
174
+ | 32 | GRP | **ON_SEARCH_CATEGORIES** | — | — | Sub-tests: ON_SEARCH_CATEGORIES_NAME, ON_SEARCH_CATEGORIES_CODE, ON_SEARCH_CATEGORIES_ID, ON_SEARCH_CATEGORIES_PARENT_ID, VALID_ENUM_CATEGORY_CODE | - $.message.catalog.providers[*].categories[*].id must **not** be present in the payload | — |
175
+ | 33 | LF | `ON_SEARCH_CATEGORIES_NAME` | ON_SEARCH_CATEGORIES | — | - $.message.catalog.providers[*].categories[*].descriptor.name must be present in the payload | — | 30000 |
176
+ | 34 | LF | `ON_SEARCH_CATEGORIES_CODE` | ON_SEARCH_CATEGORIES | — | - $.message.catalog.providers[*].categories[*].descriptor.code must be present in the payload | — | 30000 |
177
+ | 35 | LF | `ON_SEARCH_CATEGORIES_ID` | ON_SEARCH_CATEGORIES | — | - $.message.catalog.providers[*].categories[*].id must be present in the payload | — | 30000 |
178
+ | 36 | LF | `ON_SEARCH_CATEGORIES_PARENT_ID` | ON_SEARCH_CATEGORIES | — | - $.message.catalog.providers[*].categories[*].parent_category_id must be present in the payload | - At least one of $.message.catalog.providers[*].categories[*].descriptor.code must be in ["LOAN"] | 30000 |
179
+ | 37 | LF | `VALID_ENUM_CATEGORY_CODE` | ON_SEARCH_CATEGORIES | — | - All elements of $.message.catalog.providers[*].categories[*].descriptor.code must be in ["LOAN", "UNSECURED_PERSONAL", "SECURED_PERSONAL", "OFFERS", "ADDITIONAL_DATA", "PERSONAL_FINANCING", "CONSUMER_INVOICE_FINANCING", "AGRI_PURCHASE_FINANCE", "ELECTRONICS_PURCHASE_FINANCE", "BUSINESS", "SOLE_PROPRIETORSHIP", "OTHER", "PARTNERSHIP_FIRM", "PRIVATE_LTD", "INVOICE_FINANCING", "GOLD_LOAN", "LAMF", "TERM_LOAN", "CREDIT_LINE", "DOCUMENT_BASED_DRAWDOWN", "NON_DOCUMENT_BASED_DRAWDOWN", "BANKING", "STATEMENT_UPLOAD", "AA_BANKING", "GST", "AA_GST", "GSP", "RETURN_UPLOAD", "MUTUAL_FUND", "AA_LOAN", "MFC", "ITR", "UPLOAD", "BUREAU_LOAN", "DERIVED_DATA", "ADDITIONAL_UPLOAD", "RTA"] | - $.message.catalog.providers[*].categories[*].descriptor.code must **not** be present in the payload | 30000 |
180
+ | 38 | GRP | **ON_SEARCH_ITEMS** | — | — | Sub-tests: REQUIRED_ITEMS, VALID_ENUM_ITEMS | — | — |
181
+ | 39 | GRP | **REQUIRED_ITEMS** | ON_SEARCH_ITEMS | — | Sub-tests: REQUIRED_ITEM_ID, REQUIRED_ITEM_CODE, REQUIRED_ITEM_CATEGORY_ID, CHECK_CATEGORY_ID, REQUIRED_ITEM_FULFILLMENT_ID, REQUIRED_XINPUT_FIELDS | — | — |
182
+ | 40 | LF | `REQUIRED_ITEM_ID` | ON_SEARCH_ITEMS > REQUIRED_ITEMS | — | - $.message.catalog.providers[*].items[*].id must be present in the payload | — | 30000 |
183
+ | 41 | LF | `REQUIRED_ITEM_CODE` | ON_SEARCH_ITEMS > REQUIRED_ITEMS | — | - $.message.catalog.providers[*].items[*].descriptor.code must be present in the payload | — | 30000 |
184
+ | 42 | LF | `REQUIRED_ITEM_CATEGORY_ID` | ON_SEARCH_ITEMS > REQUIRED_ITEMS | — | - $.message.catalog.providers[*].items[*].category_ids[*] must be present in the payload | — | 30000 |
185
+ | 43 | LF | `CHECK_CATEGORY_ID` | ON_SEARCH_ITEMS > REQUIRED_ITEMS | — | - At least one of $.message.catalog.providers[*].items[*].category_ids[*] must be in $.message.catalog.providers[*].categories[*].id | - $.message.catalog.providers[*].categories[*].id must **not** be present in the payload | 30000 |
186
+ | 44 | LF | `REQUIRED_ITEM_FULFILLMENT_ID` | ON_SEARCH_ITEMS > REQUIRED_ITEMS | — | - $.message.catalog.providers[*].items[*].fulfillment_ids[*] must be present in the payload | — | 30000 |
187
+ | 45 | GRP | **REQUIRED_XINPUT_FIELDS** | ON_SEARCH_ITEMS > REQUIRED_ITEMS | — | Sub-tests: REQUIRED_HEAD_CODE, REQUIRED_HEAD_NAME, REQUIRED_FORM_HEADINGS, REQUIRED_FORM_ID, REQUIRED_FORM_MIME_TYPE, PERSONAL_LOAN_FIELDS, REQUIRED_CONSENT_FIELDS, INVOICE_LOAN_FIELDS, GOLD_LOAN_FIELDS, WORKING_CAPITAL_LOAN_FIELDS, BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS, TERM_LOAN_FIELDS, TERM_LOAN_FIELDS_GST, LAMF_FIELDS | **All of the following must be true:** - $.message.catalog.providers[*].items[*].tags[*].descriptor.code must **not** be present in the payload - Not all elements of $.message.catalog.providers[*].items[*].tags[*].descriptor.code may be in ["LOAN_INFO"] | — |
188
+ | 46 | LF | `REQUIRED_HEAD_CODE` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
189
+ | 47 | LF | `REQUIRED_HEAD_NAME` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.head.descriptor.name must be present in the payload | — | 30000 |
190
+ | 48 | LF | `REQUIRED_FORM_HEADINGS` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.head.headings[*] must be present in the payload | — | 30000 |
191
+ | 49 | LF | `REQUIRED_FORM_ID` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.id must be present in the payload | — | 30000 |
192
+ | 50 | LF | `REQUIRED_FORM_MIME_TYPE` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.mime_type must be present in the payload | — | 30000 |
193
+ | 51 | GRP | **PERSONAL_LOAN_FIELDS** | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_PAN_NAME, REQUIRED_FIELD_DOB, REQUIRED_FIELD_GENDER, REQUIRED_FIELD_PAN, REQUIRED_FIELD_CONTACT_NUMBER, REQUIRED_FIELD_EMPLOYMENT_TYPE, REQUIRED_FIELD_INCOME, REQUIRED_FIELD_COMPANY_NAME, REQUIRED_FIELD_BUREAU_CONSENT | - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION"] | — |
194
+ | 52 | LF | `REQUIRED_FIELD_PAN_NAME` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.panName.type must be present in the payload | — | 30000 |
195
+ | 53 | LF | `REQUIRED_FIELD_DOB` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.dob.type must be present in the payload | — | 30000 |
196
+ | 54 | LF | `REQUIRED_FIELD_GENDER` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.gender.type must be present in the payload | — | 30000 |
197
+ | 55 | LF | `REQUIRED_FIELD_PAN` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.pan.type must be present in the payload | — | 30000 |
198
+ | 56 | LF | `REQUIRED_FIELD_CONTACT_NUMBER` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.contactNumber.type must be present in the payload | — | 30000 |
199
+ | 57 | LF | `REQUIRED_FIELD_EMPLOYMENT_TYPE` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.employmentType.type must be present in the payload | — | 30000 |
200
+ | 58 | LF | `REQUIRED_FIELD_INCOME` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.income.type must be present in the payload | — | 30000 |
201
+ | 59 | LF | `REQUIRED_FIELD_COMPANY_NAME` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.companyName.type must be present in the payload | — | 30000 |
202
+ | 60 | LF | `REQUIRED_FIELD_BUREAU_CONSENT` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > PERSONAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.bureauConsent.type must be present in the payload | — | 30000 |
203
+ | 61 | GRP | **REQUIRED_CONSENT_FIELDS** | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_CONSENT_HANDLER | - None of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["CONSENT_APPROVAL"] | — |
204
+ | 62 | LF | `REQUIRED_FIELD_CONSENT_HANDLER` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_CONSENT_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.consent_handler must be present in the payload | — | 30000 |
205
+ | 63 | GRP | **INVOICE_LOAN_FIELDS** | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_BUREAU_CONSENT | - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["ORGANIZATION_INFORMATION"] | — |
206
+ | 64 | LF | `REQUIRED_FIELD_BUREAU_CONSENT` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > INVOICE_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.bureauConsent.type must be present in the payload | — | 30000 |
207
+ | 65 | GRP | **GOLD_LOAN_FIELDS** | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_PAN, REQUIRED_FULL_NAME, REQUIRED_FIELD_GENDER, REQUIRED_FIELD_DOB, REQUIRED_FIELD_CONTACT_NUMBER, REQUIRED_FIELD_PINCODE, REQUIRED_FIELD_JWELLERY, REQUIRED_FIELD_PURITY, REQUIRED_FIELD_BUREAU_CONSENT, REQUIRED_CONSENT_FIELDS | - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION_GOLD"] | — |
208
+ | 66 | LF | `REQUIRED_FIELD_PAN` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.pan.type must be present in the payload | — | 30000 |
209
+ | 67 | LF | `REQUIRED_FULL_NAME` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.fullName.type must be present in the payload | — | 30000 |
210
+ | 68 | LF | `REQUIRED_FIELD_GENDER` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.gender.type must be present in the payload | — | 30000 |
211
+ | 69 | LF | `REQUIRED_FIELD_DOB` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.dob.type must be present in the payload | — | 30000 |
212
+ | 70 | LF | `REQUIRED_FIELD_CONTACT_NUMBER` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.contactNumber.type must be present in the payload | — | 30000 |
213
+ | 71 | LF | `REQUIRED_FIELD_PINCODE` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.pincode.type must be present in the payload | — | 30000 |
214
+ | 72 | LF | `REQUIRED_FIELD_JWELLERY` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.jewellery.type must be present in the payload | — | 30000 |
215
+ | 73 | LF | `REQUIRED_FIELD_PURITY` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.purity.type must be present in the payload | — | 30000 |
216
+ | 74 | LF | `REQUIRED_FIELD_BUREAU_CONSENT` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.bureauConsent.type must be present in the payload | — | 30000 |
217
+ | 75 | GRP | **REQUIRED_CONSENT_FIELDS** | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS | — | Sub-tests: REQUIRED_FIELD_AA_ID | - None of $.message.order.items[*].xinput.head.descriptor.code may be in ["CONSENT_APPROVAL"] | — |
218
+ | 76 | LF | `REQUIRED_FIELD_AA_ID` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > GOLD_LOAN_FIELDS > REQUIRED_CONSENT_FIELDS | — | - $._EXTERNAL._SELF.message.catalog.providers[*].items[*].xinput.form.data.bureauConsent.type must be present in the payload | — | 30000 |
219
+ | 77 | GRP | **WORKING_CAPITAL_LOAN_FIELDS** | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_GSTIN_PROFILE_1, REQUIRED_FIELD_GSTR_B2B_INVOICE_1, REQUIRED_FIELD_GSTR_B2B_CDNR_1, REQUIRED_FIELD_GSTR_B2B_INVOICES_1, REQUIRED_FIELD_GSTR_3B_SUMMARY_1, REQUIRED_FIELD_BANK_STATEMENT_FILES, REQUIRED_FIELD_BANK_NAME, REQUIRED_FIELD_MIME_TYPE | - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["BANK_STATEMENT_AND_GST_RETURNS"] | — |
220
+ | 78 | LF | `REQUIRED_FIELD_GSTIN_PROFILE_1` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.gstinProfile_1.type must be present in the payload | — | 30000 |
221
+ | 79 | LF | `REQUIRED_FIELD_GSTR_B2B_INVOICE_1` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.gstr1B2bInvoice_1.type must be present in the payload | — | 30000 |
222
+ | 80 | LF | `REQUIRED_FIELD_GSTR_B2B_CDNR_1` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.gstr1B2bCdnr_1.type must be present in the payload | — | 30000 |
223
+ | 81 | LF | `REQUIRED_FIELD_GSTR_B2B_INVOICES_1` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.gstr2aB2bInvoices_1.type must be present in the payload | — | 30000 |
224
+ | 82 | LF | `REQUIRED_FIELD_GSTR_3B_SUMMARY_1` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.gstr3bSummary_1.type must be present in the payload | — | 30000 |
225
+ | 83 | LF | `REQUIRED_FIELD_BANK_STATEMENT_FILES` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.bankStatementFiles_1.type must be present in the payload | — | 30000 |
226
+ | 84 | LF | `REQUIRED_FIELD_BANK_NAME` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.bankName_1.type must be present in the payload | — | 30000 |
227
+ | 85 | LF | `REQUIRED_FIELD_MIME_TYPE` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > WORKING_CAPITAL_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.mimeType_1.type must be present in the payload | — | 30000 |
228
+ | 86 | GRP | **BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS** | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_FINANCIAL_STATEMENTS, REQUIRED_FIELD_SHAREHOLDING_PATTERN, REQUIRED_FIELD_ITR | - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["BUSINESS_AND_FINANCIAL_DOCUMENTS"] | — |
229
+ | 87 | LF | `REQUIRED_FIELD_FINANCIAL_STATEMENTS` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.financialStatements.type must be present in the payload | — | 30000 |
230
+ | 88 | LF | `REQUIRED_FIELD_SHAREHOLDING_PATTERN` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.shareholdingPattern.type must be present in the payload | — | 30000 |
231
+ | 89 | LF | `REQUIRED_FIELD_ITR` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > BUSINESS_AND_FINANCIAL_DOCUMENTS_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.itr.type must be present in the payload | — | 30000 |
232
+ | 90 | GRP | **TERM_LOAN_FIELDS** | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_PAN, REQUIRED_FULL_NAME, REQUIRED_DOB, REQUIRED_CONSTITUTION, REQUIRED_BUSINESS_PAN, REQUIRED_DOI, REQUIRED_NATURE_OF_BUSINESS, REQUIRED_ANNUAL_TURNOVER, REQUIRED_BUSINESS_PINCODE | - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION_TERM"] | — |
233
+ | 91 | LF | `REQUIRED_FIELD_PAN` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.pan.type must be present in the payload | — | 30000 |
234
+ | 92 | LF | `REQUIRED_FULL_NAME` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.fullName.type must be present in the payload | — | 30000 |
235
+ | 93 | LF | `REQUIRED_DOB` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.dob.type must be present in the payload | — | 30000 |
236
+ | 94 | LF | `REQUIRED_CONSTITUTION` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.constitution.type must be present in the payload | — | 30000 |
237
+ | 95 | LF | `REQUIRED_BUSINESS_PAN` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.businessPan.type must be present in the payload | — | 30000 |
238
+ | 96 | LF | `REQUIRED_DOI` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.doi.type must be present in the payload | — | 30000 |
239
+ | 97 | LF | `REQUIRED_NATURE_OF_BUSINESS` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.natureOfBusiness.type must be present in the payload | — | 30000 |
240
+ | 98 | LF | `REQUIRED_ANNUAL_TURNOVER` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.annualTurnover.type must be present in the payload | — | 30000 |
241
+ | 99 | LF | `REQUIRED_BUSINESS_PINCODE` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.businessPincode.type must be present in the payload | — | 30000 |
242
+ | 100 | GRP | **TERM_LOAN_FIELDS_GST** | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_BUREAU_CONSENT | - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION_TERM_GST"] | — |
243
+ | 101 | LF | `REQUIRED_FIELD_BUREAU_CONSENT` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > TERM_LOAN_FIELDS_GST | — | - $.message.catalog.providers[*].items[*].xinput.form.data.bureauConsent.type must be present in the payload | — | 30000 |
244
+ | 102 | GRP | **LAMF_FIELDS** | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FIELD_PAN, REQUIRED_FIELD_FULL_NAME, REQUIRED_FIELD_CONSTITUION, REQUIRED_FIELD_GENDER, REQUIRED_FIELD_EMPLOYMENT_TYPE, REQUIRED_FIELD_DOB, REQUIRED_FIELD_ANNUAL_INCOME, REQUIRED_FIELD_MOBILE_NUMBER, REQUIRED_FIELD_EMAIL_ID | - Not all elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code may be in ["PERSONAL_INFORMATION_LAMF"] | — |
245
+ | 103 | LF | `REQUIRED_FIELD_PAN` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.pan.type must be present in the payload | — | 30000 |
246
+ | 104 | LF | `REQUIRED_FIELD_FULL_NAME` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.fullName.type must be present in the payload | — | 30000 |
247
+ | 105 | LF | `REQUIRED_FIELD_CONSTITUION` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.constitution.type must be present in the payload | — | 30000 |
248
+ | 106 | LF | `REQUIRED_FIELD_GENDER` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.gender.type must be present in the payload | — | 30000 |
249
+ | 107 | LF | `REQUIRED_FIELD_EMPLOYMENT_TYPE` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.employmentType.type must be present in the payload | — | 30000 |
250
+ | 108 | LF | `REQUIRED_FIELD_DOB` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.dob.type must be present in the payload | — | 30000 |
251
+ | 109 | LF | `REQUIRED_FIELD_ANNUAL_INCOME` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.annualIncome.type must be present in the payload | — | 30000 |
252
+ | 110 | LF | `REQUIRED_FIELD_MOBILE_NUMBER` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.mobileNumber.type must be present in the payload | — | 30000 |
253
+ | 111 | LF | `REQUIRED_FIELD_EMAIL_ID` | ON_SEARCH_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > LAMF_FIELDS | — | - $.message.catalog.providers[*].items[*].xinput.form.data.emailId.type must be present in the payload | — | 30000 |
254
+ | 112 | GRP | **VALID_ENUM_ITEMS** | ON_SEARCH_ITEMS | — | Sub-tests: VALID_ITEM_CODE, VALID_HEAD_CODE | — | — |
255
+ | 113 | LF | `VALID_ITEM_CODE` | ON_SEARCH_ITEMS > VALID_ENUM_ITEMS | — | - All elements of $.message.catalog.providers[*].items[*].descriptor.code must be in ["LOAN"] | - $.message.catalog.providers[*].items[*].descriptor.code must **not** be present in the payload | 30000 |
256
+ | 114 | LF | `VALID_HEAD_CODE` | ON_SEARCH_ITEMS > VALID_ENUM_ITEMS | — | - All elements of $.message.catalog.providers[*].items[*].xinput.head.descriptor.code must be in ["PERSONAL_INFORMATION", "CONSENT_APPROVAL", "ORGANIZATION_INFORMATION", "MERCHANT_AND_PRDOUCT_DETAILS", "BANK_STATEMENT_AND_GST_RETURNS", "BUSINESS_AND_FINANCIAL_DOCUMENTS", "ORGANIZATION_INFORMATION", "PERSONAL_INFORMATION_TERM", "PERSONAL_INFORMATION_GOLD", "PERSONAL_INFORMATION_TERM_GST", "PERSONAL_INFORMATION_BUSINESS_TERM", "PERSONAL_INFORMATION_LAMF"] | - $.message.catalog.providers[*].items[*].xinput.head.descriptor.code must **not** be present in the payload | 30000 |
257
+ | 115 | GRP | **ON_SEARCH_FULFILLMENTS** | — | — | Sub-tests: REQUIRED_FULFILLMENT_ITEMS, VALID_FULFILLMENT_ITEMS, VALID_FULFILLMENT_TAGS | — | — |
258
+ | 116 | GRP | **REQUIRED_FULFILLMENT_ITEMS** | ON_SEARCH_FULFILLMENTS | — | Sub-tests: REQUIRED_FULFILLMENT_ID, REQUIRED_FULFILLMENT_TYPE | — | — |
259
+ | 117 | LF | `REQUIRED_FULFILLMENT_ID` | ON_SEARCH_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.catalog.providers[*].fulfillments[*].id must be present in the payload | — | 30000 |
260
+ | 118 | LF | `REQUIRED_FULFILLMENT_TYPE` | ON_SEARCH_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.catalog.providers[*].fulfillments[*].type must be present in the payload | — | 30000 |
261
+ | 119 | GRP | **VALID_FULFILLMENT_ITEMS** | ON_SEARCH_FULFILLMENTS | — | Sub-tests: VALID_FULFILLMENT_TYPE | — | — |
262
+ | 120 | LF | `VALID_FULFILLMENT_TYPE` | ON_SEARCH_FULFILLMENTS > VALID_FULFILLMENT_ITEMS | — | - All elements of $.message.catalog.providers[*].fulfillments[*].type must be in ["ONLINE", "SEMI_ONLINE"] | - $.message.catalog.providers[*].fulfillments[*].type must **not** be present in the payload | 30000 |
263
+ | 121 | GRP | **VALID_FULFILLMENT_TAGS** | ON_SEARCH_FULFILLMENTS | — | Sub-tests: REQUIRED_FULFILLMENT_TAGS, REQUIRED_CHECKLISTS_ITEM | — | — |
264
+ | 122 | LF | `REQUIRED_FULFILLMENT_TAGS` | ON_SEARCH_FULFILLMENTS > VALID_FULFILLMENT_TAGS | — | - All elements of $.message.catalog.providers[*].fulfillments[*].tags[*].descriptor.code must be in ["CHECKLISTS"] | - $.message.catalog.providers[*].fulfillments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
265
+ | 123 | LF | `REQUIRED_CHECKLISTS_ITEM` | ON_SEARCH_FULFILLMENTS > VALID_FULFILLMENT_TAGS | `$.message.catalog.providers[*].fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)]` | - All elements of $.message.catalog.providers[*].fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)].list[*].descriptor.code must be in ["PERSONAL_INFORMATION", "CONSENT_APPROVAL", "SET_LOAN_AMOUNT", "KYC", "KYC_OFFLINE", "EMANDATE", "LOAN_AGREEMENT", "ACCOUNT_MONITORING", "ORGANIZATION_INFORMATION", "INDIVIDUAL_KYC", "ENTITY_KYC", "MERCHANT_AND_PRDOUCT_DETAILS", "SET_DOWN_PAYMENT", "ESIGN", "BANK_STATEMENT_AND_GST_RETURNS", "BUSINESS_AND_FINANCIAL_DOCUMENTS", "BUSINESS_KYC", "PERSONAL_DISCUSSION", "PHYSICAL_VERIFICATION", "ENACH", "PROCESSING_FEE", "MANUAL_VERIFICATION", "LIEN_MARKING", "PERSONAL_INFORMATION_TERM", "PERSONAL_INFORMATION_LAMF", "PERSONAL_INFORMATION_TERM_GST"] | — | 30000 |
266
+ | 124 | GRP | **ON_SEARCH_PAYMENTS** | — | — | Sub-tests: REQUIRED_PAYMENT_ITEMS, VALID_PAYMENT_ITEMS | — | — |
267
+ | 125 | GRP | **REQUIRED_PAYMENT_ITEMS** | ON_SEARCH_PAYMENTS | — | Sub-tests: REQUIRED_PAYMENT_TYPE, REQUIRED_PAYMENT_ID, REQUIRED_PAYMENT_STATUS, REQUIRED_PAYMENT_COLLECTED_BY, REQUIRED_PAYMENT_TIME_LABEL | — | — |
268
+ | 126 | LF | `REQUIRED_PAYMENT_TYPE` | ON_SEARCH_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.catalog.providers[*].payments[*].type must be present in the payload | — | 30000 |
269
+ | 127 | LF | `REQUIRED_PAYMENT_ID` | ON_SEARCH_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.catalog.providers[*].payments[*].id must be present in the payload | — | 30000 |
270
+ | 128 | LF | `REQUIRED_PAYMENT_STATUS` | ON_SEARCH_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.catalog.providers[*].payments[*].status must be present in the payload | — | 30000 |
271
+ | 129 | LF | `REQUIRED_PAYMENT_COLLECTED_BY` | ON_SEARCH_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.catalog.providers[*].payments[*].collected_by must be present in the payload | — | 30000 |
272
+ | 130 | LF | `REQUIRED_PAYMENT_TIME_LABEL` | ON_SEARCH_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.catalog.providers[*].payments[*].time.label must be present in the payload | — | 30000 |
273
+ | 131 | GRP | **VALID_PAYMENT_ITEMS** | ON_SEARCH_PAYMENTS | — | Sub-tests: VALID_PAYMENT_TYPE, VALID_PAYMENT_STATUS, VALID_PAYMENT_COLLECTOR, VALID_PAYMENT_LABEL | — | — |
274
+ | 132 | LF | `VALID_PAYMENT_TYPE` | ON_SEARCH_PAYMENTS > VALID_PAYMENT_ITEMS | — | - All elements of $.message.catalog.providers[*].payments[*].type must be in ["ON_ORDER", "ON_FULFILLMENT", "POST_FULFILLMENT"] | - $.message.catalog.providers[*].payments[*].type must **not** be present in the payload | 30000 |
275
+ | 133 | LF | `VALID_PAYMENT_STATUS` | ON_SEARCH_PAYMENTS > VALID_PAYMENT_ITEMS | — | - All elements of $.message.catalog.providers[*].payments[*].status must be in ["NOT-PAID", "PAID", "DEFERRED", "DELAYED"] | - $.message.catalog.providers[*].payments[*].status must **not** be present in the payload | 30000 |
276
+ | 134 | LF | `VALID_PAYMENT_COLLECTOR` | ON_SEARCH_PAYMENTS > VALID_PAYMENT_ITEMS | — | - All elements of ["BPP", "CONSUMER"] must be in $.message.catalog.providers[*].payments[*].collected_by | - $.message.catalog.providers[*].payments[*].collected_by must **not** be present in the payload | 30000 |
277
+ | 135 | LF | `VALID_PAYMENT_LABEL` | ON_SEARCH_PAYMENTS > VALID_PAYMENT_ITEMS | — | - All elements of ["INSTALLMENT", "LOAN_DISBURSMENT"] must be in $.message.catalog.providers[*].payments[*].time.label | - $.message.catalog.providers[*].payments[*].time.label must **not** be present in the payload | 30000 |
278
+ | 136 | GRP | **ON_SEARCH_TAGS** | — | — | Sub-tests: REQUIRED_PAYMENT_TAGS, REQUIRED_BPP_TERMS | — | — |
279
+ | 137 | LF | `REQUIRED_PAYMENT_TAGS` | ON_SEARCH_TAGS | — | - All elements of $.message.catalog.tags[*].descriptor.code must be in ["BAP_TERMS", "BPP_TERMS"] | - $.message.catalog.tags[*].descriptor.code must **not** be present in the payload | 30000 |
280
+ | 138 | LF | `REQUIRED_BPP_TERMS` | ON_SEARCH_TAGS | `$.message.catalog.tags[?(@.descriptor.code == BPP_TERMS)]` | - All elements of $.message.catalog.tags[?(@.descriptor.code == BPP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
281
+ | 139 | GRP | **ON_SEARCH_PROVIDER_TAGS** | — | — | Sub-tests: VALID_PROVODER_TAGS, REQUIRED_CONTACT_INFO, REQUIRED_LSP_INFO | — | — |
282
+ | 140 | LF | `VALID_PROVODER_TAGS` | ON_SEARCH_PROVIDER_TAGS | — | - All elements of $.message.catalog.providers[*].tags[*].descriptor.code must be in ["CONTACT_INFO", "LSP_INFO"] | - $.message.catalog.providers[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
283
+ | 141 | LF | `REQUIRED_CONTACT_INFO` | ON_SEARCH_PROVIDER_TAGS | `$.message.catalog.providers[*].tags[?(@.descriptor.code == CONTACT_INFO)]` | - All elements of $.message.catalog.providers[*].tags[?(@.descriptor.code == CONTACT_INFO)].list[*].descriptor.code must be in ["GRO_NAME", "GRO_EMAIL", "GRO_CONTACT_NUMBER", "CUSTOMER_SUPPORT_LINK", "CUSTOMER_SUPPORT_CONTACT_NUMBER", "CUSTOMER_SUPPORT_CONTACT_NUMBER"] | — | 30000 |
284
+ | 142 | LF | `REQUIRED_LSP_INFO` | ON_SEARCH_PROVIDER_TAGS | `$.message.catalog.providers[*].tags[?(@.descriptor.code == LSP_INFO)]` | - All elements of $.message.catalog.providers[*].tags[?(@.descriptor.code == LSP_INFO)].list[*].descriptor.code must be in ["LSP_NAME", "LSP_EMAIL", "LSP_CONTACT_NUMBER", "LSP_ADDRESS"] | — | 30000 |
285
+ | 143 | GRP | **ON_SEARCH_ITEM_TAGS** | — | — | Sub-tests: REQUIRED_LOAN_INFO_TAG_GROUP, REQUIRED_LOAN_OFFER_TAGS | **All of the following must be true:** - $.message.catalog.providers[*].items[*].tags[*].descriptor.code must **not** be present in the payload - Not all elements of $.message.catalog.providers[*].items[*].tags[*].descriptor.code may be in ["LOAN_INFO", "LOAN_OFFER"] | — |
286
+ | 144 | LF | `REQUIRED_LOAN_INFO_TAG_GROUP` | ON_SEARCH_ITEM_TAGS | `$.message.catalog.providers[*].items[*].tags[?(@.descriptor.code == LOAN_INFO)]` | - All elements of $.message.catalog.providers[*].items[*].tags[?(@.descriptor.code == LOAN_INFO)].list[*].descriptor.code must be in ["INTEREST_RATE", "TERM", "INTEREST_RATE_TYPE", "APPLICATION_FEE", "FORECLOSURE_FEE", "INTEREST_RATE_CONVERSION_CHARGE", "DELAY_PENALTY_FEE", "OTHER_PENALTY_FEE", "ANNUAL_PERCENTAGE_RATE", "REPAYMENT_FREQUENCY", "NUMBER_OF_INSTALLMENTS", "TNC_LINK", "COOL_OFF_PERIOD", "INSTALLMENT_AMOUNT", "KFS_LINK", "INVOICE_NUMBER", "WORKING_CAPITAL_LIMIT", "INSURANCE_CHARGES", "RATE_ANNUALISED_PENAL_CHARGES", "KYC_MODE", "CO_APPLICANT"] | — | 30000 |
287
+ | 145 | LF | `REQUIRED_LOAN_OFFER_TAGS` | ON_SEARCH_ITEM_TAGS | `$.message.catalog.providers[*].items[*].tags[?(@.descriptor.code == LOAN_OFFER)]` | - All elements of $.message.catalog.providers[*].items[*].tags[?(@.descriptor.code == LOAN_OFFER)].list[*].descriptor.code must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT", "PROCESSING_FEE", "OTHER_UPFRONT_CHARGES", "INSURANCE_CHARGES", "NET_DISBURSED_AMOUNT", "OTHER_CHARGES", "OFFER_VALIDITY", "WORKING_CAPITAL_LIMIT", "CURRENT_UTLIZATION"] | — | 30000 |
288
+
289
+
290
+ ---
291
+ action: select
292
+ codeName: select
293
+ numTests: 52
294
+ generated: 2026-03-10
295
+ ---
296
+
297
+ # select — `select` Validations (Table View)
298
+
299
+ **40** leaf validation rule(s) applied to `select` in the **select** flow.
300
+ Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
301
+
302
+ ---
303
+ | # | Type | Test Name | Group | Scope | Description | Skip If | Error Code |
304
+ | ---: | :---: | :--- | :--- | :--- | :--- | :--- | :---: |
305
+ | 1 | GRP | **SELECT_CONTEXT** | — | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
306
+ | 2 | GRP | **CONTEXT_REQUIRED** | SELECT_CONTEXT | — | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
307
+ | 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.country.code must be present in the payload | — | 30000 |
308
+ | 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.city.code must be present in the payload | — | 30000 |
309
+ | 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.domain must be present in the payload | — | 30000 |
310
+ | 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.timestamp must be present in the payload | — | 30000 |
311
+ | 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_id must be present in the payload | — | 30000 |
312
+ | 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_uri must be present in the payload | — | 30000 |
313
+ | 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.transaction_id must be present in the payload | — | 30000 |
314
+ | 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.message_id must be present in the payload | — | 30000 |
315
+ | 11 | LF | `REQUIRED_CONTEXT_VERSION` | SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.version must be present in the payload | — | 30000 |
316
+ | 12 | LF | `REQUIRED_CONTEXT_TTL` | SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.ttl must be present in the payload | — | 30000 |
317
+ | 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_id must be present in the payload | — | 30000 |
318
+ | 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_uri must be present in the payload | — | 30000 |
319
+ | 15 | GRP | **CONTEXT_ENUM** | SELECT_CONTEXT | — | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
320
+ | 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | SELECT_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
321
+ | 17 | LF | `VALID_CONTEXT_DOMAIN` | SELECT_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
322
+ | 18 | GRP | **CONTEXT_REGEX** | SELECT_CONTEXT | — | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
323
+ | 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
324
+ | 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
325
+ | 21 | LF | `REGEX_CONTEXT_BAP_ID` | SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
326
+ | 22 | LF | `REGEX_CONTEXT_BAP_URI` | SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
327
+ | 23 | LF | `REQUIRED_CONTEXT_TTL` | SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
328
+ | 24 | LF | `REGEX_CONTEXT_BPP_ID` | SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bpp_id must **not** be present in the payload | 30000 |
329
+ | 25 | LF | `REGEX_CONTEXT_BPP_URI` | SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bpp_uri must **not** be present in the payload | 30000 |
330
+ | 26 | LF | `REQUIRED_PROVIDER_ID` | — | — | - $.message.order.provider.id must be present in the payload | — | 30000 |
331
+ | 27 | GRP | **REQUIRED_ITEM_FIELDS** | — | — | Sub-tests: REQUIRED_ITEM_ID, REQUIRED_PARENT_ITEM_ID, REQUIRED_XINPUT_ITEMS, VALID_TAGS | — | — |
332
+ | 28 | LF | `REQUIRED_ITEM_ID` | REQUIRED_ITEM_FIELDS | — | - $.message.order.items[*].id must be present in the payload | — | 30000 |
333
+ | 29 | LF | `REQUIRED_PARENT_ITEM_ID` | REQUIRED_ITEM_FIELDS | — | - $.message.order.items[*].parent_item_id must be present in the payload | — | 30000 |
334
+ | 30 | GRP | **REQUIRED_XINPUT_ITEMS** | REQUIRED_ITEM_FIELDS | — | Sub-tests: SET_LOAN_AMOUNT_FORM, REQUIRED_FORM_SUBMISSION_ID, BUSINESS_KYC_FORM | - $.message.order.items[*].xinput.form.id must **not** be present in the payload | — |
335
+ | 31 | GRP | **SET_LOAN_AMOUNT_FORM** | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS | — | Sub-tests: REQUIRED_REQUEST_AMOUNT, REQUIRED_REQUEST_TERM | - $.message.order.items[*].xinput.head.descriptor.code must **not** equal ["SET_LOAN_AMOUNT"] | — |
336
+ | 32 | LF | `REQUIRED_REQUEST_AMOUNT` | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > SET_LOAN_AMOUNT_FORM | — | - $.message.order.items[*].xinput.form.data.requestAmount.value must be present in the payload | — | 30000 |
337
+ | 33 | LF | `REQUIRED_REQUEST_TERM` | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > SET_LOAN_AMOUNT_FORM | — | - $.message.order.items[*].xinput.form.data.requestTerm.value must be present in the payload | — | 30000 |
338
+ | 34 | LF | `REQUIRED_FORM_SUBMISSION_ID` | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | - Not all elements of $.message.order.items[*].xinput.head.descriptor.code may be in ["INDIVIDUAL_KYC", "MANUAL_VERIFICATION"] | 30000 |
339
+ | 35 | GRP | **BUSINESS_KYC_FORM** | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS | — | Sub-tests: REQUIRED_COMPANY_PAN, REQUIRED_GST_CERTIFICATE, REQUIRED_BUSINESS_PROOF, REQUIRED_APPLICATION_FORM | - $.message.order.items[*].xinput.head.descriptor.code must **not** equal ["BUSINESS_KYC"] | — |
340
+ | 36 | LF | `REQUIRED_COMPANY_PAN` | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > BUSINESS_KYC_FORM | — | - $.message.order.items[*].xinput.form.data.companyPan.value must be present in the payload | — | 30000 |
341
+ | 37 | LF | `REQUIRED_GST_CERTIFICATE` | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > BUSINESS_KYC_FORM | — | - $.message.order.items[*].xinput.form.data.gstCertificate.value must be present in the payload | — | 30000 |
342
+ | 38 | LF | `REQUIRED_BUSINESS_PROOF` | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > BUSINESS_KYC_FORM | — | - $.message.order.items[*].xinput.form.data.businessProof.value must be present in the payload | — | 30000 |
343
+ | 39 | LF | `REQUIRED_APPLICATION_FORM` | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > BUSINESS_KYC_FORM | — | - $.message.order.items[*].xinput.form.data.applicationForm.value must be present in the payload | — | 30000 |
344
+ | 40 | GRP | **VALID_TAGS** | REQUIRED_ITEM_FIELDS | — | Sub-tests: VALID_ITEM_TAGS, VALID_PLEDGE_TAGS | - $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload | — |
345
+ | 41 | LF | `VALID_ITEM_TAGS` | REQUIRED_ITEM_FIELDS > VALID_TAGS | — | - All elements of $.message.order.items[*].tags[*].descriptor.code must be in ["PLEDGE_REQUIREMENTS"] | - $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
346
+ | 42 | LF | `VALID_PLEDGE_TAGS` | REQUIRED_ITEM_FIELDS > VALID_TAGS | `$.message.order.items[*].tags[?(@.descriptor.code == PLEDGE_REQUIREMENTS)]` | - All elements of $.message.order.items[*].tags[?(@.descriptor.code == PLEDGE_REQUIREMENTS)].list[*].descriptor.code must be in ["SCHEME_CODE", "UNITS_PLEDGED"] | — | 30000 |
347
+ | 43 | GRP | **REQUIRED_FULFILMENT_ITEMS** | — | — | Sub-tests: REQUIRED_FULFILLMENT_ID, REQUIRED_CUSTOMER_ITEMS | — | — |
348
+ | 44 | LF | `REQUIRED_FULFILLMENT_ID` | REQUIRED_FULFILMENT_ITEMS | — | - $.message.order.fulfillments[*].id must be present in the payload | — | 30000 |
349
+ | 45 | GRP | **REQUIRED_CUSTOMER_ITEMS** | REQUIRED_FULFILMENT_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_DOB, REQUIRED_CUSTOMER_GENDER, REQUIRED_CREDS, REQUIRED_CUSTOMER_CONTACT_EMAIL, REQUIRED_CUSTOMER_CONTACT_PHONE | - $.message.order.fulfillments[*].customer.person.name must **not** be present in the payload | — |
350
+ | 46 | LF | `REQUIRED_CUSTOMER_DOB` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
351
+ | 47 | LF | `REQUIRED_CUSTOMER_GENDER` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
352
+ | 48 | GRP | **REQUIRED_CREDS** | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_CREDS_ID, REQUIRED_CUSTOMER_CREDS_TYPE | - $.message.order.fulfillments[*].customer.person.creds[*].id must **not** be present in the payload | — |
353
+ | 49 | LF | `REQUIRED_CUSTOMER_CREDS_ID` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
354
+ | 50 | LF | `REQUIRED_CUSTOMER_CREDS_TYPE` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
355
+ | 51 | LF | `REQUIRED_CUSTOMER_CONTACT_EMAIL` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
356
+ | 52 | LF | `REQUIRED_CUSTOMER_CONTACT_PHONE` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
357
+
358
+
359
+ ---
360
+ action: on_select
361
+ codeName: on_select
362
+ numTests: 81
363
+ generated: 2026-03-10
364
+ ---
365
+
366
+ # on_select — `on_select` Validations (Table View)
367
+
368
+ **61** leaf validation rule(s) applied to `on_select` in the **on_select** flow.
369
+ Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
370
+
371
+ ---
372
+ | # | Type | Test Name | Group | Scope | Description | Skip If | Error Code |
373
+ | ---: | :---: | :--- | :--- | :--- | :--- | :--- | :---: |
374
+ | 1 | GRP | **ON_SELECT_CONTEXT** | — | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
375
+ | 2 | GRP | **CONTEXT_REQUIRED** | ON_SELECT_CONTEXT | — | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
376
+ | 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | ON_SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.country.code must be present in the payload | — | 30000 |
377
+ | 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | ON_SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.city.code must be present in the payload | — | 30000 |
378
+ | 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | ON_SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.domain must be present in the payload | — | 30000 |
379
+ | 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | ON_SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.timestamp must be present in the payload | — | 30000 |
380
+ | 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | ON_SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_id must be present in the payload | — | 30000 |
381
+ | 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | ON_SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_uri must be present in the payload | — | 30000 |
382
+ | 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | ON_SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.transaction_id must be present in the payload | — | 30000 |
383
+ | 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | ON_SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.message_id must be present in the payload | — | 30000 |
384
+ | 11 | LF | `REQUIRED_CONTEXT_VERSION` | ON_SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.version must be present in the payload | — | 30000 |
385
+ | 12 | LF | `REQUIRED_CONTEXT_TTL` | ON_SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.ttl must be present in the payload | — | 30000 |
386
+ | 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | ON_SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_id must be present in the payload | — | 30000 |
387
+ | 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | ON_SELECT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_uri must be present in the payload | — | 30000 |
388
+ | 15 | GRP | **CONTEXT_ENUM** | ON_SELECT_CONTEXT | — | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
389
+ | 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | ON_SELECT_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
390
+ | 17 | LF | `VALID_CONTEXT_DOMAIN` | ON_SELECT_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
391
+ | 18 | GRP | **CONTEXT_REGEX** | ON_SELECT_CONTEXT | — | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
392
+ | 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | ON_SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
393
+ | 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | ON_SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
394
+ | 21 | LF | `REGEX_CONTEXT_BAP_ID` | ON_SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
395
+ | 22 | LF | `REGEX_CONTEXT_BAP_URI` | ON_SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
396
+ | 23 | LF | `REQUIRED_CONTEXT_TTL` | ON_SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
397
+ | 24 | LF | `REGEX_CONTEXT_BPP_ID` | ON_SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bpp_id must **not** be present in the payload | 30000 |
398
+ | 25 | LF | `REGEX_CONTEXT_BPP_URI` | ON_SELECT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bpp_uri must **not** be present in the payload | 30000 |
399
+ | 26 | GRP | **ON_SELECT_PROVIDER** | — | — | Sub-tests: ON_SELECT_PROVIDER_ID, ON_SELECT_PROVIDER_NAME, ON_SELECT_PROVIDER_IMAGES_URL, ON_SELECT_PROVIDER_IMAGES_SIZE_TYPE | - $.message.order.provider.id must **not** be present in the payload | — |
400
+ | 27 | LF | `ON_SELECT_PROVIDER_ID` | ON_SELECT_PROVIDER | — | - $.message.order.provider.id must be present in the payload | — | 30000 |
401
+ | 28 | LF | `ON_SELECT_PROVIDER_NAME` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.name must be present in the payload | — | 30000 |
402
+ | 29 | LF | `ON_SELECT_PROVIDER_IMAGES_URL` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.images[*].url must be present in the payload | — | 30000 |
403
+ | 30 | LF | `ON_SELECT_PROVIDER_IMAGES_SIZE_TYPE` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.images[*].size_type must be present in the payload | — | 30000 |
404
+ | 31 | GRP | **ON_SELECT_PROVIDER_TAGS** | — | — | Sub-tests: VALID_PROVODER_TAGS, REQUIRED_CONTACT_INFO, REQUIRED_LSP_INFO | — | — |
405
+ | 32 | LF | `VALID_PROVODER_TAGS` | ON_SELECT_PROVIDER_TAGS | — | - All elements of $.message.order.provider.tags[*].descriptor.code must be in ["CONTACT_INFO", "LSP_INFO"] | - $.message.order.provider.tags[*].descriptor.code must **not** be present in the payload | 30000 |
406
+ | 33 | LF | `REQUIRED_CONTACT_INFO` | ON_SELECT_PROVIDER_TAGS | `$.message.order.provider.tags[?(@.descriptor.code == CONTACT_INFO)]` | - All elements of $.message.order.provider.tags[?(@.descriptor.code == CONTACT_INFO)].list[*].descriptor.code must be in ["GRO_NAME", "GRO_EMAIL", "GRO_CONTACT_NUMBER", "CUSTOMER_SUPPORT_LINK", "CUSTOMER_SUPPORT_CONTACT_NUMBER", "CUSTOMER_SUPPORT_CONTACT_NUMBER"] | — | 30000 |
407
+ | 34 | LF | `REQUIRED_LSP_INFO` | ON_SELECT_PROVIDER_TAGS | `$.message.order.provider.tags[?(@.descriptor.code == LSP_INFO)]` | - All elements of $.message.order.provider.tags[?(@.descriptor.code == LSP_INFO)].list[*].descriptor.code must be in ["LSP_NAME", "LSP_EMAIL", "LSP_CONTACT_NUMBER", "LSP_ADDRESS"] | — | 30000 |
408
+ | 35 | GRP | **ON_SELECT_ITEMS** | — | — | Sub-tests: REQUIRED_ITEMS | — | — |
409
+ | 36 | GRP | **REQUIRED_ITEMS** | ON_SELECT_ITEMS | — | Sub-tests: REQUIRED_ITEM_ID, REQUIRED_PARENT_ITEM_ID, REQUIRED_ITEM_DESCRIPTOR_CODE, REQUIRED_ITEM_CATEGORY_ID, ON_SEARCH_ITEM_PRICE_CURRENCY, ON_SEARCH_ITEM_PRICE_VALUE, ON_SELECT_ITEM_FULFILLMENT_IDS, REQUIRED_XINPUT_FIELDS | — | — |
410
+ | 37 | LF | `REQUIRED_ITEM_ID` | ON_SELECT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].id must be present in the payload | — | 30000 |
411
+ | 38 | LF | `REQUIRED_PARENT_ITEM_ID` | ON_SELECT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].parent_item_id must be present in the payload | — | 30000 |
412
+ | 39 | LF | `REQUIRED_ITEM_DESCRIPTOR_CODE` | ON_SELECT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].descriptor.code must be present in the payload | — | 30000 |
413
+ | 40 | LF | `REQUIRED_ITEM_CATEGORY_ID` | ON_SELECT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].category_ids[*] must be present in the payload | — | 30000 |
414
+ | 41 | LF | `ON_SEARCH_ITEM_PRICE_CURRENCY` | ON_SELECT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].price.currency must be present in the payload | — | 30000 |
415
+ | 42 | LF | `ON_SEARCH_ITEM_PRICE_VALUE` | ON_SELECT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].price.value must be present in the payload | — | 30000 |
416
+ | 43 | LF | `ON_SELECT_ITEM_FULFILLMENT_IDS` | ON_SELECT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].fulfillment_ids[*] must be present in the payload | — | 30000 |
417
+ | 44 | GRP | **REQUIRED_XINPUT_FIELDS** | ON_SELECT_ITEMS > REQUIRED_ITEMS | — | Sub-tests: REQUIRED_HEAD_CODE, REQUIRED_HEAD_NAME, REQUIRED_FORM_HEADINGS, REQUIRED_FORM_ID, REQUIRED_FORM_MIME_TYPE, REQUIRED_FORM_RESPONSE, ON_SELECT_LOAN_AMOUNT_FORM, VALID_FORM_HEADINGS | - $.message.order.items[*].xinput.form.id must **not** be present in the payload | — |
418
+ | 45 | LF | `REQUIRED_HEAD_CODE` | ON_SELECT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | - $.message.order.items[*].xinput.head.descriptor.code must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
419
+ | 46 | LF | `REQUIRED_HEAD_NAME` | ON_SELECT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | - $.message.order.items[*].xinput.head.descriptor.name must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
420
+ | 47 | LF | `REQUIRED_FORM_HEADINGS` | ON_SELECT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | - $.message.order.items[*].xinput.head.headings[*] must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
421
+ | 48 | LF | `REQUIRED_FORM_ID` | ON_SELECT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | - $.message.order.items[*].xinput.form.id must be present in the payload | — | 30000 |
422
+ | 49 | LF | `REQUIRED_FORM_MIME_TYPE` | ON_SELECT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | - $.message.order.items[*].xinput.form.mime_type must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
423
+ | 50 | GRP | **REQUIRED_FORM_RESPONSE** | ON_SELECT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FORM_STATUS, REQUIRED_FORM_SUBMISSION_ID | - $.message.order.items[*].xinput.form_response.submission_id must **not** be present in the payload | — |
424
+ | 51 | LF | `REQUIRED_FORM_STATUS` | ON_SELECT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_FORM_RESPONSE | — | - $.message.order.items[*].xinput.form_response.status must be present in the payload | — | 30000 |
425
+ | 52 | LF | `REQUIRED_FORM_SUBMISSION_ID` | ON_SELECT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_FORM_RESPONSE | — | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | — | 30000 |
426
+ | 53 | GRP | **ON_SELECT_LOAN_AMOUNT_FORM** | ON_SELECT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_REQUEST_AMOUNT, REQUIRED_REQUEST_TERM | - $.message.order.items[*].xinput.head.descriptor.code must **not** equal ["SET_LOAN_AMOUNT"] | — |
427
+ | 54 | LF | `REQUIRED_REQUEST_AMOUNT` | ON_SELECT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > ON_SELECT_LOAN_AMOUNT_FORM | — | - $._EXTERNAL._SELF.message.order.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
428
+ | 55 | LF | `REQUIRED_REQUEST_TERM` | ON_SELECT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > ON_SELECT_LOAN_AMOUNT_FORM | — | - $._EXTERNAL._SELF.message.order.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
429
+ | 56 | GRP | **VALID_FORM_HEADINGS** | ON_SELECT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FORM_HEADINGS | — | — |
430
+ | 57 | LF | `REQUIRED_FORM_HEADINGS` | ON_SELECT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > VALID_FORM_HEADINGS | — | - All elements of $.message.order.items[*].xinput.head.headings[*] must be in ["INDIVIDUAL_KYC", "BUSINESS_KYC", "SET_LOAN_AMOUNT"] | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
431
+ | 58 | GRP | **ON_SELECT_ITEM_TAGS** | — | — | Sub-tests: REQUIRED_LOAN_INFO, REQUIRED_LOAN_OFFER | **All of the following must be true:** - $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload - Not all elements of $.message.order.items[*].tags[*].descriptor.code may be in ["LOAN_INFO", "LOAN_OFFER"] | — |
432
+ | 59 | LF | `REQUIRED_LOAN_INFO` | ON_SELECT_ITEM_TAGS | `$.message.order.items[*].tags[?(@.descriptor.code == LOAN_INFO)]` | - All elements of $.message.order.items[*].tags[?(@.descriptor.code == LOAN_INFO)].list[*].descriptor.code must be in ["INTEREST_RATE", "TERM", "INTEREST_RATE_TYPE", "APPLICATION_FEE", "FORECLOSURE_FEE", "INTEREST_RATE_CONVERSION_CHARGE", "DELAY_PENALTY_FEE", "OTHER_PENALTY_FEE", "ANNUAL_PERCENTAGE_RATE", "REPAYMENT_FREQUENCY", "NUMBER_OF_INSTALLMENTS", "TNC_LINK", "COOL_OFF_PERIOD", "INSTALLMENT_AMOUNT", "KFS_LINK", "INVOICE_NUMBER", "WORKING_CAPITAL_LIMIT", "INSURANCE_CHARGES", "RATE_ANNUALISED_PENAL_CHARGES", "KYC_MODE", "CO_APPLICANT"] | — | 30000 |
433
+ | 60 | LF | `REQUIRED_LOAN_OFFER` | ON_SELECT_ITEM_TAGS | `$.message.order.items[*].tags[?(@.descriptor.code == LOAN_OFFER)]` | - All elements of $.message.order.items[*].tags[?(@.descriptor.code == LOAN_OFFER)].list[*].descriptor.code must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT", "PROCESSING_FEE", "OTHER_UPFRONT_CHARGES", "INSURANCE_CHARGES", "NET_DISBURSED_AMOUNT", "OTHER_CHARGES", "OFFER_VALIDITY", "WORKING_CAPITAL_LIMIT", "CURRENT_UTLIZATION"] | — | 30000 |
434
+ | 61 | GRP | **ON_SELECT_FULFILLMENTS** | — | — | Sub-tests: REQUIRED_FULFILLMENT_ITEMS, VALID_FULFILLMENT_ITEMS, VALID_FULFILLMENT_TAGS | — | — |
435
+ | 62 | GRP | **REQUIRED_FULFILLMENT_ITEMS** | ON_SELECT_FULFILLMENTS | — | Sub-tests: REQUIRED_FULFILLMENT_ID, REQUIRED_FULFILLMENT_TYPE | — | — |
436
+ | 63 | LF | `REQUIRED_FULFILLMENT_ID` | ON_SELECT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].id must be present in the payload | — | 30000 |
437
+ | 64 | LF | `REQUIRED_FULFILLMENT_TYPE` | ON_SELECT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].type must be present in the payload | — | 30000 |
438
+ | 65 | GRP | **VALID_FULFILLMENT_ITEMS** | ON_SELECT_FULFILLMENTS | — | Sub-tests: VALID_FULFILLMENT_TYPE | — | — |
439
+ | 66 | LF | `VALID_FULFILLMENT_TYPE` | ON_SELECT_FULFILLMENTS > VALID_FULFILLMENT_ITEMS | — | - All elements of $.message.order.fulfillments[*].type must be in ["ONLINE", "SEMI_ONLINE"] | - $.message.order.fulfillments[*].type must **not** be present in the payload | 30000 |
440
+ | 67 | GRP | **VALID_FULFILLMENT_TAGS** | ON_SELECT_FULFILLMENTS | — | Sub-tests: REQUIRED_FULFILLMENT_TAGS, REQUIRED_CHECKLISTS_ITEM | — | — |
441
+ | 68 | LF | `REQUIRED_FULFILLMENT_TAGS` | ON_SELECT_FULFILLMENTS > VALID_FULFILLMENT_TAGS | — | - All elements of $.message.order.fulfillments[*].tags[*].descriptor.code must be in ["CHECKLISTS"] | - $.message.order.fulfillments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
442
+ | 69 | LF | `REQUIRED_CHECKLISTS_ITEM` | ON_SELECT_FULFILLMENTS > VALID_FULFILLMENT_TAGS | `$.message.order.fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)]` | - All elements of $.message.order.fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)].list[*].descriptor.code must be in ["PERSONAL_INFORMATION", "CONSENT_APPROVAL", "SET_LOAN_AMOUNT", "KYC", "KYC_OFFLINE", "EMANDATE", "LOAN_AGREEMENT", "ACCOUNT_MONITORING", "ORGANIZATION_INFORMATION", "INDIVIDUAL_KYC", "ENTITY_KYC", "MERCHANT_AND_PRDOUCT_DETAILS", "SET_DOWN_PAYMENT", "ESIGN", "BANK_STATEMENT_AND_GST_RETURNS", "BUSINESS_AND_FINANCIAL_DOCUMENTS", "BUSINESS_KYC", "PERSONAL_DISCUSSION", "PHYSICAL_VERIFICATION", "ENACH", "PROCESSING_FEE", "MANUAL_VERIFICATION", "LIEN_MARKING", "PERSONAL_INFORMATION_TERM", "PERSONAL_INFORMATION_LAMF", "PERSONAL_INFORMATION_TERM_GST"] | — | 30000 |
443
+ | 70 | GRP | **ON_SELECT_QUOTE** | — | — | Sub-tests: REQUIRED_COMMON_QUOTE_ITEMS, VALID_COMMON_QUOTE_ITEMS | - $.message.order.quote.id must **not** be present in the payload | — |
444
+ | 71 | GRP | **REQUIRED_COMMON_QUOTE_ITEMS** | ON_SELECT_QUOTE | — | Sub-tests: REQUIRED_QUOTE_ID, REQUIRED_QUOTE_PRICE_VALUE, REQUIRED_QUOTE_PRICE_CURRENCY, REQUIRED_BREAKUP_TITLE, REQUIRED_BREAKUP_PRICE_VALUE, REQUIRED_BREAKUP_PRICE_CURRENCY, REQUIRED_QUOTE_TTL | — | — |
445
+ | 72 | LF | `REQUIRED_QUOTE_ID` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.id must be present in the payload | — | 30000 |
446
+ | 73 | LF | `REQUIRED_QUOTE_PRICE_VALUE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.price.value must be present in the payload | — | 30000 |
447
+ | 74 | LF | `REQUIRED_QUOTE_PRICE_CURRENCY` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.price.currency must be present in the payload | — | 30000 |
448
+ | 75 | LF | `REQUIRED_BREAKUP_TITLE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].title must be present in the payload | — | 30000 |
449
+ | 76 | LF | `REQUIRED_BREAKUP_PRICE_VALUE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].price.value must be present in the payload | — | 30000 |
450
+ | 77 | LF | `REQUIRED_BREAKUP_PRICE_CURRENCY` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].price.currency must be present in the payload | — | 30000 |
451
+ | 78 | LF | `REQUIRED_QUOTE_TTL` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.ttl must be present in the payload | — | 30000 |
452
+ | 79 | GRP | **VALID_COMMON_QUOTE_ITEMS** | ON_SELECT_QUOTE | — | Sub-tests: VALID_ENUM_BREAKUP_PRICE_CURRENCY, VALID_ENUM_BREAKUP_TITLE | — | — |
453
+ | 80 | LF | `VALID_ENUM_BREAKUP_PRICE_CURRENCY` | ON_SELECT_QUOTE > VALID_COMMON_QUOTE_ITEMS | — | - At least one of $.message.order.quote.breakup[*].price.currency must be in ["INR"] | — | 30000 |
454
+ | 81 | LF | `VALID_ENUM_BREAKUP_TITLE` | ON_SELECT_QUOTE > VALID_COMMON_QUOTE_ITEMS | — | - At least one of $.message.order.quote.breakup[*].title must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT", "PROCESSING_FEE", "OTHER_UPFRONT_CHARGES", "INSURANCE_CHARGES", "NET_DISBURSED_AMOUNT", "OTHER_CHARGES", "WORKING_CAPITAL_LIMIT", "CURRENT_UTLIZATION"] | — | 30000 |
455
+
456
+
457
+ ---
458
+ action: init
459
+ codeName: init
460
+ numTests: 63
461
+ generated: 2026-03-10
462
+ ---
463
+
464
+ # init — `init` Validations (Table View)
465
+
466
+ **49** leaf validation rule(s) applied to `init` in the **init** flow.
467
+ Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
468
+
469
+ ---
470
+ | # | Type | Test Name | Group | Scope | Description | Skip If | Error Code |
471
+ | ---: | :---: | :--- | :--- | :--- | :--- | :--- | :---: |
472
+ | 1 | GRP | **INIT_CONTEXT** | — | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
473
+ | 2 | GRP | **CONTEXT_REQUIRED** | INIT_CONTEXT | — | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
474
+ | 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.country.code must be present in the payload | — | 30000 |
475
+ | 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.city.code must be present in the payload | — | 30000 |
476
+ | 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.domain must be present in the payload | — | 30000 |
477
+ | 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.timestamp must be present in the payload | — | 30000 |
478
+ | 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_id must be present in the payload | — | 30000 |
479
+ | 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_uri must be present in the payload | — | 30000 |
480
+ | 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.transaction_id must be present in the payload | — | 30000 |
481
+ | 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.message_id must be present in the payload | — | 30000 |
482
+ | 11 | LF | `REQUIRED_CONTEXT_VERSION` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.version must be present in the payload | — | 30000 |
483
+ | 12 | LF | `REQUIRED_CONTEXT_TTL` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.ttl must be present in the payload | — | 30000 |
484
+ | 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_id must be present in the payload | — | 30000 |
485
+ | 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_uri must be present in the payload | — | 30000 |
486
+ | 15 | GRP | **CONTEXT_ENUM** | INIT_CONTEXT | — | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
487
+ | 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | INIT_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
488
+ | 17 | LF | `VALID_CONTEXT_DOMAIN` | INIT_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
489
+ | 18 | GRP | **CONTEXT_REGEX** | INIT_CONTEXT | — | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
490
+ | 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
491
+ | 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
492
+ | 21 | LF | `REGEX_CONTEXT_BAP_ID` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
493
+ | 22 | LF | `REGEX_CONTEXT_BAP_URI` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
494
+ | 23 | LF | `REQUIRED_CONTEXT_TTL` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
495
+ | 24 | LF | `REGEX_CONTEXT_BPP_ID` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bpp_id must **not** be present in the payload | 30000 |
496
+ | 25 | LF | `REGEX_CONTEXT_BPP_URI` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bpp_uri must **not** be present in the payload | 30000 |
497
+ | 26 | LF | `REQUIRED_PROVIDER_ID` | — | — | - $.message.order.provider.id must be present in the payload | — | 30000 |
498
+ | 27 | GRP | **REQUIRED_ITEM_FIELDS** | — | — | Sub-tests: REQUIRED_ITEM_ID, REQUIRED_PARENT_ITEM_ID, REQUIRED_XINPUT_ITEMS | — | — |
499
+ | 28 | LF | `REQUIRED_ITEM_ID` | REQUIRED_ITEM_FIELDS | — | - $.message.order.items[*].id must be present in the payload | — | 30000 |
500
+ | 29 | LF | `REQUIRED_PARENT_ITEM_ID` | REQUIRED_ITEM_FIELDS | — | - $.message.order.items[*].parent_item_id must be present in the payload | — | 30000 |
501
+ | 30 | GRP | **REQUIRED_XINPUT_ITEMS** | REQUIRED_ITEM_FIELDS | — | Sub-tests: REQUIRED_HEAD_CODE, REQUIRED_FORM_ID, REQUIRED_SUBMISSION_ID | - $.message.order.items[*].xinput.form.id must **not** be present in the payload | — |
502
+ | 31 | LF | `REQUIRED_HEAD_CODE` | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
503
+ | 32 | LF | `REQUIRED_FORM_ID` | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form.id must be present in the payload | — | 30000 |
504
+ | 33 | LF | `REQUIRED_SUBMISSION_ID` | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must **not** be present in the payload | 30000 |
505
+ | 34 | GRP | **INIT_PAYMENT_ITEMS** | — | — | Sub-tests: REQUIRED_PAYMENT_ITEMS, VALID_PAYMENT_ITEMS | — | — |
506
+ | 35 | GRP | **REQUIRED_PAYMENT_ITEMS** | INIT_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_PAYMENT_ITEMS, REQUIRED_PAYMENT_ID, REQUIRED_PAYMENT_STATUS, REQUIRED_PAYMENT_COLLECTED_BY, REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER, REQUIRED_PAYMENT_BANK_CODE, REQUIRED_PAYMENT_LABEL | — | — |
507
+ | 36 | LF | `REQUIRED_PAYMENT_ITEMS` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].type must be present in the payload | — | 30000 |
508
+ | 37 | LF | `REQUIRED_PAYMENT_ID` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].id must be present in the payload | — | 30000 |
509
+ | 38 | LF | `REQUIRED_PAYMENT_STATUS` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].status must be present in the payload | — | 30000 |
510
+ | 39 | LF | `REQUIRED_PAYMENT_COLLECTED_BY` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].collected_by must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
511
+ | 40 | LF | `REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_account_number must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
512
+ | 41 | LF | `REQUIRED_PAYMENT_BANK_CODE` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_code must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
513
+ | 42 | LF | `REQUIRED_PAYMENT_LABEL` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].time.label must be present in the payload | — | 30000 |
514
+ | 43 | GRP | **VALID_PAYMENT_ITEMS** | INIT_PAYMENT_ITEMS | — | Sub-tests: VALID_PAYMENT_TYPE, VALID_PAYMENT_STATUS, VALID_PAYMENT_COLLECTOR, VALID_PAYMENT_LABEL | — | — |
515
+ | 44 | LF | `VALID_PAYMENT_TYPE` | INIT_PAYMENT_ITEMS > VALID_PAYMENT_ITEMS | — | - All elements of $.message.order.payments[*].type must be in ["ON_ORDER", "ON_FULFILLMENT", "POST_FULFILLMENT"] | - $.message.order.payments[*].type must **not** be present in the payload | 30000 |
516
+ | 45 | LF | `VALID_PAYMENT_STATUS` | INIT_PAYMENT_ITEMS > VALID_PAYMENT_ITEMS | — | - All elements of $.message.order.payments[*].status must be in ["NOT-PAID", "PAID", "DEFERRED", "DELAYED"] | - $.message.order.payments[*].status must **not** be present in the payload | 30000 |
517
+ | 46 | LF | `VALID_PAYMENT_COLLECTOR` | INIT_PAYMENT_ITEMS > VALID_PAYMENT_ITEMS | — | - All elements of $.message.order.payments[*].collected_by must be in ["BPP", "CONSUMER"] | - $.message.order.payments[*].collected_by must **not** be present in the payload | 30000 |
518
+ | 47 | LF | `VALID_PAYMENT_LABEL` | INIT_PAYMENT_ITEMS > VALID_PAYMENT_ITEMS | — | - All elements of $.message.order.payments[*].time.label must be in ["INSTALLMENT", "LOAN_DISBURSMENT"] | - $.message.order.payments[*].time.label must **not** be present in the payload | 30000 |
519
+ | 48 | GRP | **REQUIRED_FULFILMENT_ITEMS** | — | — | Sub-tests: REQUIRED_FULFILLMENT_ID, REQUIRED_CUSTOMER_ITEMS | — | — |
520
+ | 49 | LF | `REQUIRED_FULFILLMENT_ID` | REQUIRED_FULFILMENT_ITEMS | — | - $.message.order.fulfillments[*].id must be present in the payload | — | 30000 |
521
+ | 50 | GRP | **REQUIRED_CUSTOMER_ITEMS** | REQUIRED_FULFILMENT_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_DOB, REQUIRED_CUSTOMER_GENDER, REQUIRED_CREDS, REQUIRED_CUSTOMER_CONTACT_EMAIL, REQUIRED_CUSTOMER_CONTACT_PHONE | - $.message.order.fulfillments[*].customer.person.name must **not** be present in the payload | — |
522
+ | 51 | LF | `REQUIRED_CUSTOMER_DOB` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
523
+ | 52 | LF | `REQUIRED_CUSTOMER_GENDER` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
524
+ | 53 | GRP | **REQUIRED_CREDS** | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_CREDS_ID, REQUIRED_CUSTOMER_CREDS_TYPE | - $.message.order.fulfillments[*].customer.person.creds[*].id must **not** be present in the payload | — |
525
+ | 54 | LF | `REQUIRED_CUSTOMER_CREDS_ID` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
526
+ | 55 | LF | `REQUIRED_CUSTOMER_CREDS_TYPE` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
527
+ | 56 | LF | `REQUIRED_CUSTOMER_CONTACT_EMAIL` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
528
+ | 57 | LF | `REQUIRED_CUSTOMER_CONTACT_PHONE` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
529
+ | 58 | GRP | **INIT_PAYMENT_TAGS** | — | — | Sub-tests: VALID_PAYMENT_TAGS, REQUIRED_ACCOUNT_DETAILS | — | — |
530
+ | 59 | LF | `VALID_PAYMENT_TAGS` | INIT_PAYMENT_TAGS | — | - All elements of $.message.order.payments[*].tags[*].descriptor.code must be in ["ACCOUNT_DETAILS", "BREAKUP"] | - $.message.order.payments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
531
+ | 60 | LF | `REQUIRED_ACCOUNT_DETAILS` | INIT_PAYMENT_TAGS | `$.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)]` | - All elements of $.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)].list[*].descriptor.code must be in ["ACCOUNT_TYPE", "ACCOUNT_HOLDER_NAME"] | — | 30000 |
532
+ | 61 | GRP | **INIT_BAP_TERM_TAGS** | — | — | Sub-tests: REQUIRED_TLC_TAGS, REQUIRED_BAP_TERMS | — | — |
533
+ | 62 | LF | `REQUIRED_TLC_TAGS` | INIT_BAP_TERM_TAGS | — | - All elements of $.message.order.tags[*].descriptor.code must be in ["BAP_TERMS", "BPP_TERMS"] | - $.message.order.tags[*].descriptor.code must **not** be present in the payload | 30000 |
534
+ | 63 | LF | `REQUIRED_BAP_TERMS` | INIT_BAP_TERM_TAGS | `$.message.order.tags[?(@.descriptor.code == BAP_TERMS)]` | - All elements of $.message.order.tags[?(@.descriptor.code == BAP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
535
+
536
+
537
+ ---
538
+ action: on_init
539
+ codeName: on_init
540
+ numTests: 128
541
+ generated: 2026-03-10
542
+ ---
543
+
544
+ # on_init — `on_init` Validations (Table View)
545
+
546
+ **95** leaf validation rule(s) applied to `on_init` in the **on_init** flow.
547
+ Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
548
+
549
+ ---
550
+ | # | Type | Test Name | Group | Scope | Description | Skip If | Error Code |
551
+ | ---: | :---: | :--- | :--- | :--- | :--- | :--- | :---: |
552
+ | 1 | GRP | **ON_INIT_CONTEXT** | — | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
553
+ | 2 | GRP | **CONTEXT_REQUIRED** | ON_INIT_CONTEXT | — | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
554
+ | 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | ON_INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.country.code must be present in the payload | — | 30000 |
555
+ | 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | ON_INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.city.code must be present in the payload | — | 30000 |
556
+ | 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | ON_INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.domain must be present in the payload | — | 30000 |
557
+ | 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | ON_INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.timestamp must be present in the payload | — | 30000 |
558
+ | 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | ON_INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_id must be present in the payload | — | 30000 |
559
+ | 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | ON_INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_uri must be present in the payload | — | 30000 |
560
+ | 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | ON_INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.transaction_id must be present in the payload | — | 30000 |
561
+ | 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | ON_INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.message_id must be present in the payload | — | 30000 |
562
+ | 11 | LF | `REQUIRED_CONTEXT_VERSION` | ON_INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.version must be present in the payload | — | 30000 |
563
+ | 12 | LF | `REQUIRED_CONTEXT_TTL` | ON_INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.ttl must be present in the payload | — | 30000 |
564
+ | 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | ON_INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_id must be present in the payload | — | 30000 |
565
+ | 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | ON_INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_uri must be present in the payload | — | 30000 |
566
+ | 15 | GRP | **CONTEXT_ENUM** | ON_INIT_CONTEXT | — | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
567
+ | 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | ON_INIT_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
568
+ | 17 | LF | `VALID_CONTEXT_DOMAIN` | ON_INIT_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
569
+ | 18 | GRP | **CONTEXT_REGEX** | ON_INIT_CONTEXT | — | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
570
+ | 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | ON_INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
571
+ | 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | ON_INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
572
+ | 21 | LF | `REGEX_CONTEXT_BAP_ID` | ON_INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
573
+ | 22 | LF | `REGEX_CONTEXT_BAP_URI` | ON_INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
574
+ | 23 | LF | `REQUIRED_CONTEXT_TTL` | ON_INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
575
+ | 24 | LF | `REGEX_CONTEXT_BPP_ID` | ON_INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bpp_id must **not** be present in the payload | 30000 |
576
+ | 25 | LF | `REGEX_CONTEXT_BPP_URI` | ON_INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bpp_uri must **not** be present in the payload | 30000 |
577
+ | 26 | GRP | **ON_SELECT_PROVIDER** | — | — | Sub-tests: ON_SELECT_PROVIDER_ID, ON_SELECT_PROVIDER_NAME, ON_SELECT_PROVIDER_IMAGES_URL, ON_SELECT_PROVIDER_IMAGES_SIZE_TYPE | - $.message.order.provider.id must **not** be present in the payload | — |
578
+ | 27 | LF | `ON_SELECT_PROVIDER_ID` | ON_SELECT_PROVIDER | — | - $.message.order.provider.id must be present in the payload | — | 30000 |
579
+ | 28 | LF | `ON_SELECT_PROVIDER_NAME` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.name must be present in the payload | — | 30000 |
580
+ | 29 | LF | `ON_SELECT_PROVIDER_IMAGES_URL` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.images[*].url must be present in the payload | — | 30000 |
581
+ | 30 | LF | `ON_SELECT_PROVIDER_IMAGES_SIZE_TYPE` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.images[*].size_type must be present in the payload | — | 30000 |
582
+ | 31 | GRP | **ON_SELECT_PROVIDER_TAGS** | — | — | Sub-tests: VALID_PROVODER_TAGS, REQUIRED_CONTACT_INFO, REQUIRED_LSP_INFO | — | — |
583
+ | 32 | LF | `VALID_PROVODER_TAGS` | ON_SELECT_PROVIDER_TAGS | — | - All elements of $.message.order.provider.tags[*].descriptor.code must be in ["CONTACT_INFO", "LSP_INFO"] | - $.message.order.provider.tags[*].descriptor.code must **not** be present in the payload | 30000 |
584
+ | 33 | LF | `REQUIRED_CONTACT_INFO` | ON_SELECT_PROVIDER_TAGS | `$.message.order.provider.tags[?(@.descriptor.code == CONTACT_INFO)]` | - All elements of $.message.order.provider.tags[?(@.descriptor.code == CONTACT_INFO)].list[*].descriptor.code must be in ["GRO_NAME", "GRO_EMAIL", "GRO_CONTACT_NUMBER", "CUSTOMER_SUPPORT_LINK", "CUSTOMER_SUPPORT_CONTACT_NUMBER", "CUSTOMER_SUPPORT_CONTACT_NUMBER"] | — | 30000 |
585
+ | 34 | LF | `REQUIRED_LSP_INFO` | ON_SELECT_PROVIDER_TAGS | `$.message.order.provider.tags[?(@.descriptor.code == LSP_INFO)]` | - All elements of $.message.order.provider.tags[?(@.descriptor.code == LSP_INFO)].list[*].descriptor.code must be in ["LSP_NAME", "LSP_EMAIL", "LSP_CONTACT_NUMBER", "LSP_ADDRESS"] | — | 30000 |
586
+ | 35 | GRP | **ON_INIT_ITEMS** | — | — | Sub-tests: REQUIRED_ITEMS | — | — |
587
+ | 36 | GRP | **REQUIRED_ITEMS** | ON_INIT_ITEMS | — | Sub-tests: REQUIRED_ITEM_ID, REQUIRED_PARENT_ITEM_ID, REQUIRED_ITEM_DESCRIPTOR_CODE, REQUIRED_ITEM_CATEGORY_ID, ON_SEARCH_ITEM_PRICE_CURRENCY, ON_SEARCH_ITEM_PRICE_VALUE, ON_SELECT_ITEM_FULFILLMENT_IDS, REQUIRED_XINPUT_FIELDS | — | — |
588
+ | 37 | LF | `REQUIRED_ITEM_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].id must be present in the payload | — | 30000 |
589
+ | 38 | LF | `REQUIRED_PARENT_ITEM_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].parent_item_id must be present in the payload | — | 30000 |
590
+ | 39 | LF | `REQUIRED_ITEM_DESCRIPTOR_CODE` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].descriptor.code must be present in the payload | — | 30000 |
591
+ | 40 | LF | `REQUIRED_ITEM_CATEGORY_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].category_ids[*] must be present in the payload | — | 30000 |
592
+ | 41 | LF | `ON_SEARCH_ITEM_PRICE_CURRENCY` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].price.currency must be present in the payload | — | 30000 |
593
+ | 42 | LF | `ON_SEARCH_ITEM_PRICE_VALUE` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].price.value must be present in the payload | — | 30000 |
594
+ | 43 | LF | `ON_SELECT_ITEM_FULFILLMENT_IDS` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].fulfillment_ids[*] must be present in the payload | — | 30000 |
595
+ | 44 | GRP | **REQUIRED_XINPUT_FIELDS** | ON_INIT_ITEMS > REQUIRED_ITEMS | — | Sub-tests: REQUIRED_XINPUT_ITEMS, VALID_XINPUT_FIELDS | - $.message.order.items[*].xinput.form.id must **not** be present in the payload | — |
596
+ | 45 | GRP | **REQUIRED_XINPUT_ITEMS** | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_HEAD_CODE, REQUIRED_HEAD_NAME, REQUIRED_FORM_HEADINGS, REQUIRED_FORM_ID, REQUIRED_FORM_MIME_TYPE, REQUIRED_FORM_RESPONSE, REQUIRED_SUBMISSION_ID | — | — |
597
+ | 46 | LF | `REQUIRED_HEAD_CODE` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.head.descriptor.code must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
598
+ | 47 | LF | `REQUIRED_HEAD_NAME` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.head.descriptor.name must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
599
+ | 48 | LF | `REQUIRED_FORM_HEADINGS` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.head.headings[*] must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
600
+ | 49 | LF | `REQUIRED_FORM_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form.id must be present in the payload | — | 30000 |
601
+ | 50 | LF | `REQUIRED_FORM_MIME_TYPE` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form.mime_type must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
602
+ | 51 | GRP | **REQUIRED_FORM_RESPONSE** | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | Sub-tests: REQUIRED_FORM_STATUS, REQUIRED_FORM_SUBMISSION_ID | - $.message.order.items[*].xinput.form_response.submission_id must **not** be present in the payload | — |
603
+ | 52 | LF | `REQUIRED_FORM_STATUS` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS > REQUIRED_FORM_RESPONSE | — | - $.message.order.items[*].xinput.form_response.status must be present in the payload | — | 30000 |
604
+ | 53 | LF | `REQUIRED_FORM_SUBMISSION_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS > REQUIRED_FORM_RESPONSE | — | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | — | 30000 |
605
+ | 54 | LF | `REQUIRED_SUBMISSION_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must **not** be present in the payload | 30000 |
606
+ | 55 | GRP | **VALID_XINPUT_FIELDS** | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: VALID_FORM_HEADINGS | — | — |
607
+ | 56 | LF | `VALID_FORM_HEADINGS` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > VALID_XINPUT_FIELDS | — | - All elements of $.message.order.items[*].xinput.head.headings[*] must be in ["KYC", "EMANDATE", "LOAN_AGREEMENT", "INDIVIDUAL_KYC", "ENTITY_KYC", "ENACH", "ESIGN"] | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
608
+ | 57 | GRP | **ON_SELECT_ITEM_TAGS** | — | — | Sub-tests: REQUIRED_LOAN_INFO, REQUIRED_LOAN_OFFER | **All of the following must be true:** - $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload - Not all elements of $.message.order.items[*].tags[*].descriptor.code may be in ["LOAN_INFO", "LOAN_OFFER"] | — |
609
+ | 58 | LF | `REQUIRED_LOAN_INFO` | ON_SELECT_ITEM_TAGS | `$.message.order.items[*].tags[?(@.descriptor.code == LOAN_INFO)]` | - All elements of $.message.order.items[*].tags[?(@.descriptor.code == LOAN_INFO)].list[*].descriptor.code must be in ["INTEREST_RATE", "TERM", "INTEREST_RATE_TYPE", "APPLICATION_FEE", "FORECLOSURE_FEE", "INTEREST_RATE_CONVERSION_CHARGE", "DELAY_PENALTY_FEE", "OTHER_PENALTY_FEE", "ANNUAL_PERCENTAGE_RATE", "REPAYMENT_FREQUENCY", "NUMBER_OF_INSTALLMENTS", "TNC_LINK", "COOL_OFF_PERIOD", "INSTALLMENT_AMOUNT", "KFS_LINK", "INVOICE_NUMBER", "WORKING_CAPITAL_LIMIT", "INSURANCE_CHARGES", "RATE_ANNUALISED_PENAL_CHARGES", "KYC_MODE", "CO_APPLICANT"] | — | 30000 |
610
+ | 59 | LF | `REQUIRED_LOAN_OFFER` | ON_SELECT_ITEM_TAGS | `$.message.order.items[*].tags[?(@.descriptor.code == LOAN_OFFER)]` | - All elements of $.message.order.items[*].tags[?(@.descriptor.code == LOAN_OFFER)].list[*].descriptor.code must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT", "PROCESSING_FEE", "OTHER_UPFRONT_CHARGES", "INSURANCE_CHARGES", "NET_DISBURSED_AMOUNT", "OTHER_CHARGES", "OFFER_VALIDITY", "WORKING_CAPITAL_LIMIT", "CURRENT_UTLIZATION"] | — | 30000 |
611
+ | 60 | GRP | **ON_INIT_FULFILLMENTS** | — | — | Sub-tests: REQUIRED_FULFILLMENT_ITEMS, VALID_FULFILLMENT_ITEMS, VALID_FULFILLMENT_TAGS | — | — |
612
+ | 61 | GRP | **REQUIRED_FULFILLMENT_ITEMS** | ON_INIT_FULFILLMENTS | — | Sub-tests: REQUIRED_FULFILLMENT_ID, REQUIRED_FULFILLMENT_TYPE, REQUIRED_CREDS, REQUIRED_CUSTOMER_NAME, REQUIRED_CUSTOMER_CONTACT_DETAILS, REQUIRED_CUSTOMER_ORG_DETAILS, REQUIRED_FULFILLMENT_STATE_CODE | — | — |
613
+ | 62 | LF | `REQUIRED_FULFILLMENT_ID` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].id must be present in the payload | — | 30000 |
614
+ | 63 | LF | `REQUIRED_FULFILLMENT_TYPE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].type must be present in the payload | — | 30000 |
615
+ | 64 | GRP | **REQUIRED_CREDS** | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_CREDS_ID, REQUIRED_CUSTOMER_CREDS_TYPE | - $.message.order.fulfillments[*].customer.person.creds[*].id must **not** be present in the payload | — |
616
+ | 65 | LF | `REQUIRED_CUSTOMER_CREDS_ID` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
617
+ | 66 | LF | `REQUIRED_CUSTOMER_CREDS_TYPE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
618
+ | 67 | LF | `REQUIRED_CUSTOMER_NAME` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].customer.person.name must be present in the payload | - $.message.order.fulfillments[*].customer.person.name must **not** be present in the payload | 30000 |
619
+ | 68 | GRP | **REQUIRED_CUSTOMER_CONTACT_DETAILS** | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_CONTACT_NUMBER, REQUIRED_CUSTOMER_CONTACT_EMAIL | - $.message.order.fulfillments[*].customer.contact.phone must **not** be present in the payload | — |
620
+ | 69 | LF | `REQUIRED_CUSTOMER_CONTACT_NUMBER` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_CONTACT_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.contact.phone must be present in the payload | — | 30000 |
621
+ | 70 | LF | `REQUIRED_CUSTOMER_CONTACT_EMAIL` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_CONTACT_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.contact.phone must be present in the payload | — | 30000 |
622
+ | 71 | GRP | **REQUIRED_CUSTOMER_ORG_DETAILS** | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | Sub-tests: REQUIRED_ORG_ADDRESS, REQUIRED_ORG_STATE, REQUIRED_ORG_CITY, REQUIRED_ORG_CODE, REQUIRED_ORG_CONTACT_PHONE, REQUIRED_ORG_CONTACT_EMAIL | - $.message.order.fulfillments[*].customer.organization.address must **not** be present in the payload | — |
623
+ | 72 | LF | `REQUIRED_ORG_ADDRESS` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
624
+ | 73 | LF | `REQUIRED_ORG_STATE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
625
+ | 74 | LF | `REQUIRED_ORG_CITY` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
626
+ | 75 | LF | `REQUIRED_ORG_CODE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
627
+ | 76 | LF | `REQUIRED_ORG_CONTACT_PHONE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
628
+ | 77 | LF | `REQUIRED_ORG_CONTACT_EMAIL` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
629
+ | 78 | LF | `REQUIRED_FULFILLMENT_STATE_CODE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].state.descriptor.code must be present in the payload | — | 30000 |
630
+ | 79 | GRP | **VALID_FULFILLMENT_ITEMS** | ON_INIT_FULFILLMENTS | — | Sub-tests: VALID_FULFILLMENT_TYPE, VALID_FULFILLMENT_STATE_CODE | — | — |
631
+ | 80 | LF | `VALID_FULFILLMENT_TYPE` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_ITEMS | — | - All elements of $.message.order.fulfillments[*].type must be in ["ONLINE", "SEMI_ONLINE"] | - $.message.order.fulfillments[*].type must **not** be present in the payload | 30000 |
632
+ | 81 | LF | `VALID_FULFILLMENT_STATE_CODE` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_ITEMS | — | - All elements of $.message.order.fulfillments[*].state.descriptor.code must be in ["INITIATED", "SANCTIONED", "DISBURSED"] | - $.message.order.fulfillments[*].state.descriptor.code must **not** be present in the payload | 30000 |
633
+ | 82 | GRP | **VALID_FULFILLMENT_TAGS** | ON_INIT_FULFILLMENTS | — | Sub-tests: REQUIRED_FULFILLMENT_TAGS, REQUIRED_CHECKLISTS_ITEM | — | — |
634
+ | 83 | LF | `REQUIRED_FULFILLMENT_TAGS` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_TAGS | — | - All elements of $.message.order.fulfillments[*].tags[*].descriptor.code must be in ["CHECKLISTS"] | - $.message.order.fulfillments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
635
+ | 84 | LF | `REQUIRED_CHECKLISTS_ITEM` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_TAGS | `$.message.order.fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)]` | - All elements of $.message.order.fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)].list[*].descriptor.code must be in ["PERSONAL_INFORMATION", "CONSENT_APPROVAL", "SET_LOAN_AMOUNT", "KYC", "KYC_OFFLINE", "EMANDATE", "LOAN_AGREEMENT", "ACCOUNT_MONITORING", "ORGANIZATION_INFORMATION", "INDIVIDUAL_KYC", "ENTITY_KYC", "MERCHANT_AND_PRDOUCT_DETAILS", "SET_DOWN_PAYMENT", "ESIGN", "BANK_STATEMENT_AND_GST_RETURNS", "BUSINESS_AND_FINANCIAL_DOCUMENTS", "BUSINESS_KYC", "PERSONAL_DISCUSSION", "PHYSICAL_VERIFICATION", "ENACH", "PROCESSING_FEE", "MANUAL_VERIFICATION", "LIEN_MARKING", "PERSONAL_INFORMATION_TERM", "PERSONAL_INFORMATION_LAMF", "PERSONAL_INFORMATION_TERM_GST"] | — | 30000 |
636
+ | 85 | GRP | **ON_SELECT_QUOTE** | — | — | Sub-tests: REQUIRED_COMMON_QUOTE_ITEMS, VALID_COMMON_QUOTE_ITEMS | - $.message.order.quote.id must **not** be present in the payload | — |
637
+ | 86 | GRP | **REQUIRED_COMMON_QUOTE_ITEMS** | ON_SELECT_QUOTE | — | Sub-tests: REQUIRED_QUOTE_ID, REQUIRED_QUOTE_PRICE_VALUE, REQUIRED_QUOTE_PRICE_CURRENCY, REQUIRED_BREAKUP_TITLE, REQUIRED_BREAKUP_PRICE_VALUE, REQUIRED_BREAKUP_PRICE_CURRENCY, REQUIRED_QUOTE_TTL | — | — |
638
+ | 87 | LF | `REQUIRED_QUOTE_ID` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.id must be present in the payload | — | 30000 |
639
+ | 88 | LF | `REQUIRED_QUOTE_PRICE_VALUE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.price.value must be present in the payload | — | 30000 |
640
+ | 89 | LF | `REQUIRED_QUOTE_PRICE_CURRENCY` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.price.currency must be present in the payload | — | 30000 |
641
+ | 90 | LF | `REQUIRED_BREAKUP_TITLE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].title must be present in the payload | — | 30000 |
642
+ | 91 | LF | `REQUIRED_BREAKUP_PRICE_VALUE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].price.value must be present in the payload | — | 30000 |
643
+ | 92 | LF | `REQUIRED_BREAKUP_PRICE_CURRENCY` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].price.currency must be present in the payload | — | 30000 |
644
+ | 93 | LF | `REQUIRED_QUOTE_TTL` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.ttl must be present in the payload | — | 30000 |
645
+ | 94 | GRP | **VALID_COMMON_QUOTE_ITEMS** | ON_SELECT_QUOTE | — | Sub-tests: VALID_ENUM_BREAKUP_PRICE_CURRENCY, VALID_ENUM_BREAKUP_TITLE | — | — |
646
+ | 95 | LF | `VALID_ENUM_BREAKUP_PRICE_CURRENCY` | ON_SELECT_QUOTE > VALID_COMMON_QUOTE_ITEMS | — | - At least one of $.message.order.quote.breakup[*].price.currency must be in ["INR"] | — | 30000 |
647
+ | 96 | LF | `VALID_ENUM_BREAKUP_TITLE` | ON_SELECT_QUOTE > VALID_COMMON_QUOTE_ITEMS | — | - At least one of $.message.order.quote.breakup[*].title must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT", "PROCESSING_FEE", "OTHER_UPFRONT_CHARGES", "INSURANCE_CHARGES", "NET_DISBURSED_AMOUNT", "OTHER_CHARGES", "WORKING_CAPITAL_LIMIT", "CURRENT_UTLIZATION"] | — | 30000 |
648
+ | 97 | GRP | **ON_INIT_PAYMENTS** | — | — | Sub-tests: REQUIRED_PAYMENT_ITEMS | — | — |
649
+ | 98 | GRP | **REQUIRED_PAYMENT_ITEMS** | ON_INIT_PAYMENTS | — | Sub-tests: REQUIRED_PAYMENT_ITEMS, REQUIRED_PAYMENT_ID, REQUIRED_PAYMENT_STATUS, REQUIRED_PAYMENT_COLLECTED_BY, REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER, REQUIRED_PAYMENT_BANK_CODE, REQUIRED_PAYMENT_LABEL, REQUIRED_PARAMS_DETAILS, REQUIRED_PAYMENT_URL, REQUIRED_TIME_RANGE | — | — |
650
+ | 99 | LF | `REQUIRED_PAYMENT_ITEMS` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].type must be present in the payload | — | 30000 |
651
+ | 100 | LF | `REQUIRED_PAYMENT_ID` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].id must be present in the payload | — | 30000 |
652
+ | 101 | LF | `REQUIRED_PAYMENT_STATUS` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].status must be present in the payload | — | 30000 |
653
+ | 102 | LF | `REQUIRED_PAYMENT_COLLECTED_BY` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].collected_by must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
654
+ | 103 | LF | `REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_account_number must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
655
+ | 104 | LF | `REQUIRED_PAYMENT_BANK_CODE` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_code must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
656
+ | 105 | LF | `REQUIRED_PAYMENT_LABEL` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].time.label must be present in the payload | — | 30000 |
657
+ | 106 | GRP | **REQUIRED_PARAMS_DETAILS** | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_TRANSACTION_ID, REQUIRED_PAYMENTS_AMOUNT, REQUIRED_PAYMENTS_CURRENCY | - Not all elements of $.message.order.payments[*].status may be in ["PAID"] | — |
658
+ | 107 | LF | `REQUIRED_TRANSACTION_ID` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PARAMS_DETAILS | — | - $.message.order.payments[*].params.transaction_id must be present in the payload | — | 30000 |
659
+ | 108 | LF | `REQUIRED_PAYMENTS_AMOUNT` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PARAMS_DETAILS | — | - $.message.order.payments[*].params.amount must be present in the payload | — | 30000 |
660
+ | 109 | LF | `REQUIRED_PAYMENTS_CURRENCY` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PARAMS_DETAILS | — | - $.message.order.payments[*].params.currency must be present in the payload | — | 30000 |
661
+ | 110 | GRP | **REQUIRED_PAYMENT_URL** | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_TIME_DURATION | - $.message.order.payments[*].url must **not** be present in the payload | — |
662
+ | 111 | LF | `REQUIRED_TIME_DURATION` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PAYMENT_URL | — | - $.message.order.payments[*].time.duration must be present in the payload | — | 30000 |
663
+ | 112 | GRP | **REQUIRED_TIME_RANGE** | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_TIME_START_RANGE, REQUIRED_TIME_END_RANGE | - Not all elements of $.message.order.payments[*].time.label may be in ["INSTALLMENT"] | — |
664
+ | 113 | LF | `REQUIRED_TIME_START_RANGE` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_TIME_RANGE | — | - $.message.order.payments[*].time.range.start must be present in the payload | — | 30000 |
665
+ | 114 | LF | `REQUIRED_TIME_END_RANGE` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_TIME_RANGE | — | - $.message.order.payments[*].time.range.end must be present in the payload | — | 30000 |
666
+ | 115 | GRP | **ON_INIT_PAYMENT_TAGS** | — | — | Sub-tests: VALID_PAYMENT_TAGS, REQUIRED_ACCOUNT_DETAILS, REQUIRED_BREAKUP_DETAILS | — | — |
667
+ | 116 | LF | `VALID_PAYMENT_TAGS` | ON_INIT_PAYMENT_TAGS | — | - All elements of $.message.order.payments[*].tags[*].descriptor.code must be in ["ACCOUNT_DETAILS", "BREAKUP"] | - $.message.order.payments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
668
+ | 117 | LF | `REQUIRED_ACCOUNT_DETAILS` | ON_INIT_PAYMENT_TAGS | `$.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)]` | - All elements of $.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)].list[*].descriptor.code must be in ["ACCOUNT_TYPE", "ACCOUNT_HOLDER_NAME"] | — | 30000 |
669
+ | 118 | LF | `REQUIRED_BREAKUP_DETAILS` | ON_INIT_PAYMENT_TAGS | `$.message.order.payments[*].tags[?(@.descriptor.code == BREAKUP)]` | - All elements of $.message.order.payments[*].tags[?(@.descriptor.code == BREAKUP)].list[*].descriptor.code must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT"] | — | 30000 |
670
+ | 119 | GRP | **ON_INIT_CANCELLATION_TERMS** | — | — | Sub-tests: EXTERNAL_REF_TERMS, FULFILLMENT_STATE_TERMS | — | — |
671
+ | 120 | GRP | **EXTERNAL_REF_TERMS** | ON_INIT_CANCELLATION_TERMS | — | Sub-tests: REQUIRED_EXTERNAL_REF_MIME_TYPE, REQUIRED_EXTERNAL_REF_URL | - $.message.order.cancellation_terms[*].external_ref.mimetype must **not** be present in the payload | — |
672
+ | 121 | LF | `REQUIRED_EXTERNAL_REF_MIME_TYPE` | ON_INIT_CANCELLATION_TERMS > EXTERNAL_REF_TERMS | — | - $.message.order.cancellation_terms[*].external_ref.mimetype must be present in the payload | — | 30000 |
673
+ | 122 | LF | `REQUIRED_EXTERNAL_REF_URL` | ON_INIT_CANCELLATION_TERMS > EXTERNAL_REF_TERMS | — | - $.message.order.cancellation_terms[*].external_ref.url must be present in the payload | — | 30000 |
674
+ | 123 | GRP | **FULFILLMENT_STATE_TERMS** | ON_INIT_CANCELLATION_TERMS | — | Sub-tests: REQUIRED_FULFILLMENT_STATE_CODE, REQUIRED_CANCELLATION_FEE | - $.message.order.cancellation_terms[*].fulfillment_state.descriptor.code must **not** be present in the payload | — |
675
+ | 124 | LF | `REQUIRED_FULFILLMENT_STATE_CODE` | ON_INIT_CANCELLATION_TERMS > FULFILLMENT_STATE_TERMS | — | - $.message.order.cancellation_terms[*].fulfillment_state.descriptor.code must be present in the payload | — | 30000 |
676
+ | 125 | LF | `REQUIRED_CANCELLATION_FEE` | ON_INIT_CANCELLATION_TERMS > FULFILLMENT_STATE_TERMS | — | - $.message.order.cancellation_terms[*].cancellation_fee.percentage must be present in the payload | — | 30000 |
677
+ | 126 | GRP | **ON_INIT_TAGS** | — | — | Sub-tests: REQUIRED_PAYMENT_TAGS, REQUIRED_BPP_TERMS | — | — |
678
+ | 127 | LF | `REQUIRED_PAYMENT_TAGS` | ON_INIT_TAGS | — | - All elements of $.message.order.tags[*].descriptor.code must be in ["BAP_TERMS", "BPP_TERMS"] | - $.message.order.tags[*].descriptor.code must **not** be present in the payload | 30000 |
679
+ | 128 | LF | `REQUIRED_BPP_TERMS` | ON_INIT_TAGS | `$.message.order.tags[?(@.descriptor.code == BPP_TERMS)]` | - All elements of $.message.order.tags[?(@.descriptor.code == BPP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
680
+
681
+
682
+ ---
683
+ action: confirm
684
+ codeName: confirm
685
+ numTests: 45
686
+ generated: 2026-03-10
687
+ ---
688
+
689
+ # confirm — `confirm` Validations (Table View)
690
+
691
+ **36** leaf validation rule(s) applied to `confirm` in the **confirm** flow.
692
+ Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
693
+
694
+ ---
695
+ | # | Type | Test Name | Group | Scope | Description | Skip If | Error Code |
696
+ | ---: | :---: | :--- | :--- | :--- | :--- | :--- | :---: |
697
+ | 1 | GRP | **CONFIRM_CONTEXT** | — | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
698
+ | 2 | GRP | **CONTEXT_REQUIRED** | CONFIRM_CONTEXT | — | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
699
+ | 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.country.code must be present in the payload | — | 30000 |
700
+ | 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.city.code must be present in the payload | — | 30000 |
701
+ | 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.domain must be present in the payload | — | 30000 |
702
+ | 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.timestamp must be present in the payload | — | 30000 |
703
+ | 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_id must be present in the payload | — | 30000 |
704
+ | 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_uri must be present in the payload | — | 30000 |
705
+ | 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.transaction_id must be present in the payload | — | 30000 |
706
+ | 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.message_id must be present in the payload | — | 30000 |
707
+ | 11 | LF | `REQUIRED_CONTEXT_VERSION` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.version must be present in the payload | — | 30000 |
708
+ | 12 | LF | `REQUIRED_CONTEXT_TTL` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.ttl must be present in the payload | — | 30000 |
709
+ | 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_id must be present in the payload | — | 30000 |
710
+ | 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_uri must be present in the payload | — | 30000 |
711
+ | 15 | GRP | **CONTEXT_ENUM** | CONFIRM_CONTEXT | — | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
712
+ | 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | CONFIRM_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
713
+ | 17 | LF | `VALID_CONTEXT_DOMAIN` | CONFIRM_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
714
+ | 18 | GRP | **CONTEXT_REGEX** | CONFIRM_CONTEXT | — | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
715
+ | 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
716
+ | 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
717
+ | 21 | LF | `REGEX_CONTEXT_BAP_ID` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
718
+ | 22 | LF | `REGEX_CONTEXT_BAP_URI` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
719
+ | 23 | LF | `REQUIRED_CONTEXT_TTL` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
720
+ | 24 | LF | `REGEX_CONTEXT_BPP_ID` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bpp_id must **not** be present in the payload | 30000 |
721
+ | 25 | LF | `REGEX_CONTEXT_BPP_URI` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bpp_uri must **not** be present in the payload | 30000 |
722
+ | 26 | LF | `REQUIRED_PROVIDER_ID` | — | — | - $.message.order.provider.id must be present in the payload | — | 30000 |
723
+ | 27 | GRP | **REQUIRED_ITEM_FIELDS** | — | — | Sub-tests: REQUIRED_ITEM_ID, REQUIRED_PARENT_ITEM_ID | — | — |
724
+ | 28 | LF | `REQUIRED_ITEM_ID` | REQUIRED_ITEM_FIELDS | — | - $.message.order.items[*].id must be present in the payload | — | 30000 |
725
+ | 29 | LF | `REQUIRED_PARENT_ITEM_ID` | REQUIRED_ITEM_FIELDS | — | - $.message.order.items[*].parent_item_id must be present in the payload | — | 30000 |
726
+ | 30 | GRP | **CONFIRM_PAYMENTS** | — | — | Sub-tests: REQUIRED_PAYMENT_ITEMS | — | — |
727
+ | 31 | GRP | **REQUIRED_PAYMENT_ITEMS** | CONFIRM_PAYMENTS | — | Sub-tests: REQUIRED_PAYMENT_ITEMS, REQUIRED_PAYMENT_ID, REQUIRED_PAYMENT_STATUS, REQUIRED_PAYMENT_COLLECTED_BY, REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER, REQUIRED_PAYMENT_BANK_CODE, REQUIRED_PAYMENT_LABEL | — | — |
728
+ | 32 | LF | `REQUIRED_PAYMENT_ITEMS` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].type must be present in the payload | — | 30000 |
729
+ | 33 | LF | `REQUIRED_PAYMENT_ID` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].id must be present in the payload | — | 30000 |
730
+ | 34 | LF | `REQUIRED_PAYMENT_STATUS` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].status must be present in the payload | — | 30000 |
731
+ | 35 | LF | `REQUIRED_PAYMENT_COLLECTED_BY` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].collected_by must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
732
+ | 36 | LF | `REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_account_number must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
733
+ | 37 | LF | `REQUIRED_PAYMENT_BANK_CODE` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_code must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
734
+ | 38 | LF | `REQUIRED_PAYMENT_LABEL` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].time.label must be present in the payload | — | 30000 |
735
+ | 39 | GRP | **CONFIRM_PAYMENT_TAGS** | — | — | Sub-tests: VALID_PAYMENT_TAGS, REQUIRED_ACCOUNT_DETAILS | — | — |
736
+ | 40 | LF | `VALID_PAYMENT_TAGS` | CONFIRM_PAYMENT_TAGS | — | - All elements of $.message.order.payments[*].tags[*].descriptor.code must be in ["ACCOUNT_DETAILS", "BREAKUP"] | - $.message.order.payments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
737
+ | 41 | LF | `REQUIRED_ACCOUNT_DETAILS` | CONFIRM_PAYMENT_TAGS | `$.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)]` | - All elements of $.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)].list[*].descriptor.code must be in ["ACCOUNT_TYPE", "ACCOUNT_HOLDER_NAME"] | — | 30000 |
738
+ | 42 | GRP | **CONFIRM_TAGS** | — | — | Sub-tests: REQUIRED_PAYMENT_TAGS, REQUIRED_BAP_TERMS, REQUIRED_BPP_TERMS | — | — |
739
+ | 43 | LF | `REQUIRED_PAYMENT_TAGS` | CONFIRM_TAGS | — | - All elements of $.message.order.tags[*].descriptor.code must be in ["BAP_TERMS", "BPP_TERMS"] | - $.message.order.tags[*].descriptor.code must **not** be present in the payload | 30000 |
740
+ | 44 | LF | `REQUIRED_BAP_TERMS` | CONFIRM_TAGS | `$.message.order.tags[?(@.descriptor.code == BAP_TERMS)]` | - All elements of $.message.order.tags[?(@.descriptor.code == BAP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
741
+ | 45 | LF | `REQUIRED_BPP_TERMS` | CONFIRM_TAGS | `$.message.order.tags[?(@.descriptor.code == BPP_TERMS)]` | - All elements of $.message.order.tags[?(@.descriptor.code == BPP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
742
+
743
+
744
+ ---
745
+ action: on_confirm
746
+ codeName: on_confirm
747
+ numTests: 146
748
+ generated: 2026-03-10
749
+ ---
750
+
751
+ # on_confirm — `on_confirm` Validations (Table View)
752
+
753
+ **109** leaf validation rule(s) applied to `on_confirm` in the **on_confirm** flow.
754
+ Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
755
+
756
+ ---
757
+ | # | Type | Test Name | Group | Scope | Description | Skip If | Error Code |
758
+ | ---: | :---: | :--- | :--- | :--- | :--- | :--- | :---: |
759
+ | 1 | GRP | **ON_CONFIRM_CONTEXT** | — | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
760
+ | 2 | GRP | **CONTEXT_REQUIRED** | ON_CONFIRM_CONTEXT | — | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
761
+ | 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | ON_CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.country.code must be present in the payload | — | 30000 |
762
+ | 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | ON_CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.city.code must be present in the payload | — | 30000 |
763
+ | 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | ON_CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.domain must be present in the payload | — | 30000 |
764
+ | 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | ON_CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.timestamp must be present in the payload | — | 30000 |
765
+ | 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | ON_CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_id must be present in the payload | — | 30000 |
766
+ | 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | ON_CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_uri must be present in the payload | — | 30000 |
767
+ | 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | ON_CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.transaction_id must be present in the payload | — | 30000 |
768
+ | 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | ON_CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.message_id must be present in the payload | — | 30000 |
769
+ | 11 | LF | `REQUIRED_CONTEXT_VERSION` | ON_CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.version must be present in the payload | — | 30000 |
770
+ | 12 | LF | `REQUIRED_CONTEXT_TTL` | ON_CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.ttl must be present in the payload | — | 30000 |
771
+ | 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | ON_CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_id must be present in the payload | — | 30000 |
772
+ | 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | ON_CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_uri must be present in the payload | — | 30000 |
773
+ | 15 | GRP | **CONTEXT_ENUM** | ON_CONFIRM_CONTEXT | — | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
774
+ | 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | ON_CONFIRM_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
775
+ | 17 | LF | `VALID_CONTEXT_DOMAIN` | ON_CONFIRM_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
776
+ | 18 | GRP | **CONTEXT_REGEX** | ON_CONFIRM_CONTEXT | — | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
777
+ | 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | ON_CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
778
+ | 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | ON_CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
779
+ | 21 | LF | `REGEX_CONTEXT_BAP_ID` | ON_CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
780
+ | 22 | LF | `REGEX_CONTEXT_BAP_URI` | ON_CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
781
+ | 23 | LF | `REQUIRED_CONTEXT_TTL` | ON_CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
782
+ | 24 | LF | `REGEX_CONTEXT_BPP_ID` | ON_CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bpp_id must **not** be present in the payload | 30000 |
783
+ | 25 | LF | `REGEX_CONTEXT_BPP_URI` | ON_CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bpp_uri must **not** be present in the payload | 30000 |
784
+ | 26 | GRP | **REQUIRED_ORDER_ITEMS** | — | — | Sub-tests: REQUIRED_ITEMS, VALID_ENUM_ITEMS | — | — |
785
+ | 27 | GRP | **REQUIRED_ITEMS** | REQUIRED_ORDER_ITEMS | — | Sub-tests: REQUIRED_ORDER_ID, REQUIRED_ORDER_STATUS, REQUIRED_ORDER_CREATED_AT, REQUIRED_ORDER_UPDATED_AT, CREATED_AT_UPDATED_AT_EQUALITY | — | — |
786
+ | 28 | LF | `REQUIRED_ORDER_ID` | REQUIRED_ORDER_ITEMS > REQUIRED_ITEMS | — | - $.message.order.id must be present in the payload | — | 30000 |
787
+ | 29 | LF | `REQUIRED_ORDER_STATUS` | REQUIRED_ORDER_ITEMS > REQUIRED_ITEMS | — | - $.message.order.status must be present in the payload | — | 30000 |
788
+ | 30 | LF | `REQUIRED_ORDER_CREATED_AT` | REQUIRED_ORDER_ITEMS > REQUIRED_ITEMS | — | - $.message.order.created_at must be present in the payload | — | 30000 |
789
+ | 31 | LF | `REQUIRED_ORDER_UPDATED_AT` | REQUIRED_ORDER_ITEMS > REQUIRED_ITEMS | — | - $.message.order.created_at must be present in the payload | — | 30000 |
790
+ | 32 | LF | `CREATED_AT_UPDATED_AT_EQUALITY` | REQUIRED_ORDER_ITEMS > REQUIRED_ITEMS | — | - $.message.order.created_at must equal $.message.order.updated_at | — | 30000 |
791
+ | 33 | GRP | **VALID_ENUM_ITEMS** | REQUIRED_ORDER_ITEMS | — | Sub-tests: VALID_ENUM_ORDER_STATUS, REGEX_ON_CONFIRM_CREATED_AT, REGEX_ON_CONFIRM_UPDATED_AT | — | — |
792
+ | 34 | LF | `VALID_ENUM_ORDER_STATUS` | REQUIRED_ORDER_ITEMS > VALID_ENUM_ITEMS | — | - At least one of $.message.order.status must be in ["ACTIVE", "COMPLETED", "CANCELLED"] | — | 30000 |
793
+ | 35 | LF | `REGEX_ON_CONFIRM_CREATED_AT` | REQUIRED_ORDER_ITEMS > VALID_ENUM_ITEMS | — | - All elements of $.message.order.created_at must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | — | 30000 |
794
+ | 36 | LF | `REGEX_ON_CONFIRM_UPDATED_AT` | REQUIRED_ORDER_ITEMS > VALID_ENUM_ITEMS | — | - All elements of $.message.order.updated_at must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | — | 30000 |
795
+ | 37 | GRP | **ON_SELECT_PROVIDER** | — | — | Sub-tests: ON_SELECT_PROVIDER_ID, ON_SELECT_PROVIDER_NAME, ON_SELECT_PROVIDER_IMAGES_URL, ON_SELECT_PROVIDER_IMAGES_SIZE_TYPE | - $.message.order.provider.id must **not** be present in the payload | — |
796
+ | 38 | LF | `ON_SELECT_PROVIDER_ID` | ON_SELECT_PROVIDER | — | - $.message.order.provider.id must be present in the payload | — | 30000 |
797
+ | 39 | LF | `ON_SELECT_PROVIDER_NAME` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.name must be present in the payload | — | 30000 |
798
+ | 40 | LF | `ON_SELECT_PROVIDER_IMAGES_URL` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.images[*].url must be present in the payload | — | 30000 |
799
+ | 41 | LF | `ON_SELECT_PROVIDER_IMAGES_SIZE_TYPE` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.images[*].size_type must be present in the payload | — | 30000 |
800
+ | 42 | GRP | **ON_SELECT_PROVIDER_TAGS** | — | — | Sub-tests: VALID_PROVODER_TAGS, REQUIRED_CONTACT_INFO, REQUIRED_LSP_INFO | — | — |
801
+ | 43 | LF | `VALID_PROVODER_TAGS` | ON_SELECT_PROVIDER_TAGS | — | - All elements of $.message.order.provider.tags[*].descriptor.code must be in ["CONTACT_INFO", "LSP_INFO"] | - $.message.order.provider.tags[*].descriptor.code must **not** be present in the payload | 30000 |
802
+ | 44 | LF | `REQUIRED_CONTACT_INFO` | ON_SELECT_PROVIDER_TAGS | `$.message.order.provider.tags[?(@.descriptor.code == CONTACT_INFO)]` | - All elements of $.message.order.provider.tags[?(@.descriptor.code == CONTACT_INFO)].list[*].descriptor.code must be in ["GRO_NAME", "GRO_EMAIL", "GRO_CONTACT_NUMBER", "CUSTOMER_SUPPORT_LINK", "CUSTOMER_SUPPORT_CONTACT_NUMBER", "CUSTOMER_SUPPORT_CONTACT_NUMBER"] | — | 30000 |
803
+ | 45 | LF | `REQUIRED_LSP_INFO` | ON_SELECT_PROVIDER_TAGS | `$.message.order.provider.tags[?(@.descriptor.code == LSP_INFO)]` | - All elements of $.message.order.provider.tags[?(@.descriptor.code == LSP_INFO)].list[*].descriptor.code must be in ["LSP_NAME", "LSP_EMAIL", "LSP_CONTACT_NUMBER", "LSP_ADDRESS"] | — | 30000 |
804
+ | 46 | GRP | **ON_INIT_ITEMS** | — | — | Sub-tests: REQUIRED_ITEMS | — | — |
805
+ | 47 | GRP | **REQUIRED_ITEMS** | ON_INIT_ITEMS | — | Sub-tests: REQUIRED_ITEM_ID, REQUIRED_PARENT_ITEM_ID, REQUIRED_ITEM_DESCRIPTOR_CODE, REQUIRED_ITEM_CATEGORY_ID, ON_SEARCH_ITEM_PRICE_CURRENCY, ON_SEARCH_ITEM_PRICE_VALUE, ON_SELECT_ITEM_FULFILLMENT_IDS, REQUIRED_XINPUT_FIELDS | — | — |
806
+ | 48 | LF | `REQUIRED_ITEM_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].id must be present in the payload | — | 30000 |
807
+ | 49 | LF | `REQUIRED_PARENT_ITEM_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].parent_item_id must be present in the payload | — | 30000 |
808
+ | 50 | LF | `REQUIRED_ITEM_DESCRIPTOR_CODE` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].descriptor.code must be present in the payload | — | 30000 |
809
+ | 51 | LF | `REQUIRED_ITEM_CATEGORY_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].category_ids[*] must be present in the payload | — | 30000 |
810
+ | 52 | LF | `ON_SEARCH_ITEM_PRICE_CURRENCY` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].price.currency must be present in the payload | — | 30000 |
811
+ | 53 | LF | `ON_SEARCH_ITEM_PRICE_VALUE` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].price.value must be present in the payload | — | 30000 |
812
+ | 54 | LF | `ON_SELECT_ITEM_FULFILLMENT_IDS` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].fulfillment_ids[*] must be present in the payload | — | 30000 |
813
+ | 55 | GRP | **REQUIRED_XINPUT_FIELDS** | ON_INIT_ITEMS > REQUIRED_ITEMS | — | Sub-tests: REQUIRED_XINPUT_ITEMS, VALID_XINPUT_FIELDS | - $.message.order.items[*].xinput.form.id must **not** be present in the payload | — |
814
+ | 56 | GRP | **REQUIRED_XINPUT_ITEMS** | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_HEAD_CODE, REQUIRED_HEAD_NAME, REQUIRED_FORM_HEADINGS, REQUIRED_FORM_ID, REQUIRED_FORM_MIME_TYPE, REQUIRED_FORM_RESPONSE, REQUIRED_SUBMISSION_ID | — | — |
815
+ | 57 | LF | `REQUIRED_HEAD_CODE` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.head.descriptor.code must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
816
+ | 58 | LF | `REQUIRED_HEAD_NAME` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.head.descriptor.name must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
817
+ | 59 | LF | `REQUIRED_FORM_HEADINGS` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.head.headings[*] must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
818
+ | 60 | LF | `REQUIRED_FORM_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form.id must be present in the payload | — | 30000 |
819
+ | 61 | LF | `REQUIRED_FORM_MIME_TYPE` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form.mime_type must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
820
+ | 62 | GRP | **REQUIRED_FORM_RESPONSE** | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | Sub-tests: REQUIRED_FORM_STATUS, REQUIRED_FORM_SUBMISSION_ID | - $.message.order.items[*].xinput.form_response.submission_id must **not** be present in the payload | — |
821
+ | 63 | LF | `REQUIRED_FORM_STATUS` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS > REQUIRED_FORM_RESPONSE | — | - $.message.order.items[*].xinput.form_response.status must be present in the payload | — | 30000 |
822
+ | 64 | LF | `REQUIRED_FORM_SUBMISSION_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS > REQUIRED_FORM_RESPONSE | — | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | — | 30000 |
823
+ | 65 | LF | `REQUIRED_SUBMISSION_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must **not** be present in the payload | 30000 |
824
+ | 66 | GRP | **VALID_XINPUT_FIELDS** | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: VALID_FORM_HEADINGS | — | — |
825
+ | 67 | LF | `VALID_FORM_HEADINGS` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > VALID_XINPUT_FIELDS | — | - All elements of $.message.order.items[*].xinput.head.headings[*] must be in ["KYC", "EMANDATE", "LOAN_AGREEMENT", "INDIVIDUAL_KYC", "ENTITY_KYC", "ENACH", "ESIGN"] | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
826
+ | 68 | GRP | **ON_SELECT_ITEM_TAGS** | — | — | Sub-tests: REQUIRED_LOAN_INFO, REQUIRED_LOAN_OFFER | **All of the following must be true:** - $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload - Not all elements of $.message.order.items[*].tags[*].descriptor.code may be in ["LOAN_INFO", "LOAN_OFFER"] | — |
827
+ | 69 | LF | `REQUIRED_LOAN_INFO` | ON_SELECT_ITEM_TAGS | `$.message.order.items[*].tags[?(@.descriptor.code == LOAN_INFO)]` | - All elements of $.message.order.items[*].tags[?(@.descriptor.code == LOAN_INFO)].list[*].descriptor.code must be in ["INTEREST_RATE", "TERM", "INTEREST_RATE_TYPE", "APPLICATION_FEE", "FORECLOSURE_FEE", "INTEREST_RATE_CONVERSION_CHARGE", "DELAY_PENALTY_FEE", "OTHER_PENALTY_FEE", "ANNUAL_PERCENTAGE_RATE", "REPAYMENT_FREQUENCY", "NUMBER_OF_INSTALLMENTS", "TNC_LINK", "COOL_OFF_PERIOD", "INSTALLMENT_AMOUNT", "KFS_LINK", "INVOICE_NUMBER", "WORKING_CAPITAL_LIMIT", "INSURANCE_CHARGES", "RATE_ANNUALISED_PENAL_CHARGES", "KYC_MODE", "CO_APPLICANT"] | — | 30000 |
828
+ | 70 | LF | `REQUIRED_LOAN_OFFER` | ON_SELECT_ITEM_TAGS | `$.message.order.items[*].tags[?(@.descriptor.code == LOAN_OFFER)]` | - All elements of $.message.order.items[*].tags[?(@.descriptor.code == LOAN_OFFER)].list[*].descriptor.code must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT", "PROCESSING_FEE", "OTHER_UPFRONT_CHARGES", "INSURANCE_CHARGES", "NET_DISBURSED_AMOUNT", "OTHER_CHARGES", "OFFER_VALIDITY", "WORKING_CAPITAL_LIMIT", "CURRENT_UTLIZATION"] | — | 30000 |
829
+ | 71 | GRP | **ON_INIT_FULFILLMENTS** | — | — | Sub-tests: REQUIRED_FULFILLMENT_ITEMS, VALID_FULFILLMENT_ITEMS, VALID_FULFILLMENT_TAGS | — | — |
830
+ | 72 | GRP | **REQUIRED_FULFILLMENT_ITEMS** | ON_INIT_FULFILLMENTS | — | Sub-tests: REQUIRED_FULFILLMENT_ID, REQUIRED_FULFILLMENT_TYPE, REQUIRED_CREDS, REQUIRED_CUSTOMER_NAME, REQUIRED_CUSTOMER_CONTACT_DETAILS, REQUIRED_CUSTOMER_ORG_DETAILS, REQUIRED_FULFILLMENT_STATE_CODE | — | — |
831
+ | 73 | LF | `REQUIRED_FULFILLMENT_ID` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].id must be present in the payload | — | 30000 |
832
+ | 74 | LF | `REQUIRED_FULFILLMENT_TYPE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].type must be present in the payload | — | 30000 |
833
+ | 75 | GRP | **REQUIRED_CREDS** | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_CREDS_ID, REQUIRED_CUSTOMER_CREDS_TYPE | - $.message.order.fulfillments[*].customer.person.creds[*].id must **not** be present in the payload | — |
834
+ | 76 | LF | `REQUIRED_CUSTOMER_CREDS_ID` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
835
+ | 77 | LF | `REQUIRED_CUSTOMER_CREDS_TYPE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
836
+ | 78 | LF | `REQUIRED_CUSTOMER_NAME` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].customer.person.name must be present in the payload | - $.message.order.fulfillments[*].customer.person.name must **not** be present in the payload | 30000 |
837
+ | 79 | GRP | **REQUIRED_CUSTOMER_CONTACT_DETAILS** | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_CONTACT_NUMBER, REQUIRED_CUSTOMER_CONTACT_EMAIL | - $.message.order.fulfillments[*].customer.contact.phone must **not** be present in the payload | — |
838
+ | 80 | LF | `REQUIRED_CUSTOMER_CONTACT_NUMBER` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_CONTACT_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.contact.phone must be present in the payload | — | 30000 |
839
+ | 81 | LF | `REQUIRED_CUSTOMER_CONTACT_EMAIL` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_CONTACT_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.contact.phone must be present in the payload | — | 30000 |
840
+ | 82 | GRP | **REQUIRED_CUSTOMER_ORG_DETAILS** | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | Sub-tests: REQUIRED_ORG_ADDRESS, REQUIRED_ORG_STATE, REQUIRED_ORG_CITY, REQUIRED_ORG_CODE, REQUIRED_ORG_CONTACT_PHONE, REQUIRED_ORG_CONTACT_EMAIL | - $.message.order.fulfillments[*].customer.organization.address must **not** be present in the payload | — |
841
+ | 83 | LF | `REQUIRED_ORG_ADDRESS` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
842
+ | 84 | LF | `REQUIRED_ORG_STATE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
843
+ | 85 | LF | `REQUIRED_ORG_CITY` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
844
+ | 86 | LF | `REQUIRED_ORG_CODE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
845
+ | 87 | LF | `REQUIRED_ORG_CONTACT_PHONE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
846
+ | 88 | LF | `REQUIRED_ORG_CONTACT_EMAIL` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
847
+ | 89 | LF | `REQUIRED_FULFILLMENT_STATE_CODE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].state.descriptor.code must be present in the payload | — | 30000 |
848
+ | 90 | GRP | **VALID_FULFILLMENT_ITEMS** | ON_INIT_FULFILLMENTS | — | Sub-tests: VALID_FULFILLMENT_TYPE, VALID_FULFILLMENT_STATE_CODE | — | — |
849
+ | 91 | LF | `VALID_FULFILLMENT_TYPE` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_ITEMS | — | - All elements of $.message.order.fulfillments[*].type must be in ["ONLINE", "SEMI_ONLINE"] | - $.message.order.fulfillments[*].type must **not** be present in the payload | 30000 |
850
+ | 92 | LF | `VALID_FULFILLMENT_STATE_CODE` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_ITEMS | — | - All elements of $.message.order.fulfillments[*].state.descriptor.code must be in ["INITIATED", "SANCTIONED", "DISBURSED"] | - $.message.order.fulfillments[*].state.descriptor.code must **not** be present in the payload | 30000 |
851
+ | 93 | GRP | **VALID_FULFILLMENT_TAGS** | ON_INIT_FULFILLMENTS | — | Sub-tests: REQUIRED_FULFILLMENT_TAGS, REQUIRED_CHECKLISTS_ITEM | — | — |
852
+ | 94 | LF | `REQUIRED_FULFILLMENT_TAGS` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_TAGS | — | - All elements of $.message.order.fulfillments[*].tags[*].descriptor.code must be in ["CHECKLISTS"] | - $.message.order.fulfillments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
853
+ | 95 | LF | `REQUIRED_CHECKLISTS_ITEM` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_TAGS | `$.message.order.fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)]` | - All elements of $.message.order.fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)].list[*].descriptor.code must be in ["PERSONAL_INFORMATION", "CONSENT_APPROVAL", "SET_LOAN_AMOUNT", "KYC", "KYC_OFFLINE", "EMANDATE", "LOAN_AGREEMENT", "ACCOUNT_MONITORING", "ORGANIZATION_INFORMATION", "INDIVIDUAL_KYC", "ENTITY_KYC", "MERCHANT_AND_PRDOUCT_DETAILS", "SET_DOWN_PAYMENT", "ESIGN", "BANK_STATEMENT_AND_GST_RETURNS", "BUSINESS_AND_FINANCIAL_DOCUMENTS", "BUSINESS_KYC", "PERSONAL_DISCUSSION", "PHYSICAL_VERIFICATION", "ENACH", "PROCESSING_FEE", "MANUAL_VERIFICATION", "LIEN_MARKING", "PERSONAL_INFORMATION_TERM", "PERSONAL_INFORMATION_LAMF", "PERSONAL_INFORMATION_TERM_GST"] | — | 30000 |
854
+ | 96 | GRP | **ON_SELECT_QUOTE** | — | — | Sub-tests: REQUIRED_COMMON_QUOTE_ITEMS, VALID_COMMON_QUOTE_ITEMS | - $.message.order.quote.id must **not** be present in the payload | — |
855
+ | 97 | GRP | **REQUIRED_COMMON_QUOTE_ITEMS** | ON_SELECT_QUOTE | — | Sub-tests: REQUIRED_QUOTE_ID, REQUIRED_QUOTE_PRICE_VALUE, REQUIRED_QUOTE_PRICE_CURRENCY, REQUIRED_BREAKUP_TITLE, REQUIRED_BREAKUP_PRICE_VALUE, REQUIRED_BREAKUP_PRICE_CURRENCY, REQUIRED_QUOTE_TTL | — | — |
856
+ | 98 | LF | `REQUIRED_QUOTE_ID` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.id must be present in the payload | — | 30000 |
857
+ | 99 | LF | `REQUIRED_QUOTE_PRICE_VALUE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.price.value must be present in the payload | — | 30000 |
858
+ | 100 | LF | `REQUIRED_QUOTE_PRICE_CURRENCY` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.price.currency must be present in the payload | — | 30000 |
859
+ | 101 | LF | `REQUIRED_BREAKUP_TITLE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].title must be present in the payload | — | 30000 |
860
+ | 102 | LF | `REQUIRED_BREAKUP_PRICE_VALUE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].price.value must be present in the payload | — | 30000 |
861
+ | 103 | LF | `REQUIRED_BREAKUP_PRICE_CURRENCY` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].price.currency must be present in the payload | — | 30000 |
862
+ | 104 | LF | `REQUIRED_QUOTE_TTL` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.ttl must be present in the payload | — | 30000 |
863
+ | 105 | GRP | **VALID_COMMON_QUOTE_ITEMS** | ON_SELECT_QUOTE | — | Sub-tests: VALID_ENUM_BREAKUP_PRICE_CURRENCY, VALID_ENUM_BREAKUP_TITLE | — | — |
864
+ | 106 | LF | `VALID_ENUM_BREAKUP_PRICE_CURRENCY` | ON_SELECT_QUOTE > VALID_COMMON_QUOTE_ITEMS | — | - At least one of $.message.order.quote.breakup[*].price.currency must be in ["INR"] | — | 30000 |
865
+ | 107 | LF | `VALID_ENUM_BREAKUP_TITLE` | ON_SELECT_QUOTE > VALID_COMMON_QUOTE_ITEMS | — | - At least one of $.message.order.quote.breakup[*].title must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT", "PROCESSING_FEE", "OTHER_UPFRONT_CHARGES", "INSURANCE_CHARGES", "NET_DISBURSED_AMOUNT", "OTHER_CHARGES", "WORKING_CAPITAL_LIMIT", "CURRENT_UTLIZATION"] | — | 30000 |
866
+ | 108 | GRP | **ON_INIT_PAYMENTS** | — | — | Sub-tests: REQUIRED_PAYMENT_ITEMS | — | — |
867
+ | 109 | GRP | **REQUIRED_PAYMENT_ITEMS** | ON_INIT_PAYMENTS | — | Sub-tests: REQUIRED_PAYMENT_ITEMS, REQUIRED_PAYMENT_ID, REQUIRED_PAYMENT_STATUS, REQUIRED_PAYMENT_COLLECTED_BY, REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER, REQUIRED_PAYMENT_BANK_CODE, REQUIRED_PAYMENT_LABEL, REQUIRED_PARAMS_DETAILS, REQUIRED_PAYMENT_URL, REQUIRED_TIME_RANGE | — | — |
868
+ | 110 | LF | `REQUIRED_PAYMENT_ITEMS` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].type must be present in the payload | — | 30000 |
869
+ | 111 | LF | `REQUIRED_PAYMENT_ID` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].id must be present in the payload | — | 30000 |
870
+ | 112 | LF | `REQUIRED_PAYMENT_STATUS` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].status must be present in the payload | — | 30000 |
871
+ | 113 | LF | `REQUIRED_PAYMENT_COLLECTED_BY` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].collected_by must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
872
+ | 114 | LF | `REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_account_number must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
873
+ | 115 | LF | `REQUIRED_PAYMENT_BANK_CODE` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_code must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
874
+ | 116 | LF | `REQUIRED_PAYMENT_LABEL` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].time.label must be present in the payload | — | 30000 |
875
+ | 117 | GRP | **REQUIRED_PARAMS_DETAILS** | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_TRANSACTION_ID, REQUIRED_PAYMENTS_AMOUNT, REQUIRED_PAYMENTS_CURRENCY | - Not all elements of $.message.order.payments[*].status may be in ["PAID"] | — |
876
+ | 118 | LF | `REQUIRED_TRANSACTION_ID` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PARAMS_DETAILS | — | - $.message.order.payments[*].params.transaction_id must be present in the payload | — | 30000 |
877
+ | 119 | LF | `REQUIRED_PAYMENTS_AMOUNT` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PARAMS_DETAILS | — | - $.message.order.payments[*].params.amount must be present in the payload | — | 30000 |
878
+ | 120 | LF | `REQUIRED_PAYMENTS_CURRENCY` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PARAMS_DETAILS | — | - $.message.order.payments[*].params.currency must be present in the payload | — | 30000 |
879
+ | 121 | GRP | **REQUIRED_PAYMENT_URL** | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_TIME_DURATION | - $.message.order.payments[*].url must **not** be present in the payload | — |
880
+ | 122 | LF | `REQUIRED_TIME_DURATION` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PAYMENT_URL | — | - $.message.order.payments[*].time.duration must be present in the payload | — | 30000 |
881
+ | 123 | GRP | **REQUIRED_TIME_RANGE** | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_TIME_START_RANGE, REQUIRED_TIME_END_RANGE | - Not all elements of $.message.order.payments[*].time.label may be in ["INSTALLMENT"] | — |
882
+ | 124 | LF | `REQUIRED_TIME_START_RANGE` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_TIME_RANGE | — | - $.message.order.payments[*].time.range.start must be present in the payload | — | 30000 |
883
+ | 125 | LF | `REQUIRED_TIME_END_RANGE` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_TIME_RANGE | — | - $.message.order.payments[*].time.range.end must be present in the payload | — | 30000 |
884
+ | 126 | GRP | **ON_INIT_PAYMENT_TAGS** | — | — | Sub-tests: VALID_PAYMENT_TAGS, REQUIRED_ACCOUNT_DETAILS, REQUIRED_BREAKUP_DETAILS | — | — |
885
+ | 127 | LF | `VALID_PAYMENT_TAGS` | ON_INIT_PAYMENT_TAGS | — | - All elements of $.message.order.payments[*].tags[*].descriptor.code must be in ["ACCOUNT_DETAILS", "BREAKUP"] | - $.message.order.payments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
886
+ | 128 | LF | `REQUIRED_ACCOUNT_DETAILS` | ON_INIT_PAYMENT_TAGS | `$.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)]` | - All elements of $.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)].list[*].descriptor.code must be in ["ACCOUNT_TYPE", "ACCOUNT_HOLDER_NAME"] | — | 30000 |
887
+ | 129 | LF | `REQUIRED_BREAKUP_DETAILS` | ON_INIT_PAYMENT_TAGS | `$.message.order.payments[*].tags[?(@.descriptor.code == BREAKUP)]` | - All elements of $.message.order.payments[*].tags[?(@.descriptor.code == BREAKUP)].list[*].descriptor.code must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT"] | — | 30000 |
888
+ | 130 | GRP | **ON_INIT_CANCELLATION_TERMS** | — | — | Sub-tests: EXTERNAL_REF_TERMS, FULFILLMENT_STATE_TERMS | — | — |
889
+ | 131 | GRP | **EXTERNAL_REF_TERMS** | ON_INIT_CANCELLATION_TERMS | — | Sub-tests: REQUIRED_EXTERNAL_REF_MIME_TYPE, REQUIRED_EXTERNAL_REF_URL | - $.message.order.cancellation_terms[*].external_ref.mimetype must **not** be present in the payload | — |
890
+ | 132 | LF | `REQUIRED_EXTERNAL_REF_MIME_TYPE` | ON_INIT_CANCELLATION_TERMS > EXTERNAL_REF_TERMS | — | - $.message.order.cancellation_terms[*].external_ref.mimetype must be present in the payload | — | 30000 |
891
+ | 133 | LF | `REQUIRED_EXTERNAL_REF_URL` | ON_INIT_CANCELLATION_TERMS > EXTERNAL_REF_TERMS | — | - $.message.order.cancellation_terms[*].external_ref.url must be present in the payload | — | 30000 |
892
+ | 134 | GRP | **FULFILLMENT_STATE_TERMS** | ON_INIT_CANCELLATION_TERMS | — | Sub-tests: REQUIRED_FULFILLMENT_STATE_CODE, REQUIRED_CANCELLATION_FEE | - $.message.order.cancellation_terms[*].fulfillment_state.descriptor.code must **not** be present in the payload | — |
893
+ | 135 | LF | `REQUIRED_FULFILLMENT_STATE_CODE` | ON_INIT_CANCELLATION_TERMS > FULFILLMENT_STATE_TERMS | — | - $.message.order.cancellation_terms[*].fulfillment_state.descriptor.code must be present in the payload | — | 30000 |
894
+ | 136 | LF | `REQUIRED_CANCELLATION_FEE` | ON_INIT_CANCELLATION_TERMS > FULFILLMENT_STATE_TERMS | — | - $.message.order.cancellation_terms[*].cancellation_fee.percentage must be present in the payload | — | 30000 |
895
+ | 137 | GRP | **CONFIRM_TAGS** | — | — | Sub-tests: REQUIRED_PAYMENT_TAGS, REQUIRED_BAP_TERMS, REQUIRED_BPP_TERMS | — | — |
896
+ | 138 | LF | `REQUIRED_PAYMENT_TAGS` | CONFIRM_TAGS | — | - All elements of $.message.order.tags[*].descriptor.code must be in ["BAP_TERMS", "BPP_TERMS"] | - $.message.order.tags[*].descriptor.code must **not** be present in the payload | 30000 |
897
+ | 139 | LF | `REQUIRED_BAP_TERMS` | CONFIRM_TAGS | `$.message.order.tags[?(@.descriptor.code == BAP_TERMS)]` | - All elements of $.message.order.tags[?(@.descriptor.code == BAP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
898
+ | 140 | LF | `REQUIRED_BPP_TERMS` | CONFIRM_TAGS | `$.message.order.tags[?(@.descriptor.code == BPP_TERMS)]` | - All elements of $.message.order.tags[?(@.descriptor.code == BPP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
899
+ | 141 | GRP | **REQUIRED_ORDER_DOCUMENTS** | — | — | Sub-tests: REQUIRED_DOCUMENT_CODE, REQUIRED_DOCUMENT_NAME, REQUIRED_DOCUMENT_TYPE, REQUIRED_DOCUMENT_URL, VALID_DESCRIPTOR_CODE | — | — |
900
+ | 142 | LF | `REQUIRED_DOCUMENT_CODE` | REQUIRED_ORDER_DOCUMENTS | — | - $.message.order.documents[*].descriptor.code must be present in the payload | — | 30000 |
901
+ | 143 | LF | `REQUIRED_DOCUMENT_NAME` | REQUIRED_ORDER_DOCUMENTS | — | - $.message.order.documents[*].descriptor.name must be present in the payload | — | 30000 |
902
+ | 144 | LF | `REQUIRED_DOCUMENT_TYPE` | REQUIRED_ORDER_DOCUMENTS | — | - $.message.order.documents[*].mime_type must be present in the payload | — | 30000 |
903
+ | 145 | LF | `REQUIRED_DOCUMENT_URL` | REQUIRED_ORDER_DOCUMENTS | — | - $.message.order.documents[*].url must be present in the payload | — | 30000 |
904
+ | 146 | LF | `VALID_DESCRIPTOR_CODE` | REQUIRED_ORDER_DOCUMENTS | — | - All elements of $.message.order.documents[*].descriptor.code must be in ["LOAN_AGREEMENT", "LOAN_CANCELLATION"] | — | 30000 |
905
+
906
+
907
+ ---
908
+ action: update
909
+ codeName: update
910
+ numTests: 33
911
+ generated: 2026-03-10
912
+ ---
913
+
914
+ # update — `update` Validations (Table View)
915
+
916
+ **27** leaf validation rule(s) applied to `update` in the **update** flow.
917
+ Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
918
+
919
+ ---
920
+ | # | Type | Test Name | Group | Description | Skip If | Error Code |
921
+ | ---: | :---: | :--- | :--- | :--- | :--- | :---: |
922
+ | 1 | GRP | **UPDATE_CONTEXT** | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
923
+ | 2 | GRP | **CONTEXT_REQUIRED** | UPDATE_CONTEXT | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
924
+ | 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | UPDATE_CONTEXT > CONTEXT_REQUIRED | - $.context.location.country.code must be present in the payload | — | 30000 |
925
+ | 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | UPDATE_CONTEXT > CONTEXT_REQUIRED | - $.context.location.city.code must be present in the payload | — | 30000 |
926
+ | 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | UPDATE_CONTEXT > CONTEXT_REQUIRED | - $.context.domain must be present in the payload | — | 30000 |
927
+ | 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | UPDATE_CONTEXT > CONTEXT_REQUIRED | - $.context.timestamp must be present in the payload | — | 30000 |
928
+ | 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | UPDATE_CONTEXT > CONTEXT_REQUIRED | - $.context.bap_id must be present in the payload | — | 30000 |
929
+ | 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | UPDATE_CONTEXT > CONTEXT_REQUIRED | - $.context.bap_uri must be present in the payload | — | 30000 |
930
+ | 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | UPDATE_CONTEXT > CONTEXT_REQUIRED | - $.context.transaction_id must be present in the payload | — | 30000 |
931
+ | 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | UPDATE_CONTEXT > CONTEXT_REQUIRED | - $.context.message_id must be present in the payload | — | 30000 |
932
+ | 11 | LF | `REQUIRED_CONTEXT_VERSION` | UPDATE_CONTEXT > CONTEXT_REQUIRED | - $.context.version must be present in the payload | — | 30000 |
933
+ | 12 | LF | `REQUIRED_CONTEXT_TTL` | UPDATE_CONTEXT > CONTEXT_REQUIRED | - $.context.ttl must be present in the payload | — | 30000 |
934
+ | 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | UPDATE_CONTEXT > CONTEXT_REQUIRED | - $.context.bpp_id must be present in the payload | — | 30000 |
935
+ | 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | UPDATE_CONTEXT > CONTEXT_REQUIRED | - $.context.bpp_uri must be present in the payload | — | 30000 |
936
+ | 15 | GRP | **CONTEXT_ENUM** | UPDATE_CONTEXT | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
937
+ | 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | UPDATE_CONTEXT > CONTEXT_ENUM | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
938
+ | 17 | LF | `VALID_CONTEXT_DOMAIN` | UPDATE_CONTEXT > CONTEXT_ENUM | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
939
+ | 18 | GRP | **CONTEXT_REGEX** | UPDATE_CONTEXT | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
940
+ | 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | UPDATE_CONTEXT > CONTEXT_REGEX | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
941
+ | 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | UPDATE_CONTEXT > CONTEXT_REGEX | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
942
+ | 21 | LF | `REGEX_CONTEXT_BAP_ID` | UPDATE_CONTEXT > CONTEXT_REGEX | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
943
+ | 22 | LF | `REGEX_CONTEXT_BAP_URI` | UPDATE_CONTEXT > CONTEXT_REGEX | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
944
+ | 23 | LF | `REQUIRED_CONTEXT_TTL` | UPDATE_CONTEXT > CONTEXT_REGEX | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
945
+ | 24 | LF | `REGEX_CONTEXT_BPP_ID` | UPDATE_CONTEXT > CONTEXT_REGEX | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bpp_id must **not** be present in the payload | 30000 |
946
+ | 25 | LF | `REGEX_CONTEXT_BPP_URI` | UPDATE_CONTEXT > CONTEXT_REGEX | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bpp_uri must **not** be present in the payload | 30000 |
947
+ | 26 | LF | `REQUIRED_UPDATE_TARGET` | — | - $.message.update_target must be present in the payload | — | 30000 |
948
+ | 27 | LF | `REQUIRED_ORDER_ID` | — | - $.message.order.id must be present in the payload | — | 30000 |
949
+ | 28 | GRP | **REQUIRED_ITEMS_FIELDS** | — | Sub-tests: REQUIRED_ITEM_ID, REQUIRED_XINPUT_ITEMS | - $.message.order.items[*].id must **not** be present in the payload | — |
950
+ | 29 | LF | `REQUIRED_ITEM_ID` | REQUIRED_ITEMS_FIELDS | - $.message.order.items[*].id must be present in the payload | — | 30000 |
951
+ | 30 | GRP | **REQUIRED_XINPUT_ITEMS** | REQUIRED_ITEMS_FIELDS | Sub-tests: REQUIRED_HEAD_CODE, REQUIRED_FORM_ID, REQUIRED_SUBMISSION_ID | - $.message.order.items[*].xinput.form.id must **not** be present in the payload | — |
952
+ | 31 | LF | `REQUIRED_HEAD_CODE` | REQUIRED_ITEMS_FIELDS > REQUIRED_XINPUT_ITEMS | - $.message.order.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
953
+ | 32 | LF | `REQUIRED_FORM_ID` | REQUIRED_ITEMS_FIELDS > REQUIRED_XINPUT_ITEMS | - $.message.order.items[*].xinput.form.id must be present in the payload | — | 30000 |
954
+ | 33 | LF | `REQUIRED_SUBMISSION_ID` | REQUIRED_ITEMS_FIELDS > REQUIRED_XINPUT_ITEMS | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must **not** be present in the payload | 30000 |
955
+
956
+
957
+ ---
958
+ action: on_update
959
+ codeName: on_update
960
+ numTests: 146
961
+ generated: 2026-03-10
962
+ ---
963
+
964
+ # on_update — `on_update` Validations (Table View)
965
+
966
+ **109** leaf validation rule(s) applied to `on_update` in the **on_update** flow.
967
+ Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
968
+
969
+ ---
970
+ | # | Type | Test Name | Group | Scope | Description | Skip If | Error Code |
971
+ | ---: | :---: | :--- | :--- | :--- | :--- | :--- | :---: |
972
+ | 1 | GRP | **ON_UPDATE_CONTEXT** | — | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
973
+ | 2 | GRP | **CONTEXT_REQUIRED** | ON_UPDATE_CONTEXT | — | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
974
+ | 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | ON_UPDATE_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.country.code must be present in the payload | — | 30000 |
975
+ | 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | ON_UPDATE_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.city.code must be present in the payload | — | 30000 |
976
+ | 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | ON_UPDATE_CONTEXT > CONTEXT_REQUIRED | — | - $.context.domain must be present in the payload | — | 30000 |
977
+ | 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | ON_UPDATE_CONTEXT > CONTEXT_REQUIRED | — | - $.context.timestamp must be present in the payload | — | 30000 |
978
+ | 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | ON_UPDATE_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_id must be present in the payload | — | 30000 |
979
+ | 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | ON_UPDATE_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_uri must be present in the payload | — | 30000 |
980
+ | 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | ON_UPDATE_CONTEXT > CONTEXT_REQUIRED | — | - $.context.transaction_id must be present in the payload | — | 30000 |
981
+ | 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | ON_UPDATE_CONTEXT > CONTEXT_REQUIRED | — | - $.context.message_id must be present in the payload | — | 30000 |
982
+ | 11 | LF | `REQUIRED_CONTEXT_VERSION` | ON_UPDATE_CONTEXT > CONTEXT_REQUIRED | — | - $.context.version must be present in the payload | — | 30000 |
983
+ | 12 | LF | `REQUIRED_CONTEXT_TTL` | ON_UPDATE_CONTEXT > CONTEXT_REQUIRED | — | - $.context.ttl must be present in the payload | — | 30000 |
984
+ | 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | ON_UPDATE_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_id must be present in the payload | — | 30000 |
985
+ | 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | ON_UPDATE_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_uri must be present in the payload | — | 30000 |
986
+ | 15 | GRP | **CONTEXT_ENUM** | ON_UPDATE_CONTEXT | — | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
987
+ | 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | ON_UPDATE_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
988
+ | 17 | LF | `VALID_CONTEXT_DOMAIN` | ON_UPDATE_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
989
+ | 18 | GRP | **CONTEXT_REGEX** | ON_UPDATE_CONTEXT | — | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
990
+ | 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | ON_UPDATE_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
991
+ | 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | ON_UPDATE_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
992
+ | 21 | LF | `REGEX_CONTEXT_BAP_ID` | ON_UPDATE_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
993
+ | 22 | LF | `REGEX_CONTEXT_BAP_URI` | ON_UPDATE_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
994
+ | 23 | LF | `REQUIRED_CONTEXT_TTL` | ON_UPDATE_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
995
+ | 24 | LF | `REGEX_CONTEXT_BPP_ID` | ON_UPDATE_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bpp_id must **not** be present in the payload | 30000 |
996
+ | 25 | LF | `REGEX_CONTEXT_BPP_URI` | ON_UPDATE_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bpp_uri must **not** be present in the payload | 30000 |
997
+ | 26 | GRP | **REQUIRED_ORDER_ITEMS** | — | — | Sub-tests: REQUIRED_ITEMS, VALID_ENUM_ITEMS | — | — |
998
+ | 27 | GRP | **REQUIRED_ITEMS** | REQUIRED_ORDER_ITEMS | — | Sub-tests: REQUIRED_ORDER_ID, REQUIRED_ORDER_STATUS, REQUIRED_ORDER_CREATED_AT, REQUIRED_ORDER_UPDATED_AT, CREATED_AT_UPDATED_AT_EQUALITY | — | — |
999
+ | 28 | LF | `REQUIRED_ORDER_ID` | REQUIRED_ORDER_ITEMS > REQUIRED_ITEMS | — | - $.message.order.id must be present in the payload | — | 30000 |
1000
+ | 29 | LF | `REQUIRED_ORDER_STATUS` | REQUIRED_ORDER_ITEMS > REQUIRED_ITEMS | — | - $.message.order.status must be present in the payload | — | 30000 |
1001
+ | 30 | LF | `REQUIRED_ORDER_CREATED_AT` | REQUIRED_ORDER_ITEMS > REQUIRED_ITEMS | — | - $.message.order.created_at must be present in the payload | — | 30000 |
1002
+ | 31 | LF | `REQUIRED_ORDER_UPDATED_AT` | REQUIRED_ORDER_ITEMS > REQUIRED_ITEMS | — | - $.message.order.created_at must be present in the payload | — | 30000 |
1003
+ | 32 | LF | `CREATED_AT_UPDATED_AT_EQUALITY` | REQUIRED_ORDER_ITEMS > REQUIRED_ITEMS | — | - $.message.order.created_at must equal $.message.order.updated_at | — | 30000 |
1004
+ | 33 | GRP | **VALID_ENUM_ITEMS** | REQUIRED_ORDER_ITEMS | — | Sub-tests: VALID_ENUM_ORDER_STATUS, REGEX_ON_CONFIRM_CREATED_AT, REGEX_ON_CONFIRM_UPDATED_AT | — | — |
1005
+ | 34 | LF | `VALID_ENUM_ORDER_STATUS` | REQUIRED_ORDER_ITEMS > VALID_ENUM_ITEMS | — | - At least one of $.message.order.status must be in ["ACTIVE", "COMPLETED", "CANCELLED"] | — | 30000 |
1006
+ | 35 | LF | `REGEX_ON_CONFIRM_CREATED_AT` | REQUIRED_ORDER_ITEMS > VALID_ENUM_ITEMS | — | - All elements of $.message.order.created_at must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | — | 30000 |
1007
+ | 36 | LF | `REGEX_ON_CONFIRM_UPDATED_AT` | REQUIRED_ORDER_ITEMS > VALID_ENUM_ITEMS | — | - All elements of $.message.order.updated_at must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | — | 30000 |
1008
+ | 37 | GRP | **ON_SELECT_PROVIDER** | — | — | Sub-tests: ON_SELECT_PROVIDER_ID, ON_SELECT_PROVIDER_NAME, ON_SELECT_PROVIDER_IMAGES_URL, ON_SELECT_PROVIDER_IMAGES_SIZE_TYPE | - $.message.order.provider.id must **not** be present in the payload | — |
1009
+ | 38 | LF | `ON_SELECT_PROVIDER_ID` | ON_SELECT_PROVIDER | — | - $.message.order.provider.id must be present in the payload | — | 30000 |
1010
+ | 39 | LF | `ON_SELECT_PROVIDER_NAME` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.name must be present in the payload | — | 30000 |
1011
+ | 40 | LF | `ON_SELECT_PROVIDER_IMAGES_URL` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.images[*].url must be present in the payload | — | 30000 |
1012
+ | 41 | LF | `ON_SELECT_PROVIDER_IMAGES_SIZE_TYPE` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.images[*].size_type must be present in the payload | — | 30000 |
1013
+ | 42 | GRP | **ON_SELECT_PROVIDER_TAGS** | — | — | Sub-tests: VALID_PROVODER_TAGS, REQUIRED_CONTACT_INFO, REQUIRED_LSP_INFO | — | — |
1014
+ | 43 | LF | `VALID_PROVODER_TAGS` | ON_SELECT_PROVIDER_TAGS | — | - All elements of $.message.order.provider.tags[*].descriptor.code must be in ["CONTACT_INFO", "LSP_INFO"] | - $.message.order.provider.tags[*].descriptor.code must **not** be present in the payload | 30000 |
1015
+ | 44 | LF | `REQUIRED_CONTACT_INFO` | ON_SELECT_PROVIDER_TAGS | `$.message.order.provider.tags[?(@.descriptor.code == CONTACT_INFO)]` | - All elements of $.message.order.provider.tags[?(@.descriptor.code == CONTACT_INFO)].list[*].descriptor.code must be in ["GRO_NAME", "GRO_EMAIL", "GRO_CONTACT_NUMBER", "CUSTOMER_SUPPORT_LINK", "CUSTOMER_SUPPORT_CONTACT_NUMBER", "CUSTOMER_SUPPORT_CONTACT_NUMBER"] | — | 30000 |
1016
+ | 45 | LF | `REQUIRED_LSP_INFO` | ON_SELECT_PROVIDER_TAGS | `$.message.order.provider.tags[?(@.descriptor.code == LSP_INFO)]` | - All elements of $.message.order.provider.tags[?(@.descriptor.code == LSP_INFO)].list[*].descriptor.code must be in ["LSP_NAME", "LSP_EMAIL", "LSP_CONTACT_NUMBER", "LSP_ADDRESS"] | — | 30000 |
1017
+ | 46 | GRP | **ON_INIT_ITEMS** | — | — | Sub-tests: REQUIRED_ITEMS | — | — |
1018
+ | 47 | GRP | **REQUIRED_ITEMS** | ON_INIT_ITEMS | — | Sub-tests: REQUIRED_ITEM_ID, REQUIRED_PARENT_ITEM_ID, REQUIRED_ITEM_DESCRIPTOR_CODE, REQUIRED_ITEM_CATEGORY_ID, ON_SEARCH_ITEM_PRICE_CURRENCY, ON_SEARCH_ITEM_PRICE_VALUE, ON_SELECT_ITEM_FULFILLMENT_IDS, REQUIRED_XINPUT_FIELDS | — | — |
1019
+ | 48 | LF | `REQUIRED_ITEM_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].id must be present in the payload | — | 30000 |
1020
+ | 49 | LF | `REQUIRED_PARENT_ITEM_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].parent_item_id must be present in the payload | — | 30000 |
1021
+ | 50 | LF | `REQUIRED_ITEM_DESCRIPTOR_CODE` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].descriptor.code must be present in the payload | — | 30000 |
1022
+ | 51 | LF | `REQUIRED_ITEM_CATEGORY_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].category_ids[*] must be present in the payload | — | 30000 |
1023
+ | 52 | LF | `ON_SEARCH_ITEM_PRICE_CURRENCY` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].price.currency must be present in the payload | — | 30000 |
1024
+ | 53 | LF | `ON_SEARCH_ITEM_PRICE_VALUE` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].price.value must be present in the payload | — | 30000 |
1025
+ | 54 | LF | `ON_SELECT_ITEM_FULFILLMENT_IDS` | ON_INIT_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].fulfillment_ids[*] must be present in the payload | — | 30000 |
1026
+ | 55 | GRP | **REQUIRED_XINPUT_FIELDS** | ON_INIT_ITEMS > REQUIRED_ITEMS | — | Sub-tests: REQUIRED_XINPUT_ITEMS, VALID_XINPUT_FIELDS | - $.message.order.items[*].xinput.form.id must **not** be present in the payload | — |
1027
+ | 56 | GRP | **REQUIRED_XINPUT_ITEMS** | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_HEAD_CODE, REQUIRED_HEAD_NAME, REQUIRED_FORM_HEADINGS, REQUIRED_FORM_ID, REQUIRED_FORM_MIME_TYPE, REQUIRED_FORM_RESPONSE, REQUIRED_SUBMISSION_ID | — | — |
1028
+ | 57 | LF | `REQUIRED_HEAD_CODE` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.head.descriptor.code must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
1029
+ | 58 | LF | `REQUIRED_HEAD_NAME` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.head.descriptor.name must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
1030
+ | 59 | LF | `REQUIRED_FORM_HEADINGS` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.head.headings[*] must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
1031
+ | 60 | LF | `REQUIRED_FORM_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form.id must be present in the payload | — | 30000 |
1032
+ | 61 | LF | `REQUIRED_FORM_MIME_TYPE` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form.mime_type must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
1033
+ | 62 | GRP | **REQUIRED_FORM_RESPONSE** | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | Sub-tests: REQUIRED_FORM_STATUS, REQUIRED_FORM_SUBMISSION_ID | - $.message.order.items[*].xinput.form_response.submission_id must **not** be present in the payload | — |
1034
+ | 63 | LF | `REQUIRED_FORM_STATUS` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS > REQUIRED_FORM_RESPONSE | — | - $.message.order.items[*].xinput.form_response.status must be present in the payload | — | 30000 |
1035
+ | 64 | LF | `REQUIRED_FORM_SUBMISSION_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS > REQUIRED_FORM_RESPONSE | — | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | — | 30000 |
1036
+ | 65 | LF | `REQUIRED_SUBMISSION_ID` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must **not** be present in the payload | 30000 |
1037
+ | 66 | GRP | **VALID_XINPUT_FIELDS** | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: VALID_FORM_HEADINGS | — | — |
1038
+ | 67 | LF | `VALID_FORM_HEADINGS` | ON_INIT_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > VALID_XINPUT_FIELDS | — | - All elements of $.message.order.items[*].xinput.head.headings[*] must be in ["KYC", "EMANDATE", "LOAN_AGREEMENT", "INDIVIDUAL_KYC", "ENTITY_KYC", "ENACH", "ESIGN"] | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | 30000 |
1039
+ | 68 | GRP | **ON_SELECT_ITEM_TAGS** | — | — | Sub-tests: REQUIRED_LOAN_INFO, REQUIRED_LOAN_OFFER | **All of the following must be true:** - $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload - Not all elements of $.message.order.items[*].tags[*].descriptor.code may be in ["LOAN_INFO", "LOAN_OFFER"] | — |
1040
+ | 69 | LF | `REQUIRED_LOAN_INFO` | ON_SELECT_ITEM_TAGS | `$.message.order.items[*].tags[?(@.descriptor.code == LOAN_INFO)]` | - All elements of $.message.order.items[*].tags[?(@.descriptor.code == LOAN_INFO)].list[*].descriptor.code must be in ["INTEREST_RATE", "TERM", "INTEREST_RATE_TYPE", "APPLICATION_FEE", "FORECLOSURE_FEE", "INTEREST_RATE_CONVERSION_CHARGE", "DELAY_PENALTY_FEE", "OTHER_PENALTY_FEE", "ANNUAL_PERCENTAGE_RATE", "REPAYMENT_FREQUENCY", "NUMBER_OF_INSTALLMENTS", "TNC_LINK", "COOL_OFF_PERIOD", "INSTALLMENT_AMOUNT", "KFS_LINK", "INVOICE_NUMBER", "WORKING_CAPITAL_LIMIT", "INSURANCE_CHARGES", "RATE_ANNUALISED_PENAL_CHARGES", "KYC_MODE", "CO_APPLICANT"] | — | 30000 |
1041
+ | 70 | LF | `REQUIRED_LOAN_OFFER` | ON_SELECT_ITEM_TAGS | `$.message.order.items[*].tags[?(@.descriptor.code == LOAN_OFFER)]` | - All elements of $.message.order.items[*].tags[?(@.descriptor.code == LOAN_OFFER)].list[*].descriptor.code must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT", "PROCESSING_FEE", "OTHER_UPFRONT_CHARGES", "INSURANCE_CHARGES", "NET_DISBURSED_AMOUNT", "OTHER_CHARGES", "OFFER_VALIDITY", "WORKING_CAPITAL_LIMIT", "CURRENT_UTLIZATION"] | — | 30000 |
1042
+ | 71 | GRP | **ON_INIT_FULFILLMENTS** | — | — | Sub-tests: REQUIRED_FULFILLMENT_ITEMS, VALID_FULFILLMENT_ITEMS, VALID_FULFILLMENT_TAGS | — | — |
1043
+ | 72 | GRP | **REQUIRED_FULFILLMENT_ITEMS** | ON_INIT_FULFILLMENTS | — | Sub-tests: REQUIRED_FULFILLMENT_ID, REQUIRED_FULFILLMENT_TYPE, REQUIRED_CREDS, REQUIRED_CUSTOMER_NAME, REQUIRED_CUSTOMER_CONTACT_DETAILS, REQUIRED_CUSTOMER_ORG_DETAILS, REQUIRED_FULFILLMENT_STATE_CODE | — | — |
1044
+ | 73 | LF | `REQUIRED_FULFILLMENT_ID` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].id must be present in the payload | — | 30000 |
1045
+ | 74 | LF | `REQUIRED_FULFILLMENT_TYPE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].type must be present in the payload | — | 30000 |
1046
+ | 75 | GRP | **REQUIRED_CREDS** | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_CREDS_ID, REQUIRED_CUSTOMER_CREDS_TYPE | - $.message.order.fulfillments[*].customer.person.creds[*].id must **not** be present in the payload | — |
1047
+ | 76 | LF | `REQUIRED_CUSTOMER_CREDS_ID` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
1048
+ | 77 | LF | `REQUIRED_CUSTOMER_CREDS_TYPE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
1049
+ | 78 | LF | `REQUIRED_CUSTOMER_NAME` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].customer.person.name must be present in the payload | - $.message.order.fulfillments[*].customer.person.name must **not** be present in the payload | 30000 |
1050
+ | 79 | GRP | **REQUIRED_CUSTOMER_CONTACT_DETAILS** | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_CONTACT_NUMBER, REQUIRED_CUSTOMER_CONTACT_EMAIL | - $.message.order.fulfillments[*].customer.contact.phone must **not** be present in the payload | — |
1051
+ | 80 | LF | `REQUIRED_CUSTOMER_CONTACT_NUMBER` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_CONTACT_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.contact.phone must be present in the payload | — | 30000 |
1052
+ | 81 | LF | `REQUIRED_CUSTOMER_CONTACT_EMAIL` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_CONTACT_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.contact.phone must be present in the payload | — | 30000 |
1053
+ | 82 | GRP | **REQUIRED_CUSTOMER_ORG_DETAILS** | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | Sub-tests: REQUIRED_ORG_ADDRESS, REQUIRED_ORG_STATE, REQUIRED_ORG_CITY, REQUIRED_ORG_CODE, REQUIRED_ORG_CONTACT_PHONE, REQUIRED_ORG_CONTACT_EMAIL | - $.message.order.fulfillments[*].customer.organization.address must **not** be present in the payload | — |
1054
+ | 83 | LF | `REQUIRED_ORG_ADDRESS` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
1055
+ | 84 | LF | `REQUIRED_ORG_STATE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
1056
+ | 85 | LF | `REQUIRED_ORG_CITY` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
1057
+ | 86 | LF | `REQUIRED_ORG_CODE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
1058
+ | 87 | LF | `REQUIRED_ORG_CONTACT_PHONE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
1059
+ | 88 | LF | `REQUIRED_ORG_CONTACT_EMAIL` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
1060
+ | 89 | LF | `REQUIRED_FULFILLMENT_STATE_CODE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].state.descriptor.code must be present in the payload | — | 30000 |
1061
+ | 90 | GRP | **VALID_FULFILLMENT_ITEMS** | ON_INIT_FULFILLMENTS | — | Sub-tests: VALID_FULFILLMENT_TYPE, VALID_FULFILLMENT_STATE_CODE | — | — |
1062
+ | 91 | LF | `VALID_FULFILLMENT_TYPE` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_ITEMS | — | - All elements of $.message.order.fulfillments[*].type must be in ["ONLINE", "SEMI_ONLINE"] | - $.message.order.fulfillments[*].type must **not** be present in the payload | 30000 |
1063
+ | 92 | LF | `VALID_FULFILLMENT_STATE_CODE` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_ITEMS | — | - All elements of $.message.order.fulfillments[*].state.descriptor.code must be in ["INITIATED", "SANCTIONED", "DISBURSED"] | - $.message.order.fulfillments[*].state.descriptor.code must **not** be present in the payload | 30000 |
1064
+ | 93 | GRP | **VALID_FULFILLMENT_TAGS** | ON_INIT_FULFILLMENTS | — | Sub-tests: REQUIRED_FULFILLMENT_TAGS, REQUIRED_CHECKLISTS_ITEM | — | — |
1065
+ | 94 | LF | `REQUIRED_FULFILLMENT_TAGS` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_TAGS | — | - All elements of $.message.order.fulfillments[*].tags[*].descriptor.code must be in ["CHECKLISTS"] | - $.message.order.fulfillments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
1066
+ | 95 | LF | `REQUIRED_CHECKLISTS_ITEM` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_TAGS | `$.message.order.fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)]` | - All elements of $.message.order.fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)].list[*].descriptor.code must be in ["PERSONAL_INFORMATION", "CONSENT_APPROVAL", "SET_LOAN_AMOUNT", "KYC", "KYC_OFFLINE", "EMANDATE", "LOAN_AGREEMENT", "ACCOUNT_MONITORING", "ORGANIZATION_INFORMATION", "INDIVIDUAL_KYC", "ENTITY_KYC", "MERCHANT_AND_PRDOUCT_DETAILS", "SET_DOWN_PAYMENT", "ESIGN", "BANK_STATEMENT_AND_GST_RETURNS", "BUSINESS_AND_FINANCIAL_DOCUMENTS", "BUSINESS_KYC", "PERSONAL_DISCUSSION", "PHYSICAL_VERIFICATION", "ENACH", "PROCESSING_FEE", "MANUAL_VERIFICATION", "LIEN_MARKING", "PERSONAL_INFORMATION_TERM", "PERSONAL_INFORMATION_LAMF", "PERSONAL_INFORMATION_TERM_GST"] | — | 30000 |
1067
+ | 96 | GRP | **ON_SELECT_QUOTE** | — | — | Sub-tests: REQUIRED_COMMON_QUOTE_ITEMS, VALID_COMMON_QUOTE_ITEMS | - $.message.order.quote.id must **not** be present in the payload | — |
1068
+ | 97 | GRP | **REQUIRED_COMMON_QUOTE_ITEMS** | ON_SELECT_QUOTE | — | Sub-tests: REQUIRED_QUOTE_ID, REQUIRED_QUOTE_PRICE_VALUE, REQUIRED_QUOTE_PRICE_CURRENCY, REQUIRED_BREAKUP_TITLE, REQUIRED_BREAKUP_PRICE_VALUE, REQUIRED_BREAKUP_PRICE_CURRENCY, REQUIRED_QUOTE_TTL | — | — |
1069
+ | 98 | LF | `REQUIRED_QUOTE_ID` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.id must be present in the payload | — | 30000 |
1070
+ | 99 | LF | `REQUIRED_QUOTE_PRICE_VALUE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.price.value must be present in the payload | — | 30000 |
1071
+ | 100 | LF | `REQUIRED_QUOTE_PRICE_CURRENCY` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.price.currency must be present in the payload | — | 30000 |
1072
+ | 101 | LF | `REQUIRED_BREAKUP_TITLE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].title must be present in the payload | — | 30000 |
1073
+ | 102 | LF | `REQUIRED_BREAKUP_PRICE_VALUE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].price.value must be present in the payload | — | 30000 |
1074
+ | 103 | LF | `REQUIRED_BREAKUP_PRICE_CURRENCY` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].price.currency must be present in the payload | — | 30000 |
1075
+ | 104 | LF | `REQUIRED_QUOTE_TTL` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.ttl must be present in the payload | — | 30000 |
1076
+ | 105 | GRP | **VALID_COMMON_QUOTE_ITEMS** | ON_SELECT_QUOTE | — | Sub-tests: VALID_ENUM_BREAKUP_PRICE_CURRENCY, VALID_ENUM_BREAKUP_TITLE | — | — |
1077
+ | 106 | LF | `VALID_ENUM_BREAKUP_PRICE_CURRENCY` | ON_SELECT_QUOTE > VALID_COMMON_QUOTE_ITEMS | — | - At least one of $.message.order.quote.breakup[*].price.currency must be in ["INR"] | — | 30000 |
1078
+ | 107 | LF | `VALID_ENUM_BREAKUP_TITLE` | ON_SELECT_QUOTE > VALID_COMMON_QUOTE_ITEMS | — | - At least one of $.message.order.quote.breakup[*].title must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT", "PROCESSING_FEE", "OTHER_UPFRONT_CHARGES", "INSURANCE_CHARGES", "NET_DISBURSED_AMOUNT", "OTHER_CHARGES", "WORKING_CAPITAL_LIMIT", "CURRENT_UTLIZATION"] | — | 30000 |
1079
+ | 108 | GRP | **ON_INIT_PAYMENTS** | — | — | Sub-tests: REQUIRED_PAYMENT_ITEMS | — | — |
1080
+ | 109 | GRP | **REQUIRED_PAYMENT_ITEMS** | ON_INIT_PAYMENTS | — | Sub-tests: REQUIRED_PAYMENT_ITEMS, REQUIRED_PAYMENT_ID, REQUIRED_PAYMENT_STATUS, REQUIRED_PAYMENT_COLLECTED_BY, REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER, REQUIRED_PAYMENT_BANK_CODE, REQUIRED_PAYMENT_LABEL, REQUIRED_PARAMS_DETAILS, REQUIRED_PAYMENT_URL, REQUIRED_TIME_RANGE | — | — |
1081
+ | 110 | LF | `REQUIRED_PAYMENT_ITEMS` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].type must be present in the payload | — | 30000 |
1082
+ | 111 | LF | `REQUIRED_PAYMENT_ID` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].id must be present in the payload | — | 30000 |
1083
+ | 112 | LF | `REQUIRED_PAYMENT_STATUS` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].status must be present in the payload | — | 30000 |
1084
+ | 113 | LF | `REQUIRED_PAYMENT_COLLECTED_BY` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].collected_by must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
1085
+ | 114 | LF | `REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_account_number must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
1086
+ | 115 | LF | `REQUIRED_PAYMENT_BANK_CODE` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_code must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
1087
+ | 116 | LF | `REQUIRED_PAYMENT_LABEL` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].time.label must be present in the payload | — | 30000 |
1088
+ | 117 | GRP | **REQUIRED_PARAMS_DETAILS** | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_TRANSACTION_ID, REQUIRED_PAYMENTS_AMOUNT, REQUIRED_PAYMENTS_CURRENCY | - Not all elements of $.message.order.payments[*].status may be in ["PAID"] | — |
1089
+ | 118 | LF | `REQUIRED_TRANSACTION_ID` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PARAMS_DETAILS | — | - $.message.order.payments[*].params.transaction_id must be present in the payload | — | 30000 |
1090
+ | 119 | LF | `REQUIRED_PAYMENTS_AMOUNT` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PARAMS_DETAILS | — | - $.message.order.payments[*].params.amount must be present in the payload | — | 30000 |
1091
+ | 120 | LF | `REQUIRED_PAYMENTS_CURRENCY` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PARAMS_DETAILS | — | - $.message.order.payments[*].params.currency must be present in the payload | — | 30000 |
1092
+ | 121 | GRP | **REQUIRED_PAYMENT_URL** | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_TIME_DURATION | - $.message.order.payments[*].url must **not** be present in the payload | — |
1093
+ | 122 | LF | `REQUIRED_TIME_DURATION` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PAYMENT_URL | — | - $.message.order.payments[*].time.duration must be present in the payload | — | 30000 |
1094
+ | 123 | GRP | **REQUIRED_TIME_RANGE** | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_TIME_START_RANGE, REQUIRED_TIME_END_RANGE | - Not all elements of $.message.order.payments[*].time.label may be in ["INSTALLMENT"] | — |
1095
+ | 124 | LF | `REQUIRED_TIME_START_RANGE` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_TIME_RANGE | — | - $.message.order.payments[*].time.range.start must be present in the payload | — | 30000 |
1096
+ | 125 | LF | `REQUIRED_TIME_END_RANGE` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_TIME_RANGE | — | - $.message.order.payments[*].time.range.end must be present in the payload | — | 30000 |
1097
+ | 126 | GRP | **ON_INIT_PAYMENT_TAGS** | — | — | Sub-tests: VALID_PAYMENT_TAGS, REQUIRED_ACCOUNT_DETAILS, REQUIRED_BREAKUP_DETAILS | — | — |
1098
+ | 127 | LF | `VALID_PAYMENT_TAGS` | ON_INIT_PAYMENT_TAGS | — | - All elements of $.message.order.payments[*].tags[*].descriptor.code must be in ["ACCOUNT_DETAILS", "BREAKUP"] | - $.message.order.payments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
1099
+ | 128 | LF | `REQUIRED_ACCOUNT_DETAILS` | ON_INIT_PAYMENT_TAGS | `$.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)]` | - All elements of $.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)].list[*].descriptor.code must be in ["ACCOUNT_TYPE", "ACCOUNT_HOLDER_NAME"] | — | 30000 |
1100
+ | 129 | LF | `REQUIRED_BREAKUP_DETAILS` | ON_INIT_PAYMENT_TAGS | `$.message.order.payments[*].tags[?(@.descriptor.code == BREAKUP)]` | - All elements of $.message.order.payments[*].tags[?(@.descriptor.code == BREAKUP)].list[*].descriptor.code must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT"] | — | 30000 |
1101
+ | 130 | GRP | **ON_INIT_CANCELLATION_TERMS** | — | — | Sub-tests: EXTERNAL_REF_TERMS, FULFILLMENT_STATE_TERMS | — | — |
1102
+ | 131 | GRP | **EXTERNAL_REF_TERMS** | ON_INIT_CANCELLATION_TERMS | — | Sub-tests: REQUIRED_EXTERNAL_REF_MIME_TYPE, REQUIRED_EXTERNAL_REF_URL | - $.message.order.cancellation_terms[*].external_ref.mimetype must **not** be present in the payload | — |
1103
+ | 132 | LF | `REQUIRED_EXTERNAL_REF_MIME_TYPE` | ON_INIT_CANCELLATION_TERMS > EXTERNAL_REF_TERMS | — | - $.message.order.cancellation_terms[*].external_ref.mimetype must be present in the payload | — | 30000 |
1104
+ | 133 | LF | `REQUIRED_EXTERNAL_REF_URL` | ON_INIT_CANCELLATION_TERMS > EXTERNAL_REF_TERMS | — | - $.message.order.cancellation_terms[*].external_ref.url must be present in the payload | — | 30000 |
1105
+ | 134 | GRP | **FULFILLMENT_STATE_TERMS** | ON_INIT_CANCELLATION_TERMS | — | Sub-tests: REQUIRED_FULFILLMENT_STATE_CODE, REQUIRED_CANCELLATION_FEE | - $.message.order.cancellation_terms[*].fulfillment_state.descriptor.code must **not** be present in the payload | — |
1106
+ | 135 | LF | `REQUIRED_FULFILLMENT_STATE_CODE` | ON_INIT_CANCELLATION_TERMS > FULFILLMENT_STATE_TERMS | — | - $.message.order.cancellation_terms[*].fulfillment_state.descriptor.code must be present in the payload | — | 30000 |
1107
+ | 136 | LF | `REQUIRED_CANCELLATION_FEE` | ON_INIT_CANCELLATION_TERMS > FULFILLMENT_STATE_TERMS | — | - $.message.order.cancellation_terms[*].cancellation_fee.percentage must be present in the payload | — | 30000 |
1108
+ | 137 | GRP | **CONFIRM_TAGS** | — | — | Sub-tests: REQUIRED_PAYMENT_TAGS, REQUIRED_BAP_TERMS, REQUIRED_BPP_TERMS | — | — |
1109
+ | 138 | LF | `REQUIRED_PAYMENT_TAGS` | CONFIRM_TAGS | — | - All elements of $.message.order.tags[*].descriptor.code must be in ["BAP_TERMS", "BPP_TERMS"] | - $.message.order.tags[*].descriptor.code must **not** be present in the payload | 30000 |
1110
+ | 139 | LF | `REQUIRED_BAP_TERMS` | CONFIRM_TAGS | `$.message.order.tags[?(@.descriptor.code == BAP_TERMS)]` | - All elements of $.message.order.tags[?(@.descriptor.code == BAP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
1111
+ | 140 | LF | `REQUIRED_BPP_TERMS` | CONFIRM_TAGS | `$.message.order.tags[?(@.descriptor.code == BPP_TERMS)]` | - All elements of $.message.order.tags[?(@.descriptor.code == BPP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
1112
+ | 141 | GRP | **REQUIRED_ORDER_DOCUMENTS** | — | — | Sub-tests: REQUIRED_DOCUMENT_CODE, REQUIRED_DOCUMENT_NAME, REQUIRED_DOCUMENT_TYPE, REQUIRED_DOCUMENT_URL, VALID_DESCRIPTOR_CODE | — | — |
1113
+ | 142 | LF | `REQUIRED_DOCUMENT_CODE` | REQUIRED_ORDER_DOCUMENTS | — | - $.message.order.documents[*].descriptor.code must be present in the payload | — | 30000 |
1114
+ | 143 | LF | `REQUIRED_DOCUMENT_NAME` | REQUIRED_ORDER_DOCUMENTS | — | - $.message.order.documents[*].descriptor.name must be present in the payload | — | 30000 |
1115
+ | 144 | LF | `REQUIRED_DOCUMENT_TYPE` | REQUIRED_ORDER_DOCUMENTS | — | - $.message.order.documents[*].mime_type must be present in the payload | — | 30000 |
1116
+ | 145 | LF | `REQUIRED_DOCUMENT_URL` | REQUIRED_ORDER_DOCUMENTS | — | - $.message.order.documents[*].url must be present in the payload | — | 30000 |
1117
+ | 146 | LF | `VALID_DESCRIPTOR_CODE` | REQUIRED_ORDER_DOCUMENTS | — | - All elements of $.message.order.documents[*].descriptor.code must be in ["LOAN_AGREEMENT", "LOAN_CANCELLATION"] | — | 30000 |
1118
+
1119
+
1120
+ ---
1121
+ action: status
1122
+ codeName: status
1123
+ numTests: 26
1124
+ generated: 2026-03-10
1125
+ ---
1126
+
1127
+ # status — `status` Validations (Table View)
1128
+
1129
+ **22** leaf validation rule(s) applied to `status` in the **status** flow.
1130
+ Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
1131
+
1132
+ ---
1133
+ | # | Type | Test Name | Group | Description | Skip If | Error Code |
1134
+ | ---: | :---: | :--- | :--- | :--- | :--- | :---: |
1135
+ | 1 | GRP | **STATUS_CONTEXT** | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
1136
+ | 2 | GRP | **CONTEXT_REQUIRED** | STATUS_CONTEXT | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
1137
+ | 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | STATUS_CONTEXT > CONTEXT_REQUIRED | - $.context.location.country.code must be present in the payload | — | 30000 |
1138
+ | 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | STATUS_CONTEXT > CONTEXT_REQUIRED | - $.context.location.city.code must be present in the payload | — | 30000 |
1139
+ | 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | STATUS_CONTEXT > CONTEXT_REQUIRED | - $.context.domain must be present in the payload | — | 30000 |
1140
+ | 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | STATUS_CONTEXT > CONTEXT_REQUIRED | - $.context.timestamp must be present in the payload | — | 30000 |
1141
+ | 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | STATUS_CONTEXT > CONTEXT_REQUIRED | - $.context.bap_id must be present in the payload | — | 30000 |
1142
+ | 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | STATUS_CONTEXT > CONTEXT_REQUIRED | - $.context.bap_uri must be present in the payload | — | 30000 |
1143
+ | 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | STATUS_CONTEXT > CONTEXT_REQUIRED | - $.context.transaction_id must be present in the payload | — | 30000 |
1144
+ | 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | STATUS_CONTEXT > CONTEXT_REQUIRED | - $.context.message_id must be present in the payload | — | 30000 |
1145
+ | 11 | LF | `REQUIRED_CONTEXT_VERSION` | STATUS_CONTEXT > CONTEXT_REQUIRED | - $.context.version must be present in the payload | — | 30000 |
1146
+ | 12 | LF | `REQUIRED_CONTEXT_TTL` | STATUS_CONTEXT > CONTEXT_REQUIRED | - $.context.ttl must be present in the payload | — | 30000 |
1147
+ | 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | STATUS_CONTEXT > CONTEXT_REQUIRED | - $.context.bpp_id must be present in the payload | — | 30000 |
1148
+ | 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | STATUS_CONTEXT > CONTEXT_REQUIRED | - $.context.bpp_uri must be present in the payload | — | 30000 |
1149
+ | 15 | GRP | **CONTEXT_ENUM** | STATUS_CONTEXT | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
1150
+ | 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | STATUS_CONTEXT > CONTEXT_ENUM | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
1151
+ | 17 | LF | `VALID_CONTEXT_DOMAIN` | STATUS_CONTEXT > CONTEXT_ENUM | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
1152
+ | 18 | GRP | **CONTEXT_REGEX** | STATUS_CONTEXT | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
1153
+ | 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | STATUS_CONTEXT > CONTEXT_REGEX | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
1154
+ | 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | STATUS_CONTEXT > CONTEXT_REGEX | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
1155
+ | 21 | LF | `REGEX_CONTEXT_BAP_ID` | STATUS_CONTEXT > CONTEXT_REGEX | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
1156
+ | 22 | LF | `REGEX_CONTEXT_BAP_URI` | STATUS_CONTEXT > CONTEXT_REGEX | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
1157
+ | 23 | LF | `REQUIRED_CONTEXT_TTL` | STATUS_CONTEXT > CONTEXT_REGEX | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
1158
+ | 24 | LF | `REGEX_CONTEXT_BPP_ID` | STATUS_CONTEXT > CONTEXT_REGEX | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bpp_id must **not** be present in the payload | 30000 |
1159
+ | 25 | LF | `REGEX_CONTEXT_BPP_URI` | STATUS_CONTEXT > CONTEXT_REGEX | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bpp_uri must **not** be present in the payload | 30000 |
1160
+ | 26 | LF | `REQUIRED_ORDER_ID` | — | - $.message.order_id must be present in the payload | — | 30000 |
1161
+
1162
+
1163
+ ---
1164
+ action: on_status
1165
+ codeName: on_status
1166
+ numTests: 135
1167
+ generated: 2026-03-10
1168
+ ---
1169
+
1170
+ # on_status — `on_status` Validations (Table View)
1171
+
1172
+ **101** leaf validation rule(s) applied to `on_status` in the **on_status** flow.
1173
+ Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
1174
+
1175
+ ---
1176
+ | # | Type | Test Name | Group | Scope | Description | Skip If | Error Code |
1177
+ | ---: | :---: | :--- | :--- | :--- | :--- | :--- | :---: |
1178
+ | 1 | GRP | **ON_STATUS_CONTEXT** | — | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
1179
+ | 2 | GRP | **CONTEXT_REQUIRED** | ON_STATUS_CONTEXT | — | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
1180
+ | 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | ON_STATUS_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.country.code must be present in the payload | — | 30000 |
1181
+ | 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | ON_STATUS_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.city.code must be present in the payload | — | 30000 |
1182
+ | 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | ON_STATUS_CONTEXT > CONTEXT_REQUIRED | — | - $.context.domain must be present in the payload | — | 30000 |
1183
+ | 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | ON_STATUS_CONTEXT > CONTEXT_REQUIRED | — | - $.context.timestamp must be present in the payload | — | 30000 |
1184
+ | 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | ON_STATUS_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_id must be present in the payload | — | 30000 |
1185
+ | 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | ON_STATUS_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_uri must be present in the payload | — | 30000 |
1186
+ | 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | ON_STATUS_CONTEXT > CONTEXT_REQUIRED | — | - $.context.transaction_id must be present in the payload | — | 30000 |
1187
+ | 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | ON_STATUS_CONTEXT > CONTEXT_REQUIRED | — | - $.context.message_id must be present in the payload | — | 30000 |
1188
+ | 11 | LF | `REQUIRED_CONTEXT_VERSION` | ON_STATUS_CONTEXT > CONTEXT_REQUIRED | — | - $.context.version must be present in the payload | — | 30000 |
1189
+ | 12 | LF | `REQUIRED_CONTEXT_TTL` | ON_STATUS_CONTEXT > CONTEXT_REQUIRED | — | - $.context.ttl must be present in the payload | — | 30000 |
1190
+ | 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | ON_STATUS_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_id must be present in the payload | — | 30000 |
1191
+ | 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | ON_STATUS_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_uri must be present in the payload | — | 30000 |
1192
+ | 15 | GRP | **CONTEXT_ENUM** | ON_STATUS_CONTEXT | — | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
1193
+ | 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | ON_STATUS_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
1194
+ | 17 | LF | `VALID_CONTEXT_DOMAIN` | ON_STATUS_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
1195
+ | 18 | GRP | **CONTEXT_REGEX** | ON_STATUS_CONTEXT | — | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
1196
+ | 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | ON_STATUS_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
1197
+ | 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | ON_STATUS_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
1198
+ | 21 | LF | `REGEX_CONTEXT_BAP_ID` | ON_STATUS_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
1199
+ | 22 | LF | `REGEX_CONTEXT_BAP_URI` | ON_STATUS_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
1200
+ | 23 | LF | `REQUIRED_CONTEXT_TTL` | ON_STATUS_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
1201
+ | 24 | LF | `REGEX_CONTEXT_BPP_ID` | ON_STATUS_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bpp_id must **not** be present in the payload | 30000 |
1202
+ | 25 | LF | `REGEX_CONTEXT_BPP_URI` | ON_STATUS_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bpp_uri must **not** be present in the payload | 30000 |
1203
+ | 26 | GRP | **REQUIRED_ORDER_ITEMS** | — | — | Sub-tests: REQUIRED_ORDER_ID, REQUIRED_ORDER_STATUS, REQUIRED_ORDER_CREATED_AT, REQUIRED_ORDER_UPDATED_AT, CREATED_AT_UPDATED_AT_EQUALITY | - $.message.order.id must **not** be present in the payload | — |
1204
+ | 27 | LF | `REQUIRED_ORDER_ID` | REQUIRED_ORDER_ITEMS | — | - $.message.order.id must be present in the payload | — | 30000 |
1205
+ | 28 | LF | `REQUIRED_ORDER_STATUS` | REQUIRED_ORDER_ITEMS | — | - $.message.order.status must be present in the payload | — | 30000 |
1206
+ | 29 | LF | `REQUIRED_ORDER_CREATED_AT` | REQUIRED_ORDER_ITEMS | — | - $.message.order.created_at must be present in the payload | — | 30000 |
1207
+ | 30 | LF | `REQUIRED_ORDER_UPDATED_AT` | REQUIRED_ORDER_ITEMS | — | - $.message.order.created_at must be present in the payload | — | 30000 |
1208
+ | 31 | LF | `CREATED_AT_UPDATED_AT_EQUALITY` | REQUIRED_ORDER_ITEMS | — | - $.message.order.created_at must equal $.message.order.updated_at | — | 30000 |
1209
+ | 32 | GRP | **ON_SELECT_PROVIDER** | — | — | Sub-tests: ON_SELECT_PROVIDER_ID, ON_SELECT_PROVIDER_NAME, ON_SELECT_PROVIDER_IMAGES_URL, ON_SELECT_PROVIDER_IMAGES_SIZE_TYPE | - $.message.order.provider.id must **not** be present in the payload | — |
1210
+ | 33 | LF | `ON_SELECT_PROVIDER_ID` | ON_SELECT_PROVIDER | — | - $.message.order.provider.id must be present in the payload | — | 30000 |
1211
+ | 34 | LF | `ON_SELECT_PROVIDER_NAME` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.name must be present in the payload | — | 30000 |
1212
+ | 35 | LF | `ON_SELECT_PROVIDER_IMAGES_URL` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.images[*].url must be present in the payload | — | 30000 |
1213
+ | 36 | LF | `ON_SELECT_PROVIDER_IMAGES_SIZE_TYPE` | ON_SELECT_PROVIDER | — | - $.message.order.provider.descriptor.images[*].size_type must be present in the payload | — | 30000 |
1214
+ | 37 | GRP | **ON_SELECT_PROVIDER_TAGS** | — | — | Sub-tests: VALID_PROVODER_TAGS, REQUIRED_CONTACT_INFO, REQUIRED_LSP_INFO | — | — |
1215
+ | 38 | LF | `VALID_PROVODER_TAGS` | ON_SELECT_PROVIDER_TAGS | — | - All elements of $.message.order.provider.tags[*].descriptor.code must be in ["CONTACT_INFO", "LSP_INFO"] | - $.message.order.provider.tags[*].descriptor.code must **not** be present in the payload | 30000 |
1216
+ | 39 | LF | `REQUIRED_CONTACT_INFO` | ON_SELECT_PROVIDER_TAGS | `$.message.order.provider.tags[?(@.descriptor.code == CONTACT_INFO)]` | - All elements of $.message.order.provider.tags[?(@.descriptor.code == CONTACT_INFO)].list[*].descriptor.code must be in ["GRO_NAME", "GRO_EMAIL", "GRO_CONTACT_NUMBER", "CUSTOMER_SUPPORT_LINK", "CUSTOMER_SUPPORT_CONTACT_NUMBER", "CUSTOMER_SUPPORT_CONTACT_NUMBER"] | — | 30000 |
1217
+ | 40 | LF | `REQUIRED_LSP_INFO` | ON_SELECT_PROVIDER_TAGS | `$.message.order.provider.tags[?(@.descriptor.code == LSP_INFO)]` | - All elements of $.message.order.provider.tags[?(@.descriptor.code == LSP_INFO)].list[*].descriptor.code must be in ["LSP_NAME", "LSP_EMAIL", "LSP_CONTACT_NUMBER", "LSP_ADDRESS"] | — | 30000 |
1218
+ | 41 | GRP | **ON_STATUS_ITEMS** | — | — | Sub-tests: REQUIRED_ITEMS | — | — |
1219
+ | 42 | GRP | **REQUIRED_ITEMS** | ON_STATUS_ITEMS | — | Sub-tests: REQUIRED_ITEM_ID, REQUIRED_PARENT_ITEM_ID, REQUIRED_ITEM_DESCRIPTOR_CODE, REQUIRED_ITEM_CATEGORY_ID, ON_SEARCH_ITEM_PRICE_CURRENCY, ON_SEARCH_ITEM_PRICE_VALUE, ON_SELECT_ITEM_FULFILLMENT_IDS, REQUIRED_XINPUT_FIELDS | — | — |
1220
+ | 43 | LF | `REQUIRED_ITEM_ID` | ON_STATUS_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].id must be present in the payload | — | 30000 |
1221
+ | 44 | LF | `REQUIRED_PARENT_ITEM_ID` | ON_STATUS_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].parent_item_id must be present in the payload | — | 30000 |
1222
+ | 45 | LF | `REQUIRED_ITEM_DESCRIPTOR_CODE` | ON_STATUS_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].descriptor.code must be present in the payload | — | 30000 |
1223
+ | 46 | LF | `REQUIRED_ITEM_CATEGORY_ID` | ON_STATUS_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].category_ids[*] must be present in the payload | — | 30000 |
1224
+ | 47 | LF | `ON_SEARCH_ITEM_PRICE_CURRENCY` | ON_STATUS_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].price.currency must be present in the payload | — | 30000 |
1225
+ | 48 | LF | `ON_SEARCH_ITEM_PRICE_VALUE` | ON_STATUS_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].price.value must be present in the payload | — | 30000 |
1226
+ | 49 | LF | `ON_SELECT_ITEM_FULFILLMENT_IDS` | ON_STATUS_ITEMS > REQUIRED_ITEMS | — | - $.message.order.items[*].fulfillment_ids[*] must be present in the payload | — | 30000 |
1227
+ | 50 | GRP | **REQUIRED_XINPUT_FIELDS** | ON_STATUS_ITEMS > REQUIRED_ITEMS | — | Sub-tests: REQUIRED_XINPUT_ITEMS | - $.message.order.items[*].xinput.form_response.submission_id must **not** be present in the payload | — |
1228
+ | 51 | GRP | **REQUIRED_XINPUT_ITEMS** | ON_STATUS_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS | — | Sub-tests: REQUIRED_FORM_ID, REQUIRED_FORM_RESPONSE, REQUIRED_SUBMISSION_ID | — | — |
1229
+ | 52 | LF | `REQUIRED_FORM_ID` | ON_STATUS_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form.id must be present in the payload | — | 30000 |
1230
+ | 53 | GRP | **REQUIRED_FORM_RESPONSE** | ON_STATUS_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | Sub-tests: REQUIRED_FORM_STATUS, REQUIRED_FORM_SUBMISSION_ID | - $.message.order.items[*].xinput.form_response.submission_id must **not** be present in the payload | — |
1231
+ | 54 | LF | `REQUIRED_FORM_STATUS` | ON_STATUS_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS > REQUIRED_FORM_RESPONSE | — | - $.message.order.items[*].xinput.form_response.status must be present in the payload | — | 30000 |
1232
+ | 55 | LF | `REQUIRED_FORM_SUBMISSION_ID` | ON_STATUS_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS > REQUIRED_FORM_RESPONSE | — | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | — | 30000 |
1233
+ | 56 | LF | `REQUIRED_SUBMISSION_ID` | ON_STATUS_ITEMS > REQUIRED_ITEMS > REQUIRED_XINPUT_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must **not** be present in the payload | 30000 |
1234
+ | 57 | GRP | **ON_SELECT_ITEM_TAGS** | — | — | Sub-tests: REQUIRED_LOAN_INFO, REQUIRED_LOAN_OFFER | **All of the following must be true:** - $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload - Not all elements of $.message.order.items[*].tags[*].descriptor.code may be in ["LOAN_INFO", "LOAN_OFFER"] | — |
1235
+ | 58 | LF | `REQUIRED_LOAN_INFO` | ON_SELECT_ITEM_TAGS | `$.message.order.items[*].tags[?(@.descriptor.code == LOAN_INFO)]` | - All elements of $.message.order.items[*].tags[?(@.descriptor.code == LOAN_INFO)].list[*].descriptor.code must be in ["INTEREST_RATE", "TERM", "INTEREST_RATE_TYPE", "APPLICATION_FEE", "FORECLOSURE_FEE", "INTEREST_RATE_CONVERSION_CHARGE", "DELAY_PENALTY_FEE", "OTHER_PENALTY_FEE", "ANNUAL_PERCENTAGE_RATE", "REPAYMENT_FREQUENCY", "NUMBER_OF_INSTALLMENTS", "TNC_LINK", "COOL_OFF_PERIOD", "INSTALLMENT_AMOUNT", "KFS_LINK", "INVOICE_NUMBER", "WORKING_CAPITAL_LIMIT", "INSURANCE_CHARGES", "RATE_ANNUALISED_PENAL_CHARGES", "KYC_MODE", "CO_APPLICANT"] | — | 30000 |
1236
+ | 59 | LF | `REQUIRED_LOAN_OFFER` | ON_SELECT_ITEM_TAGS | `$.message.order.items[*].tags[?(@.descriptor.code == LOAN_OFFER)]` | - All elements of $.message.order.items[*].tags[?(@.descriptor.code == LOAN_OFFER)].list[*].descriptor.code must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT", "PROCESSING_FEE", "OTHER_UPFRONT_CHARGES", "INSURANCE_CHARGES", "NET_DISBURSED_AMOUNT", "OTHER_CHARGES", "OFFER_VALIDITY", "WORKING_CAPITAL_LIMIT", "CURRENT_UTLIZATION"] | — | 30000 |
1237
+ | 60 | GRP | **ON_INIT_FULFILLMENTS** | — | — | Sub-tests: REQUIRED_FULFILLMENT_ITEMS, VALID_FULFILLMENT_ITEMS, VALID_FULFILLMENT_TAGS | — | — |
1238
+ | 61 | GRP | **REQUIRED_FULFILLMENT_ITEMS** | ON_INIT_FULFILLMENTS | — | Sub-tests: REQUIRED_FULFILLMENT_ID, REQUIRED_FULFILLMENT_TYPE, REQUIRED_CREDS, REQUIRED_CUSTOMER_NAME, REQUIRED_CUSTOMER_CONTACT_DETAILS, REQUIRED_CUSTOMER_ORG_DETAILS, REQUIRED_FULFILLMENT_STATE_CODE | — | — |
1239
+ | 62 | LF | `REQUIRED_FULFILLMENT_ID` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].id must be present in the payload | — | 30000 |
1240
+ | 63 | LF | `REQUIRED_FULFILLMENT_TYPE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].type must be present in the payload | — | 30000 |
1241
+ | 64 | GRP | **REQUIRED_CREDS** | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_CREDS_ID, REQUIRED_CUSTOMER_CREDS_TYPE | - $.message.order.fulfillments[*].customer.person.creds[*].id must **not** be present in the payload | — |
1242
+ | 65 | LF | `REQUIRED_CUSTOMER_CREDS_ID` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
1243
+ | 66 | LF | `REQUIRED_CUSTOMER_CREDS_TYPE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
1244
+ | 67 | LF | `REQUIRED_CUSTOMER_NAME` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].customer.person.name must be present in the payload | - $.message.order.fulfillments[*].customer.person.name must **not** be present in the payload | 30000 |
1245
+ | 68 | GRP | **REQUIRED_CUSTOMER_CONTACT_DETAILS** | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_CONTACT_NUMBER, REQUIRED_CUSTOMER_CONTACT_EMAIL | - $.message.order.fulfillments[*].customer.contact.phone must **not** be present in the payload | — |
1246
+ | 69 | LF | `REQUIRED_CUSTOMER_CONTACT_NUMBER` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_CONTACT_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.contact.phone must be present in the payload | — | 30000 |
1247
+ | 70 | LF | `REQUIRED_CUSTOMER_CONTACT_EMAIL` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_CONTACT_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.contact.phone must be present in the payload | — | 30000 |
1248
+ | 71 | GRP | **REQUIRED_CUSTOMER_ORG_DETAILS** | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | Sub-tests: REQUIRED_ORG_ADDRESS, REQUIRED_ORG_STATE, REQUIRED_ORG_CITY, REQUIRED_ORG_CODE, REQUIRED_ORG_CONTACT_PHONE, REQUIRED_ORG_CONTACT_EMAIL | - $.message.order.fulfillments[*].customer.organization.address must **not** be present in the payload | — |
1249
+ | 72 | LF | `REQUIRED_ORG_ADDRESS` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
1250
+ | 73 | LF | `REQUIRED_ORG_STATE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
1251
+ | 74 | LF | `REQUIRED_ORG_CITY` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
1252
+ | 75 | LF | `REQUIRED_ORG_CODE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
1253
+ | 76 | LF | `REQUIRED_ORG_CONTACT_PHONE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
1254
+ | 77 | LF | `REQUIRED_ORG_CONTACT_EMAIL` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS > REQUIRED_CUSTOMER_ORG_DETAILS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.organization.address must be present in the payload | — | 30000 |
1255
+ | 78 | LF | `REQUIRED_FULFILLMENT_STATE_CODE` | ON_INIT_FULFILLMENTS > REQUIRED_FULFILLMENT_ITEMS | — | - $.message.order.fulfillments[*].state.descriptor.code must be present in the payload | — | 30000 |
1256
+ | 79 | GRP | **VALID_FULFILLMENT_ITEMS** | ON_INIT_FULFILLMENTS | — | Sub-tests: VALID_FULFILLMENT_TYPE, VALID_FULFILLMENT_STATE_CODE | — | — |
1257
+ | 80 | LF | `VALID_FULFILLMENT_TYPE` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_ITEMS | — | - All elements of $.message.order.fulfillments[*].type must be in ["ONLINE", "SEMI_ONLINE"] | - $.message.order.fulfillments[*].type must **not** be present in the payload | 30000 |
1258
+ | 81 | LF | `VALID_FULFILLMENT_STATE_CODE` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_ITEMS | — | - All elements of $.message.order.fulfillments[*].state.descriptor.code must be in ["INITIATED", "SANCTIONED", "DISBURSED"] | - $.message.order.fulfillments[*].state.descriptor.code must **not** be present in the payload | 30000 |
1259
+ | 82 | GRP | **VALID_FULFILLMENT_TAGS** | ON_INIT_FULFILLMENTS | — | Sub-tests: REQUIRED_FULFILLMENT_TAGS, REQUIRED_CHECKLISTS_ITEM | — | — |
1260
+ | 83 | LF | `REQUIRED_FULFILLMENT_TAGS` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_TAGS | — | - All elements of $.message.order.fulfillments[*].tags[*].descriptor.code must be in ["CHECKLISTS"] | - $.message.order.fulfillments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
1261
+ | 84 | LF | `REQUIRED_CHECKLISTS_ITEM` | ON_INIT_FULFILLMENTS > VALID_FULFILLMENT_TAGS | `$.message.order.fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)]` | - All elements of $.message.order.fulfillments[*].tags[?(@.descriptor.code == CHECKLISTS)].list[*].descriptor.code must be in ["PERSONAL_INFORMATION", "CONSENT_APPROVAL", "SET_LOAN_AMOUNT", "KYC", "KYC_OFFLINE", "EMANDATE", "LOAN_AGREEMENT", "ACCOUNT_MONITORING", "ORGANIZATION_INFORMATION", "INDIVIDUAL_KYC", "ENTITY_KYC", "MERCHANT_AND_PRDOUCT_DETAILS", "SET_DOWN_PAYMENT", "ESIGN", "BANK_STATEMENT_AND_GST_RETURNS", "BUSINESS_AND_FINANCIAL_DOCUMENTS", "BUSINESS_KYC", "PERSONAL_DISCUSSION", "PHYSICAL_VERIFICATION", "ENACH", "PROCESSING_FEE", "MANUAL_VERIFICATION", "LIEN_MARKING", "PERSONAL_INFORMATION_TERM", "PERSONAL_INFORMATION_LAMF", "PERSONAL_INFORMATION_TERM_GST"] | — | 30000 |
1262
+ | 85 | GRP | **ON_SELECT_QUOTE** | — | — | Sub-tests: REQUIRED_COMMON_QUOTE_ITEMS, VALID_COMMON_QUOTE_ITEMS | - $.message.order.quote.id must **not** be present in the payload | — |
1263
+ | 86 | GRP | **REQUIRED_COMMON_QUOTE_ITEMS** | ON_SELECT_QUOTE | — | Sub-tests: REQUIRED_QUOTE_ID, REQUIRED_QUOTE_PRICE_VALUE, REQUIRED_QUOTE_PRICE_CURRENCY, REQUIRED_BREAKUP_TITLE, REQUIRED_BREAKUP_PRICE_VALUE, REQUIRED_BREAKUP_PRICE_CURRENCY, REQUIRED_QUOTE_TTL | — | — |
1264
+ | 87 | LF | `REQUIRED_QUOTE_ID` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.id must be present in the payload | — | 30000 |
1265
+ | 88 | LF | `REQUIRED_QUOTE_PRICE_VALUE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.price.value must be present in the payload | — | 30000 |
1266
+ | 89 | LF | `REQUIRED_QUOTE_PRICE_CURRENCY` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.price.currency must be present in the payload | — | 30000 |
1267
+ | 90 | LF | `REQUIRED_BREAKUP_TITLE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].title must be present in the payload | — | 30000 |
1268
+ | 91 | LF | `REQUIRED_BREAKUP_PRICE_VALUE` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].price.value must be present in the payload | — | 30000 |
1269
+ | 92 | LF | `REQUIRED_BREAKUP_PRICE_CURRENCY` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.breakup[*].price.currency must be present in the payload | — | 30000 |
1270
+ | 93 | LF | `REQUIRED_QUOTE_TTL` | ON_SELECT_QUOTE > REQUIRED_COMMON_QUOTE_ITEMS | — | - $.message.order.quote.ttl must be present in the payload | — | 30000 |
1271
+ | 94 | GRP | **VALID_COMMON_QUOTE_ITEMS** | ON_SELECT_QUOTE | — | Sub-tests: VALID_ENUM_BREAKUP_PRICE_CURRENCY, VALID_ENUM_BREAKUP_TITLE | — | — |
1272
+ | 95 | LF | `VALID_ENUM_BREAKUP_PRICE_CURRENCY` | ON_SELECT_QUOTE > VALID_COMMON_QUOTE_ITEMS | — | - At least one of $.message.order.quote.breakup[*].price.currency must be in ["INR"] | — | 30000 |
1273
+ | 96 | LF | `VALID_ENUM_BREAKUP_TITLE` | ON_SELECT_QUOTE > VALID_COMMON_QUOTE_ITEMS | — | - At least one of $.message.order.quote.breakup[*].title must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT", "PROCESSING_FEE", "OTHER_UPFRONT_CHARGES", "INSURANCE_CHARGES", "NET_DISBURSED_AMOUNT", "OTHER_CHARGES", "WORKING_CAPITAL_LIMIT", "CURRENT_UTLIZATION"] | — | 30000 |
1274
+ | 97 | GRP | **ON_INIT_PAYMENTS** | — | — | Sub-tests: REQUIRED_PAYMENT_ITEMS | — | — |
1275
+ | 98 | GRP | **REQUIRED_PAYMENT_ITEMS** | ON_INIT_PAYMENTS | — | Sub-tests: REQUIRED_PAYMENT_ITEMS, REQUIRED_PAYMENT_ID, REQUIRED_PAYMENT_STATUS, REQUIRED_PAYMENT_COLLECTED_BY, REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER, REQUIRED_PAYMENT_BANK_CODE, REQUIRED_PAYMENT_LABEL, REQUIRED_PARAMS_DETAILS, REQUIRED_PAYMENT_URL, REQUIRED_TIME_RANGE | — | — |
1276
+ | 99 | LF | `REQUIRED_PAYMENT_ITEMS` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].type must be present in the payload | — | 30000 |
1277
+ | 100 | LF | `REQUIRED_PAYMENT_ID` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].id must be present in the payload | — | 30000 |
1278
+ | 101 | LF | `REQUIRED_PAYMENT_STATUS` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].status must be present in the payload | — | 30000 |
1279
+ | 102 | LF | `REQUIRED_PAYMENT_COLLECTED_BY` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].collected_by must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
1280
+ | 103 | LF | `REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_account_number must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
1281
+ | 104 | LF | `REQUIRED_PAYMENT_BANK_CODE` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_code must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
1282
+ | 105 | LF | `REQUIRED_PAYMENT_LABEL` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].time.label must be present in the payload | — | 30000 |
1283
+ | 106 | GRP | **REQUIRED_PARAMS_DETAILS** | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_TRANSACTION_ID, REQUIRED_PAYMENTS_AMOUNT, REQUIRED_PAYMENTS_CURRENCY | - Not all elements of $.message.order.payments[*].status may be in ["PAID"] | — |
1284
+ | 107 | LF | `REQUIRED_TRANSACTION_ID` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PARAMS_DETAILS | — | - $.message.order.payments[*].params.transaction_id must be present in the payload | — | 30000 |
1285
+ | 108 | LF | `REQUIRED_PAYMENTS_AMOUNT` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PARAMS_DETAILS | — | - $.message.order.payments[*].params.amount must be present in the payload | — | 30000 |
1286
+ | 109 | LF | `REQUIRED_PAYMENTS_CURRENCY` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PARAMS_DETAILS | — | - $.message.order.payments[*].params.currency must be present in the payload | — | 30000 |
1287
+ | 110 | GRP | **REQUIRED_PAYMENT_URL** | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_TIME_DURATION | - $.message.order.payments[*].url must **not** be present in the payload | — |
1288
+ | 111 | LF | `REQUIRED_TIME_DURATION` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_PAYMENT_URL | — | - $.message.order.payments[*].time.duration must be present in the payload | — | 30000 |
1289
+ | 112 | GRP | **REQUIRED_TIME_RANGE** | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_TIME_START_RANGE, REQUIRED_TIME_END_RANGE | - Not all elements of $.message.order.payments[*].time.label may be in ["INSTALLMENT"] | — |
1290
+ | 113 | LF | `REQUIRED_TIME_START_RANGE` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_TIME_RANGE | — | - $.message.order.payments[*].time.range.start must be present in the payload | — | 30000 |
1291
+ | 114 | LF | `REQUIRED_TIME_END_RANGE` | ON_INIT_PAYMENTS > REQUIRED_PAYMENT_ITEMS > REQUIRED_TIME_RANGE | — | - $.message.order.payments[*].time.range.end must be present in the payload | — | 30000 |
1292
+ | 115 | GRP | **ON_INIT_PAYMENT_TAGS** | — | — | Sub-tests: VALID_PAYMENT_TAGS, REQUIRED_ACCOUNT_DETAILS, REQUIRED_BREAKUP_DETAILS | — | — |
1293
+ | 116 | LF | `VALID_PAYMENT_TAGS` | ON_INIT_PAYMENT_TAGS | — | - All elements of $.message.order.payments[*].tags[*].descriptor.code must be in ["ACCOUNT_DETAILS", "BREAKUP"] | - $.message.order.payments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
1294
+ | 117 | LF | `REQUIRED_ACCOUNT_DETAILS` | ON_INIT_PAYMENT_TAGS | `$.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)]` | - All elements of $.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)].list[*].descriptor.code must be in ["ACCOUNT_TYPE", "ACCOUNT_HOLDER_NAME"] | — | 30000 |
1295
+ | 118 | LF | `REQUIRED_BREAKUP_DETAILS` | ON_INIT_PAYMENT_TAGS | `$.message.order.payments[*].tags[?(@.descriptor.code == BREAKUP)]` | - All elements of $.message.order.payments[*].tags[?(@.descriptor.code == BREAKUP)].list[*].descriptor.code must be in ["PRINCIPAL_AMOUNT", "INTEREST_AMOUNT"] | — | 30000 |
1296
+ | 119 | GRP | **ON_INIT_CANCELLATION_TERMS** | — | — | Sub-tests: EXTERNAL_REF_TERMS, FULFILLMENT_STATE_TERMS | — | — |
1297
+ | 120 | GRP | **EXTERNAL_REF_TERMS** | ON_INIT_CANCELLATION_TERMS | — | Sub-tests: REQUIRED_EXTERNAL_REF_MIME_TYPE, REQUIRED_EXTERNAL_REF_URL | - $.message.order.cancellation_terms[*].external_ref.mimetype must **not** be present in the payload | — |
1298
+ | 121 | LF | `REQUIRED_EXTERNAL_REF_MIME_TYPE` | ON_INIT_CANCELLATION_TERMS > EXTERNAL_REF_TERMS | — | - $.message.order.cancellation_terms[*].external_ref.mimetype must be present in the payload | — | 30000 |
1299
+ | 122 | LF | `REQUIRED_EXTERNAL_REF_URL` | ON_INIT_CANCELLATION_TERMS > EXTERNAL_REF_TERMS | — | - $.message.order.cancellation_terms[*].external_ref.url must be present in the payload | — | 30000 |
1300
+ | 123 | GRP | **FULFILLMENT_STATE_TERMS** | ON_INIT_CANCELLATION_TERMS | — | Sub-tests: REQUIRED_FULFILLMENT_STATE_CODE, REQUIRED_CANCELLATION_FEE | - $.message.order.cancellation_terms[*].fulfillment_state.descriptor.code must **not** be present in the payload | — |
1301
+ | 124 | LF | `REQUIRED_FULFILLMENT_STATE_CODE` | ON_INIT_CANCELLATION_TERMS > FULFILLMENT_STATE_TERMS | — | - $.message.order.cancellation_terms[*].fulfillment_state.descriptor.code must be present in the payload | — | 30000 |
1302
+ | 125 | LF | `REQUIRED_CANCELLATION_FEE` | ON_INIT_CANCELLATION_TERMS > FULFILLMENT_STATE_TERMS | — | - $.message.order.cancellation_terms[*].cancellation_fee.percentage must be present in the payload | — | 30000 |
1303
+ | 126 | GRP | **CONFIRM_TAGS** | — | — | Sub-tests: REQUIRED_PAYMENT_TAGS, REQUIRED_BAP_TERMS, REQUIRED_BPP_TERMS | — | — |
1304
+ | 127 | LF | `REQUIRED_PAYMENT_TAGS` | CONFIRM_TAGS | — | - All elements of $.message.order.tags[*].descriptor.code must be in ["BAP_TERMS", "BPP_TERMS"] | - $.message.order.tags[*].descriptor.code must **not** be present in the payload | 30000 |
1305
+ | 128 | LF | `REQUIRED_BAP_TERMS` | CONFIRM_TAGS | `$.message.order.tags[?(@.descriptor.code == BAP_TERMS)]` | - All elements of $.message.order.tags[?(@.descriptor.code == BAP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
1306
+ | 129 | LF | `REQUIRED_BPP_TERMS` | CONFIRM_TAGS | `$.message.order.tags[?(@.descriptor.code == BPP_TERMS)]` | - All elements of $.message.order.tags[?(@.descriptor.code == BPP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
1307
+ | 130 | GRP | **REQUIRED_ORDER_DOCUMENTS** | — | — | Sub-tests: REQUIRED_DOCUMENT_CODE, REQUIRED_DOCUMENT_NAME, REQUIRED_DOCUMENT_TYPE, REQUIRED_DOCUMENT_URL, VALID_DESCRIPTOR_CODE | - $.message.order.documents[*].descriptor.code must **not** be present in the payload | — |
1308
+ | 131 | LF | `REQUIRED_DOCUMENT_CODE` | REQUIRED_ORDER_DOCUMENTS | — | - $.message.order.documents[*].descriptor.code must be present in the payload | — | 30000 |
1309
+ | 132 | LF | `REQUIRED_DOCUMENT_NAME` | REQUIRED_ORDER_DOCUMENTS | — | - $.message.order.documents[*].descriptor.name must be present in the payload | — | 30000 |
1310
+ | 133 | LF | `REQUIRED_DOCUMENT_TYPE` | REQUIRED_ORDER_DOCUMENTS | — | - $.message.order.documents[*].mime_type must be present in the payload | — | 30000 |
1311
+ | 134 | LF | `REQUIRED_DOCUMENT_URL` | REQUIRED_ORDER_DOCUMENTS | — | - $.message.order.documents[*].url must be present in the payload | — | 30000 |
1312
+ | 135 | LF | `VALID_DESCRIPTOR_CODE` | REQUIRED_ORDER_DOCUMENTS | — | - All elements of $.message.order.documents[*].descriptor.code must be in ["LOAN_AGREEMENT", "LOAN_CANCELLATION"] | — | 30000 |