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,1768 @@
1
+ openapi: "3.0.2"
2
+ info:
3
+ version: "2.0"
4
+ title: Mojaloop API for Currency conversion
5
+ description:
6
+ Based on "Currency conversion support in Mojaloop" document version 2.0 updated on 2020-09-28.
7
+
8
+
9
+ **Note:** The API supports a maximum size of 65536 bytes (64 Kilobytes) in the HTTP header.
10
+ license:
11
+ name: CC BY-ND 4.0
12
+ url: https://github.com/mojaloop/mojaloop-specification/blob/main/LICENSE.md
13
+ contact:
14
+ name: "SK or MR"
15
+ url: https://github.com/mojaloop/mojaloop-specification/issues
16
+ servers:
17
+ - url: "{protocol}://hostname:<port>/switch/"
18
+ variables:
19
+ protocol:
20
+ enum:
21
+ - http
22
+ - https
23
+ default: https
24
+
25
+ paths:
26
+
27
+ #Parties
28
+ #This resource is part of the FSPIOP API but the /parties resource is listed here only to show the changes needed
29
+ /fxParties/{Type}/{ID}:
30
+ parameters:
31
+ #Path
32
+ - $ref: "#/components/parameters/Type"
33
+ - $ref: "#/components/parameters/ID"
34
+ #Headers
35
+ - $ref: "#/components/parameters/Content-Type"
36
+ - $ref: "#/components/parameters/Date"
37
+ - $ref: "#/components/parameters/X-Forwarded-For"
38
+ - $ref: "#/components/parameters/FSPIOP-Source"
39
+ - $ref: "#/components/parameters/FSPIOP-Destination"
40
+ - $ref: "#/components/parameters/FSPIOP-Encryption"
41
+ - $ref: "#/components/parameters/FSPIOP-Signature"
42
+ - $ref: "#/components/parameters/FSPIOP-URI"
43
+ - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
44
+ get:
45
+ description: The HTTP request `GET /fxParties/{Type}/{ID}` (or `GET /fxParties/{Type}/{ID}/{SubId}`) is used to look up information regarding the requested Party, defined by `{Type}`, `{ID}` and optionally `{SubId}` (for example, `GET /fxParties/MSISDN/123456789`, or `GET /fxParties/BUSINESS/shoecompany/employee1`).
46
+ summary: Look up party information
47
+ tags:
48
+ - fxParties
49
+ operationId: FxPartiesByTypeAndID
50
+ parameters:
51
+ #Headers
52
+ - $ref: "#/components/parameters/Accept"
53
+ responses:
54
+ 202:
55
+ $ref: "#/components/responses/202"
56
+ 400:
57
+ $ref: "#/components/responses/400"
58
+ 401:
59
+ $ref: "#/components/responses/401"
60
+ 403:
61
+ $ref: "#/components/responses/403"
62
+ 404:
63
+ $ref: "#/components/responses/404"
64
+ 405:
65
+ $ref: "#/components/responses/405"
66
+ 406:
67
+ $ref: "#/components/responses/406"
68
+ 501:
69
+ $ref: "#/components/responses/501"
70
+ 503:
71
+ $ref: "#/components/responses/503"
72
+ put:
73
+ description: The callback `PUT /fxParties/{Type}/{ID}` (or `PUT /fxParties/{Type}/{ID}/{SubId}`) is used to inform the client of a successful result of the Party information lookup.
74
+ summary: Return party information
75
+ tags:
76
+ - fxParties
77
+ operationId: FxPartiesByTypeAndID2
78
+ parameters:
79
+ #Headers
80
+ - $ref: "#/components/parameters/Content-Length"
81
+ requestBody:
82
+ description: Party information returned.
83
+ required: true
84
+ content:
85
+ application/json:
86
+ schema:
87
+ $ref: "#/components/schemas/PartiesTypeIDPutResponse"
88
+ responses:
89
+ 200:
90
+ $ref: "#/components/responses/200"
91
+ 400:
92
+ $ref: "#/components/responses/400"
93
+ 401:
94
+ $ref: "#/components/responses/401"
95
+ 403:
96
+ $ref: "#/components/responses/403"
97
+ 404:
98
+ $ref: "#/components/responses/404"
99
+ 405:
100
+ $ref: "#/components/responses/405"
101
+ 406:
102
+ $ref: "#/components/responses/406"
103
+ 501:
104
+ $ref: "#/components/responses/501"
105
+ 503:
106
+ $ref: "#/components/responses/503"
107
+ /fxParties/{Type}/{ID}/error:
108
+ put:
109
+ description: If the server is unable to find Party information of the provided identity, or another processing error occurred, the error callback `PUT /fxParties/{Type}/{ID}/error` (or `PUT /fxParties/{Type}/{ID}/{SubI}/error`) is used.
110
+ summary: Return party information error
111
+ tags:
112
+ - fxParties
113
+ operationId: FxPartiesErrorByTypeAndID
114
+ parameters:
115
+ #Path
116
+ - $ref: "#/components/parameters/Type"
117
+ - $ref: "#/components/parameters/ID"
118
+ #Headers
119
+ - $ref: "#/components/parameters/Content-Length"
120
+ - $ref: "#/components/parameters/Content-Type"
121
+ - $ref: "#/components/parameters/Date"
122
+ - $ref: "#/components/parameters/X-Forwarded-For"
123
+ - $ref: "#/components/parameters/FSPIOP-Source"
124
+ - $ref: "#/components/parameters/FSPIOP-Destination"
125
+ - $ref: "#/components/parameters/FSPIOP-Encryption"
126
+ - $ref: "#/components/parameters/FSPIOP-Signature"
127
+ - $ref: "#/components/parameters/FSPIOP-URI"
128
+ - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
129
+ requestBody:
130
+ description: Details of the error returned.
131
+ required: true
132
+ content:
133
+ application/json:
134
+ schema:
135
+ $ref: "#/components/schemas/ErrorInformationObject"
136
+ responses:
137
+ 200:
138
+ $ref: "#/components/responses/200"
139
+ 400:
140
+ $ref: "#/components/responses/400"
141
+ 401:
142
+ $ref: "#/components/responses/401"
143
+ 403:
144
+ $ref: "#/components/responses/403"
145
+ 404:
146
+ $ref: "#/components/responses/404"
147
+ 405:
148
+ $ref: "#/components/responses/405"
149
+ 406:
150
+ $ref: "#/components/responses/406"
151
+ 501:
152
+ $ref: "#/components/responses/501"
153
+ 503:
154
+ $ref: "#/components/responses/503"
155
+ /fxParties/{Type}/{ID}/{SubId}:
156
+ parameters:
157
+ #Path
158
+ - $ref: "#/components/parameters/Type"
159
+ - $ref: "#/components/parameters/ID"
160
+ - $ref: "#/components/parameters/SubId"
161
+ #Headers
162
+ - $ref: "#/components/parameters/Content-Type"
163
+ - $ref: "#/components/parameters/Date"
164
+ - $ref: "#/components/parameters/X-Forwarded-For"
165
+ - $ref: "#/components/parameters/FSPIOP-Source"
166
+ - $ref: "#/components/parameters/FSPIOP-Destination"
167
+ - $ref: "#/components/parameters/FSPIOP-Encryption"
168
+ - $ref: "#/components/parameters/FSPIOP-Signature"
169
+ - $ref: "#/components/parameters/FSPIOP-URI"
170
+ - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
171
+ get:
172
+ description: The HTTP request `GET /fxParties/{Type}/{ID}` (or `GET /fxParties/{Type}/{ID}/{SubId}`) is used to look up information regarding the requested Party, defined by `{Type}`, `{ID}` and optionally `{SubId}` (for example, `GET /fxParties/MSISDN/123456789`, or `GET /fxParties/BUSINESS/shoecompany/employee1`).
173
+ summary: Look up party information
174
+ tags:
175
+ - fxParties
176
+ operationId: FxPartiesSubIdByTypeAndID
177
+ parameters:
178
+ #Headers
179
+ - $ref: "#/components/parameters/Accept"
180
+ responses:
181
+ 202:
182
+ $ref: "#/components/responses/202"
183
+ 400:
184
+ $ref: "#/components/responses/400"
185
+ 401:
186
+ $ref: "#/components/responses/401"
187
+ 403:
188
+ $ref: "#/components/responses/403"
189
+ 404:
190
+ $ref: "#/components/responses/404"
191
+ 405:
192
+ $ref: "#/components/responses/405"
193
+ 406:
194
+ $ref: "#/components/responses/406"
195
+ 501:
196
+ $ref: "#/components/responses/501"
197
+ 503:
198
+ $ref: "#/components/responses/503"
199
+ put:
200
+ description: The callback `PUT /parties/{Type}/{ID}` (or `PUT /parties/{Type}/{ID}/{SubId}`) is used to inform the client of a successful result of the Party information lookup.
201
+ summary: Return party information
202
+ tags:
203
+ - fxParties
204
+ operationId: PartiesSubIdByTypeAndIDPut
205
+ parameters:
206
+ #Headers
207
+ - $ref: "#/components/parameters/Content-Length"
208
+ requestBody:
209
+ description: Party information returned.
210
+ required: true
211
+ content:
212
+ application/json:
213
+ schema:
214
+ $ref: "#/components/schemas/PartiesTypeIDPutResponse"
215
+ responses:
216
+ 200:
217
+ $ref: "#/components/responses/200"
218
+ 400:
219
+ $ref: "#/components/responses/400"
220
+ 401:
221
+ $ref: "#/components/responses/401"
222
+ 403:
223
+ $ref: "#/components/responses/403"
224
+ 404:
225
+ $ref: "#/components/responses/404"
226
+ 405:
227
+ $ref: "#/components/responses/405"
228
+ 406:
229
+ $ref: "#/components/responses/406"
230
+ 501:
231
+ $ref: "#/components/responses/501"
232
+ 503:
233
+ $ref: "#/components/responses/503"
234
+ /fxParties/{Type}/{ID}/{SubId}/error:
235
+ put:
236
+ description: If the server is unable to find Party information of the provided identity, or another processing error occurred, the error callback `PUT /fxParties/{Type}/{ID}/error` (or `PUT /fxParties/{Type}/{ID}/{SubId}/error`) is used.
237
+ summary: Return party information error
238
+ tags:
239
+ - fxParties
240
+ operationId: FxPartiesSubIdErrorByTypeAndID
241
+ parameters:
242
+ #Path
243
+ - $ref: "#/components/parameters/Type"
244
+ - $ref: "#/components/parameters/ID"
245
+ - $ref: "#/components/parameters/SubId"
246
+ #Headers
247
+ - $ref: "#/components/parameters/Content-Length"
248
+ - $ref: "#/components/parameters/Content-Type"
249
+ - $ref: "#/components/parameters/Date"
250
+ - $ref: "#/components/parameters/X-Forwarded-For"
251
+ - $ref: "#/components/parameters/FSPIOP-Source"
252
+ - $ref: "#/components/parameters/FSPIOP-Destination"
253
+ - $ref: "#/components/parameters/FSPIOP-Encryption"
254
+ - $ref: "#/components/parameters/FSPIOP-Signature"
255
+ - $ref: "#/components/parameters/FSPIOP-URI"
256
+ - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
257
+ requestBody:
258
+ description: Details of the error returned.
259
+ required: true
260
+ content:
261
+ application/json:
262
+ schema:
263
+ $ref: "#/components/schemas/ErrorInformationObject"
264
+ responses:
265
+ 200:
266
+ $ref: "#/components/responses/200"
267
+ 400:
268
+ $ref: "#/components/responses/400"
269
+ 401:
270
+ $ref: "#/components/responses/401"
271
+ 403:
272
+ $ref: "#/components/responses/403"
273
+ 404:
274
+ $ref: "#/components/responses/404"
275
+ 405:
276
+ $ref: "#/components/responses/405"
277
+ 406:
278
+ $ref: "#/components/responses/406"
279
+ 501:
280
+ $ref: "#/components/responses/501"
281
+ 503:
282
+ $ref: "#/components/responses/503"
283
+
284
+ #Services
285
+ /services/FXP:
286
+ get:
287
+ description: The HTTP request GET /services/FXP is used to request information about the participants in a scheme who offer currency conversion services.
288
+ summary: Perform services request
289
+ tags:
290
+ - servicesRequest
291
+ operationId: servicesRequest
292
+ parameters:
293
+ #Headers
294
+ - $ref: "#/components/parameters/Accept"
295
+ - $ref: "#/components/parameters/Content-Length"
296
+ - $ref: "#/components/parameters/Content-Type"
297
+ - $ref: "#/components/parameters/Date"
298
+ - $ref: "#/components/parameters/X-Forwarded-For"
299
+ - $ref: "#/components/parameters/FSPIOP-Source"
300
+ - $ref: "#/components/parameters/FSPIOP-Destination"
301
+ - $ref: "#/components/parameters/FSPIOP-Encryption"
302
+ - $ref: "#/components/parameters/FSPIOP-Signature"
303
+ - $ref: "#/components/parameters/FSPIOP-URI"
304
+ - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
305
+ responses:
306
+ 202:
307
+ $ref: "#/components/responses/202"
308
+ 400:
309
+ $ref: "#/components/responses/400"
310
+ 401:
311
+ $ref: "#/components/responses/401"
312
+ 403:
313
+ $ref: "#/components/responses/403"
314
+ 404:
315
+ $ref: "#/components/responses/404"
316
+ 405:
317
+ $ref: "#/components/responses/405"
318
+ 406:
319
+ $ref: "#/components/responses/406"
320
+ 501:
321
+ $ref: "#/components/responses/501"
322
+ 503:
323
+ $ref: "#/components/responses/503"
324
+ put:
325
+ description: The callback PUT /services/FXP is used to inform the requester about up to 16 participants in a scheme who offer currency conversion services. If no participants offer these services, the return object will be blank.
326
+ summary: Return transaction request information
327
+ tags:
328
+ - servicesResponse
329
+ operationId: servicesPutResponse
330
+ parameters:
331
+ #Headers
332
+ - $ref: "#/components/parameters/Content-Length"
333
+ requestBody:
334
+ description: FXP Services information returned.
335
+ required: true
336
+ content:
337
+ application/json:
338
+ schema:
339
+ $ref: "#/components/schemas/ServicesFXPPutResponse"
340
+ responses:
341
+ 200:
342
+ $ref: "#/components/responses/200"
343
+ 400:
344
+ $ref: "#/components/responses/400"
345
+ 401:
346
+ $ref: "#/components/responses/401"
347
+ 403:
348
+ $ref: "#/components/responses/403"
349
+ 404:
350
+ $ref: "#/components/responses/404"
351
+ 405:
352
+ $ref: "#/components/responses/405"
353
+ 406:
354
+ $ref: "#/components/responses/406"
355
+ 501:
356
+ $ref: "#/components/responses/501"
357
+ 503:
358
+ $ref: "#/components/responses/503"
359
+ /services/FXP/error:
360
+ put:
361
+ description: If the server is unable to find or create a services request, or another processing error occurs, the error callback `PUT /services/FXP/error` is used.
362
+ summary: Return services request information error
363
+ tags:
364
+ - servicesResponse
365
+ operationId: ServicesFXPRequestsError
366
+ parameters:
367
+ #Headers
368
+ - $ref: "#/components/parameters/Content-Length"
369
+ - $ref: "#/components/parameters/Content-Type"
370
+ - $ref: "#/components/parameters/Date"
371
+ - $ref: "#/components/parameters/X-Forwarded-For"
372
+ - $ref: "#/components/parameters/FSPIOP-Source"
373
+ - $ref: "#/components/parameters/FSPIOP-Destination"
374
+ - $ref: "#/components/parameters/FSPIOP-Encryption"
375
+ - $ref: "#/components/parameters/FSPIOP-Signature"
376
+ - $ref: "#/components/parameters/FSPIOP-URI"
377
+ - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
378
+ requestBody:
379
+ description: Details of the error returned.
380
+ required: true
381
+ content:
382
+ application/json:
383
+ schema:
384
+ $ref: "#/components/schemas/ErrorInformationObject"
385
+ responses:
386
+ 200:
387
+ $ref: "#/components/responses/200"
388
+ 400:
389
+ $ref: "#/components/responses/400"
390
+ 401:
391
+ $ref: "#/components/responses/401"
392
+ 403:
393
+ $ref: "#/components/responses/403"
394
+ 404:
395
+ $ref: "#/components/responses/404"
396
+ 405:
397
+ $ref: "#/components/responses/405"
398
+ 406:
399
+ $ref: "#/components/responses/406"
400
+ 501:
401
+ $ref: "#/components/responses/501"
402
+ 503:
403
+ $ref: "#/components/responses/503"
404
+
405
+ #FxQuotes
406
+ /fxQuotes:
407
+ post:
408
+ description: The HTTP request POST /fxQuotes is used to ask an FXP to provide a quotation for a currency conversion.
409
+ summary: Calculate FX Quote
410
+ tags:
411
+ - fxQuotes
412
+ operationId: FxQuotes
413
+ parameters:
414
+ #Headers
415
+ - $ref: "#/components/parameters/Content-Type"
416
+ - $ref: "#/components/parameters/Date"
417
+ - $ref: "#/components/parameters/X-Forwarded-For"
418
+ - $ref: "#/components/parameters/FSPIOP-Source"
419
+ - $ref: "#/components/parameters/FSPIOP-Destination"
420
+ - $ref: "#/components/parameters/FSPIOP-Encryption"
421
+ - $ref: "#/components/parameters/FSPIOP-Signature"
422
+ - $ref: "#/components/parameters/FSPIOP-URI"
423
+ - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
424
+ requestBody:
425
+ description: Details of the fx quote to be created.
426
+ required: true
427
+ content:
428
+ application/json:
429
+ schema:
430
+ $ref: "#/components/schemas/FxQuotesPostRequest"
431
+ responses:
432
+ 202:
433
+ $ref: "#/components/responses/202"
434
+ 400:
435
+ $ref: "#/components/responses/400"
436
+ 401:
437
+ $ref: "#/components/responses/401"
438
+ 403:
439
+ $ref: "#/components/responses/403"
440
+ 404:
441
+ $ref: "#/components/responses/404"
442
+ 405:
443
+ $ref: "#/components/responses/405"
444
+ 406:
445
+ $ref: "#/components/responses/406"
446
+ 501:
447
+ $ref: "#/components/responses/501"
448
+ 503:
449
+ $ref: "#/components/responses/503"
450
+ /fxQuotes/{ID}:
451
+ parameters:
452
+ #Path
453
+ - $ref: "#/components/parameters/ID"
454
+ #Headers
455
+ - $ref: "#/components/parameters/Content-Type"
456
+ - $ref: "#/components/parameters/Date"
457
+ - $ref: "#/components/parameters/X-Forwarded-For"
458
+ - $ref: "#/components/parameters/FSPIOP-Source"
459
+ - $ref: "#/components/parameters/FSPIOP-Destination"
460
+ - $ref: "#/components/parameters/FSPIOP-Encryption"
461
+ - $ref: "#/components/parameters/FSPIOP-Signature"
462
+ - $ref: "#/components/parameters/FSPIOP-URI"
463
+ - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
464
+ get:
465
+ description: The HTTP request GET /fxQuotes/{ID} is used to request information regarding a request for quotation for a currency conversion which the sender has previously issued. The {ID} in the URI should contain the conversionRequestId that was used to request the quotation.
466
+ summary: Retrieve quote information
467
+ tags:
468
+ - fxQuotes
469
+ operationId: FxQuotesByID
470
+ parameters:
471
+ #Headers
472
+ - $ref: "#/components/parameters/Accept"
473
+ responses:
474
+ 202:
475
+ $ref: "#/components/responses/202"
476
+ 400:
477
+ $ref: "#/components/responses/400"
478
+ 401:
479
+ $ref: "#/components/responses/401"
480
+ 403:
481
+ $ref: "#/components/responses/403"
482
+ 404:
483
+ $ref: "#/components/responses/404"
484
+ 405:
485
+ $ref: "#/components/responses/405"
486
+ 406:
487
+ $ref: "#/components/responses/406"
488
+ 501:
489
+ $ref: "#/components/responses/501"
490
+ 503:
491
+ $ref: "#/components/responses/503"
492
+ put:
493
+ description: The callback PUT /fxQuotes/{ID} is used to inform the requester about the outcome of a request for quotation for a currency conversion. The {ID} field in the URI should contain the conversionRequestId that was used when the quotation for the currency conversion was requested.
494
+ summary: Return fxQuote information
495
+ tags:
496
+ - fxQuotes
497
+ operationId: PutFxQuotesById
498
+ parameters:
499
+ #Headers
500
+ - $ref: "#/components/parameters/Content-Length"
501
+ requestBody:
502
+ description: FxQuote information returned.
503
+ required: true
504
+ content:
505
+ application/json:
506
+ schema:
507
+ $ref: "#/components/schemas/FxQuotesIDPutResponse"
508
+ responses:
509
+ 200:
510
+ $ref: "#/components/responses/200"
511
+ 400:
512
+ $ref: "#/components/responses/400"
513
+ 401:
514
+ $ref: "#/components/responses/401"
515
+ 403:
516
+ $ref: "#/components/responses/403"
517
+ 404:
518
+ $ref: "#/components/responses/404"
519
+ 405:
520
+ $ref: "#/components/responses/405"
521
+ 406:
522
+ $ref: "#/components/responses/406"
523
+ 501:
524
+ $ref: "#/components/responses/501"
525
+ 503:
526
+ $ref: "#/components/responses/503"
527
+ /fxQuotes/{ID}/error:
528
+ put:
529
+ description: If the FXP is unable to find or create a currency conversion execution, or another processing error occurs, the error callback PUT /fxQuotes/<ID>/error is used. The <ID> in the URI should contain the conversionRequestId that was used for the creation of the quotation request, or the <ID> that was used in the GET /fxQuotes/<ID>.
530
+ summary: Return fxQuote information error
531
+ tags:
532
+ - fxQuotes
533
+ operationId: FxQuotesByIDAndError
534
+ parameters:
535
+ #Path
536
+ - $ref: "#/components/parameters/ID"
537
+ #Headers
538
+ - $ref: "#/components/parameters/Content-Length"
539
+ - $ref: "#/components/parameters/Content-Type"
540
+ - $ref: "#/components/parameters/Date"
541
+ - $ref: "#/components/parameters/X-Forwarded-For"
542
+ - $ref: "#/components/parameters/FSPIOP-Source"
543
+ - $ref: "#/components/parameters/FSPIOP-Destination"
544
+ - $ref: "#/components/parameters/FSPIOP-Encryption"
545
+ - $ref: "#/components/parameters/FSPIOP-Signature"
546
+ - $ref: "#/components/parameters/FSPIOP-URI"
547
+ - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
548
+ requestBody:
549
+ description: Details of the error returned.
550
+ required: true
551
+ content:
552
+ application/json:
553
+ schema:
554
+ $ref: "#/components/schemas/ErrorInformationObject"
555
+ responses:
556
+ 200:
557
+ $ref: "#/components/responses/200"
558
+ 400:
559
+ $ref: "#/components/responses/400"
560
+ 401:
561
+ $ref: "#/components/responses/401"
562
+ 403:
563
+ $ref: "#/components/responses/403"
564
+ 404:
565
+ $ref: "#/components/responses/404"
566
+ 405:
567
+ $ref: "#/components/responses/405"
568
+ 406:
569
+ $ref: "#/components/responses/406"
570
+ 501:
571
+ $ref: "#/components/responses/501"
572
+ 503:
573
+ $ref: "#/components/responses/503"
574
+
575
+ #FxTransfers
576
+ /fxTransfers:
577
+ post:
578
+ description: The HTTP request POST /fxTransfers is used to ask an FXP to confirm the execution of an agreed currency conversion.
579
+ summary: Perform fxTransfer
580
+ tags:
581
+ - fxTransfers
582
+ operationId: fxTransfers
583
+ parameters:
584
+ #Headers
585
+ - $ref: "#/components/parameters/Accept"
586
+ - $ref: "#/components/parameters/Content-Length"
587
+ - $ref: "#/components/parameters/Content-Type"
588
+ - $ref: "#/components/parameters/Date"
589
+ - $ref: "#/components/parameters/X-Forwarded-For"
590
+ - $ref: "#/components/parameters/FSPIOP-Source"
591
+ - $ref: "#/components/parameters/FSPIOP-Destination"
592
+ - $ref: "#/components/parameters/FSPIOP-Encryption"
593
+ - $ref: "#/components/parameters/FSPIOP-Signature"
594
+ - $ref: "#/components/parameters/FSPIOP-URI"
595
+ - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
596
+ requestBody:
597
+ description: Details of the fxtransfer to be created.
598
+ required: true
599
+ content:
600
+ application/json:
601
+ schema:
602
+ $ref: "#/components/schemas/FxTransfersPostRequest"
603
+ responses:
604
+ 202:
605
+ $ref: "#/components/responses/202"
606
+ 400:
607
+ $ref: "#/components/responses/400"
608
+ 401:
609
+ $ref: "#/components/responses/401"
610
+ 403:
611
+ $ref: "#/components/responses/403"
612
+ 404:
613
+ $ref: "#/components/responses/404"
614
+ 405:
615
+ $ref: "#/components/responses/405"
616
+ 406:
617
+ $ref: "#/components/responses/406"
618
+ 501:
619
+ $ref: "#/components/responses/501"
620
+ 503:
621
+ $ref: "#/components/responses/503"
622
+ /fxTransfers/{ID}:
623
+ parameters:
624
+ #Path
625
+ - $ref: "#/components/parameters/ID"
626
+ #Headers
627
+ - $ref: "#/components/parameters/Content-Type"
628
+ - $ref: "#/components/parameters/Date"
629
+ - $ref: "#/components/parameters/X-Forwarded-For"
630
+ - $ref: "#/components/parameters/FSPIOP-Source"
631
+ - $ref: "#/components/parameters/FSPIOP-Destination"
632
+ - $ref: "#/components/parameters/FSPIOP-Encryption"
633
+ - $ref: "#/components/parameters/FSPIOP-Signature"
634
+ - $ref: "#/components/parameters/FSPIOP-URI"
635
+ - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
636
+ get:
637
+ description: The HTTP request GET /fxTransfers/{ID} is used to request information regarding a request for confirmation of a currency conversion which the sender has previously issued. The {{ID} in the URI should contain the commitRequestId that was used to request the confirmation.
638
+ summary: Callback to an fxtransfer request
639
+ tags:
640
+ - fxTransfers
641
+ operationId: FxTransfersByIDGet
642
+ parameters:
643
+ #Headers
644
+ - $ref: "#/components/parameters/Accept"
645
+ responses:
646
+ 202:
647
+ $ref: "#/components/responses/202"
648
+ 400:
649
+ $ref: "#/components/responses/400"
650
+ 401:
651
+ $ref: "#/components/responses/401"
652
+ 403:
653
+ $ref: "#/components/responses/403"
654
+ 404:
655
+ $ref: "#/components/responses/404"
656
+ 405:
657
+ $ref: "#/components/responses/405"
658
+ 406:
659
+ $ref: "#/components/responses/406"
660
+ 501:
661
+ $ref: "#/components/responses/501"
662
+ 503:
663
+ $ref: "#/components/responses/503"
664
+ patch:
665
+ description: The callback PATCH /fxTransfers/{ID} is used to inform the requester about the final determination by the switch of the transfer related to a request for execution of a currency conversion. The {ID} field in the URI should contain the commitRequestId that was used when the execution of the currency conversion was requested.
666
+ summary: FxTransfer notification
667
+ tags:
668
+ - fxTransfers
669
+ operationId: FxTransfersByIDPatch
670
+ parameters:
671
+ #Headers
672
+ - $ref: "#/components/parameters/Content-Length"
673
+ requestBody:
674
+ description: Transfer notification upon completion.
675
+ required: true
676
+ content:
677
+ application/json:
678
+ schema:
679
+ $ref: "#/components/schemas/FxTransfersIDPatchResponse"
680
+ responses:
681
+ 200:
682
+ $ref: "#/components/responses/200"
683
+ 400:
684
+ $ref: "#/components/responses/400"
685
+ 401:
686
+ $ref: "#/components/responses/401"
687
+ 403:
688
+ $ref: "#/components/responses/403"
689
+ 404:
690
+ $ref: "#/components/responses/404"
691
+ 405:
692
+ $ref: "#/components/responses/405"
693
+ 406:
694
+ $ref: "#/components/responses/406"
695
+ 501:
696
+ $ref: "#/components/responses/501"
697
+ 503:
698
+ $ref: "#/components/responses/503"
699
+ put:
700
+ description: The callback PUT /fxTransfers/{ID} is used to inform the requester about the outcome of a request for execution of a currency conversion. The {ID} field in the URI should contain the commitRequestId that was used when the execution of the currency conversion was requested.
701
+ summary: Return fxtransfer information
702
+ tags:
703
+ - fxTransfers
704
+ operationId: FxTransfersByIDPut
705
+ parameters:
706
+ #Headers
707
+ - $ref: "#/components/parameters/Content-Length"
708
+ requestBody:
709
+ description: FxTransfer information returned.
710
+ required: true
711
+ content:
712
+ application/json:
713
+ schema:
714
+ $ref: "#/components/schemas/FxTransfersIDPutResponse"
715
+ responses:
716
+ 200:
717
+ $ref: "#/components/responses/200"
718
+ 400:
719
+ $ref: "#/components/responses/400"
720
+ 401:
721
+ $ref: "#/components/responses/401"
722
+ 403:
723
+ $ref: "#/components/responses/403"
724
+ 404:
725
+ $ref: "#/components/responses/404"
726
+ 405:
727
+ $ref: "#/components/responses/405"
728
+ 406:
729
+ $ref: "#/components/responses/406"
730
+ 501:
731
+ $ref: "#/components/responses/501"
732
+ 503:
733
+ $ref: "#/components/responses/503"
734
+ /fxTransfers/{ID}/error:
735
+ put:
736
+ description: If the FXP is unable to find or create a currency conversion execution, or another processing error occurs, the error callback PUT /fxTransfers/<ID>/error is used. The <ID> in the URI should contain the commitRequestId that was used for the creation of the execution request, or the <ID> that was used in the GET /fxTransfers/<ID>.
737
+ summary: Return fxtransfer information error
738
+ tags:
739
+ - fxTransfers
740
+ operationId: FxTransfersByIDAndError
741
+ parameters:
742
+ #Path
743
+ - $ref: "#/components/parameters/ID"
744
+ #Headers
745
+ - $ref: "#/components/parameters/Content-Length"
746
+ - $ref: "#/components/parameters/Content-Type"
747
+ - $ref: "#/components/parameters/Date"
748
+ - $ref: "#/components/parameters/X-Forwarded-For"
749
+ - $ref: "#/components/parameters/FSPIOP-Source"
750
+ - $ref: "#/components/parameters/FSPIOP-Destination"
751
+ - $ref: "#/components/parameters/FSPIOP-Encryption"
752
+ - $ref: "#/components/parameters/FSPIOP-Signature"
753
+ - $ref: "#/components/parameters/FSPIOP-URI"
754
+ - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
755
+ requestBody:
756
+ description: Details of the error returned.
757
+ required: true
758
+ content:
759
+ application/json:
760
+ schema:
761
+ $ref: "#/components/schemas/ErrorInformationObject"
762
+ responses:
763
+ 200:
764
+ $ref: "#/components/responses/200"
765
+ 400:
766
+ $ref: "#/components/responses/400"
767
+ 401:
768
+ $ref: "#/components/responses/401"
769
+ 403:
770
+ $ref: "#/components/responses/403"
771
+ 404:
772
+ $ref: "#/components/responses/404"
773
+ 405:
774
+ $ref: "#/components/responses/405"
775
+ 406:
776
+ $ref: "#/components/responses/406"
777
+ 501:
778
+ $ref: "#/components/responses/501"
779
+ 503:
780
+ $ref: "#/components/responses/503"
781
+
782
+ components:
783
+ schemas:
784
+ #Element definitions
785
+ Amount:
786
+ title: Amount
787
+ type: string
788
+ pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$
789
+ description: The API data type Amount is a JSON String in a canonical format that is restricted by a regular expression for interoperability reasons. This pattern does not allow any trailing zeroes at all, but allows an amount without a minor currency unit. It also only allows four digits in the minor currency unit; a negative value is not allowed. Using more than 18 digits in the major currency unit is not allowed.
790
+ AmountType:
791
+ title: AmountType
792
+ type: string
793
+ enum:
794
+ - SEND
795
+ - RECEIVE
796
+ description: Below are the allowed values for the enumeration AmountType.
797
+
798
+ - SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.
799
+
800
+ - RECEIVE - Amount the Payer would like the Payee to receive, that is, the amount that should be sent to the receiver exclusive of any fees.
801
+ CorrelationId:
802
+ title: CorrelationId
803
+ type: string
804
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$
805
+ description: Identifier that correlates all messages of the same sequence.
806
+ The supported identifiers formats are for
807
+ lowercase [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and
808
+ uppercase [ULID](https://github.com/ulid/spec)
809
+ Currency:
810
+ title: Currency
811
+ description: The currency codes defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) as three-letter alphabetic codes are used as the standard naming representation for currencies.
812
+ type: string
813
+ minLength: 3
814
+ maxLength: 3
815
+ enum:
816
+ - AED
817
+ - AFN
818
+ - ALL
819
+ - AMD
820
+ - ANG
821
+ - AOA
822
+ - ARS
823
+ - AUD
824
+ - AWG
825
+ - AZN
826
+ - BAM
827
+ - BBD
828
+ - BDT
829
+ - BGN
830
+ - BHD
831
+ - BIF
832
+ - BMD
833
+ - BND
834
+ - BOB
835
+ - BRL
836
+ - BSD
837
+ - BTN
838
+ - BWP
839
+ - BYN
840
+ - BZD
841
+ - CAD
842
+ - CDF
843
+ - CHF
844
+ - CLP
845
+ - CNY
846
+ - COP
847
+ - CRC
848
+ - CUC
849
+ - CUP
850
+ - CVE
851
+ - CZK
852
+ - DJF
853
+ - DKK
854
+ - DOP
855
+ - DZD
856
+ - EGP
857
+ - ERN
858
+ - ETB
859
+ - EUR
860
+ - FJD
861
+ - FKP
862
+ - GBP
863
+ - GEL
864
+ - GGP
865
+ - GHS
866
+ - GIP
867
+ - GMD
868
+ - GNF
869
+ - GTQ
870
+ - GYD
871
+ - HKD
872
+ - HNL
873
+ - HRK
874
+ - HTG
875
+ - HUF
876
+ - IDR
877
+ - ILS
878
+ - IMP
879
+ - INR
880
+ - IQD
881
+ - IRR
882
+ - ISK
883
+ - JEP
884
+ - JMD
885
+ - JOD
886
+ - JPY
887
+ - KES
888
+ - KGS
889
+ - KHR
890
+ - KMF
891
+ - KPW
892
+ - KRW
893
+ - KWD
894
+ - KYD
895
+ - KZT
896
+ - LAK
897
+ - LBP
898
+ - LKR
899
+ - LRD
900
+ - LSL
901
+ - LYD
902
+ - MAD
903
+ - MDL
904
+ - MGA
905
+ - MKD
906
+ - MMK
907
+ - MNT
908
+ - MOP
909
+ - MRO
910
+ - MUR
911
+ - MVR
912
+ - MWK
913
+ - MXN
914
+ - MYR
915
+ - MZN
916
+ - NAD
917
+ - NGN
918
+ - NIO
919
+ - NOK
920
+ - NPR
921
+ - NZD
922
+ - OMR
923
+ - PAB
924
+ - PEN
925
+ - PGK
926
+ - PHP
927
+ - PKR
928
+ - PLN
929
+ - PYG
930
+ - QAR
931
+ - RON
932
+ - RSD
933
+ - RUB
934
+ - RWF
935
+ - SAR
936
+ - SBD
937
+ - SCR
938
+ - SDG
939
+ - SEK
940
+ - SGD
941
+ - SHP
942
+ - SLL
943
+ - SOS
944
+ - SPL
945
+ - SRD
946
+ - STD
947
+ - SVC
948
+ - SYP
949
+ - SZL
950
+ - THB
951
+ - TJS
952
+ - TMT
953
+ - TND
954
+ - TOP
955
+ - TRY
956
+ - TTD
957
+ - TVD
958
+ - TWD
959
+ - TZS
960
+ - UAH
961
+ - UGX
962
+ - USD
963
+ - UYU
964
+ - UZS
965
+ - VEF
966
+ - VND
967
+ - VUV
968
+ - WST
969
+ - XAF
970
+ - XCD
971
+ - XDR
972
+ - XOF
973
+ - XPF
974
+ - XTS
975
+ - XXX
976
+ - YER
977
+ - ZAR
978
+ - ZMW
979
+ - ZWD
980
+ DateOfBirth:
981
+ title: DateofBirth (type Date)
982
+ type: string
983
+ pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)$
984
+ description: Date of Birth of the Party.
985
+ DateTime:
986
+ title: DateTime
987
+ type: string
988
+ pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:(\.\d{3}))(?:Z|[+-][01]\d:[0-5]\d)$
989
+ description:
990
+ The API data type DateTime is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons.
991
+ The format is according to [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html), expressed in a combined date, time and time zone format. A more readable version of the format is yyyy-MM-ddTHH:mm:ss.SSS[-HH:MM]. Examples are "2016-05-24T08:38:08.699-04:00", "2016-05-24T08:38:08.699Z" (where Z indicates Zulu time zone, same as UTC).
992
+ ErrorCode:
993
+ title: ErrorCode
994
+ type: string
995
+ pattern: ^[1-9]\d{3}$
996
+ description: The API data type ErrorCode is a JSON String of four characters, consisting of digits only. Negative numbers are not allowed. A leading zero is not allowed. Each error code in the API is a four-digit number, for example, 1234, where the first number (1 in the example) represents the high-level error category, the second number (2 in the example) represents the low-level error category, and the last two numbers (34 in the example) represent the specific error.
997
+ ErrorDescription:
998
+ title: ErrorDescription
999
+ type: string
1000
+ minLength: 1
1001
+ maxLength: 128
1002
+ description: Error description string.
1003
+ ExtensionKey:
1004
+ title: ExtensionKey
1005
+ type: string
1006
+ minLength: 1
1007
+ maxLength: 32
1008
+ description: Extension key.
1009
+ ExtensionValue:
1010
+ title: ExtensionValue
1011
+ type: string
1012
+ minLength: 1
1013
+ maxLength: 128
1014
+ description: Extension value.
1015
+ FirstName:
1016
+ title: FirstName
1017
+ type: string
1018
+ minLength: 1
1019
+ maxLength: 128
1020
+ pattern: ^(?!\s*$)[\w .,'-]{1,128}$
1021
+ description: First name of the Party (Name Type).
1022
+ FspId:
1023
+ title: FspId
1024
+ type: string
1025
+ minLength: 1
1026
+ maxLength: 32
1027
+ description: FSP identifier.
1028
+ IlpCondition:
1029
+ title: IlpCondition
1030
+ type: string
1031
+ pattern: ^[A-Za-z0-9-_]{43}$
1032
+ maxLength: 48
1033
+ description: Condition that must be attached to the transfer by the Payer.
1034
+ IlpFulfilment:
1035
+ title: IlpFulfilment
1036
+ type: string
1037
+ pattern: ^[A-Za-z0-9-_]{43}$
1038
+ maxLength: 48
1039
+ description: Fulfilment that must be attached to the transfer by the Payee.
1040
+ LastName:
1041
+ title: LastName
1042
+ type: string
1043
+ minLength: 1
1044
+ maxLength: 128
1045
+ pattern: ^(?!\s*$)[\w .,'-]{1,128}$
1046
+ description: Last name of the Party (Name Type).
1047
+ MerchantClassificationCode:
1048
+ title: MerchantClassificationCode
1049
+ type: string
1050
+ pattern: ^[\d]{1,4}$
1051
+ description: A limited set of pre-defined numbers. This list would be a limited set of numbers identifying a set of popular merchant types like School Fees, Pubs and Restaurants, Groceries, etc.
1052
+ MiddleName:
1053
+ title: MiddleName
1054
+ type: string
1055
+ minLength: 1
1056
+ maxLength: 128
1057
+ pattern: ^(?!\s*$)[\w .,'-]{1,128}$
1058
+ description: Middle name of the Party (Name Type).
1059
+ PartyIdentifier:
1060
+ title: PartyIdentifier
1061
+ type: string
1062
+ minLength: 1
1063
+ maxLength: 128
1064
+ description: Identifier of the Party.
1065
+ PartyIdType:
1066
+ title: PartyIdType
1067
+ type: string
1068
+ enum:
1069
+ - MSISDN
1070
+ - EMAIL
1071
+ - PERSONAL_ID
1072
+ - BUSINESS
1073
+ - DEVICE
1074
+ - ACCOUNT_ID
1075
+ - IBAN
1076
+ - ALIAS
1077
+ description: Below are the allowed values for the enumeration.
1078
+
1079
+ - MSISDN - An MSISDN (Mobile Station International Subscriber Directory Number, that is, the phone number) is used as reference to a participant. The MSISDN identifier should be in international format according to the [ITU-T E.164 standard](https://www.itu.int/rec/T-REC-E.164/en). Optionally, the MSISDN may be prefixed by a single plus sign, indicating the international prefix.
1080
+
1081
+ - EMAIL - An email is used as reference to a participant. The format of the email should be according to the informational [RFC 3696](https://tools.ietf.org/html/rfc3696).
1082
+
1083
+ - PERSONAL_ID - A personal identifier is used as reference to a participant. Examples of personal identification are passport number, birth certificate number, and national registration number. The identifier number is added in the PartyIdentifier element. The personal identifier type is added in the PartySubIdOrType element.
1084
+
1085
+ - BUSINESS - A specific Business (for example, an organization or a company) is used as reference to a participant. The BUSINESS identifier can be in any format. To make a transaction connected to a specific username or bill number in a Business, the PartySubIdOrType element should be used.
1086
+
1087
+ - DEVICE - A specific device (for example, a POS or ATM) ID connected to a specific business or organization is used as reference to a Party. For referencing a specific device under a specific business or organization, use the PartySubIdOrType element.
1088
+
1089
+ - ACCOUNT_ID - A bank account number or FSP account ID should be used as reference to a participant. The ACCOUNT_ID identifier can be in any format, as formats can greatly differ depending on country and FSP.
1090
+
1091
+ - IBAN - A bank account number or FSP account ID is used as reference to a participant. The IBAN identifier can consist of up to 34 alphanumeric characters and should be entered without whitespace.
1092
+
1093
+ - ALIAS An alias is used as reference to a participant. The alias should be created in the FSP as an alternative reference to an account owner. Another example of an alias is a username in the FSP system. The ALIAS identifier can be in any format. It is also possible to use the PartySubIdOrType element for identifying an account under an Alias defined by the PartyIdentifier.
1094
+ PartyName:
1095
+ title: PartyName
1096
+ type: string
1097
+ minLength: 1
1098
+ maxLength: 128
1099
+ description: Name of the Party. Could be a real name or a nickname.
1100
+ PartySubIdOrType:
1101
+ title: PartySubIdOrType
1102
+ oneOf:
1103
+ - $ref: "#/components/schemas/PersonalIdentifierType"
1104
+ - $ref: "#/components/schemas/PartyIdentifier"
1105
+ PersonalIdentifierType:
1106
+ title: PersonalIdentifierType
1107
+ type: string
1108
+ enum:
1109
+ - PASSPORT
1110
+ - NATIONAL_REGISTRATION
1111
+ - DRIVING_LICENSE
1112
+ - ALIEN_REGISTRATION
1113
+ - NATIONAL_ID_CARD
1114
+ - EMPLOYER_ID
1115
+ - TAX_ID_NUMBER
1116
+ - SENIOR_CITIZENS_CARD
1117
+ - MARRIAGE_CERTIFICATE
1118
+ - HEALTH_CARD
1119
+ - VOTERS_ID
1120
+ - UNITED_NATIONS
1121
+ - OTHER_ID
1122
+ description: Below are the allowed values for the enumeration.
1123
+
1124
+ - PASSPORT - A passport number is used as reference to a Party.
1125
+
1126
+ - NATIONAL_REGISTRATION - A national registration number is used as reference to a Party.
1127
+
1128
+ - DRIVING_LICENSE - A driving license is used as reference to a Party.
1129
+
1130
+ - ALIEN_REGISTRATION - An alien registration number is used as reference to a Party.
1131
+
1132
+ - NATIONAL_ID_CARD - A national ID card number is used as reference to a Party.
1133
+
1134
+ - EMPLOYER_ID - A tax identification number is used as reference to a Party.
1135
+
1136
+ - TAX_ID_NUMBER - A tax identification number is used as reference to a Party.
1137
+
1138
+ - SENIOR_CITIZENS_CARD - A senior citizens card number is used as reference to a Party.
1139
+
1140
+ - MARRIAGE_CERTIFICATE - A marriage certificate number is used as reference to a Party.
1141
+
1142
+ - HEALTH_CARD - A health card number is used as reference to a Party.
1143
+
1144
+ - VOTERS_ID - A voter’s identification number is used as reference to a Party.
1145
+
1146
+ - UNITED_NATIONS - An UN (United Nations) number is used as reference to a Party.
1147
+
1148
+ - OTHER_ID - Any other type of identification type number is used as reference to a Party.
1149
+ TransactionState:
1150
+ title: TransactionState
1151
+ type: string
1152
+ enum:
1153
+ - RECEIVED
1154
+ - PENDING
1155
+ - COMPLETED
1156
+ - REJECTED
1157
+ description: Below are the allowed values for the enumeration.
1158
+
1159
+ - RECEIVED - Payee FSP has received the transaction from the Payer FSP.
1160
+
1161
+ - PENDING - Payee FSP has validated the transaction.
1162
+
1163
+ - COMPLETED - Payee FSP has successfully performed the transaction.
1164
+
1165
+ - REJECTED - Payee FSP has failed to perform the transaction.
1166
+
1167
+ #Complex Types
1168
+ Charge:
1169
+ title: Charge
1170
+ type: object
1171
+ description: An FXP will be able to specify a charge which it proposes to levy on the currency conversion operation using a Charge object.
1172
+ properties:
1173
+ chargeType:
1174
+ type: string
1175
+ minLength: 1
1176
+ maxLength: 32
1177
+ description: A description of the charge which is being levied.
1178
+ sourceAmount:
1179
+ allOf:
1180
+ - $ref: "#/components/schemas/Amount"
1181
+ - description: The amount of the charge which is being levied, expressed in the source currency.
1182
+ - example: "1310.5"
1183
+ targetAmount:
1184
+ allOf:
1185
+ - $ref: "#/components/schemas/Amount"
1186
+ - description: The amount of the charge which is being levied, expressed in the target currency.
1187
+ - example: "1310.5"
1188
+ required:
1189
+ - chargeType
1190
+ Conversion:
1191
+ title: Conversion
1192
+ type: object
1193
+ description: A DFSP will be able to request a currency conversion, and an FX provider will be able to describe its involvement in a proposed transfer, using a Conversion object.
1194
+ properties:
1195
+ conversionId:
1196
+ allOf:
1197
+ - $ref: "#/components/schemas/CorrelationId"
1198
+ - description: An end-to-end identifier for the conversion request.
1199
+ - example: b51ec534-ee48-4575-b6a9-ead2955b8069
1200
+ fxpId:
1201
+ allOf:
1202
+ - $ref: "#/components/schemas/FspId"
1203
+ - description: The ID of the FXP performing the conversion.
1204
+ - example: 1234
1205
+ amountType:
1206
+ allOf:
1207
+ - $ref: "#/components/schemas/AmountType"
1208
+ - description: This is the AmountType for the base transaction -
1209
+ If SEND - then any charges levied by the FXP as part of the transaction will be deducted by the FXP from the amount shown for the target party in the conversion.
1210
+ If RECEIVE - then any charges levied by the FXP as part of the transaction will be added by the FXP to the amount shown for the source party in the conversion.
1211
+ source:
1212
+ allOf:
1213
+ - $ref: "#/components/schemas/FxParticipant"
1214
+ - description: The source currency party
1215
+ target:
1216
+ allOf:
1217
+ - $ref: "#/components/schemas/FxParticipant"
1218
+ - description: The target currency party
1219
+ validity:
1220
+ allOf:
1221
+ - $ref: "#/components/schemas/DateTime"
1222
+ - description: The end of the period for which the currency conversion is required to remain valid.
1223
+ - example: "2021-09-28T08:38:08.699-04:00"
1224
+ charges:
1225
+ type: array
1226
+ items:
1227
+ $ref: "#/components/schemas/Charge"
1228
+ minItems: 1
1229
+ maxItems: 16
1230
+ description: One or more charges which the FXP intends to levy as part of the currency conversion, or which the payee DFSP intends to add to the amount transferred.
1231
+ extensionList:
1232
+ $ref: "#/components/schemas/ExtensionList"
1233
+ required:
1234
+ - conversionId
1235
+ - fxpId
1236
+ - amountType
1237
+ - source
1238
+ - target
1239
+ - validity
1240
+ ErrorInformation:
1241
+ title: ErrorInformation
1242
+ type: object
1243
+ description: Data model for the complex type ErrorInformation.
1244
+ properties:
1245
+ errorCode:
1246
+ $ref: "#/components/schemas/ErrorCode"
1247
+ errorDescription:
1248
+ $ref: "#/components/schemas/ErrorDescription"
1249
+ extensionList:
1250
+ $ref: "#/components/schemas/ExtensionList"
1251
+ required:
1252
+ - errorCode
1253
+ - errorDescription
1254
+ ErrorInformationObject:
1255
+ title: ErrorInformationObject
1256
+ type: object
1257
+ description: Data model for the complex type object that contains ErrorInformation.
1258
+ properties:
1259
+ errorInformation:
1260
+ $ref: "#/components/schemas/ErrorInformation"
1261
+ required:
1262
+ - errorInformation
1263
+ ErrorInformationResponse:
1264
+ title: ErrorInformationResponse
1265
+ type: object
1266
+ description: Data model for the complex type object that contains an optional element ErrorInformation used along with 4xx and 5xx responses.
1267
+ properties:
1268
+ errorInformation:
1269
+ $ref: "#/components/schemas/ErrorInformation"
1270
+ Extension:
1271
+ title: Extension
1272
+ type: object
1273
+ description: Data model for the complex type Extension.
1274
+ properties:
1275
+ key:
1276
+ $ref: "#/components/schemas/ExtensionKey"
1277
+ value:
1278
+ $ref: "#/components/schemas/ExtensionValue"
1279
+ required:
1280
+ - key
1281
+ - value
1282
+ ExtensionList:
1283
+ title: ExtensionList
1284
+ type: object
1285
+ description: Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment.
1286
+ properties:
1287
+ extension:
1288
+ type: array
1289
+ items:
1290
+ $ref: "#/components/schemas/Extension"
1291
+ minItems: 1
1292
+ maxItems: 16
1293
+ description: Number of Extension elements.
1294
+ required:
1295
+ - extension
1296
+ FxMoney:
1297
+ title: FxMoney
1298
+ type: object
1299
+ description: Data model for the complex type FxMoney; This is based on the type Money but allows the amount to be optional to support FX quotations.
1300
+ properties:
1301
+ currency:
1302
+ $ref: "#/components/schemas/Currency"
1303
+ amount:
1304
+ $ref: "#/components/schemas/Amount"
1305
+ required:
1306
+ - currency
1307
+ FxParticipant:
1308
+ title: FxParticipant
1309
+ type: object
1310
+ description: Data model for the complex type FxMoney; allows the amount to be optional to support quotations
1311
+ properties:
1312
+ fspId:
1313
+ $ref: "#/components/schemas/FspId"
1314
+ principalAmount:
1315
+ allOf:
1316
+ - $ref: "#/components/schemas/FxMoney"
1317
+ - description: The amount that the party will send or receive.
1318
+ required:
1319
+ - fspId
1320
+ PartiesTypeIDPutResponse:
1321
+ title: PartiesTypeIDPutResponse
1322
+ type: object
1323
+ description: The object sent in the PUT /parties/{Type}/{ID} callback.
1324
+ properties:
1325
+ party:
1326
+ allOf:
1327
+ - $ref: "#/components/schemas/Party"
1328
+ - description: Information regarding the requested Party.
1329
+ required:
1330
+ - party
1331
+ Party:
1332
+ title: Party
1333
+ type: object
1334
+ description: Data model for the complex type Party.
1335
+ properties:
1336
+ partyIdInfo:
1337
+ allOf:
1338
+ - $ref: "#/components/schemas/PartyIdInfo"
1339
+ - description: Party Id type, id, sub ID or type, and FSP Id.
1340
+ merchantClassificationCode:
1341
+ allOf:
1342
+ - $ref: "#/components/schemas/MerchantClassificationCode"
1343
+ - description: Used in the context of Payee Information, where the Payee happens to be a merchant accepting merchant payments.
1344
+ - example: 4321
1345
+ name:
1346
+ allOf:
1347
+ - $ref: "#/components/schemas/PartyName"
1348
+ - description: Display name of the Party, could be a real name or a nick name.
1349
+ - example: Henrik Karlsson
1350
+ personalInfo:
1351
+ allOf:
1352
+ - $ref: "#/components/schemas/PartyPersonalInfo"
1353
+ - description: Personal information used to verify identity of Party such as first, middle, last name and date of birth.
1354
+ receiveCurrency:
1355
+ type: array
1356
+ items:
1357
+ $ref: "#/components/schemas/Currency"
1358
+ minItems: 0
1359
+ maxItems: 16
1360
+ description: Up to 16 currencies in which the party can receive funds.
1361
+ required:
1362
+ - partyIdInfo
1363
+ PartyComplexName:
1364
+ title: PartyComplexName
1365
+ type: object
1366
+ description: Data model for the complex type PartyComplexName.
1367
+ properties:
1368
+ firstName:
1369
+ allOf:
1370
+ - $ref: "#/components/schemas/FirstName"
1371
+ - description: Party’s first name.
1372
+ - example: Henrik
1373
+ middleName:
1374
+ allOf:
1375
+ - $ref: "#/components/schemas/MiddleName"
1376
+ - description: Party’s middle name.
1377
+ - example: Johannes
1378
+ lastName:
1379
+ allOf:
1380
+ - $ref: "#/components/schemas/LastName"
1381
+ - description: Party’s last name.
1382
+ - example: Karlsson
1383
+ PartyIdInfo:
1384
+ title: PartyIdInfo
1385
+ type: object
1386
+ description: Data model for the complex type PartyIdInfo. An ExtensionList element has been added to this reqeust in version v1.1
1387
+ properties:
1388
+ partyIdType:
1389
+ allOf:
1390
+ - $ref: "#/components/schemas/PartyIdType"
1391
+ - description: Type of the identifier.
1392
+ - example: PERSONAL_ID
1393
+ partyIdentifier:
1394
+ allOf:
1395
+ - $ref: "#/components/schemas/PartyIdentifier"
1396
+ - description: An identifier for the Party.
1397
+ - example: 16135551212
1398
+ partySubIdOrType:
1399
+ allOf:
1400
+ - $ref: "#/components/schemas/PartySubIdOrType"
1401
+ - description: A sub-identifier or sub-type for the Party.
1402
+ - example: DRIVING_LICENSE
1403
+ fspId:
1404
+ allOf:
1405
+ - $ref: "#/components/schemas/FspId"
1406
+ - description: FSP ID (if known).
1407
+ - example: 1234
1408
+ extensionList:
1409
+ $ref: "#/components/schemas/ExtensionList"
1410
+ required:
1411
+ - partyIdType
1412
+ - partyIdentifier
1413
+ PartyPersonalInfo:
1414
+ title: PartyPersonalInfo
1415
+ type: object
1416
+ description: Data model for the complex type PartyPersonalInfo.
1417
+ properties:
1418
+ complexName:
1419
+ allOf:
1420
+ - $ref: "#/components/schemas/PartyComplexName"
1421
+ - description: First, middle and last name for the Party.
1422
+ dateOfBirth:
1423
+ allOf:
1424
+ - $ref: "#/components/schemas/DateOfBirth"
1425
+ - description: Date of birth for the Party.
1426
+ - example: "1966-06-16"
1427
+ FxQuotesIDPutResponse:
1428
+ title: FxQuotesIDPutResponse
1429
+ type: object
1430
+ description: The object sent in the PUT /fxQuotes/{ID} callback.
1431
+ properties:
1432
+ agreedConversion:
1433
+ allOf:
1434
+ - $ref: "#/components/schemas/SignedConversion"
1435
+ - description: The amount of money that the Payee FSP should receivThe signed version of the terms under which the FXP will undertake the currency conversion proposed by the requester.
1436
+ required:
1437
+ - agreedConversion
1438
+ FxQuotesPostRequest:
1439
+ title: FxQuotesPostRequest
1440
+ type: object
1441
+ description: The object sent in the POST /fxQuotes request.
1442
+ properties:
1443
+ fxQuoteId:
1444
+ allOf:
1445
+ - $ref: "#/components/schemas/CorrelationId"
1446
+ - description: An end-to-end identifier for the FxQuote request.
1447
+ - example: b51ec534-ee48-4575-b6a9-ead2955b8069
1448
+ conversion:
1449
+ allOf:
1450
+ - $ref: "#/components/schemas/Conversion"
1451
+ - description: The terms of the currency conversion for which a quotation is sought.
1452
+ required:
1453
+ - fxQuoteId
1454
+ - conversion
1455
+ ServicesFXPPutResponse:
1456
+ title: ServicesFXPPutResponse
1457
+ type: object
1458
+ description: The object sent in the PUT /services/FXP callback.
1459
+ properties:
1460
+ fxpProviders:
1461
+ type: array
1462
+ items:
1463
+ $ref: "#/components/schemas/FspId"
1464
+ minItems: 0
1465
+ maxItems: 16
1466
+ description: The FSP Id(s) of the participant(s) who offer currency conversion services.
1467
+ required:
1468
+ - fxpProviders
1469
+ SignedConversion:
1470
+ title: SignedConversion
1471
+ type: object
1472
+ description: The SignedConversion object contains information about a currency conversion which has been agreed by the FXP.
1473
+ properties:
1474
+ conversionRequestId:
1475
+ allOf:
1476
+ - $ref: "#/components/schemas/CorrelationId"
1477
+ - description: An end-to-end identifier for the signed conversion.
1478
+ - example: b51ec534-ee48-4575-b6a9-ead2955b8069
1479
+ conversionTerms:
1480
+ allOf:
1481
+ - $ref: "#/components/schemas/Conversion"
1482
+ - description: The content of the conversion to which the FXP has agreed.
1483
+ expiration:
1484
+ allOf:
1485
+ - $ref: "#/components/schemas/DateTime"
1486
+ - description: The date and time at which the conversion offer will expire (as specified in Section 7.2.14 of the FSPIOP API definition v1.1).
1487
+ - example: "2021-09-28T08:38:08.699-04:00"
1488
+ condition:
1489
+ allOf:
1490
+ - $ref: "#/components/schemas/IlpCondition"
1491
+ - description: The condition attached to the agreed conversion.
1492
+ - example: f5sqb7tBTWPd5Y8BDFdMm9BJR_MNI4isf8p8n4D5pHA.
1493
+ required:
1494
+ - conversionRequestId
1495
+ - conversionTerms
1496
+ - expiration
1497
+ FxTransfersIDPatchResponse:
1498
+ title: FxTransfersIDPatchResponse
1499
+ type: object
1500
+ description: PATCH /fxTransfers/{ID} object
1501
+ properties:
1502
+ completedTimestamp:
1503
+ allOf:
1504
+ - $ref: "#/components/schemas/DateTime"
1505
+ - description: Time and date when the conversion was executed.
1506
+ - example: "2020-05-19T08:38:08.699-04:00"
1507
+ fulfilment:
1508
+ allOf:
1509
+ - $ref: "#/components/schemas/IlpFulfilment"
1510
+ - description: The fulfilment of the condition specified for the currency conversion. Mandatory if the conversion has been executed successfully.
1511
+ - example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8
1512
+ conversionState:
1513
+ allOf:
1514
+ - $ref: "#/components/schemas/TransactionState"
1515
+ - description: The current status of the conversion request.
1516
+ extensionList:
1517
+ $ref: "#/components/schemas/ExtensionList"
1518
+ required:
1519
+ - conversionState
1520
+ FxTransfersIDPutResponse:
1521
+ title: FxTransfersIDPutResponse
1522
+ type: object
1523
+ description: The object sent in the PUT /fxTransfers/{ID} callback.
1524
+ properties:
1525
+ completedTimestamp:
1526
+ allOf:
1527
+ - $ref: "#/components/schemas/DateTime"
1528
+ - description: Time and date when the conversion was executed.
1529
+ - example: "2020-05-19T08:38:08.699-04:00"
1530
+ fulfilment:
1531
+ allOf:
1532
+ - $ref: "#/components/schemas/IlpFulfilment"
1533
+ - description: The fulfilment of the condition specified for the currency conversion. Mandatory if the conversion has been executed successfully.
1534
+ - example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8
1535
+ conversionState:
1536
+ allOf:
1537
+ - $ref: "#/components/schemas/TransactionState"
1538
+ - description: The current status of the conversion request.
1539
+ extensionList:
1540
+ $ref: "#/components/schemas/ExtensionList"
1541
+ required:
1542
+ - conversionState
1543
+ FxTransfersPostRequest:
1544
+ title: FxTransfersPostRequest
1545
+ type: object
1546
+ description: The object sent in the POST /fxTransfers request.
1547
+ properties:
1548
+ commitRequestId:
1549
+ allOf:
1550
+ - $ref: "#/components/schemas/CorrelationId"
1551
+ - description: An end-to-end identifier for the confirmation request.
1552
+ - example: b51ec534-ee48-4575-b6a9-ead2955b8069
1553
+ relatedTransferId:
1554
+ allOf:
1555
+ - $ref: "#/components/schemas/CorrelationId"
1556
+ - description: The transfer ID of the transfer to which this currency conversion relates, if the conversion is part of a transfer. If the conversion is a currency purchase, this field should be omitted.
1557
+ - example: b51ec534-ee48-4575-b6a9-ead2955b8069
1558
+ conversion:
1559
+ allOf:
1560
+ - $ref: "#/components/schemas/SignedConversion"
1561
+ - description: The agreed currency conversion for which confirmation is sought.
1562
+ required:
1563
+ - commitRequestId
1564
+ - conversion
1565
+
1566
+ responses:
1567
+ "200":
1568
+ description: OK
1569
+ "202":
1570
+ description: Accepted
1571
+ "400":
1572
+ description: Bad Request
1573
+ content:
1574
+ application/json:
1575
+ schema:
1576
+ $ref: "#/components/schemas/ErrorInformationResponse"
1577
+ headers:
1578
+ Content-Length:
1579
+ $ref: "#/components/parameters/Content-Length"
1580
+ Content-Type:
1581
+ $ref: "#/components/parameters/Content-Type"
1582
+ "401":
1583
+ description: Unauthorized
1584
+ content:
1585
+ application/json:
1586
+ schema:
1587
+ $ref: "#/components/schemas/ErrorInformationResponse"
1588
+ headers:
1589
+ Content-Length:
1590
+ $ref: "#/components/parameters/Content-Length"
1591
+ Content-Type:
1592
+ $ref: "#/components/parameters/Content-Type"
1593
+ "403":
1594
+ description: Forbidden
1595
+ content:
1596
+ application/json:
1597
+ schema:
1598
+ $ref: "#/components/schemas/ErrorInformationResponse"
1599
+ headers:
1600
+ Content-Length:
1601
+ $ref: "#/components/parameters/Content-Length"
1602
+ Content-Type:
1603
+ $ref: "#/components/parameters/Content-Type"
1604
+ "404":
1605
+ description: Not Found
1606
+ content:
1607
+ application/json:
1608
+ schema:
1609
+ $ref: "#/components/schemas/ErrorInformationResponse"
1610
+ headers:
1611
+ Content-Length:
1612
+ $ref: "#/components/parameters/Content-Length"
1613
+ Content-Type:
1614
+ $ref: "#/components/parameters/Content-Type"
1615
+ "405":
1616
+ description: Method Not Allowed
1617
+ content:
1618
+ application/json:
1619
+ schema:
1620
+ $ref: "#/components/schemas/ErrorInformationResponse"
1621
+ headers:
1622
+ Content-Length:
1623
+ $ref: "#/components/parameters/Content-Length"
1624
+ Content-Type:
1625
+ $ref: "#/components/parameters/Content-Type"
1626
+ "406":
1627
+ description: Not Acceptable
1628
+ content:
1629
+ application/json:
1630
+ schema:
1631
+ $ref: "#/components/schemas/ErrorInformationResponse"
1632
+ headers:
1633
+ Content-Length:
1634
+ $ref: "#/components/parameters/Content-Length"
1635
+ Content-Type:
1636
+ $ref: "#/components/parameters/Content-Type"
1637
+ "501":
1638
+ description: Not Implemented
1639
+ content:
1640
+ application/json:
1641
+ schema:
1642
+ $ref: "#/components/schemas/ErrorInformationResponse"
1643
+ headers:
1644
+ Content-Length:
1645
+ $ref: "#/components/parameters/Content-Length"
1646
+ Content-Type:
1647
+ $ref: "#/components/parameters/Content-Type"
1648
+ "503":
1649
+ description: Service Unavailable
1650
+ content:
1651
+ application/json:
1652
+ schema:
1653
+ $ref: "#/components/schemas/ErrorInformationResponse"
1654
+ headers:
1655
+ Content-Length:
1656
+ $ref: "#/components/parameters/Content-Length"
1657
+ Content-Type:
1658
+ $ref: "#/components/parameters/Content-Type"
1659
+
1660
+ parameters:
1661
+ #Header parameters
1662
+ Accept:
1663
+ name: Accept
1664
+ in: header
1665
+ required: true
1666
+ schema:
1667
+ type: string
1668
+ description: The `Accept` header field indicates the version of the API the client would like the server to use.
1669
+ Content-Length:
1670
+ name: Content-Length
1671
+ in: header
1672
+ required: false
1673
+ schema:
1674
+ type: integer
1675
+ description:
1676
+ The `Content-Length` header field indicates the anticipated size of the payload body. Only sent if there is a body.
1677
+
1678
+
1679
+ **Note:** The API supports a maximum size of 5242880 bytes (5 Megabytes).
1680
+ Content-Type:
1681
+ name: Content-Type
1682
+ in: header
1683
+ schema:
1684
+ type: string
1685
+ required: true
1686
+ description: The `Content-Type` header indicates the specific version of the API used to send the payload body.
1687
+ Date:
1688
+ name: Date
1689
+ in: header
1690
+ schema:
1691
+ type: string
1692
+ required: true
1693
+ description: The `Date` header field indicates the date when the request was sent.
1694
+ X-Forwarded-For:
1695
+ name: X-Forwarded-For
1696
+ in: header
1697
+ schema:
1698
+ type: string
1699
+ required: false
1700
+ description:
1701
+ The `X-Forwarded-For` header field is an unofficially accepted standard used for informational purposes of the originating client IP address, as a request might pass multiple proxies, firewalls, and so on. Multiple `X-Forwarded-For` values should be expected and supported by implementers of the API.
1702
+
1703
+
1704
+ **Note:** An alternative to `X-Forwarded-For` is defined in [RFC 7239](https://tools.ietf.org/html/rfc7239). However, to this point RFC 7239 is less-used and supported than `X-Forwarded-For`.
1705
+ FSPIOP-Source:
1706
+ name: FSPIOP-Source
1707
+ in: header
1708
+ schema:
1709
+ type: string
1710
+ required: true
1711
+ description: The `FSPIOP-Source` header field is a non-HTTP standard field used by the API for identifying the sender of the HTTP request. The field should be set by the original sender of the request. Required for routing and signature verification (see header field `FSPIOP-Signature`).
1712
+ FSPIOP-Destination:
1713
+ name: FSPIOP-Destination
1714
+ in: header
1715
+ schema:
1716
+ type: string
1717
+ required: false
1718
+ description: The `FSPIOP-Destination` header field is a non-HTTP standard field used by the API for HTTP header based routing of requests and responses to the destination. The field must be set by the original sender of the request if the destination is known (valid for all services except GET /parties) so that any entities between the client and the server do not need to parse the payload for routing purposes. If the destination is not known (valid for service GET /parties), the field should be left empty.
1719
+ FSPIOP-Encryption:
1720
+ name: FSPIOP-Encryption
1721
+ in: header
1722
+ schema:
1723
+ type: string
1724
+ required: false
1725
+ description: The `FSPIOP-Encryption` header field is a non-HTTP standard field used by the API for applying end-to-end encryption of the request.
1726
+ FSPIOP-Signature:
1727
+ name: FSPIOP-Signature
1728
+ in: header
1729
+ schema:
1730
+ type: string
1731
+ required: false
1732
+ description: The `FSPIOP-Signature` header field is a non-HTTP standard field used by the API for applying an end-to-end request signature.
1733
+ FSPIOP-URI:
1734
+ name: FSPIOP-URI
1735
+ in: header
1736
+ schema:
1737
+ type: string
1738
+ required: false
1739
+ description: The `FSPIOP-URI` header field is a non-HTTP standard field used by the API for signature verification, should contain the service URI. Required if signature verification is used, for more information, see [the API Signature document](https://github.com/mojaloop/docs/tree/main/Specification%20Document%20Set).
1740
+ FSPIOP-HTTP-Method:
1741
+ name: FSPIOP-HTTP-Method
1742
+ in: header
1743
+ schema:
1744
+ type: string
1745
+ required: false
1746
+ description: The `FSPIOP-HTTP-Method` header field is a non-HTTP standard field used by the API for signature verification, should contain the service HTTP method. Required if signature verification is used, for more information, see [the API Signature document](https://github.com/mojaloop/docs/tree/main/Specification%20Document%20Set).
1747
+ #Path parameters
1748
+ ID:
1749
+ name: ID
1750
+ in: path
1751
+ required: true
1752
+ schema:
1753
+ type: string
1754
+ description: The identifier value.
1755
+ Type:
1756
+ name: Type
1757
+ in: path
1758
+ required: true
1759
+ schema:
1760
+ type: string
1761
+ description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`.
1762
+ SubId:
1763
+ name: SubId
1764
+ in: path
1765
+ required: true
1766
+ schema:
1767
+ type: string
1768
+ description: A sub-identifier of the party identifier, or a sub-type of the party identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`.