ml-testing-toolkit 18.13.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 (319) hide show
  1. package/.dockerignore +10 -0
  2. package/.grype.yaml +16 -0
  3. package/.ncurc.yaml +9 -0
  4. package/.nvmrc +1 -0
  5. package/.versionrc.js +16 -0
  6. package/CHANGELOG.md +504 -0
  7. package/CODEOWNERS +30 -0
  8. package/Dockerfile +42 -0
  9. package/Dockerfile-newman +13 -0
  10. package/LICENSE.md +9 -0
  11. package/README.md +119 -0
  12. package/assets/diagrams/architectural/architectural-diagram.svg +3 -0
  13. package/assets/diagrams/flow/flow-diagram.svg +3 -0
  14. package/assets/images/Sample-Response-Failure.png +0 -0
  15. package/assets/images/Screenshot 2020-04-16 at 22.58.04.png +0 -0
  16. package/assets/images/TLS-Enabled-on-Environment.png +0 -0
  17. package/assets/images/adapter-mutual-tls-enabled.png +0 -0
  18. package/assets/images/add-additional-input-values.png +0 -0
  19. package/assets/images/add-condition-button.png +0 -0
  20. package/assets/images/add-new-assertion.png +0 -0
  21. package/assets/images/add-new-input-value.png +0 -0
  22. package/assets/images/add-new-input-variable.png +0 -0
  23. package/assets/images/additional-transfers.png +0 -0
  24. package/assets/images/api-provisioning-add-new-api-confirmation.png +0 -0
  25. package/assets/images/api-provisioning-file-input-window.png +0 -0
  26. package/assets/images/api-provisioning-list-apis-view.png +0 -0
  27. package/assets/images/api-provisioning-menu-item.png +0 -0
  28. package/assets/images/apply_and_restart.jpg +0 -0
  29. package/assets/images/assess-request-or-response.png +0 -0
  30. package/assets/images/assess-response-equation-save.png +0 -0
  31. package/assets/images/assess-response-equation.png +0 -0
  32. package/assets/images/assess-response-status.png +0 -0
  33. package/assets/images/building-new-rules-file.png +0 -0
  34. package/assets/images/callback-rules-screen.png +0 -0
  35. package/assets/images/configurable-parameter-assertion.png +0 -0
  36. package/assets/images/configurable-parameter-currency.png +0 -0
  37. package/assets/images/configurable-parameter.png +0 -0
  38. package/assets/images/connection-manager-ui-opening.png +0 -0
  39. package/assets/images/create-inbound-user-simulator.png +0 -0
  40. package/assets/images/creating-new-rule-file.png +0 -0
  41. package/assets/images/dfsp-client-cacert.png +0 -0
  42. package/assets/images/dfsp-client-submit.png +0 -0
  43. package/assets/images/dfsp-client.png +0 -0
  44. package/assets/images/dfsp-p2p-happy-path.png +0 -0
  45. package/assets/images/dfsp-server-cacert.png +0 -0
  46. package/assets/images/dfsp-server-cert.png +0 -0
  47. package/assets/images/download-report.png +0 -0
  48. package/assets/images/drive_have_not_been_shared.jpg +0 -0
  49. package/assets/images/event-response-options.png +0 -0
  50. package/assets/images/expand-monitoring-messages.png +0 -0
  51. package/assets/images/fixed-response-sample.png +0 -0
  52. package/assets/images/header-selection.png +0 -0
  53. package/assets/images/heap_error_windows.jpg +0 -0
  54. package/assets/images/hosted-mode-docker-compose-intro.png +0 -0
  55. package/assets/images/hub-client-cert.png +0 -0
  56. package/assets/images/import-template.png +0 -0
  57. package/assets/images/inbound-requests-environment.png +0 -0
  58. package/assets/images/inbound-requests-scripts.png +0 -0
  59. package/assets/images/jws-certificate-submit.png +0 -0
  60. package/assets/images/jws-certificate.png +0 -0
  61. package/assets/images/jws-certs-keys.png +0 -0
  62. package/assets/images/jws-hub-certs-keys.png +0 -0
  63. package/assets/images/local-enable-jws-publickey.png +0 -0
  64. package/assets/images/local-mutual-tls-enabled.png +0 -0
  65. package/assets/images/local_drives_to_be_available.jpg +0 -0
  66. package/assets/images/mcm-environment-opening.png +0 -0
  67. package/assets/images/menu-items.png +0 -0
  68. package/assets/images/mock-response-sample.png +0 -0
  69. package/assets/images/monitoring-initial-state.png +0 -0
  70. package/assets/images/monitoring-messages.png +0 -0
  71. package/assets/images/new-empty-assertion.png +0 -0
  72. package/assets/images/opened-imported-template.png +0 -0
  73. package/assets/images/opening-default-settings.png +0 -0
  74. package/assets/images/opening-sync-response-rules.png +0 -0
  75. package/assets/images/opening-view.png +0 -0
  76. package/assets/images/outbound-display-opening-hub.png +0 -0
  77. package/assets/images/outbound-display-opening.png +0 -0
  78. package/assets/images/override-with-environment-variable.png +0 -0
  79. package/assets/images/populate-with-sample-body.png +0 -0
  80. package/assets/images/resource-selection.png +0 -0
  81. package/assets/images/rule-builder-select-api.png +0 -0
  82. package/assets/images/sample-condition-add-configurable-params.png +0 -0
  83. package/assets/images/sample-condition.png +0 -0
  84. package/assets/images/sample-editor.png +0 -0
  85. package/assets/images/sample-request.png +0 -0
  86. package/assets/images/sample-test-assertion.png +0 -0
  87. package/assets/images/send-transfer.png +0 -0
  88. package/assets/images/sending-single-test-case-1.png +0 -0
  89. package/assets/images/sending-single-test-case-2.png +0 -0
  90. package/assets/images/sending-test-cases.png +0 -0
  91. package/assets/images/server-certificates-submitted.png +0 -0
  92. package/assets/images/simulator-response.png +0 -0
  93. package/assets/images/simulator-scheme-adapter-endpoint.png +0 -0
  94. package/assets/images/summarized-view-of-rule.png +0 -0
  95. package/assets/images/template-window.png +0 -0
  96. package/assets/images/test-case-editor-console-log.png +0 -0
  97. package/assets/images/test-case-editor-environment-state.png +0 -0
  98. package/assets/images/test-case-editor-scripts.png +0 -0
  99. package/assets/images/test-case-editor.png +0 -0
  100. package/assets/images/testcase-definition-download.png +0 -0
  101. package/assets/images/testcase-definition-edit-meta-info.png +0 -0
  102. package/assets/images/testing-toolkit-mojaloop-testing-toolkit-endpoint.png +0 -0
  103. package/assets/images/tls-hub-certs-keys.png +0 -0
  104. package/assets/images/tls-jws-enabled-on-environment.png +0 -0
  105. package/assets/images/updated-sample-body-data.png +0 -0
  106. package/assets/images/using-configurable-parameter.png +0 -0
  107. package/assets/images/validation-rules-screen.png +0 -0
  108. package/assets/images/view-response.png +0 -0
  109. package/audit-ci.jsonc +7 -0
  110. package/connection-manager/docker-compose.yml +55 -0
  111. package/database/docker-compose.yml +16 -0
  112. package/docker/hosted-mode/docker-compose.yaml +107 -0
  113. package/docker/hosted-mode/keycloak/keycloak-realm.json +2298 -0
  114. package/docker/hosted-mode/mongo-init.sh +1 -0
  115. package/docker/hosted-mode-tls/docker-compose.yaml +171 -0
  116. package/docker/hosted-mode-tls/keycloak/keycloak-realm.json +2298 -0
  117. package/docker/hosted-mode-tls/mongo-init.sh +1 -0
  118. package/docker-compose.yml +62 -0
  119. package/documents/Mojaloop-Testing-Toolkit.md +296 -0
  120. package/documents/RULES_ENGINE.md +403 -0
  121. package/documents/User-Guide-API-Provisioning.md +121 -0
  122. package/documents/User-Guide-CLI.md +218 -0
  123. package/documents/User-Guide-Connection-Manager.md +282 -0
  124. package/documents/User-Guide-Frequently-Asked-Questions.md +39 -0
  125. package/documents/User-Guide-Hosted-Mode-Docker-Compose.md +110 -0
  126. package/documents/User-Guide-Installation.md +163 -0
  127. package/documents/User-Guide-Mojaloop-Testing-Toolkit.md +642 -0
  128. package/documents/User-Guide-OAuth-Server-Deployment.md +283 -0
  129. package/documents/User-Guide-Onboarding-DFSP.md +197 -0
  130. package/documents/User-Guide-Onboarding-HUB.md +191 -0
  131. package/documents/User-Guide.md +53 -0
  132. package/examples/collections/dfsp/p2p_failed_tests.json +7161 -0
  133. package/examples/collections/dfsp/p2p_fx_happy_path.json +502 -0
  134. package/examples/collections/dfsp/p2p_happy_path.json +350 -0
  135. package/examples/collections/dfsp/p2p_happy_path_extended.json +6106 -0
  136. package/examples/collections/dfsp/p2p_happy_path_jws.json +511 -0
  137. package/examples/collections/dfsp/p2p_payee_assertions_websocket.json +441 -0
  138. package/examples/collections/dfsp/sample.json +5029 -0
  139. package/examples/collections/dfsp/transaction_request_service.json +240 -0
  140. package/examples/collections/fxp/FXP.json +264 -0
  141. package/examples/collections/fxp/SDK_backend.json +98 -0
  142. package/examples/collections/fxp/SDK_outbound.json +163 -0
  143. package/examples/collections/hub/hub_01_p2p_happy_path/hub_p2p_receive_quote.json +400 -0
  144. package/examples/collections/hub/hub_01_p2p_happy_path/hub_p2p_send_quote.json +395 -0
  145. package/examples/collections/hub/hub_02_block_transfer/hub_block_transfer.json +393 -0
  146. package/examples/collections/hub/hub_03_funds_in_out/hub_funds_in.json +224 -0
  147. package/examples/collections/hub/hub_03_funds_in_out/hub_funds_out.json +780 -0
  148. package/examples/collections/hub/hub_04_settlements/hub_settlements.json +3138 -0
  149. package/examples/collections/hub/hub_05_transfer_negative_scenarios/hub_transfer_negative_payee_abort.json +475 -0
  150. package/examples/collections/hub/hub_05_transfer_negative_scenarios/hub_transfer_negative_payee_invalid_fulfillment.json +370 -0
  151. package/examples/collections/hub/hub_05_transfer_negative_scenarios/hub_transfer_negative_transfer_timeout.json +262 -0
  152. package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_authorizations.json +117 -0
  153. package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_error_framework.json +591 -0
  154. package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_received_state.json +379 -0
  155. package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_reject_state.json +361 -0
  156. package/examples/collections/hub/hub_07_quoting_service.json +525 -0
  157. package/examples/collections/hub/hub_08_participant_inactive_stop_transfers.json +706 -0
  158. package/examples/collections/hub/hub_09_duplicate_handling_transfers.json +1377 -0
  159. package/examples/collections/hub/hub_10_on_us_transfers.json +245 -0
  160. package/examples/collections/hub/hub_11_accented_and_spl_chars.json +629 -0
  161. package/examples/collections/hub/hub_12_fspiop_version_1.1.json +646 -0
  162. package/examples/collections/hub/hub_13_bulk_transfers.json +1857 -0
  163. package/examples/collections/iso20022/self_referencing_iso20022.json +926 -0
  164. package/examples/collections/provisioning/testingtoolkitdfsp.json +904 -0
  165. package/examples/environments/dfsp_local_environment.json +46 -0
  166. package/examples/environments/hub_local_environment.json +57 -0
  167. package/jest.config.js +17 -0
  168. package/package.json +199 -0
  169. package/sbom-v18.12.4.csv +1553 -0
  170. package/secrets/keygen.sh +5 -0
  171. package/secrets/privatekey.pem +27 -0
  172. package/secrets/publickey.cer +21 -0
  173. package/secrets/tls/01.pem +132 -0
  174. package/secrets/tls/createSecrets.sh +20 -0
  175. package/secrets/tls/hub_client.csr +32 -0
  176. package/secrets/tls/hub_client_cacert.pem +35 -0
  177. package/secrets/tls/hub_client_cakey.pem +52 -0
  178. package/secrets/tls/hub_client_key.key +52 -0
  179. package/secrets/tls/hub_server.csr +31 -0
  180. package/secrets/tls/hub_server_cacert.pem +35 -0
  181. package/secrets/tls/hub_server_cakey.pem +52 -0
  182. package/secrets/tls/hub_server_cert.pem +132 -0
  183. package/secrets/tls/hub_server_key.key +52 -0
  184. package/secrets/tls/index.txt +1 -0
  185. package/secrets/tls/index.txt.attr +1 -0
  186. package/secrets/tls/openssl-client.cnf +36 -0
  187. package/secrets/tls/openssl-clientca.cnf +71 -0
  188. package/secrets/tls/openssl-server.cnf +39 -0
  189. package/secrets/tls/openssl-serverca.cnf +71 -0
  190. package/secrets/tls/serial.txt +1 -0
  191. package/spec_files/api_definitions/als_admin_1.1/api_spec.yaml +804 -0
  192. package/spec_files/api_definitions/central_admin_1.0/api_spec.yaml +1850 -0
  193. package/spec_files/api_definitions/central_admin_1.0/response_map.json +96 -0
  194. package/spec_files/api_definitions/central_admin_old_9.3/api_spec.yaml +2467 -0
  195. package/spec_files/api_definitions/central_admin_old_9.3/response_map.json +96 -0
  196. package/spec_files/api_definitions/fspiop_1.0/api_spec.yaml +4187 -0
  197. package/spec_files/api_definitions/fspiop_1.0/callback_map.json +568 -0
  198. package/spec_files/api_definitions/fspiop_1.0/mockRef.json +79 -0
  199. package/spec_files/api_definitions/fspiop_1.0/trigger_templates/transaction_request_followup.json +126 -0
  200. package/spec_files/api_definitions/fspiop_1.0/trigger_templates/transaction_request_followup_quotes_only.json +97 -0
  201. package/spec_files/api_definitions/fspiop_1.1/api_spec.yaml +3778 -0
  202. package/spec_files/api_definitions/fspiop_1.1/callback_map.json +568 -0
  203. package/spec_files/api_definitions/fspiop_1.1/mockRef.json +79 -0
  204. package/spec_files/api_definitions/fspiop_1.1/trigger_templates/transaction_request_followup.json +125 -0
  205. package/spec_files/api_definitions/fspiop_2.0/api_spec.yaml +4839 -0
  206. package/spec_files/api_definitions/fspiop_2.0/callback_map.json +716 -0
  207. package/spec_files/api_definitions/fspiop_2.0/mockRef.json +79 -0
  208. package/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json +125 -0
  209. package/spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml +8331 -0
  210. package/spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json +508 -0
  211. package/spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json +66 -0
  212. package/spec_files/api_definitions/fx-api_2.0/api_spec.yaml +1768 -0
  213. package/spec_files/api_definitions/fx-api_2.0/callback_map.json +188 -0
  214. package/spec_files/api_definitions/fx-api_2.0/mockRef.json +83 -0
  215. package/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +2612 -0
  216. package/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/mockRef.json +22 -0
  217. package/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/response_map.json +35 -0
  218. package/spec_files/api_definitions/mojaloop_simulator_0.1/api_spec.yaml +225 -0
  219. package/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml +1087 -0
  220. package/spec_files/api_definitions/mojaloop_simulator_sim_1.4/mockRef.json +75 -0
  221. package/spec_files/api_definitions/mojaloop_simulator_sim_1.4/response_map.json +55 -0
  222. package/spec_files/api_definitions/payment_manager_1.4/api_spec.yaml +1389 -0
  223. package/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +2834 -0
  224. package/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +3449 -0
  225. package/spec_files/api_definitions/settlements_1.0/api_spec.yaml +983 -0
  226. package/spec_files/api_definitions/settlements_1.0/mockRef.json +38 -0
  227. package/spec_files/api_definitions/settlements_1.0/response_map.json +34 -0
  228. package/spec_files/api_definitions/settlements_2.0/api_spec.yaml +1001 -0
  229. package/spec_files/api_definitions/settlements_2.0/mockRef.json +38 -0
  230. package/spec_files/api_definitions/settlements_2.0/response_map.json +34 -0
  231. package/spec_files/api_definitions/thirdparty_sdk_outbound_0.1/api_spec.yaml +2139 -0
  232. package/spec_files/reports/templates/newman/html_template.html +1202 -0
  233. package/spec_files/reports/templates/newman/pdf_template.html +790 -0
  234. package/spec_files/reports/templates/testcase_definition/table_view.html +1602 -0
  235. package/spec_files/rules_callback/config.json +3 -0
  236. package/spec_files/rules_callback/default.json +2698 -0
  237. package/spec_files/rules_callback/p2p-limit.json +129 -0
  238. package/spec_files/rules_forward/config.json +3 -0
  239. package/spec_files/rules_forward/default.json +482 -0
  240. package/spec_files/rules_response/config.json +3 -0
  241. package/spec_files/rules_response/default.json +295 -0
  242. package/spec_files/rules_validation/config.json +3 -0
  243. package/spec_files/rules_validation/default.json +1 -0
  244. package/spec_files/rules_validation/p2p-limit.json +55 -0
  245. package/spec_files/system_config.json +175 -0
  246. package/spec_files/user_config.json +109 -0
  247. package/src/index.js +67 -0
  248. package/src/lib/MyEventEmitter.js +54 -0
  249. package/src/lib/api-management.js +143 -0
  250. package/src/lib/api-routes/config.js +83 -0
  251. package/src/lib/api-routes/history.js +139 -0
  252. package/src/lib/api-routes/keycloak.js +54 -0
  253. package/src/lib/api-routes/longpolling.js +70 -0
  254. package/src/lib/api-routes/oauth2.js +149 -0
  255. package/src/lib/api-routes/objectstore.js +53 -0
  256. package/src/lib/api-routes/openapi.js +224 -0
  257. package/src/lib/api-routes/outbound.js +134 -0
  258. package/src/lib/api-routes/reports.js +72 -0
  259. package/src/lib/api-routes/rules.js +356 -0
  260. package/src/lib/api-routes/samples.js +92 -0
  261. package/src/lib/api-routes/server-logs.js +44 -0
  262. package/src/lib/api-routes/settings.js +71 -0
  263. package/src/lib/api-server.js +135 -0
  264. package/src/lib/arrayStore.js +101 -0
  265. package/src/lib/callbackHandler.js +201 -0
  266. package/src/lib/config.js +177 -0
  267. package/src/lib/configuration-providers/mb-connection-manager.js +625 -0
  268. package/src/lib/db/adapters/dbAdapter.js +184 -0
  269. package/src/lib/db/dfspMockUsers.js +64 -0
  270. package/src/lib/db/models/mongoDBWrapper.js +78 -0
  271. package/src/lib/eventListenerClient/inboundEventListener.js +176 -0
  272. package/src/lib/fileAdapter.js +57 -0
  273. package/src/lib/httpAgentStore.js +135 -0
  274. package/src/lib/importExport.js +186 -0
  275. package/src/lib/jws/JwsSigning.js +141 -0
  276. package/src/lib/loadSamples.js +128 -0
  277. package/src/lib/logger.js +20 -0
  278. package/src/lib/longpollingEmitter.js +56 -0
  279. package/src/lib/metrics.js +51 -0
  280. package/src/lib/mocking/custom-functions/generic.js +57 -0
  281. package/src/lib/mocking/middleware-functions/ilpModel.js +238 -0
  282. package/src/lib/mocking/middleware-functions/quotesAssociation.js +75 -0
  283. package/src/lib/mocking/middleware-functions/transactionRequestsService.js +78 -0
  284. package/src/lib/mocking/openApiDefinitionsModel.js +64 -0
  285. package/src/lib/mocking/openApiMockHandler.js +466 -0
  286. package/src/lib/mocking/openApiRulesEngine.js +492 -0
  287. package/src/lib/mocking/openApiVersionTools.js +136 -0
  288. package/src/lib/mocking/transformers/fspiopToISO20022.js +230 -0
  289. package/src/lib/mocking/transformers/index.js +41 -0
  290. package/src/lib/notificationEmitter.js +64 -0
  291. package/src/lib/oauth/KeycloakHelper.js +220 -0
  292. package/src/lib/oauth/LoginService.js +133 -0
  293. package/src/lib/oauth/OAuthHelper.js +181 -0
  294. package/src/lib/oauth/OAuthValidator.js +118 -0
  295. package/src/lib/oauth/Wso2Client.js +64 -0
  296. package/src/lib/objectStore/inMemoryImpl.js +50 -0
  297. package/src/lib/objectStore/objectStoreInterface.js +51 -0
  298. package/src/lib/objectStore.js +122 -0
  299. package/src/lib/report-generator/generator.js +126 -0
  300. package/src/lib/report-generator/helpers.js +154 -0
  301. package/src/lib/requestLogger.js +190 -0
  302. package/src/lib/resources/wso2carbon-publickey.cert +20 -0
  303. package/src/lib/rulesEngine.js +95 -0
  304. package/src/lib/rulesEngineModel.js +463 -0
  305. package/src/lib/scripting-engines/postman-sandbox.js +142 -0
  306. package/src/lib/scripting-engines/vm-javascript-sandbox.js +294 -0
  307. package/src/lib/server-logs/adapters/elastic-search.js +102 -0
  308. package/src/lib/server-logs/adapters/grafana.js +0 -0
  309. package/src/lib/server-logs/index.js +75 -0
  310. package/src/lib/socket-server.js +55 -0
  311. package/src/lib/storageAdapter.js +109 -0
  312. package/src/lib/test-outbound/TestCaseRunner.js +173 -0
  313. package/src/lib/test-outbound/getTracing.js +19 -0
  314. package/src/lib/test-outbound/outbound-initiator.js +1107 -0
  315. package/src/lib/uniqueIdGenerator.js +35 -0
  316. package/src/lib/utils.js +89 -0
  317. package/src/lib/utilsInternal.js +56 -0
  318. package/src/lib/webSocketClient/WebSocketClientManager.js +197 -0
  319. package/src/server.js +218 -0
@@ -0,0 +1,2698 @@
1
+ [
2
+ {
3
+ "ruleId": 1,
4
+ "priority": 1,
5
+ "description": "ISO20022 get /parties/{Type}/{ID}/{SubId}",
6
+ "apiVersion": {
7
+ "minorVersion": 0,
8
+ "majorVersion": 2,
9
+ "type": "iso20022",
10
+ "asynchronous": true,
11
+ "specFile": "spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml",
12
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json",
13
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/response_map.json",
14
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json",
15
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0_iso20022/trigger_templates"
16
+ },
17
+ "conditions": {
18
+ "all": [
19
+ {
20
+ "fact": "headers",
21
+ "operator": "includesString",
22
+ "value": "application/vnd.interoperability.iso20022",
23
+ "path": "Accept"
24
+ },
25
+ {
26
+ "fact": "operationPath",
27
+ "operator": "equal",
28
+ "value": "/parties/{Type}/{ID}/{SubId}"
29
+ },
30
+ {
31
+ "fact": "method",
32
+ "operator": "equal",
33
+ "value": "get"
34
+ }
35
+ ]
36
+ },
37
+ "event": {
38
+ "method": "put",
39
+ "path": "/parties/{Type}/{ID}/{SubId}",
40
+ "params": {
41
+ "headers": {
42
+ "Content-Type": "application/vnd.interoperability.iso20022.parties+json;version=2.0",
43
+ "FSPIOP-Source": "{$config.FSPID}",
44
+ "Date": "{$request.headers.date}"
45
+ },
46
+ "body": {
47
+ "Assgnmt": {
48
+ "MsgId": "{$function.generic.generateULID}",
49
+ "CreDtTm": "{$environment.CreDtTm}",
50
+ "Assgnr": {
51
+ "Agt": {
52
+ "FinInstnId": {
53
+ "Othr": {
54
+ "Id": "{$request.headers.fspiop-source}"
55
+ }
56
+ }
57
+ }
58
+ },
59
+ "Assgne": {
60
+ "Agt": {
61
+ "FinInstnId": {
62
+ "Othr": {
63
+ "Id": "{$config.FSPID}"
64
+ }
65
+ }
66
+ }
67
+ }
68
+ },
69
+ "Rpt": {
70
+ "OrgnlId": "{$request.params.Type}/{$request.params.ID}/{$request.params.SubId}",
71
+ "Vrfctn": true,
72
+ "UpdtdPtyAndAcctId": {
73
+ "Acct": {
74
+ "Ccy": "XTS"
75
+ },
76
+ "Pty": {
77
+ "Nm": "Test Party",
78
+ "Id": {
79
+ "PrvtId": {
80
+ "Othr": {
81
+ "Id": "{$request.params.ID}",
82
+ "SchmeNm": {
83
+ "Prtry": "{$request.params.Type}"
84
+ }
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ },
92
+ "scripts": {
93
+ "exec": [
94
+ "environment.CreDtTm = new Date().toISOString()"
95
+ ],
96
+ "scriptingEngine": "javascript"
97
+ }
98
+ },
99
+ "delay": 0,
100
+ "type": "MOCK_CALLBACK"
101
+ },
102
+ "type": "callback",
103
+ "version": 1
104
+ },
105
+ {
106
+ "ruleId": 2,
107
+ "priority": 1,
108
+ "description": "ISO20022 get /parties/{Type}/{ID}/{SubId} for BUSINESS/ALIAS/DEVICE Types",
109
+ "apiVersion": {
110
+ "minorVersion": 0,
111
+ "majorVersion": 2,
112
+ "type": "iso20022",
113
+ "asynchronous": true,
114
+ "specFile": "spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml",
115
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json",
116
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/response_map.json",
117
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json",
118
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0_iso20022/trigger_templates"
119
+ },
120
+ "conditions": {
121
+ "all": [
122
+ {
123
+ "fact": "headers",
124
+ "operator": "includesString",
125
+ "value": "application/vnd.interoperability.iso20022",
126
+ "path": "Accept"
127
+ },
128
+ {
129
+ "fact": "pathParams",
130
+ "operator": "in",
131
+ "value": "BUSINESS,ALIAS,DEVICE",
132
+ "path": "Type"
133
+ },
134
+ {
135
+ "fact": "operationPath",
136
+ "operator": "equal",
137
+ "value": "/parties/{Type}/{ID}/{SubId}"
138
+ },
139
+ {
140
+ "fact": "method",
141
+ "operator": "equal",
142
+ "value": "get"
143
+ }
144
+ ]
145
+ },
146
+ "event": {
147
+ "method": "put",
148
+ "path": "/parties/{Type}/{ID}/{SubId}",
149
+ "params": {
150
+ "headers": {
151
+ "Content-Type": "application/vnd.interoperability.iso20022.parties+json;version=2.0",
152
+ "FSPIOP-Source": "{$config.FSPID}",
153
+ "Date": "{$request.headers.date}"
154
+ },
155
+ "body": {
156
+ "Assgnmt": {
157
+ "MsgId": "{$function.generic.generateULID}",
158
+ "CreDtTm": "{$environment.CreDtTm}",
159
+ "Assgnr": {
160
+ "Agt": {
161
+ "FinInstnId": {
162
+ "Othr": {
163
+ "Id": "{$request.headers.fspiop-source}"
164
+ }
165
+ }
166
+ }
167
+ },
168
+ "Assgne": {
169
+ "Agt": {
170
+ "FinInstnId": {
171
+ "Othr": {
172
+ "Id": "{$config.FSPID}"
173
+ }
174
+ }
175
+ }
176
+ }
177
+ },
178
+ "Rpt": {
179
+ "OrgnlId": "{$request.params.Type}/{$request.params.ID}/{$request.params.SubId}",
180
+ "Vrfctn": true,
181
+ "UpdtdPtyAndAcctId": {
182
+ "Acct": {
183
+ "Ccy": "XTS"
184
+ },
185
+ "Pty": {
186
+ "Nm": "Test Party",
187
+ "Id": {
188
+ "OrgId": {
189
+ "Othr": {
190
+ "Id": "{$request.params.ID}",
191
+ "SchmeNm": {
192
+ "Prtry": "{$request.params.Type}"
193
+ }
194
+ }
195
+ }
196
+ }
197
+ }
198
+ }
199
+ }
200
+ },
201
+ "scripts": {
202
+ "exec": [
203
+ "environment.CreDtTm = new Date().toISOString()"
204
+ ],
205
+ "scriptingEngine": "javascript"
206
+ }
207
+ },
208
+ "delay": 0,
209
+ "type": "MOCK_CALLBACK"
210
+ },
211
+ "type": "callback",
212
+ "version": 1
213
+ },
214
+ {
215
+ "ruleId": 3,
216
+ "priority": 1,
217
+ "description": "ISO20022 get /parties/{Type}/{ID} for BUSINESS/ALIAS/DEVICE Types",
218
+ "apiVersion": {
219
+ "minorVersion": 0,
220
+ "majorVersion": 2,
221
+ "type": "iso20022",
222
+ "asynchronous": true,
223
+ "specFile": "spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml",
224
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json",
225
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/response_map.json",
226
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json",
227
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0_iso20022/trigger_templates"
228
+ },
229
+ "conditions": {
230
+ "all": [
231
+ {
232
+ "fact": "headers",
233
+ "operator": "includesString",
234
+ "value": "application/vnd.interoperability.iso20022",
235
+ "path": "Accept"
236
+ },
237
+ {
238
+ "fact": "pathParams",
239
+ "operator": "in",
240
+ "value": "BUSINESS,ALIAS,DEVICE",
241
+ "path": "Type"
242
+ },
243
+ {
244
+ "fact": "operationPath",
245
+ "operator": "equal",
246
+ "value": "/parties/{Type}/{ID}"
247
+ },
248
+ {
249
+ "fact": "method",
250
+ "operator": "equal",
251
+ "value": "get"
252
+ }
253
+ ]
254
+ },
255
+ "event": {
256
+ "method": "put",
257
+ "path": "/parties/{Type}/{ID}",
258
+ "params": {
259
+ "headers": {
260
+ "Content-Type": "application/vnd.interoperability.iso20022.parties+json;version=2.0",
261
+ "FSPIOP-Source": "{$config.FSPID}",
262
+ "Date": "{$request.headers.date}"
263
+ },
264
+ "body": {
265
+ "Assgnmt": {
266
+ "MsgId": "{$function.generic.generateULID}",
267
+ "CreDtTm": "{$environment.CreDtTm}",
268
+ "Assgnr": {
269
+ "Agt": {
270
+ "FinInstnId": {
271
+ "Othr": {
272
+ "Id": "{$request.headers.fspiop-source}"
273
+ }
274
+ }
275
+ }
276
+ },
277
+ "Assgne": {
278
+ "Agt": {
279
+ "FinInstnId": {
280
+ "Othr": {
281
+ "Id": "{$config.FSPID}"
282
+ }
283
+ }
284
+ }
285
+ }
286
+ },
287
+ "Rpt": {
288
+ "OrgnlId": "{$request.params.Type}/{$request.params.ID}",
289
+ "Vrfctn": true,
290
+ "UpdtdPtyAndAcctId": {
291
+ "Agt": {
292
+ "FinInstnId": {
293
+ "Othr": {
294
+ "Id": "{$config.FSPID}"
295
+ }
296
+ }
297
+ },
298
+ "Acct": {
299
+ "Ccy": "XTS"
300
+ },
301
+ "Pty": {
302
+ "Nm": "Test Party",
303
+ "Id": {
304
+ "OrgId": {
305
+ "Othr": {
306
+ "Id": "{$request.params.ID}",
307
+ "SchmeNm": {
308
+ "Prtry": "{$request.params.Type}"
309
+ }
310
+ }
311
+ }
312
+ }
313
+ }
314
+ }
315
+ }
316
+ },
317
+ "scripts": {
318
+ "exec": [
319
+ "environment.CreDtTm = new Date().toISOString()"
320
+ ],
321
+ "scriptingEngine": "javascript"
322
+ }
323
+ },
324
+ "type": "FIXED_CALLBACK"
325
+ },
326
+ "type": "callback",
327
+ "version": 1
328
+ },
329
+ {
330
+ "ruleId": 4,
331
+ "priority": 1,
332
+ "description": "ISO20022 get /parties/{Type}/{ID} ACCOUNT_ID",
333
+ "apiVersion": {
334
+ "minorVersion": 0,
335
+ "majorVersion": 2,
336
+ "type": "iso20022",
337
+ "asynchronous": true,
338
+ "specFile": "spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml",
339
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json",
340
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/response_map.json",
341
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json",
342
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0_iso20022/trigger_templates"
343
+ },
344
+ "conditions": {
345
+ "all": [
346
+ {
347
+ "fact": "headers",
348
+ "operator": "includesString",
349
+ "value": "application/vnd.interoperability.iso20022",
350
+ "path": "Accept"
351
+ },
352
+ {
353
+ "fact": "pathParams",
354
+ "operator": "equal",
355
+ "path": "Type",
356
+ "value": "ACCOUNT_ID"
357
+ },
358
+ {
359
+ "fact": "operationPath",
360
+ "operator": "equal",
361
+ "value": "/parties/{Type}/{ID}"
362
+ },
363
+ {
364
+ "fact": "method",
365
+ "operator": "equal",
366
+ "value": "get"
367
+ }
368
+ ]
369
+ },
370
+ "event": {
371
+ "method": "put",
372
+ "path": "/parties/{Type}/{ID}",
373
+ "params": {
374
+ "headers": {
375
+ "Content-Type": "application/vnd.interoperability.iso20022.parties+json;version=2.0",
376
+ "FSPIOP-Source": "{$config.FSPID}",
377
+ "Date": "{$request.headers.date}"
378
+ },
379
+ "body": {
380
+ "Assgnmt": {
381
+ "MsgId": "{$function.generic.generateULID}",
382
+ "CreDtTm": "{$environment.CreDtTm}",
383
+ "Assgnr": {
384
+ "Agt": {
385
+ "FinInstnId": {
386
+ "Othr": {
387
+ "Id": "{$request.headers.fspiop-source}"
388
+ }
389
+ }
390
+ }
391
+ },
392
+ "Assgne": {
393
+ "Agt": {
394
+ "FinInstnId": {
395
+ "Othr": {
396
+ "Id": "{$config.FSPID}"
397
+ }
398
+ }
399
+ }
400
+ }
401
+ },
402
+ "Rpt": {
403
+ "OrgnlId": "{$request.params.Type}/{$request.params.ID}",
404
+ "Vrfctn": true,
405
+ "UpdtdPtyAndAcctId": {
406
+ "Agt": {
407
+ "FinInstnId": {
408
+ "Othr": {
409
+ "Id": "{$config.FSPID}"
410
+ }
411
+ }
412
+ },
413
+ "Acct": {
414
+ "Ccy": "XTS"
415
+ },
416
+ "Pty": {
417
+ "Nm": "Test Party",
418
+ "Id": {
419
+ "PrvtId": {
420
+ "Othr": {
421
+ "Id": "{$request.params.ID}",
422
+ "SchmeNm": {
423
+ "Prtry": "{$request.params.Type}"
424
+ }
425
+ }
426
+ }
427
+ }
428
+ }
429
+ }
430
+ }
431
+ },
432
+ "scripts": {
433
+ "exec": [
434
+ "environment.CreDtTm = new Date().toISOString()"
435
+ ],
436
+ "scriptingEngine": "javascript"
437
+ }
438
+ },
439
+ "type": "FIXED_CALLBACK"
440
+ },
441
+ "type": "callback",
442
+ "version": 1
443
+ },
444
+ {
445
+ "ruleId": 5,
446
+ "priority": 1,
447
+ "description": "ISO20022 get /parties/{Type}/{ID}",
448
+ "apiVersion": {
449
+ "minorVersion": 0,
450
+ "majorVersion": 2,
451
+ "type": "iso20022",
452
+ "asynchronous": true,
453
+ "specFile": "spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml",
454
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json",
455
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/response_map.json",
456
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json",
457
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0_iso20022/trigger_templates"
458
+ },
459
+ "conditions": {
460
+ "all": [
461
+ {
462
+ "fact": "headers",
463
+ "operator": "includesString",
464
+ "value": "application/vnd.interoperability.iso20022",
465
+ "path": "Accept"
466
+ },
467
+ {
468
+ "fact": "operationPath",
469
+ "operator": "equal",
470
+ "value": "/parties/{Type}/{ID}"
471
+ },
472
+ {
473
+ "fact": "method",
474
+ "operator": "equal",
475
+ "value": "get"
476
+ }
477
+ ]
478
+ },
479
+ "event": {
480
+ "method": "put",
481
+ "path": "/parties/{Type}/{ID}",
482
+ "params": {
483
+ "headers": {
484
+ "Content-Type": "application/vnd.interoperability.iso20022.parties+json;version=2.0",
485
+ "FSPIOP-Source": "{$config.FSPID}",
486
+ "Date": "{$request.headers.date}",
487
+ "FSPIOP-Destination": "{$request.headers.fspiop-source}"
488
+ },
489
+ "body": {
490
+ "Assgnmt": {
491
+ "MsgId": "{$function.generic.generateULID}",
492
+ "CreDtTm": "{$environment.CreDtTm}",
493
+ "Assgnr": {
494
+ "Agt": {
495
+ "FinInstnId": {
496
+ "Othr": {
497
+ "Id": "{$request.headers.fspiop-source}"
498
+ }
499
+ }
500
+ }
501
+ },
502
+ "Assgne": {
503
+ "Agt": {
504
+ "FinInstnId": {
505
+ "Othr": {
506
+ "Id": "{$config.FSPID}"
507
+ }
508
+ }
509
+ }
510
+ }
511
+ },
512
+ "Rpt": {
513
+ "OrgnlId": "{$request.params.Type}/{$request.params.ID}",
514
+ "Vrfctn": true,
515
+ "UpdtdPtyAndAcctId": {
516
+ "Agt": {
517
+ "FinInstnId": {
518
+ "Othr": {
519
+ "Id": "{$config.FSPID}"
520
+ }
521
+ }
522
+ },
523
+ "Acct": {
524
+ "Ccy": "XTS"
525
+ },
526
+ "Pty": {
527
+ "Nm": "Test Party",
528
+ "Id": {
529
+ "PrvtId": {
530
+ "Othr": {
531
+ "Id": "{$request.params.ID}",
532
+ "SchmeNm": {
533
+ "Prtry": "{$request.params.Type}"
534
+ }
535
+ }
536
+ }
537
+ }
538
+ }
539
+ }
540
+ }
541
+ },
542
+ "scripts": {
543
+ "exec": [
544
+ "environment.CreDtTm = new Date().toISOString()"
545
+ ],
546
+ "scriptingEngine": "javascript"
547
+ }
548
+ },
549
+ "type": "FIXED_CALLBACK"
550
+ },
551
+ "type": "callback",
552
+ "version": 1
553
+ },
554
+ {
555
+ "type": "callback",
556
+ "version": 1,
557
+ "ruleId": 6,
558
+ "priority": 1,
559
+ "description": "ISO20022 get /quotes/{ID}",
560
+ "apiVersion": {
561
+ "minorVersion": 0,
562
+ "majorVersion": 2,
563
+ "type": "iso20022",
564
+ "asynchronous": true,
565
+ "specFile": "spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml",
566
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json",
567
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/response_map.json",
568
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json",
569
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0_iso20022/trigger_templates"
570
+ },
571
+ "conditions": {
572
+ "all": [
573
+ {
574
+ "fact": "headers",
575
+ "operator": "includesString",
576
+ "value": "application/vnd.interoperability.iso20022",
577
+ "path": "Accept"
578
+ },
579
+ {
580
+ "fact": "operationPath",
581
+ "operator": "equal",
582
+ "value": "/quotes/{ID}"
583
+ },
584
+ {
585
+ "fact": "method",
586
+ "operator": "equal",
587
+ "value": "get"
588
+ }
589
+ ]
590
+ },
591
+ "event": {
592
+ "method": "put",
593
+ "path": "/quotes/{ID}",
594
+ "params": {},
595
+ "delay": 0,
596
+ "type": "MOCK_CALLBACK"
597
+ }
598
+ },
599
+ {
600
+ "ruleId": 7,
601
+ "priority": 1,
602
+ "description": "ISO20022 post /quotes",
603
+ "apiVersion": {
604
+ "minorVersion": 0,
605
+ "majorVersion": 2,
606
+ "type": "iso20022",
607
+ "asynchronous": true,
608
+ "specFile": "spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml",
609
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json",
610
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/response_map.json",
611
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json",
612
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0_iso20022/trigger_templates"
613
+ },
614
+ "conditions": {
615
+ "all": [
616
+ {
617
+ "fact": "headers",
618
+ "operator": "includesString",
619
+ "value": "application/vnd.interoperability.iso20022",
620
+ "path": "Accept"
621
+ },
622
+ {
623
+ "fact": "operationPath",
624
+ "operator": "equal",
625
+ "value": "/quotes"
626
+ },
627
+ {
628
+ "fact": "method",
629
+ "operator": "equal",
630
+ "value": "post"
631
+ }
632
+ ]
633
+ },
634
+ "event": {
635
+ "method": "put",
636
+ "path": "/quotes/{ID}",
637
+ "params": {
638
+ "scripts": {
639
+ "exec": [
640
+ "environment.CreDtTm = new Date().toISOString()",
641
+ "environment.AccptncDtTm = new Date().toISOString()",
642
+ "environment.PmtInstrXpryDtTm = new Date(new Date().getTime() + 24 * 60 * 60 * 1000).toISOString()"
643
+ ],
644
+ "scriptingEngine": "javascript"
645
+ },
646
+ "headers": {
647
+ "Content-Type": "application/vnd.interoperability.iso20022.quotes+json;version=2.0",
648
+ "FSPIOP-Source": "{$request.headers.fspiop-destination}",
649
+ "Date": "{$request.headers.date}",
650
+ "FSPIOP-Destination": "{$request.headers.fspiop-source}"
651
+ },
652
+ "body": {
653
+ "GrpHdr": {
654
+ "MsgId": "{$function.generic.generateULID}",
655
+ "PmtInstrXpryDtTm": "{$environment.PmtInstrXpryDtTm}",
656
+ "CreDtTm": "{$environment.CreDtTm}",
657
+ "NbOfTxs": "1",
658
+ "SttlmInf": {
659
+ "SttlmMtd": "CLRG"
660
+ }
661
+ },
662
+ "CdtTrfTxInf": {
663
+ "VrfctnOfTerms": {
664
+ "IlpV4PrepPacket": ""
665
+ },
666
+ "PmtId": {
667
+ "TxId": "{$request.body.CdtTrfTxInf.PmtId.TxId}",
668
+ "EndToEndId": "{$request.body.CdtTrfTxInf.PmtId.EndToEndId}"
669
+ },
670
+ "IntrBkSttlmAmt": {
671
+ "Ccy": "{$request.body.CdtTrfTxInf.IntrBkSttlmAmt.Ccy}",
672
+ "ActiveCurrencyAndAmount": "{$request.body.CdtTrfTxInf.IntrBkSttlmAmt.ActiveCurrencyAndAmount}"
673
+ },
674
+ "InstdAmt": {
675
+ "Ccy": "{$request.body.CdtTrfTxInf.IntrBkSttlmAmt.Ccy}",
676
+ "ActiveOrHistoricCurrencyAndAmount": "{$request.body.CdtTrfTxInf.IntrBkSttlmAmt.ActiveCurrencyAndAmount}"
677
+ },
678
+ "ChrgBr": "SHAR",
679
+ "ChrgsInf": {
680
+ "Amt": {
681
+ "Ccy": "{$request.body.CdtTrfTxInf.IntrBkSttlmAmt.Ccy}",
682
+ "ActiveOrHistoricCurrencyAndAmount": "0"
683
+ },
684
+ "Agt": {
685
+ "FinInstnId": {
686
+ "Othr": {
687
+ "Id": "123456789",
688
+ "SchmeNm": {
689
+ "Cd": "BBA",
690
+ "Prtry": "Party Identification Scheme Name"
691
+ }
692
+ }
693
+ }
694
+ }
695
+ },
696
+ "Cdtr": {
697
+ "Nm": "{$request.body.CdtTrfTxInf.Cdtr.Nm}",
698
+ "Id": {
699
+ "OrgId": {
700
+ "Othr": {
701
+ "Id": "{$request.body.CdtTrfTxInf.Cdtr.Id.OrgId.Othr.Id}",
702
+ "SchmeNm": {
703
+ "Prtry": "{$request.body.CdtTrfTxInf.Cdtr.Id.OrgId.Othr.SchmeNm.Prtry}"
704
+ }
705
+ }
706
+ }
707
+ }
708
+ },
709
+ "Dbtr": {
710
+ "Nm": "{$request.body.CdtTrfTxInf.Dbtr.Nm}",
711
+ "Id": {
712
+ "OrgId": {
713
+ "Othr": {
714
+ "Id": "{$request.body.CdtTrfTxInf.Dbtr.Id.OrgId.Othr.Id}",
715
+ "SchmeNm": {
716
+ "Prtry": "{$request.body.CdtTrfTxInf.Dbtr.Id.OrgId.Othr.SchmeNm.Prtry}"
717
+ }
718
+ }
719
+ }
720
+ }
721
+ },
722
+ "DbtrAgt": {
723
+ "FinInstnId": {
724
+ "Othr": {
725
+ "Id": "{$request.headers['FSPIOP-Source']}",
726
+ "SchmeNm": {
727
+ "Cd": "BDID"
728
+ }
729
+ }
730
+ }
731
+ },
732
+ "CdtrAgt": {
733
+ "FinInstnId": {
734
+ "Othr": {
735
+ "Id": "{$request.headers['FSPIOP-Destination']}",
736
+ "SchmeNm": {
737
+ "Cd": "BDID"
738
+ }
739
+ }
740
+ }
741
+ }
742
+ }
743
+ }
744
+ },
745
+ "type": "FIXED_CALLBACK"
746
+ },
747
+ "type": "callback",
748
+ "version": 1
749
+ },
750
+ {
751
+ "type": "callback",
752
+ "ruleId": 8,
753
+ "priority": 1,
754
+ "description": "ISO20022 get /transfers/{ID}",
755
+ "apiVersion": {
756
+ "minorVersion": 0,
757
+ "majorVersion": 2,
758
+ "type": "iso20022",
759
+ "asynchronous": true,
760
+ "specFile": "spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml",
761
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json",
762
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/response_map.json",
763
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json",
764
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0_iso20022/trigger_templates"
765
+ },
766
+ "conditions": {
767
+ "all": [
768
+ {
769
+ "fact": "headers",
770
+ "operator": "includesString",
771
+ "value": "application/vnd.interoperability.iso20022",
772
+ "path": "Accept"
773
+ },
774
+ {
775
+ "fact": "operationPath",
776
+ "operator": "equal",
777
+ "value": "/transfers/{ID}"
778
+ },
779
+ {
780
+ "fact": "method",
781
+ "operator": "equal",
782
+ "value": "get"
783
+ }
784
+ ]
785
+ },
786
+ "event": {
787
+ "method": "put",
788
+ "path": "/transfers/{ID}",
789
+ "params": {},
790
+ "delay": 0,
791
+ "type": "MOCK_CALLBACK"
792
+ },
793
+ "version": 1
794
+ },
795
+ {
796
+ "ruleId": 9,
797
+ "priority": 1,
798
+ "description": "ISO20022 post /transfers",
799
+ "apiVersion": {
800
+ "minorVersion": 0,
801
+ "majorVersion": 2,
802
+ "type": "iso20022",
803
+ "asynchronous": true,
804
+ "specFile": "spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml",
805
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json",
806
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/response_map.json",
807
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json",
808
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0_iso20022/trigger_templates"
809
+ },
810
+ "conditions": {
811
+ "all": [
812
+ {
813
+ "fact": "headers",
814
+ "operator": "includesString",
815
+ "value": "application/vnd.interoperability.iso20022",
816
+ "path": "Accept"
817
+ },
818
+ {
819
+ "fact": "operationPath",
820
+ "operator": "equal",
821
+ "value": "/transfers"
822
+ },
823
+ {
824
+ "fact": "method",
825
+ "operator": "equal",
826
+ "value": "post"
827
+ }
828
+ ]
829
+ },
830
+ "event": {
831
+ "method": "put",
832
+ "path": "/transfers/{ID}",
833
+ "params": {
834
+ "scripts": {
835
+ "exec": [
836
+ "environment.CreDtTm = new Date().toISOString()",
837
+ "environment.AccptncDtTm = new Date().toISOString()",
838
+ "environment.PmtInstrXpryDtTm = new Date(new Date().getTime() + 24 * 60 * 60 * 1000).toISOString()"
839
+ ],
840
+ "scriptingEngine": "javascript"
841
+ },
842
+ "headers": {
843
+ "Content-Type": "application/vnd.interoperability.iso20022.transfers+json;version=2.0",
844
+ "FSPIOP-Source": "{$config.FSPID}",
845
+ "Date": "{$request.headers.date}",
846
+ "FSPIOP-Destination": "{$request.headers.fspiop-source}"
847
+ },
848
+ "body": {
849
+ "GrpHdr": {
850
+ "MsgId": "{$function.generic.generateULID}",
851
+ "CreDtTm": "{$environment.CreDtTm}"
852
+ },
853
+ "TxInfAndSts": {
854
+ "StsId": "{$function.generic.generateULID}",
855
+ "OrgnlInstrId": "{$request.body.CdtTrfTxInf.PmtId.InstrId}",
856
+ "OrgnlEndToEndId": "{$request.body.CdtTrfTxInf.PmtId.EndToEndId}",
857
+ "OrgnlTxId": "{$request.body.CdtTrfTxInf.PmtId.TxId}",
858
+ "OrgnlUETR": "123e4567-e89b-12d3-a456-426614174000",
859
+ "TxSts": "COMM",
860
+ "StsRsnInf": {
861
+ "Rsn": {
862
+ "Prtry": "COMM"
863
+ },
864
+ "AddtlInf": "ADDITIONAL"
865
+ },
866
+ "AccptncDtTm": "{$environment.AccptncDtTm}",
867
+ "PrcgDt": {
868
+ "DtTm": "{$environment.AccptncDtTm}"
869
+ },
870
+ "AcctSvcrRef": "ACCTSVCRREF",
871
+ "ClrSysRef": "CLRSYSREF",
872
+ "ExctnConf": "",
873
+ "SplmtryData": {
874
+ "PlcAndNm": "PLACE",
875
+ "Envlp": {}
876
+ }
877
+ }
878
+ }
879
+ },
880
+ "type": "FIXED_CALLBACK"
881
+ },
882
+ "type": "callback",
883
+ "version": 1
884
+ },
885
+ {
886
+ "ruleId": 10,
887
+ "priority": 1,
888
+ "description": "ISO20022 get /fxQuotes/{ID}",
889
+ "apiVersion": {
890
+ "minorVersion": 0,
891
+ "majorVersion": 2,
892
+ "type": "iso20022",
893
+ "asynchronous": true,
894
+ "specFile": "spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml",
895
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json",
896
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/response_map.json",
897
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json",
898
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0_iso20022/trigger_templates"
899
+ },
900
+ "conditions": {
901
+ "all": [
902
+ {
903
+ "fact": "headers",
904
+ "operator": "includesString",
905
+ "value": "application/vnd.interoperability.iso20022",
906
+ "path": "Accept"
907
+ },
908
+ {
909
+ "fact": "operationPath",
910
+ "operator": "equal",
911
+ "value": "/fxQuotes/{ID}"
912
+ },
913
+ {
914
+ "fact": "method",
915
+ "operator": "equal",
916
+ "value": "get"
917
+ }
918
+ ]
919
+ },
920
+ "event": {
921
+ "method": "put",
922
+ "path": "/fxQuotes/{ID}",
923
+ "params": {
924
+ "scripts": {
925
+ "scriptingEngine": "javascript"
926
+ },
927
+ "headers": {
928
+ "Content-Type": "application/vnd.interoperability.iso20022.fxQuotes+json;version=2.0",
929
+ "FSPIOP-Source": "{$config.FSPID}",
930
+ "Date": "{$request.headers.date}"
931
+ }
932
+ },
933
+ "type": "MOCK_CALLBACK"
934
+ },
935
+ "type": "callback",
936
+ "version": 1
937
+ },
938
+ {
939
+ "ruleId": 11,
940
+ "priority": 1,
941
+ "description": "ISO20022 post /fxQuotes",
942
+ "apiVersion": {
943
+ "minorVersion": 0,
944
+ "majorVersion": 2,
945
+ "type": "iso20022",
946
+ "asynchronous": true,
947
+ "specFile": "spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml",
948
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json",
949
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/response_map.json",
950
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json",
951
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0_iso20022/trigger_templates"
952
+ },
953
+ "conditions": {
954
+ "all": [
955
+ {
956
+ "fact": "headers",
957
+ "operator": "includesString",
958
+ "value": "application/vnd.interoperability.iso20022",
959
+ "path": "Accept"
960
+ },
961
+ {
962
+ "fact": "operationPath",
963
+ "operator": "equal",
964
+ "value": "/fxQuotes"
965
+ },
966
+ {
967
+ "fact": "method",
968
+ "operator": "equal",
969
+ "value": "post"
970
+ }
971
+ ]
972
+ },
973
+ "event": {
974
+ "method": "put",
975
+ "path": "/fxQuotes/{ID}",
976
+ "params": {
977
+ "scripts": {
978
+ "exec": [
979
+ "environment.CreDtTm = new Date().toISOString()",
980
+ "environment.AccptncDtTm = new Date().toISOString()",
981
+ "environment.PmtInstrXpryDtTm = new Date(new Date().getTime() + 24 * 60 * 60 * 1000).toISOString()"
982
+ ],
983
+ "scriptingEngine": "javascript"
984
+ },
985
+ "headers": {
986
+ "Content-Type": "application/vnd.interoperability.iso20022.fxQuotes+json;version=2.0",
987
+ "FSPIOP-Source": "{$config.FSPID}",
988
+ "Date": "{$request.headers.date}",
989
+ "FSPIOP-Destination": "{$request.headers.fspiop-source}"
990
+ },
991
+ "body": {
992
+ "GrpHdr": {
993
+ "MsgId": "{$function.generic.generateULID}",
994
+ "CreDtTm": "{$environment.CreDtTm}",
995
+ "PmtInstrXpryDtTm": "{$environment.PmtInstrXpryDtTm}",
996
+ "NbOfTxs": "1",
997
+ "SttlmInf": {
998
+ "SttlmMtd": "CLRG"
999
+ }
1000
+ },
1001
+ "CdtTrfTxInf": {
1002
+ "VrfctnOfTerms": {
1003
+ "Sh256Sgntr": "GRzLaTP7DJ9t4P-a_BA0WA9wzzlsugf00-Tn6kESAfM"
1004
+ },
1005
+ "PmtId": {
1006
+ "TxId": "{$request.body.CdtTrfTxInf.PmtId.TxId}",
1007
+ "InstrId": "{$request.body.CdtTrfTxInf.PmtId.InstrId}",
1008
+ "EndToEndId": "{$request.body.CdtTrfTxInf.PmtId.EndToEndId}"
1009
+ },
1010
+ "PmtTpInf": {
1011
+ "InstrPrty": "NORM",
1012
+ "CtgyPurp": {
1013
+ "Cd": "SUPP"
1014
+ }
1015
+ },
1016
+ "UndrlygCstmrCdtTrf": {
1017
+ "InstdAmt": {
1018
+ "Ccy": "{$request.body.CdtTrfTxInf.UndrlygCstmrCdtTrf.InstdAmt.Ccy}",
1019
+ "ActiveOrHistoricCurrencyAndAmount": "{$request.body.CdtTrfTxInf.UndrlygCstmrCdtTrf.InstdAmt.ActiveOrHistoricCurrencyAndAmount}"
1020
+ },
1021
+ "Dbtr": {
1022
+ "Id": {
1023
+ "OrgId": {
1024
+ "Othr": {
1025
+ "Id": "{$request.body.CdtTrfTxInf.Dbtr.Id.OrgId.Othr.Id}"
1026
+ }
1027
+ }
1028
+ }
1029
+ },
1030
+ "Cdtr": {
1031
+ "Id": {
1032
+ "OrgId": {
1033
+ "Othr": {
1034
+ "Id": "{$request.body.CdtTrfTxInf.Cdtr.Id.OrgId.Othr.Id}"
1035
+ }
1036
+ }
1037
+ }
1038
+ },
1039
+ "CdtrAgt": {
1040
+ "FinInstnId": {
1041
+ "Othr": {
1042
+ "Id": "{$request.body.CdtTrfTxInf.Cdtr.Id.OrgId.Othr.Id}"
1043
+ }
1044
+ }
1045
+ },
1046
+ "DbtrAgt": {
1047
+ "FinInstnId": {
1048
+ "Othr": {
1049
+ "Id": "{$request.body.CdtTrfTxInf.Dbtr.Id.OrgId.Othr.Id}"
1050
+ }
1051
+ }
1052
+ }
1053
+ },
1054
+ "IntrBkSttlmAmt": {
1055
+ "ActiveCurrencyAndAmount": "100",
1056
+ "Ccy": "{$request.body.CdtTrfTxInf.IntrBkSttlmAmt.Ccy}"
1057
+ },
1058
+ "ChrgBr": "SLEV",
1059
+ "Cdtr": {
1060
+ "Name": "Test Creditor",
1061
+ "FinInstnId": {
1062
+ "Othr": {
1063
+ "Id": "{$request.body.CdtTrfTxInf.Cdtr.FinInstnId.Othr.Id}"
1064
+ }
1065
+ },
1066
+ "Id": {
1067
+ "PrvtId": {
1068
+ "DtAndPlcOfBirth": {
1069
+ "BirthDt": "{$function.generic.curDate}"
1070
+ }
1071
+ },
1072
+ "OrgId": {
1073
+ "Othr": {
1074
+ "Id": "{$request.body.CdtTrfTxInf.Cdtr.Id.OrgId.Othr.Id}",
1075
+ "SchmeNm": {
1076
+ "Prtry": "ACCOUNT_ID"
1077
+ }
1078
+ }
1079
+ }
1080
+ }
1081
+ },
1082
+ "CdtrAcct": {
1083
+ "Id": {
1084
+ "IBAN": "BE71096123456769"
1085
+ },
1086
+ "Tp": {
1087
+ "Cd": "CACC"
1088
+ },
1089
+ "Ccy": "XTS",
1090
+ "Nm": "My account"
1091
+ },
1092
+ "CdtrAgt": {
1093
+ "FinInstnId": {
1094
+ "BICFI": "BNBABEBB"
1095
+ }
1096
+ },
1097
+ "CdtrAgtAcct": {
1098
+ "Id": {
1099
+ "IBAN": "BE71096123456769"
1100
+ },
1101
+ "Tp": {
1102
+ "Cd": "CACC"
1103
+ },
1104
+ "Ccy": "XTS",
1105
+ "Nm": "My account"
1106
+ },
1107
+ "Dbtr": {
1108
+ "Name": "Test Debitor",
1109
+ "FinInstnId": {
1110
+ "Othr": {
1111
+ "Id": "{$request.body.CdtTrfTxInf.Dbtr.FinInstnId.Othr.Id}"
1112
+ }
1113
+ },
1114
+ "Id": {
1115
+ "PrvtId": {
1116
+ "DtAndPlcOfBirth": {
1117
+ "BirthDt": "{$function.generic.curDate}"
1118
+ }
1119
+ },
1120
+ "OrgId": {
1121
+ "Othr": {
1122
+ "Id": "{$request.body.CdtTrfTxInf.Dbtr.Id.OrgId.Othr.Id}",
1123
+ "SchmeNm": {
1124
+ "Prtry": "ACCOUNT_ID"
1125
+ }
1126
+ }
1127
+ }
1128
+ }
1129
+ },
1130
+ "DbtrAcct": {
1131
+ "Id": {
1132
+ "IBAN": "BE71096123456769"
1133
+ },
1134
+ "Tp": {
1135
+ "Cd": "CACC"
1136
+ },
1137
+ "Ccy": "XTS",
1138
+ "Nm": "My account"
1139
+ },
1140
+ "DbtrAgt": {
1141
+ "FinInstnId": {
1142
+ "BICFI": "BNBABEBB"
1143
+ }
1144
+ },
1145
+ "DbtrAgtAcct": {
1146
+ "Id": {
1147
+ "IBAN": "BE71096123456769"
1148
+ },
1149
+ "Tp": {
1150
+ "Cd": "CACC"
1151
+ },
1152
+ "Ccy": "XTS",
1153
+ "Nm": "My account"
1154
+ }
1155
+ }
1156
+ }
1157
+ },
1158
+ "type": "FIXED_CALLBACK"
1159
+ },
1160
+ "type": "callback",
1161
+ "version": 1
1162
+ },
1163
+ {
1164
+ "ruleId": 12,
1165
+ "priority": 1,
1166
+ "description": "ISO20022 get /fxTransfers/{ID}",
1167
+ "apiVersion": {
1168
+ "minorVersion": 0,
1169
+ "majorVersion": 2,
1170
+ "type": "iso20022",
1171
+ "asynchronous": true,
1172
+ "specFile": "spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml",
1173
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json",
1174
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/response_map.json",
1175
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json",
1176
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0_iso20022/trigger_templates"
1177
+ },
1178
+ "conditions": {
1179
+ "all": [
1180
+ {
1181
+ "fact": "headers",
1182
+ "operator": "includesString",
1183
+ "value": "application/vnd.interoperability.iso20022",
1184
+ "path": "Accept"
1185
+ },
1186
+ {
1187
+ "fact": "operationPath",
1188
+ "operator": "equal",
1189
+ "value": "/fxTransfers/{ID}"
1190
+ },
1191
+ {
1192
+ "fact": "method",
1193
+ "operator": "equal",
1194
+ "value": "get"
1195
+ }
1196
+ ]
1197
+ },
1198
+ "event": {
1199
+ "method": "put",
1200
+ "path": "/fxTransfers/{ID}",
1201
+ "params": {
1202
+ "scripts": {
1203
+ "scriptingEngine": "javascript"
1204
+ },
1205
+ "headers": {
1206
+ "Content-Type": "application/vnd.interoperability.iso20022.fxTransfers+json;version=2.0",
1207
+ "FSPIOP-Source": "{$config.FSPID}",
1208
+ "Date": "{$request.headers.date}"
1209
+ }
1210
+ },
1211
+ "type": "MOCK_CALLBACK"
1212
+ },
1213
+ "type": "callback",
1214
+ "version": 1
1215
+ },
1216
+ {
1217
+ "ruleId": 13,
1218
+ "priority": 1,
1219
+ "description": "ISO20022 post /fxTransfers",
1220
+ "apiVersion": {
1221
+ "minorVersion": 0,
1222
+ "majorVersion": 2,
1223
+ "type": "iso20022",
1224
+ "asynchronous": true,
1225
+ "specFile": "spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml",
1226
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json",
1227
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0_iso20022/response_map.json",
1228
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json",
1229
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0_iso20022/trigger_templates"
1230
+ },
1231
+ "conditions": {
1232
+ "all": [
1233
+ {
1234
+ "fact": "headers",
1235
+ "operator": "includesString",
1236
+ "value": "application/vnd.interoperability.iso20022",
1237
+ "path": "Accept"
1238
+ },
1239
+ {
1240
+ "fact": "operationPath",
1241
+ "operator": "equal",
1242
+ "value": "/fxTransfers"
1243
+ },
1244
+ {
1245
+ "fact": "method",
1246
+ "operator": "equal",
1247
+ "value": "post"
1248
+ }
1249
+ ]
1250
+ },
1251
+ "event": {
1252
+ "method": "put",
1253
+ "path": "/fxTransfers/{ID}",
1254
+ "params": {
1255
+ "scripts": {
1256
+ "exec": [
1257
+ "environment.CreDtTm = new Date().toISOString()",
1258
+ "environment.AccptncDtTm = new Date().toISOString()",
1259
+ "environment.PmtInstrXpryDtTm = new Date(new Date().getTime() + 24 * 60 * 60 * 1000).toISOString()"
1260
+ ],
1261
+ "scriptingEngine": "javascript"
1262
+ },
1263
+ "headers": {
1264
+ "Content-Type": "application/vnd.interoperability.iso20022.fxTransfers+json;version=2.0",
1265
+ "FSPIOP-Source": "{$config.FSPID}",
1266
+ "Date": "{$request.headers.date}",
1267
+ "FSPIOP-Destination": "{$request.headers.fspiop-source}"
1268
+ },
1269
+ "body": {
1270
+ "GrpHdr": {
1271
+ "MsgId": "{$function.generic.generateULID}",
1272
+ "CreDtTm": "{$environment.CreDtTm}"
1273
+ },
1274
+ "TxInfAndSts": {
1275
+ "StsId": "12345",
1276
+ "OrgnlInstrId": "12345",
1277
+ "OrgnlEndToEndId": "12345",
1278
+ "OrgnlTxId": "12345",
1279
+ "OrgnlUETR": "123e4567-e89b-12d3-a456-426614174000",
1280
+ "TxSts": "RESV",
1281
+ "StsRsnInf": {
1282
+ "Rsn": {
1283
+ "Prtry": "ACPT"
1284
+ },
1285
+ "AddtlInf": "ADDITIONAL"
1286
+ },
1287
+ "AccptncDtTm": "{$environment.AccptncDtTm}",
1288
+ "AcctSvcrRef": "ACCTSVCRREF",
1289
+ "ClrSysRef": "CLRSYSREF",
1290
+ "ExctnConf": "UNlJ98hZTY_dsw0cAqw4i_UN3v4utt7CZFB4yfLbVFA",
1291
+ "SplmtryData": {
1292
+ "PlcAndNm": "PLACE",
1293
+ "Envlp": {}
1294
+ }
1295
+ }
1296
+ }
1297
+ },
1298
+ "type": "FIXED_CALLBACK"
1299
+ },
1300
+ "type": "callback",
1301
+ "version": 1
1302
+ },
1303
+ {
1304
+ "ruleId": 51,
1305
+ "priority": 1,
1306
+ "description": "ttkpayeefsp PUT Notifications Failure Test-case due to invalid FSPIOP-Destination",
1307
+ "apiVersion": {
1308
+ "minorVersion": 1,
1309
+ "majorVersion": 1,
1310
+ "type": "fspiop",
1311
+ "asynchronous": true
1312
+ },
1313
+ "conditions": {
1314
+ "all": [
1315
+ {
1316
+ "fact": "headers",
1317
+ "operator": "equal",
1318
+ "value": "testingtoolkitdfsp",
1319
+ "path": "FSPIOP-Source"
1320
+ },
1321
+ {
1322
+ "fact": "headers",
1323
+ "operator": "equal",
1324
+ "value": "ttkpayeefsp",
1325
+ "path": "FSPIOP-Destination"
1326
+ },
1327
+ {
1328
+ "fact": "body",
1329
+ "operator": "numericEqual",
1330
+ "value": "104",
1331
+ "path": "amount.amount"
1332
+ },
1333
+ {
1334
+ "fact": "operationPath",
1335
+ "operator": "equal",
1336
+ "value": "/transfers"
1337
+ },
1338
+ {
1339
+ "fact": "method",
1340
+ "operator": "equal",
1341
+ "value": "post"
1342
+ }
1343
+ ]
1344
+ },
1345
+ "event": {
1346
+ "method": "put",
1347
+ "path": "/transfers/{ID}",
1348
+ "params": {
1349
+ "headers": {
1350
+ "FSPIOP-Destination": "doesnotexistfsp"
1351
+ },
1352
+ "scripts": {
1353
+ "scriptingEngine": "postman"
1354
+ }
1355
+ },
1356
+ "type": "MOCK_CALLBACK"
1357
+ },
1358
+ "type": "callback",
1359
+ "version": 1
1360
+ },
1361
+ {
1362
+ "ruleId": 52,
1363
+ "priority": 1,
1364
+ "description": "ttkpayeefsp PATCH Notifications Failure Test-case due to invalid fulfilment",
1365
+ "apiVersion": {
1366
+ "minorVersion": 1,
1367
+ "majorVersion": 1,
1368
+ "type": "fspiop",
1369
+ "asynchronous": true
1370
+ },
1371
+ "conditions": {
1372
+ "all": [
1373
+ {
1374
+ "fact": "headers",
1375
+ "operator": "equal",
1376
+ "value": "testingtoolkitdfsp",
1377
+ "path": "FSPIOP-Source"
1378
+ },
1379
+ {
1380
+ "fact": "headers",
1381
+ "operator": "equal",
1382
+ "value": "ttkpayeefsp",
1383
+ "path": "FSPIOP-Destination"
1384
+ },
1385
+ {
1386
+ "fact": "headers",
1387
+ "operator": "equal",
1388
+ "value": "application/vnd.interoperability.transfers+json;version=1.1",
1389
+ "path": "Content-Type"
1390
+ },
1391
+ {
1392
+ "fact": "body",
1393
+ "operator": "numericEqual",
1394
+ "value": "103",
1395
+ "path": "amount.amount"
1396
+ },
1397
+ {
1398
+ "fact": "operationPath",
1399
+ "operator": "equal",
1400
+ "value": "/transfers"
1401
+ },
1402
+ {
1403
+ "fact": "method",
1404
+ "operator": "equal",
1405
+ "value": "post"
1406
+ }
1407
+ ]
1408
+ },
1409
+ "event": {
1410
+ "method": "put",
1411
+ "path": "/transfers/{ID}",
1412
+ "params": {
1413
+ "body": {
1414
+ "fulfilment": "WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8",
1415
+ "completedTimestamp": "{$function.generic.curDateISO}",
1416
+ "transferState": "RESERVED",
1417
+ "extensionList": null
1418
+ },
1419
+ "scripts": {
1420
+ "scriptingEngine": "postman"
1421
+ }
1422
+ },
1423
+ "type": "MOCK_CALLBACK"
1424
+ },
1425
+ "type": "callback",
1426
+ "version": 1
1427
+ },
1428
+ {
1429
+ "ruleId": 53,
1430
+ "priority": 1,
1431
+ "description": "ttkpayeefsp PATCH Notifications Failure Test-case due to invalid FSPIOP-Destination",
1432
+ "apiVersion": {
1433
+ "minorVersion": 1,
1434
+ "majorVersion": 1,
1435
+ "type": "fspiop",
1436
+ "asynchronous": true
1437
+ },
1438
+ "conditions": {
1439
+ "all": [
1440
+ {
1441
+ "fact": "headers",
1442
+ "operator": "equal",
1443
+ "value": "testingtoolkitdfsp",
1444
+ "path": "FSPIOP-Source"
1445
+ },
1446
+ {
1447
+ "fact": "headers",
1448
+ "operator": "equal",
1449
+ "value": "ttkpayeefsp",
1450
+ "path": "FSPIOP-Destination"
1451
+ },
1452
+ {
1453
+ "fact": "headers",
1454
+ "operator": "equal",
1455
+ "value": "application/vnd.interoperability.transfers+json;version=1.1",
1456
+ "path": "Content-Type"
1457
+ },
1458
+ {
1459
+ "fact": "body",
1460
+ "operator": "numericEqual",
1461
+ "value": "102",
1462
+ "path": "amount.amount"
1463
+ },
1464
+ {
1465
+ "fact": "operationPath",
1466
+ "operator": "equal",
1467
+ "value": "/transfers"
1468
+ },
1469
+ {
1470
+ "fact": "method",
1471
+ "operator": "equal",
1472
+ "value": "post"
1473
+ }
1474
+ ]
1475
+ },
1476
+ "event": {
1477
+ "method": "put",
1478
+ "path": "/transfers/{ID}",
1479
+ "params": {
1480
+ "headers": {
1481
+ "FSPIOP-Destination": "doesnotexistfsp"
1482
+ },
1483
+ "body": {
1484
+ "transferState": "RESERVED"
1485
+ },
1486
+ "scripts": {
1487
+ "scriptingEngine": "postman"
1488
+ }
1489
+ },
1490
+ "type": "MOCK_CALLBACK"
1491
+ },
1492
+ "type": "callback",
1493
+ "version": 1
1494
+ },
1495
+ {
1496
+ "ruleId": 54,
1497
+ "priority": 1,
1498
+ "description": "ttkpayeefsp PATCH Notifications Success Test-case",
1499
+ "apiVersion": {
1500
+ "minorVersion": 1,
1501
+ "majorVersion": 1,
1502
+ "type": "fspiop",
1503
+ "asynchronous": true
1504
+ },
1505
+ "conditions": {
1506
+ "all": [
1507
+ {
1508
+ "fact": "headers",
1509
+ "operator": "equal",
1510
+ "value": "testingtoolkitdfsp",
1511
+ "path": "FSPIOP-Source"
1512
+ },
1513
+ {
1514
+ "fact": "headers",
1515
+ "operator": "equal",
1516
+ "value": "ttkpayeefsp",
1517
+ "path": "FSPIOP-Destination"
1518
+ },
1519
+ {
1520
+ "fact": "headers",
1521
+ "operator": "equal",
1522
+ "value": "application/vnd.interoperability.transfers+json;version=1.1",
1523
+ "path": "Content-Type"
1524
+ },
1525
+ {
1526
+ "fact": "body",
1527
+ "operator": "numericEqual",
1528
+ "value": "101",
1529
+ "path": "amount.amount"
1530
+ },
1531
+ {
1532
+ "fact": "operationPath",
1533
+ "operator": "equal",
1534
+ "value": "/transfers"
1535
+ },
1536
+ {
1537
+ "fact": "method",
1538
+ "operator": "equal",
1539
+ "value": "post"
1540
+ }
1541
+ ]
1542
+ },
1543
+ "event": {
1544
+ "method": "put",
1545
+ "path": "/transfers/{ID}",
1546
+ "params": {
1547
+ "body": {
1548
+ "transferState": "RESERVED"
1549
+ },
1550
+ "scripts": {
1551
+ "scriptingEngine": "postman"
1552
+ }
1553
+ },
1554
+ "type": "MOCK_CALLBACK"
1555
+ },
1556
+ "type": "callback",
1557
+ "version": 1
1558
+ },
1559
+ {
1560
+ "ruleId": 61,
1561
+ "priority": 1,
1562
+ "description": "get /parties/{Type}/{ID} for pinkbank",
1563
+ "apiVersion": {
1564
+ "minorVersion": 0,
1565
+ "majorVersion": 1,
1566
+ "type": "fspiop",
1567
+ "asynchronous": true
1568
+ },
1569
+ "conditions": {
1570
+ "all": [
1571
+ {
1572
+ "fact": "headers",
1573
+ "operator": "equal",
1574
+ "value": "pinkbankfsp",
1575
+ "path": "FSPIOP-Source"
1576
+ },
1577
+ {
1578
+ "fact": "operationPath",
1579
+ "operator": "equal",
1580
+ "value": "/parties/{Type}/{ID}"
1581
+ },
1582
+ {
1583
+ "fact": "method",
1584
+ "operator": "equal",
1585
+ "value": "get"
1586
+ }
1587
+ ]
1588
+ },
1589
+ "event": {
1590
+ "method": "put",
1591
+ "path": "/parties/{Type}/{ID}",
1592
+ "params": {
1593
+ "headers": {
1594
+ "Content-Type": "application/vnd.interoperability.parties+json;version=1.0",
1595
+ "FSPIOP-Source": "greenbankfsp"
1596
+ },
1597
+ "body": {
1598
+ "party": {
1599
+ "partyIdInfo": {
1600
+ "fspId": "greenbankfsp"
1601
+ },
1602
+ "merchantClassificationCode": null,
1603
+ "name": "Justin Pierre",
1604
+ "personalInfo": {
1605
+ "complexName": {
1606
+ "firstName": "Justin",
1607
+ "middleName": "Pierre",
1608
+ "lastName": "Trudeau"
1609
+ },
1610
+ "dateOfBirth": "1971-12-25"
1611
+ }
1612
+ }
1613
+ },
1614
+ "scripts": {
1615
+ "scriptingEngine": "postman"
1616
+ }
1617
+ },
1618
+ "type": "MOCK_CALLBACK"
1619
+ },
1620
+ "type": "callback",
1621
+ "version": 1
1622
+ },
1623
+ {
1624
+ "ruleId": 101,
1625
+ "priority": 1,
1626
+ "description": "get /parties/{Type}/{ID}",
1627
+ "apiVersion": {
1628
+ "minorVersion": 0,
1629
+ "majorVersion": 1,
1630
+ "type": "fspiop",
1631
+ "asynchronous": true
1632
+ },
1633
+ "conditions": {
1634
+ "all": [
1635
+ {
1636
+ "fact": "operationPath",
1637
+ "operator": "equal",
1638
+ "value": "/parties/{Type}/{ID}"
1639
+ },
1640
+ {
1641
+ "fact": "method",
1642
+ "operator": "equal",
1643
+ "value": "get"
1644
+ }
1645
+ ]
1646
+ },
1647
+ "event": {
1648
+ "method": "put",
1649
+ "path": "/parties/{Type}/{ID}",
1650
+ "params": {
1651
+ "headers": {
1652
+ "Content-Type": "application/vnd.interoperability.parties+json;version=1.0"
1653
+ },
1654
+ "body": {
1655
+ "party": {
1656
+ "partyIdInfo": {
1657
+ "partySubIdOrType": null
1658
+ }
1659
+ }
1660
+ },
1661
+ "scripts": {}
1662
+ },
1663
+ "type": "MOCK_CALLBACK"
1664
+ },
1665
+ "type": "callback",
1666
+ "version": 1
1667
+ },
1668
+ {
1669
+ "type": "callback",
1670
+ "version": 1,
1671
+ "ruleId": 102,
1672
+ "priority": 1,
1673
+ "description": "post /quotes",
1674
+ "apiVersion": {
1675
+ "minorVersion": 0,
1676
+ "majorVersion": 1,
1677
+ "type": "fspiop",
1678
+ "asynchronous": true
1679
+ },
1680
+ "conditions": {
1681
+ "all": [
1682
+ {
1683
+ "fact": "operationPath",
1684
+ "operator": "equal",
1685
+ "value": "/quotes"
1686
+ },
1687
+ {
1688
+ "fact": "method",
1689
+ "operator": "equal",
1690
+ "value": "post"
1691
+ }
1692
+ ]
1693
+ },
1694
+ "event": {
1695
+ "method": "put",
1696
+ "path": "/quotes/{ID}",
1697
+ "params": {
1698
+ "body": {
1699
+ "transferAmount": {
1700
+ "currency": "{$request.body.amount.currency}",
1701
+ "amount": "{$environment.quoteTransferAmount}"
1702
+ },
1703
+ "payeeReceiveAmount": {
1704
+ "currency": "{$request.body.amount.currency}",
1705
+ "amount": "{$environment.quotePayeeReceiveAmount}"
1706
+ },
1707
+ "payeeFspFee": {
1708
+ "currency": "{$request.body.amount.currency}",
1709
+ "amount": "{$environment.quotePayeeFspFee}"
1710
+ },
1711
+ "payeeFspCommission": {
1712
+ "currency": "{$request.body.amount.currency}",
1713
+ "amount": "{$environment.quotePayeeFspCommission}"
1714
+ },
1715
+ "expiration": "{$environment.quoteExpiration}"
1716
+ },
1717
+ "scripts": {
1718
+ "exec": [
1719
+ "const quoteBody = JSON.parse(request.body)",
1720
+ "environment.quoteTransferAmount = quoteBody.amount.amount",
1721
+ "environment.quotePayeeFspFee = 0.2",
1722
+ "environment.quotePayeeFspCommission = 0.3",
1723
+ "environment.quotePayeeReceiveAmount = quoteBody.amount.amount",
1724
+ "if (quoteBody.amountType === 'RECEIVE') {",
1725
+ " environment.quoteTransferAmount = (+quoteBody.amount.amount) + environment.quotePayeeFspFee + environment.quotePayeeFspCommission",
1726
+ "}",
1727
+ "environment.quoteExpiration =new Date(new Date().getTime() + 24 * 60 * 60 * 1000).toISOString()"
1728
+ ],
1729
+ "scriptingEngine": "javascript"
1730
+ }
1731
+ },
1732
+ "delay": 0,
1733
+ "type": "MOCK_CALLBACK"
1734
+ }
1735
+ },
1736
+ {
1737
+ "type": "callback",
1738
+ "version": 1,
1739
+ "ruleId": 103,
1740
+ "priority": 1,
1741
+ "description": "post /transfers",
1742
+ "apiVersion": {
1743
+ "minorVersion": 0,
1744
+ "majorVersion": 1,
1745
+ "type": "fspiop",
1746
+ "asynchronous": true
1747
+ },
1748
+ "conditions": {
1749
+ "all": [
1750
+ {
1751
+ "fact": "operationPath",
1752
+ "operator": "equal",
1753
+ "value": "/transfers"
1754
+ },
1755
+ {
1756
+ "fact": "method",
1757
+ "operator": "equal",
1758
+ "value": "post"
1759
+ }
1760
+ ]
1761
+ },
1762
+ "event": {
1763
+ "method": "put",
1764
+ "path": "/transfers/{ID}",
1765
+ "params": {},
1766
+ "delay": 0,
1767
+ "type": "MOCK_CALLBACK"
1768
+ }
1769
+ },
1770
+ {
1771
+ "type": "callback",
1772
+ "version": 1,
1773
+ "ruleId": 104,
1774
+ "priority": 1,
1775
+ "description": "post /transactionRequests",
1776
+ "apiVersion": {
1777
+ "minorVersion": 0,
1778
+ "majorVersion": 1,
1779
+ "type": "fspiop",
1780
+ "asynchronous": true
1781
+ },
1782
+ "conditions": {
1783
+ "all": [
1784
+ {
1785
+ "fact": "operationPath",
1786
+ "operator": "equal",
1787
+ "value": "/transactionRequests"
1788
+ },
1789
+ {
1790
+ "fact": "method",
1791
+ "operator": "equal",
1792
+ "value": "post"
1793
+ }
1794
+ ]
1795
+ },
1796
+ "event": {
1797
+ "method": "put",
1798
+ "path": "/transactionRequests/{ID}",
1799
+ "params": {
1800
+ "body": {
1801
+ "transactionRequestState": "RECEIVED"
1802
+ }
1803
+ },
1804
+ "delay": 0,
1805
+ "type": "MOCK_CALLBACK"
1806
+ }
1807
+ },
1808
+ {
1809
+ "type": "callback",
1810
+ "version": 1,
1811
+ "ruleId": 105,
1812
+ "priority": 1,
1813
+ "description": "get /quotes/{ID}",
1814
+ "apiVersion": {
1815
+ "minorVersion": 0,
1816
+ "majorVersion": 1,
1817
+ "type": "fspiop",
1818
+ "asynchronous": true
1819
+ },
1820
+ "conditions": {
1821
+ "all": [
1822
+ {
1823
+ "fact": "operationPath",
1824
+ "operator": "equal",
1825
+ "value": "/quotes/{ID}"
1826
+ },
1827
+ {
1828
+ "fact": "method",
1829
+ "operator": "equal",
1830
+ "value": "get"
1831
+ }
1832
+ ]
1833
+ },
1834
+ "event": {
1835
+ "method": "put",
1836
+ "path": "/quotes/{ID}",
1837
+ "params": {},
1838
+ "delay": 0,
1839
+ "type": "MOCK_CALLBACK"
1840
+ }
1841
+ },
1842
+ {
1843
+ "type": "callback",
1844
+ "version": 1,
1845
+ "ruleId": 106,
1846
+ "priority": 1,
1847
+ "description": "get /participants/{Type}/{ID}/{SubId}",
1848
+ "apiVersion": {
1849
+ "minorVersion": 0,
1850
+ "majorVersion": 1,
1851
+ "type": "fspiop",
1852
+ "asynchronous": true
1853
+ },
1854
+ "conditions": {
1855
+ "all": [
1856
+ {
1857
+ "fact": "operationPath",
1858
+ "operator": "equal",
1859
+ "value": "/participants/{Type}/{ID}/{SubId}"
1860
+ },
1861
+ {
1862
+ "fact": "method",
1863
+ "operator": "equal",
1864
+ "value": "get"
1865
+ }
1866
+ ]
1867
+ },
1868
+ "event": {
1869
+ "method": "put",
1870
+ "path": "/participants/{Type}/{ID}/{SubId}",
1871
+ "params": {},
1872
+ "delay": 0,
1873
+ "type": "MOCK_CALLBACK"
1874
+ }
1875
+ },
1876
+ {
1877
+ "type": "callback",
1878
+ "version": 1,
1879
+ "ruleId": 107,
1880
+ "priority": 1,
1881
+ "description": "post /participants/{Type}/{ID}/{SubId}",
1882
+ "apiVersion": {
1883
+ "minorVersion": 0,
1884
+ "majorVersion": 1,
1885
+ "type": "fspiop",
1886
+ "asynchronous": true
1887
+ },
1888
+ "conditions": {
1889
+ "all": [
1890
+ {
1891
+ "fact": "operationPath",
1892
+ "operator": "equal",
1893
+ "value": "/participants/{Type}/{ID}/{SubId}"
1894
+ },
1895
+ {
1896
+ "fact": "method",
1897
+ "operator": "equal",
1898
+ "value": "post"
1899
+ }
1900
+ ]
1901
+ },
1902
+ "event": {
1903
+ "method": "put",
1904
+ "path": "/participants/{Type}/{ID}/{SubId}",
1905
+ "params": {},
1906
+ "delay": 0,
1907
+ "type": "MOCK_CALLBACK"
1908
+ }
1909
+ },
1910
+ {
1911
+ "type": "callback",
1912
+ "version": 1,
1913
+ "ruleId": 108,
1914
+ "priority": 1,
1915
+ "description": "get /participants/{Type}/{ID}",
1916
+ "apiVersion": {
1917
+ "minorVersion": 0,
1918
+ "majorVersion": 1,
1919
+ "type": "fspiop",
1920
+ "asynchronous": true
1921
+ },
1922
+ "conditions": {
1923
+ "all": [
1924
+ {
1925
+ "fact": "operationPath",
1926
+ "operator": "equal",
1927
+ "value": "/participants/{Type}/{ID}"
1928
+ },
1929
+ {
1930
+ "fact": "method",
1931
+ "operator": "equal",
1932
+ "value": "get"
1933
+ }
1934
+ ]
1935
+ },
1936
+ "event": {
1937
+ "method": "put",
1938
+ "path": "/participants/{Type}/{ID}",
1939
+ "params": {},
1940
+ "delay": 0,
1941
+ "type": "MOCK_CALLBACK"
1942
+ }
1943
+ },
1944
+ {
1945
+ "type": "callback",
1946
+ "version": 1,
1947
+ "ruleId": 109,
1948
+ "priority": 1,
1949
+ "description": "post /participants/{Type}/{ID}",
1950
+ "apiVersion": {
1951
+ "minorVersion": 0,
1952
+ "majorVersion": 1,
1953
+ "type": "fspiop",
1954
+ "asynchronous": true
1955
+ },
1956
+ "conditions": {
1957
+ "all": [
1958
+ {
1959
+ "fact": "operationPath",
1960
+ "operator": "equal",
1961
+ "value": "/participants/{Type}/{ID}"
1962
+ },
1963
+ {
1964
+ "fact": "method",
1965
+ "operator": "equal",
1966
+ "value": "post"
1967
+ }
1968
+ ]
1969
+ },
1970
+ "event": {
1971
+ "method": "put",
1972
+ "path": "/participants/{Type}/{ID}",
1973
+ "params": {},
1974
+ "delay": 0,
1975
+ "type": "MOCK_CALLBACK"
1976
+ }
1977
+ },
1978
+ {
1979
+ "type": "callback",
1980
+ "version": 1,
1981
+ "ruleId": 110,
1982
+ "priority": 1,
1983
+ "description": "post /participants",
1984
+ "apiVersion": {
1985
+ "minorVersion": 0,
1986
+ "majorVersion": 1,
1987
+ "type": "fspiop",
1988
+ "asynchronous": true
1989
+ },
1990
+ "conditions": {
1991
+ "all": [
1992
+ {
1993
+ "fact": "operationPath",
1994
+ "operator": "equal",
1995
+ "value": "/participants"
1996
+ },
1997
+ {
1998
+ "fact": "method",
1999
+ "operator": "equal",
2000
+ "value": "post"
2001
+ }
2002
+ ]
2003
+ },
2004
+ "event": {
2005
+ "method": "put",
2006
+ "path": "/participants/{ID}",
2007
+ "params": {},
2008
+ "delay": 0,
2009
+ "type": "MOCK_CALLBACK"
2010
+ }
2011
+ },
2012
+ {
2013
+ "type": "callback",
2014
+ "version": 1,
2015
+ "ruleId": 111,
2016
+ "priority": 1,
2017
+ "description": "get /parties/{Type}/{ID}/{SubId}",
2018
+ "apiVersion": {
2019
+ "minorVersion": 0,
2020
+ "majorVersion": 1,
2021
+ "type": "fspiop",
2022
+ "asynchronous": true
2023
+ },
2024
+ "conditions": {
2025
+ "all": [
2026
+ {
2027
+ "fact": "operationPath",
2028
+ "operator": "equal",
2029
+ "value": "/parties/{Type}/{ID}/{SubId}"
2030
+ },
2031
+ {
2032
+ "fact": "method",
2033
+ "operator": "equal",
2034
+ "value": "get"
2035
+ }
2036
+ ]
2037
+ },
2038
+ "event": {
2039
+ "method": "put",
2040
+ "path": "/parties/{Type}/{ID}/{SubId}",
2041
+ "params": {},
2042
+ "delay": 0,
2043
+ "type": "MOCK_CALLBACK"
2044
+ }
2045
+ },
2046
+ {
2047
+ "type": "callback",
2048
+ "version": 1,
2049
+ "ruleId": 112,
2050
+ "priority": 1,
2051
+ "description": "get /transactionRequests/{ID}",
2052
+ "apiVersion": {
2053
+ "minorVersion": 0,
2054
+ "majorVersion": 1,
2055
+ "type": "fspiop",
2056
+ "asynchronous": true
2057
+ },
2058
+ "conditions": {
2059
+ "all": [
2060
+ {
2061
+ "fact": "operationPath",
2062
+ "operator": "equal",
2063
+ "value": "/transactionRequests/{ID}"
2064
+ },
2065
+ {
2066
+ "fact": "method",
2067
+ "operator": "equal",
2068
+ "value": "get"
2069
+ }
2070
+ ]
2071
+ },
2072
+ "event": {
2073
+ "method": "put",
2074
+ "path": "/transactionRequests/{ID}",
2075
+ "params": {},
2076
+ "delay": 0,
2077
+ "type": "MOCK_CALLBACK"
2078
+ }
2079
+ },
2080
+ {
2081
+ "type": "callback",
2082
+ "version": 1,
2083
+ "ruleId": 113,
2084
+ "priority": 1,
2085
+ "description": "get /authorizations/{ID}",
2086
+ "apiVersion": {
2087
+ "minorVersion": 0,
2088
+ "majorVersion": 1,
2089
+ "type": "fspiop",
2090
+ "asynchronous": true
2091
+ },
2092
+ "conditions": {
2093
+ "all": [
2094
+ {
2095
+ "fact": "operationPath",
2096
+ "operator": "equal",
2097
+ "value": "/authorizations/{ID}"
2098
+ },
2099
+ {
2100
+ "fact": "method",
2101
+ "operator": "equal",
2102
+ "value": "get"
2103
+ }
2104
+ ]
2105
+ },
2106
+ "event": {
2107
+ "method": "put",
2108
+ "path": "/authorizations/{ID}",
2109
+ "params": {
2110
+ "body": {
2111
+ "responseType": "ENTERED"
2112
+ }
2113
+ },
2114
+ "delay": 0,
2115
+ "type": "MOCK_CALLBACK"
2116
+ }
2117
+ },
2118
+ {
2119
+ "type": "callback",
2120
+ "version": 1,
2121
+ "ruleId": 114,
2122
+ "priority": 1,
2123
+ "description": "get /transfers/{ID}",
2124
+ "apiVersion": {
2125
+ "minorVersion": 0,
2126
+ "majorVersion": 1,
2127
+ "type": "fspiop",
2128
+ "asynchronous": true
2129
+ },
2130
+ "conditions": {
2131
+ "all": [
2132
+ {
2133
+ "fact": "operationPath",
2134
+ "operator": "equal",
2135
+ "value": "/transfers/{ID}"
2136
+ },
2137
+ {
2138
+ "fact": "method",
2139
+ "operator": "equal",
2140
+ "value": "get"
2141
+ }
2142
+ ]
2143
+ },
2144
+ "event": {
2145
+ "method": "put",
2146
+ "path": "/transfers/{ID}",
2147
+ "params": {},
2148
+ "delay": 0,
2149
+ "type": "MOCK_CALLBACK"
2150
+ }
2151
+ },
2152
+ {
2153
+ "type": "callback",
2154
+ "version": 1,
2155
+ "ruleId": 115,
2156
+ "priority": 1,
2157
+ "description": "get /transactions/{ID}",
2158
+ "apiVersion": {
2159
+ "minorVersion": 0,
2160
+ "majorVersion": 1,
2161
+ "type": "fspiop",
2162
+ "asynchronous": true
2163
+ },
2164
+ "conditions": {
2165
+ "all": [
2166
+ {
2167
+ "fact": "operationPath",
2168
+ "operator": "equal",
2169
+ "value": "/transactions/{ID}"
2170
+ },
2171
+ {
2172
+ "fact": "method",
2173
+ "operator": "equal",
2174
+ "value": "get"
2175
+ }
2176
+ ]
2177
+ },
2178
+ "event": {
2179
+ "method": "put",
2180
+ "path": "/transactions/{ID}",
2181
+ "params": {
2182
+ "body": {
2183
+ "transactionState": "COMPLETED"
2184
+ }
2185
+ },
2186
+ "delay": 0,
2187
+ "type": "MOCK_CALLBACK"
2188
+ }
2189
+ },
2190
+ {
2191
+ "type": "callback",
2192
+ "version": 1,
2193
+ "ruleId": 116,
2194
+ "priority": 1,
2195
+ "description": "get /bulkQuotes/{ID}",
2196
+ "apiVersion": {
2197
+ "minorVersion": 0,
2198
+ "majorVersion": 1,
2199
+ "type": "fspiop",
2200
+ "asynchronous": true
2201
+ },
2202
+ "conditions": {
2203
+ "all": [
2204
+ {
2205
+ "fact": "operationPath",
2206
+ "operator": "equal",
2207
+ "value": "/bulkQuotes/{ID}"
2208
+ },
2209
+ {
2210
+ "fact": "method",
2211
+ "operator": "equal",
2212
+ "value": "get"
2213
+ }
2214
+ ]
2215
+ },
2216
+ "event": {
2217
+ "method": null,
2218
+ "path": null,
2219
+ "params": {},
2220
+ "delay": 0,
2221
+ "type": "MOCK_CALLBACK"
2222
+ }
2223
+ },
2224
+ {
2225
+ "type": "callback",
2226
+ "version": 1,
2227
+ "ruleId": 117,
2228
+ "priority": 1,
2229
+ "description": "post /bulkQuotes",
2230
+ "apiVersion": {
2231
+ "minorVersion": 0,
2232
+ "majorVersion": 1,
2233
+ "type": "fspiop",
2234
+ "asynchronous": true
2235
+ },
2236
+ "conditions": {
2237
+ "all": [
2238
+ {
2239
+ "fact": "operationPath",
2240
+ "operator": "equal",
2241
+ "value": "/bulkQuotes"
2242
+ },
2243
+ {
2244
+ "fact": "method",
2245
+ "operator": "equal",
2246
+ "value": "post"
2247
+ }
2248
+ ]
2249
+ },
2250
+ "event": {
2251
+ "method": "put",
2252
+ "path": "/bulkQuotes/{ID}",
2253
+ "params": {},
2254
+ "delay": 0,
2255
+ "type": "MOCK_CALLBACK"
2256
+ }
2257
+ },
2258
+ {
2259
+ "type": "callback",
2260
+ "version": 1,
2261
+ "ruleId": 118,
2262
+ "priority": 1,
2263
+ "description": "get /bulkTransfers/{ID}",
2264
+ "apiVersion": {
2265
+ "minorVersion": 0,
2266
+ "majorVersion": 1,
2267
+ "type": "fspiop",
2268
+ "asynchronous": true
2269
+ },
2270
+ "conditions": {
2271
+ "all": [
2272
+ {
2273
+ "fact": "operationPath",
2274
+ "operator": "equal",
2275
+ "value": "/bulkTransfers/{ID}"
2276
+ },
2277
+ {
2278
+ "fact": "method",
2279
+ "operator": "equal",
2280
+ "value": "get"
2281
+ }
2282
+ ]
2283
+ },
2284
+ "event": {
2285
+ "method": null,
2286
+ "path": null,
2287
+ "params": {},
2288
+ "delay": 0,
2289
+ "type": "MOCK_CALLBACK"
2290
+ }
2291
+ },
2292
+ {
2293
+ "type": "callback",
2294
+ "version": 1,
2295
+ "ruleId": 119,
2296
+ "priority": 1,
2297
+ "description": "post /bulkTransfers",
2298
+ "apiVersion": {
2299
+ "minorVersion": 0,
2300
+ "majorVersion": 1,
2301
+ "type": "fspiop",
2302
+ "asynchronous": true
2303
+ },
2304
+ "conditions": {
2305
+ "all": [
2306
+ {
2307
+ "fact": "operationPath",
2308
+ "operator": "equal",
2309
+ "value": "/bulkTransfers"
2310
+ },
2311
+ {
2312
+ "fact": "method",
2313
+ "operator": "equal",
2314
+ "value": "post"
2315
+ }
2316
+ ]
2317
+ },
2318
+ "event": {
2319
+ "method": "put",
2320
+ "path": "/bulkTransfers/{ID}",
2321
+ "params": {},
2322
+ "delay": 0,
2323
+ "type": "MOCK_CALLBACK"
2324
+ }
2325
+ },
2326
+ {
2327
+ "ruleId": 151,
2328
+ "priority": 1,
2329
+ "description": "get /fxQuotes/{ID}",
2330
+ "apiVersion": {
2331
+ "minorVersion": 0,
2332
+ "majorVersion": 2,
2333
+ "type": "fspiop",
2334
+ "asynchronous": true,
2335
+ "additionalApi": true,
2336
+ "specFile": "spec_files/api_definitions/fspiop_2.0/api_spec.yaml",
2337
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0/callback_map.json",
2338
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0/response_map.json",
2339
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0/mockRef.json",
2340
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0/trigger_templates"
2341
+ },
2342
+ "conditions": {
2343
+ "all": [
2344
+ {
2345
+ "fact": "operationPath",
2346
+ "operator": "equal",
2347
+ "value": "/fxQuotes/{ID}"
2348
+ },
2349
+ {
2350
+ "fact": "method",
2351
+ "operator": "equal",
2352
+ "value": "get"
2353
+ }
2354
+ ]
2355
+ },
2356
+ "event": {
2357
+ "method": "put",
2358
+ "path": "/fxQuotes/{ID}",
2359
+ "params": {
2360
+ "scripts": {
2361
+ "scriptingEngine": "javascript"
2362
+ },
2363
+ "headers": {
2364
+ "Content-Type": "{$request.headers.content-type}",
2365
+ "Date": "{$request.headers.date}",
2366
+ "FSPIOP-Source": "{$request.headers.fspiop-destination}"
2367
+ },
2368
+ "body": {
2369
+ "condition": "HOr33-H3AfTDHrSkPjJtVPRdKouuMkDXTR4ejlQa8Ks",
2370
+ "conversionTerms": {
2371
+ "conversionId": "b51ec534-ee48-4575-b6a9-ead2955b8069",
2372
+ "initiatingFsp": "testingtoolkitdfsp",
2373
+ "counterPartyFsp": "fxp_123",
2374
+ "amountType": "RECEIVE",
2375
+ "sourceAmount": {
2376
+ "currency": "USD",
2377
+ "amount": "105.23"
2378
+ },
2379
+ "targetAmount": {
2380
+ "currency": "EUR",
2381
+ "amount": "100"
2382
+ },
2383
+ "expiration": "2016-05-24T08:38:08.699-04:00",
2384
+ "charges": [
2385
+ {
2386
+ "chargeType": "Conversion fee",
2387
+ "sourceAmount": {
2388
+ "currency": "USD",
2389
+ "amount": "10"
2390
+ },
2391
+ "targetAmount": {
2392
+ "currency": "AED",
2393
+ "amount": "9.5"
2394
+ }
2395
+ }
2396
+ ],
2397
+ "determiningTransferId": "b51ec534-ee48-4575-b6a9-ead2955b8069"
2398
+ }
2399
+ }
2400
+ },
2401
+ "type": "MOCK_CALLBACK"
2402
+ },
2403
+ "type": "callback",
2404
+ "version": 1
2405
+ },
2406
+ {
2407
+ "ruleId": 152,
2408
+ "priority": 1,
2409
+ "description": "post /fxTransfers",
2410
+ "apiVersion": {
2411
+ "minorVersion": 0,
2412
+ "majorVersion": 2,
2413
+ "type": "fspiop",
2414
+ "asynchronous": true,
2415
+ "additionalApi": true,
2416
+ "specFile": "spec_files/api_definitions/fspiop_2.0/api_spec.yaml",
2417
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0/callback_map.json",
2418
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0/response_map.json",
2419
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0/mockRef.json",
2420
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0/trigger_templates"
2421
+ },
2422
+ "conditions": {
2423
+ "all": [
2424
+ {
2425
+ "fact": "operationPath",
2426
+ "operator": "equal",
2427
+ "value": "/fxTransfers"
2428
+ },
2429
+ {
2430
+ "fact": "method",
2431
+ "operator": "equal",
2432
+ "value": "post"
2433
+ }
2434
+ ]
2435
+ },
2436
+ "event": {
2437
+ "method": "put",
2438
+ "path": "/fxTransfers/{ID}",
2439
+ "params": {
2440
+ "scripts": {
2441
+ "scriptingEngine": "postman"
2442
+ },
2443
+ "headers": {
2444
+ "Content-Type": "{$request.headers.content-type}",
2445
+ "Date": "{$request.headers.date}",
2446
+ "FSPIOP-Source": "{$request.body.counterPartyFsp}"
2447
+ },
2448
+ "body": {
2449
+ "fulfilment": "WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8",
2450
+ "completedTimestamp": "2016-05-24T08:38:08.699-04:00",
2451
+ "conversionState": "RESERVED"
2452
+ }
2453
+ },
2454
+ "type": "MOCK_CALLBACK"
2455
+ },
2456
+ "type": "callback",
2457
+ "version": 1
2458
+ },
2459
+ {
2460
+ "ruleId": 153,
2461
+ "priority": 1,
2462
+ "description": "get /fxTransfers/{ID}",
2463
+ "apiVersion": {
2464
+ "minorVersion": 0,
2465
+ "majorVersion": 2,
2466
+ "type": "fspiop",
2467
+ "asynchronous": true,
2468
+ "additionalApi": true,
2469
+ "specFile": "spec_files/api_definitions/fspiop_2.0/api_spec.yaml",
2470
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0/callback_map.json",
2471
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0/response_map.json",
2472
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0/mockRef.json",
2473
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0/trigger_templates"
2474
+ },
2475
+ "conditions": {
2476
+ "all": [
2477
+ {
2478
+ "fact": "operationPath",
2479
+ "operator": "equal",
2480
+ "value": "/fxTransfers/{ID}"
2481
+ },
2482
+ {
2483
+ "fact": "method",
2484
+ "operator": "equal",
2485
+ "value": "get"
2486
+ }
2487
+ ]
2488
+ },
2489
+ "event": {
2490
+ "method": "put",
2491
+ "path": "/fxTransfers/{ID}",
2492
+ "params": {
2493
+ "scripts": {
2494
+ "scriptingEngine": "postman"
2495
+ },
2496
+ "headers": {
2497
+ "Content-Type": "{$request.headers.content-type}",
2498
+ "Date": "{$request.headers.date}",
2499
+ "FSPIOP-Source": "{$request.headers.fspiop-destination}"
2500
+ },
2501
+ "body": {
2502
+ "fulfilment": "WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8",
2503
+ "completedTimestamp": "2016-05-24T08:38:08.699-04:00",
2504
+ "conversionState": "RESERVED"
2505
+ }
2506
+ },
2507
+ "type": "MOCK_CALLBACK"
2508
+ },
2509
+ "type": "callback",
2510
+ "version": 1
2511
+ },
2512
+ {
2513
+ "ruleId": 154,
2514
+ "priority": 1,
2515
+ "description": "get /services/FXP",
2516
+ "apiVersion": {
2517
+ "minorVersion": 0,
2518
+ "majorVersion": 2,
2519
+ "type": "fspiop",
2520
+ "asynchronous": true,
2521
+ "additionalApi": true,
2522
+ "specFile": "spec_files/api_definitions/fspiop_2.0/api_spec.yaml",
2523
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0/callback_map.json",
2524
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0/response_map.json",
2525
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0/mockRef.json",
2526
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0/trigger_templates"
2527
+ },
2528
+ "conditions": {
2529
+ "all": [
2530
+ {
2531
+ "fact": "operationPath",
2532
+ "operator": "equal",
2533
+ "value": "/services/FXP"
2534
+ },
2535
+ {
2536
+ "fact": "method",
2537
+ "operator": "equal",
2538
+ "value": "get"
2539
+ }
2540
+ ]
2541
+ },
2542
+ "event": {
2543
+ "method": "put",
2544
+ "path": "/services/FXP",
2545
+ "params": {
2546
+ "scripts": {
2547
+ "scriptingEngine": "postman"
2548
+ },
2549
+ "headers": {
2550
+ "Content-Type": "{$request.headers.content-type}",
2551
+ "Date": "{$request.headers.date}",
2552
+ "FSPIOP-Source": "{$request.headers.fspiop-destination}"
2553
+ },
2554
+ "body": {
2555
+ "providers": [
2556
+ "fxp_123"
2557
+ ]
2558
+ }
2559
+ },
2560
+ "type": "MOCK_CALLBACK"
2561
+ },
2562
+ "type": "callback",
2563
+ "version": 1
2564
+ },
2565
+ {
2566
+ "ruleId": 155,
2567
+ "priority": 1,
2568
+ "description": "get /services/FXP/{SourceCurrency}/{TargetCurrency}",
2569
+ "apiVersion": {
2570
+ "minorVersion": 0,
2571
+ "majorVersion": 2,
2572
+ "type": "fspiop",
2573
+ "asynchronous": true,
2574
+ "additionalApi": true,
2575
+ "specFile": "spec_files/api_definitions/fspiop_2.0/api_spec.yaml",
2576
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0/callback_map.json",
2577
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0/response_map.json",
2578
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0/mockRef.json",
2579
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0/trigger_templates"
2580
+ },
2581
+ "conditions": {
2582
+ "all": [
2583
+ {
2584
+ "fact": "operationPath",
2585
+ "operator": "equal",
2586
+ "value": "/services/FXP/{SourceCurrency}/{TargetCurrency}"
2587
+ },
2588
+ {
2589
+ "fact": "method",
2590
+ "operator": "equal",
2591
+ "value": "get"
2592
+ }
2593
+ ]
2594
+ },
2595
+ "event": {
2596
+ "method": "put",
2597
+ "path": "/services/FXP/{SourceCurrency}/{TargetCurrency}",
2598
+ "params": {
2599
+ "scripts": {
2600
+ "scriptingEngine": "postman"
2601
+ },
2602
+ "body": {
2603
+ "providers": [
2604
+ "fxp_123"
2605
+ ]
2606
+ },
2607
+ "headers": {
2608
+ "Content-Type": "{$request.headers.content-type}",
2609
+ "Date": "{$request.headers.date}",
2610
+ "FSPIOP-Source": "hub_1"
2611
+ }
2612
+ },
2613
+ "type": "MOCK_CALLBACK"
2614
+ },
2615
+ "type": "callback",
2616
+ "version": 1
2617
+ },
2618
+ {
2619
+ "ruleId": 156,
2620
+ "priority": 1,
2621
+ "description": "post /fxQuotes",
2622
+ "apiVersion": {
2623
+ "minorVersion": 0,
2624
+ "majorVersion": 2,
2625
+ "type": "fspiop",
2626
+ "asynchronous": true,
2627
+ "additionalApi": true,
2628
+ "specFile": "spec_files/api_definitions/fspiop_2.0/api_spec.yaml",
2629
+ "callbackMapFile": "spec_files/api_definitions/fspiop_2.0/callback_map.json",
2630
+ "responseMapFile": "spec_files/api_definitions/fspiop_2.0/response_map.json",
2631
+ "jsfRefFile": "spec_files/api_definitions/fspiop_2.0/mockRef.json",
2632
+ "triggerTemplatesFolder": "spec_files/api_definitions/fspiop_2.0/trigger_templates"
2633
+ },
2634
+ "conditions": {
2635
+ "all": [
2636
+ {
2637
+ "fact": "operationPath",
2638
+ "operator": "equal",
2639
+ "value": "/fxQuotes"
2640
+ },
2641
+ {
2642
+ "fact": "method",
2643
+ "operator": "equal",
2644
+ "value": "post"
2645
+ }
2646
+ ]
2647
+ },
2648
+ "event": {
2649
+ "method": "put",
2650
+ "path": "/fxQuotes/{ID}",
2651
+ "params": {
2652
+ "scripts": {
2653
+ "scriptingEngine": "javascript"
2654
+ },
2655
+ "headers": {
2656
+ "Content-Type": "{$request.headers.content-type}",
2657
+ "Date": "{$request.headers.date}",
2658
+ "FSPIOP-Source": "{$request.headers.fspiop-destination}"
2659
+ },
2660
+ "body": {
2661
+ "condition": "HOr33-H3AfTDHrSkPjJtVPRdKouuMkDXTR4ejlQa8Ks",
2662
+ "conversionTerms": {
2663
+ "conversionId": "b51ec534-ee48-4575-b6a9-ead2955b8069",
2664
+ "initiatingFsp": "testingtoolkitdfsp",
2665
+ "counterPartyFsp": "fxp_123",
2666
+ "amountType": "RECEIVE",
2667
+ "sourceAmount": {
2668
+ "currency": "USD",
2669
+ "amount": "105.23"
2670
+ },
2671
+ "targetAmount": {
2672
+ "currency": "EUR",
2673
+ "amount": "100"
2674
+ },
2675
+ "expiration": "2016-05-24T08:38:08.699-04:00",
2676
+ "charges": [
2677
+ {
2678
+ "chargeType": "Conversion fee",
2679
+ "sourceAmount": {
2680
+ "currency": "USD",
2681
+ "amount": "10"
2682
+ },
2683
+ "targetAmount": {
2684
+ "currency": "AED",
2685
+ "amount": "9.5"
2686
+ }
2687
+ }
2688
+ ],
2689
+ "determiningTransferId": "b51ec534-ee48-4575-b6a9-ead2955b8069"
2690
+ }
2691
+ }
2692
+ },
2693
+ "type": "MOCK_CALLBACK"
2694
+ },
2695
+ "type": "callback",
2696
+ "version": 1
2697
+ }
2698
+ ]