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,2834 @@
1
+ openapi: 3.0.1
2
+ info:
3
+ title: Mojaloop SDK Backend API
4
+ description: >
5
+ API specification for the SDK Backend API.
6
+
7
+
8
+ To be implemented by the Digital Financial Service Provider (DFSP) to work
9
+ in tandem with the Mojaloop SDK (`mojaloop/sdk-scheme-adapter`).
10
+
11
+
12
+ This API is not to be confused with the Mojaloop SDK's Inbound or Outbound
13
+ API.
14
+
15
+
16
+ TODO: More explanation and links about the SDK adapter's Inbound and
17
+ Outbound API.
18
+
19
+
20
+ **Note on terminology:** The term "Switch" is equal to the term "Hub", and
21
+ the term "FSP" is equal to the term "DFSP".
22
+ license:
23
+ name: Apache License Version 2.0, January 2004
24
+ url: http://www.apache.org/licenses/
25
+ version: 2.1.0
26
+ paths:
27
+ /:
28
+ get:
29
+ operationId: BackendHealthCheck
30
+ responses:
31
+ '200':
32
+ description: Returns empty body if the service is running.
33
+ summary: Health check endpoint.
34
+ /bulkQuotes:
35
+ post:
36
+ operationId: BackendBulkQuotesPost
37
+ requestBody:
38
+ content:
39
+ application/json:
40
+ schema:
41
+ $ref: '#/components/schemas/bulkQuoteRequest'
42
+ description: Incoming request for a bulk quotation.
43
+ responses:
44
+ '200':
45
+ content:
46
+ application/json:
47
+ schema:
48
+ $ref: '#/components/schemas/bulkQuoteResponse'
49
+ description: A response to the bulk quote request.
50
+ '400':
51
+ $ref: '#/components/responses/400'
52
+ '500':
53
+ $ref: '#/components/responses/500'
54
+ summary: Requests a bulk quote.
55
+ tags:
56
+ - BulkQuotes
57
+ /bulkQuotes/{idValue}:
58
+ get:
59
+ operationId: BackendBulkQuotesGet
60
+ parameters:
61
+ - $ref: '#/components/parameters/idValue'
62
+ responses:
63
+ '200':
64
+ content:
65
+ application/json:
66
+ schema:
67
+ $ref: '#/components/schemas/bulkQuoteResponse'
68
+ description: Response containing details of the requested bulk quote.
69
+ '400':
70
+ $ref: '#/components/responses/400'
71
+ '404':
72
+ $ref: '#/components/responses/404'
73
+ '500':
74
+ $ref: '#/components/responses/500'
75
+ summary: >-
76
+ Requests information relating to a bulk quote identified by the
77
+ specified identifier value.
78
+ tags:
79
+ - BulkQuotes
80
+ /bulkTransactions/{bulkTransactionId}:
81
+ put:
82
+ description: >-
83
+ The HTTP request `PUT /bulkTransactions/{bulkTransactionId}` is used to
84
+ amend information regarding a bulk transaction, i.e. when
85
+ autoAcceptParty or autoAcceptQuote is false then the payer need to
86
+ provide confirmation to proceed with further processing of the request.
87
+ The `{bulkTransactionId}` in the URI should contain the
88
+ `bulkTransactionId` that was used for the creation of the bulk transfer.
89
+ operationId: BackendBulkTransactionsPut
90
+ parameters:
91
+ - $ref: '#/components/parameters/bulkTransactionId'
92
+ requestBody:
93
+ content:
94
+ application/json:
95
+ schema:
96
+ $ref: '#/components/schemas/bulkTransactionResponse'
97
+ responses:
98
+ '202':
99
+ description: Bulk transaction information successfully amended.
100
+ '400':
101
+ $ref: '#/components/responses/400'
102
+ '500':
103
+ $ref: '#/components/responses/500'
104
+ summary: Callbacks for the bulk transaction request.
105
+ tags:
106
+ - BulkTransactionsPut
107
+ /requestToPay/{transactionRequestId}:
108
+ put:
109
+ description: >-
110
+ It is used to notify the DFSP backend about the status of the
111
+ requestToPayTransfer.
112
+ operationId: RequestToPayPut
113
+ parameters:
114
+ - $ref: '#/components/parameters/transactionRequestId'
115
+ requestBody:
116
+ content:
117
+ application/json:
118
+ schema:
119
+ $ref: '#/components/schemas/requestToPayCallback'
120
+ responses:
121
+ '200':
122
+ description: OK
123
+ '400':
124
+ $ref: '#/components/responses/400'
125
+ '500':
126
+ $ref: '#/components/responses/500'
127
+ summary: Callback for the requestToPay request.
128
+ tags:
129
+ - RequestToPayPut
130
+ /bulkTransfers:
131
+ post:
132
+ operationId: BackendBulkTransfersPost
133
+ requestBody:
134
+ content:
135
+ application/json:
136
+ schema:
137
+ $ref: '#/components/schemas/bulkTransferRequest'
138
+ description: An incoming bulk transfer request.
139
+ responses:
140
+ '200':
141
+ content:
142
+ application/json:
143
+ schema:
144
+ $ref: '#/components/schemas/bulkTransferResponse'
145
+ description: The bulk transfer was accepted.
146
+ '400':
147
+ $ref: '#/components/responses/400'
148
+ '500':
149
+ $ref: '#/components/responses/500'
150
+ summary: >-
151
+ Execute bulk transfer of funds from an external account to internal
152
+ accounts.
153
+ tags:
154
+ - BulkTransfers
155
+ /bulkTransfers/{idValue}:
156
+ get:
157
+ operationId: BackendBulkTransfersGet
158
+ parameters:
159
+ - $ref: '#/components/parameters/idValue'
160
+ responses:
161
+ '200':
162
+ content:
163
+ application/json:
164
+ schema:
165
+ $ref: '#/components/schemas/bulkTransferResponse'
166
+ description: Response containing details of the requested bulk transfer.
167
+ '400':
168
+ $ref: '#/components/responses/400'
169
+ '404':
170
+ $ref: '#/components/responses/404'
171
+ '500':
172
+ $ref: '#/components/responses/500'
173
+ summary: >-
174
+ Requests information relating to a bulk transfer identified by the
175
+ specified identifier value.
176
+ tags:
177
+ - BulkTransfers
178
+ /otp/{transactionRequestId}:
179
+ get:
180
+ operationId: BackendOtpGet
181
+ parameters:
182
+ - $ref: '#/components/parameters/transactionRequestId'
183
+ responses:
184
+ '200':
185
+ content:
186
+ application/json:
187
+ schema:
188
+ $ref: '#/components/schemas/otpDetails'
189
+ description: Response containing details of the OTP.
190
+ '400':
191
+ $ref: '#/components/responses/400'
192
+ '404':
193
+ $ref: '#/components/responses/404'
194
+ '500':
195
+ $ref: '#/components/responses/500'
196
+ summary: Requests OTP.
197
+ tags:
198
+ - OTP
199
+ /participants/{idType}/{idValue}:
200
+ get:
201
+ description: >-
202
+ The HTTP request `GET /participants/{idType}/{idValue}` is used to find
203
+ out in which FSP the requested party, defined by `{idType}` and
204
+ `{idValue}`, is located.
205
+ operationId: BackendParticipantsGetByTypeAndID
206
+ parameters:
207
+ - $ref: '#/components/parameters/idType'
208
+ - $ref: '#/components/parameters/idValue'
209
+ responses:
210
+ '200':
211
+ content:
212
+ application/json:
213
+ schema:
214
+ $ref: '#/components/schemas/participantsResponse'
215
+ description: Response containing details of the requested party.
216
+ '400':
217
+ $ref: '#/components/responses/400'
218
+ '404':
219
+ $ref: '#/components/responses/404'
220
+ '500':
221
+ $ref: '#/components/responses/500'
222
+ summary: >-
223
+ Asks for the identifier (fspId) of the scheme participant (FSP) that can
224
+ handle transfers for the specified identifier type and value.
225
+ tags:
226
+ - Participants
227
+ /participants/{idType}/{idValue}/{idSubValue}:
228
+ get:
229
+ description: >-
230
+ The HTTP request `GET /participants/{idType}/{idValue}/{idSubValue}` is
231
+ used to find out in which FSP the requested party, defined by
232
+ `{idType}`, `{idValue}` and `{idSubValue}` is located.
233
+ operationId: BackendParticipantsGetByTypeIDAndSubId
234
+ parameters:
235
+ - $ref: '#/components/parameters/idType'
236
+ - $ref: '#/components/parameters/idValue'
237
+ - $ref: '#/components/parameters/idSubValue'
238
+ responses:
239
+ '200':
240
+ content:
241
+ application/json:
242
+ schema:
243
+ $ref: '#/components/schemas/participantsResponse'
244
+ description: Response containing details of the requested party.
245
+ '400':
246
+ $ref: '#/components/responses/400'
247
+ '404':
248
+ $ref: '#/components/responses/404'
249
+ '500':
250
+ $ref: '#/components/responses/500'
251
+ summary: >-
252
+ Asks for the identifier (fspId) of the scheme participant (FSP) that can
253
+ handle transfers for the specified identifier type and value.
254
+ tags:
255
+ - Participants
256
+ /parties/{idType}/{idValue}:
257
+ get:
258
+ description: >-
259
+ The HTTP request `GET /parties/{idType}/{idValue}` is used to look up
260
+ information regarding the requested transfer party, identified by
261
+ `{idType}` and `{idValue}`.
262
+ operationId: BackendPartiesGetByTypeAndID
263
+ parameters:
264
+ - $ref: '#/components/parameters/idType'
265
+ - $ref: '#/components/parameters/idValue'
266
+ responses:
267
+ '200':
268
+ content:
269
+ application/json:
270
+ schema:
271
+ $ref: '#/components/schemas/transferParty'
272
+ description: Response containing details of the requested party.
273
+ '400':
274
+ $ref: '#/components/responses/400'
275
+ '404':
276
+ $ref: '#/components/responses/404'
277
+ '500':
278
+ $ref: '#/components/responses/500'
279
+ summary: >-
280
+ Requests information relating to a transfer party identified by the
281
+ specified identifier type and value.
282
+ tags:
283
+ - Parties
284
+ /parties/{idType}/{idValue}/{idSubValue}:
285
+ get:
286
+ description: >-
287
+ The HTTP request `GET /parties/{idType}/{idValue}/{idSubValue}` is used
288
+ to look up information regarding the requested transfer party,
289
+ identified by `{idType}`, `{idValue}` and `{idSubValue}`.
290
+ operationId: BackendPartiesGetByTypeIdAndSubId
291
+ parameters:
292
+ - $ref: '#/components/parameters/idType'
293
+ - $ref: '#/components/parameters/idValue'
294
+ - $ref: '#/components/parameters/idSubValue'
295
+ responses:
296
+ '200':
297
+ content:
298
+ application/json:
299
+ schema:
300
+ $ref: '#/components/schemas/transferParty'
301
+ description: Response containing details of the requested party.
302
+ '400':
303
+ $ref: '#/components/responses/400'
304
+ '404':
305
+ $ref: '#/components/responses/404'
306
+ '500':
307
+ $ref: '#/components/responses/500'
308
+ summary: >-
309
+ Requests information relating to a transfer party identified by the
310
+ specified identifier type, value and subId value.
311
+ tags:
312
+ - Parties
313
+ /quoterequests:
314
+ post:
315
+ description: >-
316
+ The HTTP request `POST /quoterequests` is used to request the creation
317
+ of a quote for the provided financial transaction.
318
+ operationId: BackendQuoteRequest
319
+ requestBody:
320
+ content:
321
+ application/json:
322
+ schema:
323
+ $ref: '#/components/schemas/quoteRequest'
324
+ description: Request for a transfer quotation.
325
+ responses:
326
+ '200':
327
+ content:
328
+ application/json:
329
+ schema:
330
+ $ref: '#/components/schemas/quoteResponse'
331
+ description: A response to the transfer quotation request.
332
+ '400':
333
+ $ref: '#/components/responses/400'
334
+ '500':
335
+ $ref: '#/components/responses/500'
336
+ summary: Requests a quote for the specified transfer.
337
+ tags:
338
+ - Quotes
339
+ /transactionrequests:
340
+ post:
341
+ operationId: BackendTransactionRequest
342
+ requestBody:
343
+ content:
344
+ application/json:
345
+ schema:
346
+ $ref: '#/components/schemas/transactionRequest'
347
+ description: Request for Transaction Request.
348
+ responses:
349
+ '200':
350
+ content:
351
+ application/json:
352
+ schema:
353
+ $ref: '#/components/schemas/transactionRequestResponse'
354
+ description: A response to the transfer transaction request.
355
+ '400':
356
+ $ref: '#/components/responses/400'
357
+ '500':
358
+ $ref: '#/components/responses/500'
359
+ summary: Transaction request that supports pull based transfers.
360
+ tags:
361
+ - TransactionRequest
362
+ /transfers:
363
+ post:
364
+ description: >-
365
+ The HTTP request `POST /transfers` is used to request the creation of a
366
+ transfer for the transfer party.
367
+ operationId: BackendTransfersPost
368
+ requestBody:
369
+ content:
370
+ application/json:
371
+ schema:
372
+ $ref: '#/components/schemas/transferRequest'
373
+ description: An incoming transfer request.
374
+ responses:
375
+ '200':
376
+ content:
377
+ application/json:
378
+ schema:
379
+ $ref: '#/components/schemas/transferResponse'
380
+ description: The transfer was accepted.
381
+ '400':
382
+ $ref: '#/components/responses/400'
383
+ '500':
384
+ $ref: '#/components/responses/500'
385
+ summary: Transfers funds from an external account to an internal account.
386
+ tags:
387
+ - Transfers
388
+ /transfers/{transferId}:
389
+ get:
390
+ description: >-
391
+ The HTTP request `GET /transfers/{transferId}` is used to get
392
+ information regarding a transfer created or requested earlier. The
393
+ `{transferId}` in the URI should contain the `transferId` that was used
394
+ for the creation of the transfer.
395
+ operationId: BackendTransfersGet
396
+ parameters:
397
+ - $ref: '#/components/parameters/transferId'
398
+ responses:
399
+ '200':
400
+ content:
401
+ application/json:
402
+ schema:
403
+ $ref: '#/components/schemas/transferDetailsResponse'
404
+ description: The transfer was accepted.
405
+ '500':
406
+ $ref: '#/components/responses/500'
407
+ summary: Retrieves information for a specific transfer.
408
+ tags:
409
+ - Transfers
410
+ put:
411
+ description: >-
412
+ The HTTP request `PUT /transfers/{transferId}` is used to receive
413
+ notification for transfer being fulfiled when the FSP is a Payee.
414
+ operationId: BackendTransfersPut
415
+ parameters:
416
+ - $ref: '#/components/parameters/transferId'
417
+ requestBody:
418
+ content:
419
+ application/json:
420
+ schema:
421
+ $ref: '#/components/schemas/fulfilNotification'
422
+ description: An incoming notification for fulfiled transfer.
423
+ responses:
424
+ '200':
425
+ description: The notification was accepted.
426
+ '500':
427
+ $ref: '#/components/responses/500'
428
+ summary: Receive notification for a specific transfer.
429
+ tags:
430
+ - Transfers
431
+ /fxQuotes:
432
+ post:
433
+ description: >-
434
+ The HTTP request `POST /fxQuotes` is used to ask an FXP backend to
435
+ provide a quotation for a currency conversion.
436
+ summary: Calculate FX quote
437
+ tags:
438
+ - Fx
439
+ operationId: FxQuotesPost
440
+ requestBody:
441
+ description: Details of the FX quote request.
442
+ required: true
443
+ content:
444
+ application/json:
445
+ schema:
446
+ $ref: '#/components/schemas/FxQuotesPostBackendRequest'
447
+ responses:
448
+ '200':
449
+ description: Successful response.
450
+ content:
451
+ application/json:
452
+ schema:
453
+ $ref: '#/components/schemas/FxQuotesPostBackendResponse'
454
+ '400':
455
+ $ref: '#/components/responses/400'
456
+ '500':
457
+ $ref: '#/components/responses/500'
458
+ /fxTransfers:
459
+ post:
460
+ description: >-
461
+ The HTTP request `POST /fxTransfers` is used to ask an FXP backend to
462
+ confirm the execution of an agreed currency conversion.
463
+ summary: Perform FX transfer
464
+ tags:
465
+ - Fx
466
+ operationId: FxTransfersPost
467
+ requestBody:
468
+ description: Details of the FX transfer request.
469
+ required: true
470
+ content:
471
+ application/json:
472
+ schema:
473
+ $ref: '#/components/schemas/FxTransfersPostBackendRequest'
474
+ responses:
475
+ '200':
476
+ description: Successful response.
477
+ content:
478
+ application/json:
479
+ schema:
480
+ $ref: '#/components/schemas/FxTransfersPostBackendResponse'
481
+ '400':
482
+ $ref: '#/components/responses/400'
483
+ '500':
484
+ $ref: '#/components/responses/500'
485
+ /fxTransfers/{commitRequestId}:
486
+ put:
487
+ description: >-
488
+ The HTTP request `PUT /fxTransfers/{commitRequestId}` is used to notify
489
+ an FXP backend about the status of currency conversion.
490
+ summary: FX Commit Notification
491
+ tags:
492
+ - Fx
493
+ operationId: FxTransfersById
494
+ requestBody:
495
+ description: Status of the FX transfer.
496
+ required: true
497
+ content:
498
+ application/json:
499
+ schema:
500
+ $ref: '#/components/schemas/FxTransfersPutBackendRequest'
501
+ responses:
502
+ '200':
503
+ $ref: '#/components/responses/200'
504
+ '400':
505
+ $ref: '#/components/responses/400'
506
+ '500':
507
+ $ref: '#/components/responses/500'
508
+ components:
509
+ parameters:
510
+ idSubValue:
511
+ description: >-
512
+ A sub-identifier of the party identifier, or a sub-type of the party
513
+ identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`.
514
+ in: path
515
+ name: idSubValue
516
+ required: true
517
+ schema:
518
+ type: string
519
+ idType:
520
+ description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`.
521
+ in: path
522
+ name: idType
523
+ required: true
524
+ schema:
525
+ type: string
526
+ idValue:
527
+ description: The identifier value.
528
+ in: path
529
+ name: idValue
530
+ required: true
531
+ schema:
532
+ type: string
533
+ transactionRequestId:
534
+ in: path
535
+ name: transactionRequestId
536
+ required: true
537
+ schema:
538
+ $ref: '#/components/schemas/transactionRequestId'
539
+ transferId:
540
+ in: path
541
+ name: transferId
542
+ required: true
543
+ schema:
544
+ type: string
545
+ bulkTransactionId:
546
+ name: bulkTransactionId
547
+ in: path
548
+ required: true
549
+ schema:
550
+ $ref: '#/components/schemas/CorrelationId'
551
+ description: >-
552
+ Identifier of the bulk transaction to continue as returned in the
553
+ response to a `POST /bulkTransaction` request.
554
+ schemas:
555
+ DateOfBirth:
556
+ title: DateofBirth (type Date)
557
+ type: string
558
+ pattern: >-
559
+ ^(?:[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)$
560
+ description: Date of Birth of the Party.
561
+ example: '1966-06-16'
562
+ FirstName:
563
+ title: FirstName
564
+ type: string
565
+ minLength: 1
566
+ maxLength: 128
567
+ pattern: >-
568
+ ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control}
569
+ .,''-]{1,128}$
570
+ description: First name of the Party (Name Type).
571
+ example: Henrik
572
+ FspId:
573
+ title: FspId
574
+ type: string
575
+ minLength: 1
576
+ maxLength: 32
577
+ description: FSP identifier.
578
+ IndividualQuote:
579
+ description: Data model for individual quote in a bulk quote request.
580
+ properties:
581
+ amount:
582
+ $ref: '#/components/schemas/money'
583
+ amountType:
584
+ $ref: '#/components/schemas/amountType'
585
+ currency:
586
+ $ref: '#/components/schemas/currency'
587
+ feesAmount:
588
+ $ref: '#/components/schemas/money'
589
+ feesCurrency:
590
+ $ref: '#/components/schemas/currency'
591
+ initiator:
592
+ $ref: '#/components/schemas/initiator'
593
+ initiatorType:
594
+ $ref: '#/components/schemas/initiatorType'
595
+ note:
596
+ description: An optional note associated with the quote.
597
+ maxLength: 128
598
+ minLength: 1
599
+ type: string
600
+ quoteId:
601
+ $ref: '#/components/schemas/quoteId'
602
+ subScenario:
603
+ $ref: '#/components/schemas/TransactionSubScenario'
604
+ to:
605
+ $ref: '#/components/schemas/transferParty'
606
+ transactionId:
607
+ $ref: '#/components/schemas/transactionId'
608
+ transactionType:
609
+ $ref: '#/components/schemas/transactionType'
610
+ required:
611
+ - quoteId
612
+ - transactionId
613
+ - to
614
+ - amountType
615
+ - amount
616
+ - currency
617
+ - transactionType
618
+ - initiator
619
+ - initiatorType
620
+ type: object
621
+ IndividualQuoteResultFailed:
622
+ description: Data model for failed individual quote in a bulk quote response.
623
+ properties:
624
+ errorResponse:
625
+ $ref: '#/components/schemas/errorResponse'
626
+ quoteId:
627
+ $ref: '#/components/schemas/quoteId'
628
+ required:
629
+ - quoteId
630
+ - errorResponse
631
+ type: object
632
+ IndividualQuoteResultSuccess:
633
+ description: Data model for successful individual quote in a bulk quote response.
634
+ properties:
635
+ payeeFspCommissionAmount:
636
+ $ref: '#/components/schemas/money'
637
+ payeeFspCommissionAmountCurrency:
638
+ $ref: '#/components/schemas/currency'
639
+ payeeFspFeeAmount:
640
+ $ref: '#/components/schemas/money'
641
+ payeeFspFeeAmountCurrency:
642
+ $ref: '#/components/schemas/currency'
643
+ payeeReceiveAmount:
644
+ $ref: '#/components/schemas/money'
645
+ payeeReceiveAmountCurrency:
646
+ $ref: '#/components/schemas/currency'
647
+ quoteId:
648
+ $ref: '#/components/schemas/quoteId'
649
+ transferAmount:
650
+ $ref: '#/components/schemas/money'
651
+ transferAmountCurrency:
652
+ $ref: '#/components/schemas/currency'
653
+ required:
654
+ - quoteId
655
+ type: object
656
+ IndividualTransfer:
657
+ description: Data model for individual transfer in a bulk transfer request.
658
+ properties:
659
+ amount:
660
+ $ref: '#/components/schemas/money'
661
+ amountType:
662
+ $ref: '#/components/schemas/amountType'
663
+ currency:
664
+ $ref: '#/components/schemas/currency'
665
+ feesAmount:
666
+ $ref: '#/components/schemas/money'
667
+ feesCurrency:
668
+ $ref: '#/components/schemas/currency'
669
+ initiator:
670
+ $ref: '#/components/schemas/initiator'
671
+ initiatorType:
672
+ $ref: '#/components/schemas/initiatorType'
673
+ note:
674
+ description: An optional note associated with the quote.
675
+ maxLength: 128
676
+ minLength: 1
677
+ type: string
678
+ subScenario:
679
+ $ref: '#/components/schemas/TransactionSubScenario'
680
+ to:
681
+ $ref: '#/components/schemas/transferParty'
682
+ transactionType:
683
+ $ref: '#/components/schemas/transactionType'
684
+ transferId:
685
+ $ref: '#/components/schemas/transferId'
686
+ required:
687
+ - transferId
688
+ - amount
689
+ - currency
690
+ type: object
691
+ IndividualTransferResult:
692
+ description: Data model for individual transfer in a bulk transfer response.
693
+ properties:
694
+ errorResponse:
695
+ $ref: '#/components/schemas/errorResponse'
696
+ extensionList:
697
+ $ref: '#/components/schemas/extensionList'
698
+ transferId:
699
+ $ref: '#/components/schemas/transferId'
700
+ required:
701
+ - transferId
702
+ type: object
703
+ LastName:
704
+ title: LastName
705
+ type: string
706
+ minLength: 1
707
+ maxLength: 128
708
+ pattern: >-
709
+ ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control}
710
+ .,''-]{1,128}$
711
+ description: Last name of the Party (Name Type).
712
+ example: Karlsson
713
+ MerchantClassificationCode:
714
+ title: MerchantClassificationCode
715
+ type: string
716
+ pattern: ^[\d]{1,4}$
717
+ description: >-
718
+ A limited set of pre-defined numbers. This list would be a limited set
719
+ of numbers identifying a set of popular merchant types like School Fees,
720
+ Pubs and Restaurants, Groceries, etc.
721
+ MiddleName:
722
+ title: MiddleName
723
+ type: string
724
+ minLength: 1
725
+ maxLength: 128
726
+ pattern: >-
727
+ ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control}
728
+ .,''-]{1,128}$
729
+ description: Middle name of the Party (Name Type).
730
+ example: Johannes
731
+ amountCurrency:
732
+ description: Object containing Amount and Currency of the transfer.
733
+ properties:
734
+ amount:
735
+ $ref: '#/components/schemas/money'
736
+ currency:
737
+ $ref: '#/components/schemas/currency'
738
+ required:
739
+ - amount
740
+ - currency
741
+ type: object
742
+ amountType:
743
+ enum:
744
+ - SEND
745
+ - RECEIVE
746
+ type: string
747
+ bulkQuoteId:
748
+ description: A Mojaloop API bulk quote identifier (UUID/ULID).
749
+ pattern: >-
750
+ ^[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}$
751
+ type: string
752
+ bulkQuoteRequest:
753
+ description: A request for a bulk quote.
754
+ properties:
755
+ bulkQuoteId:
756
+ $ref: '#/components/schemas/bulkQuoteId'
757
+ expiration:
758
+ $ref: '#/components/schemas/timestamp'
759
+ from:
760
+ $ref: '#/components/schemas/transferParty'
761
+ geoCode:
762
+ $ref: '#/components/schemas/geoCode'
763
+ individualQuotes:
764
+ items:
765
+ $ref: '#/components/schemas/IndividualQuote'
766
+ maxItems: 1000
767
+ minItems: 1
768
+ type: array
769
+ required:
770
+ - bulkQuoteId
771
+ - from
772
+ - individualQuotes
773
+ type: object
774
+ bulkQuoteResponse:
775
+ description: A response to a request for a bulk quote.
776
+ properties:
777
+ bulkQuoteId:
778
+ $ref: '#/components/schemas/bulkQuoteId'
779
+ expiration:
780
+ $ref: '#/components/schemas/timestamp'
781
+ individualQuoteResults:
782
+ description: >-
783
+ Fees for each individual transaction, if any of them are charged per
784
+ transaction.
785
+ items:
786
+ oneOf:
787
+ - $ref: '#/components/schemas/IndividualQuoteResultSuccess'
788
+ - $ref: '#/components/schemas/IndividualQuoteResultFailed'
789
+ maxItems: 1000
790
+ minItems: 1
791
+ type: array
792
+ required:
793
+ - bulkQuoteId
794
+ - individualQuoteResults
795
+ type: object
796
+ bulkTransferId:
797
+ description: A Mojaloop API transfer identifier (UUID/ULID).
798
+ pattern: >-
799
+ ^[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}$
800
+ type: string
801
+ bulkTransferRequest:
802
+ properties:
803
+ bulkQuote:
804
+ $ref: '#/components/schemas/bulkQuoteResponse'
805
+ bulkTransferId:
806
+ $ref: '#/components/schemas/bulkTransferId'
807
+ from:
808
+ $ref: '#/components/schemas/transferParty'
809
+ individualTransfers:
810
+ items:
811
+ $ref: '#/components/schemas/IndividualTransfer'
812
+ maxItems: 1000
813
+ minItems: 1
814
+ type: array
815
+ required:
816
+ - bulkTransferId
817
+ - individualTransfers
818
+ type: object
819
+ bulkTransferResponse:
820
+ properties:
821
+ bulkTransferId:
822
+ $ref: '#/components/schemas/bulkTransferId'
823
+ homeTransactionId:
824
+ description: >-
825
+ Transaction ID from the DFSP backend, used to reconcile transactions
826
+ between the switch and DFSP backend systems.
827
+ type: string
828
+ individualTransferResults:
829
+ items:
830
+ $ref: '#/components/schemas/IndividualTransferResult'
831
+ maxItems: 1000
832
+ minItems: 1
833
+ type: array
834
+ required:
835
+ - homeTransactionId
836
+ type: object
837
+ currency:
838
+ enum:
839
+ - AED
840
+ - AFN
841
+ - ALL
842
+ - AMD
843
+ - ANG
844
+ - AOA
845
+ - ARS
846
+ - AUD
847
+ - AWG
848
+ - AZN
849
+ - BAM
850
+ - BBD
851
+ - BDT
852
+ - BGN
853
+ - BHD
854
+ - BIF
855
+ - BMD
856
+ - BND
857
+ - BOB
858
+ - BRL
859
+ - BSD
860
+ - BTN
861
+ - BWP
862
+ - BYN
863
+ - BZD
864
+ - CAD
865
+ - CDF
866
+ - CHF
867
+ - CLP
868
+ - CNY
869
+ - COP
870
+ - CRC
871
+ - CUC
872
+ - CUP
873
+ - CVE
874
+ - CZK
875
+ - DJF
876
+ - DKK
877
+ - DOP
878
+ - DZD
879
+ - EGP
880
+ - ERN
881
+ - ETB
882
+ - EUR
883
+ - FJD
884
+ - FKP
885
+ - GBP
886
+ - GEL
887
+ - GGP
888
+ - GHS
889
+ - GIP
890
+ - GMD
891
+ - GNF
892
+ - GTQ
893
+ - GYD
894
+ - HKD
895
+ - HNL
896
+ - HRK
897
+ - HTG
898
+ - HUF
899
+ - IDR
900
+ - ILS
901
+ - IMP
902
+ - INR
903
+ - IQD
904
+ - IRR
905
+ - ISK
906
+ - JEP
907
+ - JMD
908
+ - JOD
909
+ - JPY
910
+ - KES
911
+ - KGS
912
+ - KHR
913
+ - KMF
914
+ - KPW
915
+ - KRW
916
+ - KWD
917
+ - KYD
918
+ - KZT
919
+ - LAK
920
+ - LBP
921
+ - LKR
922
+ - LRD
923
+ - LSL
924
+ - LYD
925
+ - MAD
926
+ - MDL
927
+ - MGA
928
+ - MKD
929
+ - MMK
930
+ - MNT
931
+ - MOP
932
+ - MRO
933
+ - MUR
934
+ - MVR
935
+ - MWK
936
+ - MXN
937
+ - MYR
938
+ - MZN
939
+ - NAD
940
+ - NGN
941
+ - NIO
942
+ - NOK
943
+ - NPR
944
+ - NZD
945
+ - OMR
946
+ - PAB
947
+ - PEN
948
+ - PGK
949
+ - PHP
950
+ - PKR
951
+ - PLN
952
+ - PYG
953
+ - QAR
954
+ - RON
955
+ - RSD
956
+ - RUB
957
+ - RWF
958
+ - SAR
959
+ - SBD
960
+ - SCR
961
+ - SDG
962
+ - SEK
963
+ - SGD
964
+ - SHP
965
+ - SLL
966
+ - SOS
967
+ - SPL
968
+ - SRD
969
+ - STD
970
+ - SVC
971
+ - SYP
972
+ - SZL
973
+ - THB
974
+ - TJS
975
+ - TMT
976
+ - TND
977
+ - TOP
978
+ - TRY
979
+ - TTD
980
+ - TVD
981
+ - TWD
982
+ - TZS
983
+ - UAH
984
+ - UGX
985
+ - USD
986
+ - UYU
987
+ - UZS
988
+ - VEF
989
+ - VND
990
+ - VUV
991
+ - WST
992
+ - XAF
993
+ - XCD
994
+ - XDR
995
+ - XOF
996
+ - XPF
997
+ - XTS
998
+ - XXX
999
+ - YER
1000
+ - ZAR
1001
+ - ZMW
1002
+ - ZWD
1003
+ maxLength: 3
1004
+ minLength: 3
1005
+ type: string
1006
+ dateOfBirth:
1007
+ description: Date of birth in the form YYYY-MM-DD.
1008
+ pattern: >-
1009
+ ^(?:[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)$
1010
+ type: string
1011
+ errorCode:
1012
+ description: >
1013
+ The API data type errorCode is a JSON String of four characters,
1014
+ consisting of digits only. Negative numbers are not allowed. A leading
1015
+ zero is not allowed. Each error code in the API is a four-digit number,
1016
+ for example, 1234, where the first number (1 in the example) represents
1017
+ the high-level error category, the second number (2 in the example)
1018
+ represents the low-level error category, and the last two numbers (34 in
1019
+ the example) represents the specific error.
1020
+ pattern: ^[1-9]\d{3}$
1021
+ title: ErrorCode
1022
+ type: string
1023
+ errorDescription:
1024
+ description: Error description string.
1025
+ maxLength: 128
1026
+ minLength: 1
1027
+ title: ErrorDescription
1028
+ type: string
1029
+ errorInformation:
1030
+ description: A Mojaloop API error information construct.
1031
+ properties:
1032
+ errorCode:
1033
+ $ref: '#/components/schemas/errorCode'
1034
+ errorDescription:
1035
+ $ref: '#/components/schemas/errorDescription'
1036
+ extensionList:
1037
+ $ref: '#/components/schemas/extensionListComplex'
1038
+ required:
1039
+ - errorCode
1040
+ - errorDescription
1041
+ title: ErrorInformation
1042
+ type: object
1043
+ extensionItem:
1044
+ properties:
1045
+ key:
1046
+ maxLength: 32
1047
+ minLength: 1
1048
+ type: string
1049
+ value:
1050
+ maxLength: 128
1051
+ minLength: 1
1052
+ type: string
1053
+ type: object
1054
+ extensionList:
1055
+ items:
1056
+ $ref: '#/components/schemas/extensionItem'
1057
+ maxItems: 16
1058
+ minItems: 0
1059
+ type: array
1060
+ extensionListComplex:
1061
+ description: Data model for the complex type ExtensionList.
1062
+ properties:
1063
+ extension:
1064
+ description: Number of Extension elements.
1065
+ items:
1066
+ $ref: '#/components/schemas/extensionItem'
1067
+ maxItems: 16
1068
+ minItems: 1
1069
+ type: array
1070
+ required:
1071
+ - extension
1072
+ type: object
1073
+ fspId:
1074
+ description: FSP identifier.
1075
+ maxLength: 32
1076
+ minLength: 1
1077
+ type: string
1078
+ fulfilNotification:
1079
+ description: PUT /transfers/{transferId} object.
1080
+ properties:
1081
+ currentState:
1082
+ $ref: '#/components/schemas/transferStatus'
1083
+ direction:
1084
+ enum:
1085
+ - INBOUND
1086
+ type: string
1087
+ finalNotification:
1088
+ properties:
1089
+ completedTimestamp:
1090
+ $ref: '#/components/schemas/timestamp'
1091
+ extensionList:
1092
+ $ref: '#/components/schemas/extensionList'
1093
+ transferState:
1094
+ $ref: '#/components/schemas/transferState'
1095
+ required:
1096
+ - completedTimestamp
1097
+ - transferState
1098
+ type: object
1099
+ fulfil:
1100
+ properties:
1101
+ body:
1102
+ type: object
1103
+ headers:
1104
+ type: object
1105
+ type: object
1106
+ initiatedTimestamp:
1107
+ $ref: '#/components/schemas/timestamp'
1108
+ lastError:
1109
+ $ref: '#/components/schemas/transferError'
1110
+ prepare:
1111
+ properties:
1112
+ body:
1113
+ type: object
1114
+ headers:
1115
+ type: object
1116
+ type: object
1117
+ quote:
1118
+ properties:
1119
+ fulfilment:
1120
+ type: string
1121
+ internalRequest:
1122
+ type: object
1123
+ mojaloopResponse:
1124
+ type: object
1125
+ request:
1126
+ type: object
1127
+ response:
1128
+ type: object
1129
+ type: object
1130
+ quoteRequest:
1131
+ properties:
1132
+ body:
1133
+ type: object
1134
+ headers:
1135
+ type: object
1136
+ type: object
1137
+ quoteResponse:
1138
+ properties:
1139
+ body:
1140
+ type: object
1141
+ headers:
1142
+ type: object
1143
+ type: object
1144
+ transferId:
1145
+ $ref: '#/components/schemas/transferId'
1146
+ title: TransfersIDPatchResponse
1147
+ type: object
1148
+ generalError:
1149
+ description: >-
1150
+ This object may represent a number of different error object types and
1151
+ so its properties may vary significantly.
1152
+ type: object
1153
+ geoCode:
1154
+ description: >-
1155
+ Indicates the geographic location from where the transaction was
1156
+ initiated.
1157
+ properties:
1158
+ latitude:
1159
+ $ref: '#/components/schemas/latitude'
1160
+ longitude:
1161
+ $ref: '#/components/schemas/longitude'
1162
+ required:
1163
+ - latitude
1164
+ - longitude
1165
+ type: object
1166
+ idSubValue:
1167
+ maxLength: 128
1168
+ minLength: 1
1169
+ type: string
1170
+ idType:
1171
+ enum:
1172
+ - MSISDN
1173
+ - ACCOUNT_NO
1174
+ - EMAIL
1175
+ - PERSONAL_ID
1176
+ - BUSINESS
1177
+ - DEVICE
1178
+ - ACCOUNT_ID
1179
+ - IBAN
1180
+ - ALIAS
1181
+ type: string
1182
+ idValue:
1183
+ description: Identifier of the party.
1184
+ maxLength: 128
1185
+ minLength: 1
1186
+ type: string
1187
+ ilpPacketData:
1188
+ description: Object containing transfer object.
1189
+ properties:
1190
+ amount:
1191
+ $ref: '#/components/schemas/amountCurrency'
1192
+ payee:
1193
+ $ref: '#/components/schemas/Party'
1194
+ payer:
1195
+ $ref: '#/components/schemas/Party'
1196
+ quoteId:
1197
+ $ref: '#/components/schemas/quoteId'
1198
+ transactionId:
1199
+ $ref: '#/components/schemas/transactionId'
1200
+ transactionType:
1201
+ $ref: '#/components/schemas/transactionTypeObject'
1202
+ required:
1203
+ - quoteId
1204
+ - transactionId
1205
+ - payer
1206
+ - payee
1207
+ - amount
1208
+ - transactionType
1209
+ type: object
1210
+ initiator:
1211
+ enum:
1212
+ - PAYER
1213
+ - PAYEE
1214
+ type: string
1215
+ initiatorType:
1216
+ enum:
1217
+ - CONSUMER
1218
+ - AGENT
1219
+ - BUSINESS
1220
+ - DEVICE
1221
+ type: string
1222
+ latitude:
1223
+ description: >-
1224
+ The API data type Latitude is a JSON String in a lexical format that is
1225
+ restricted by a regular expression for interoperability reasons.
1226
+ pattern: >-
1227
+ ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$
1228
+ type: string
1229
+ longitude:
1230
+ description: >-
1231
+ The API data type Longitude is a JSON String in a lexical format that is
1232
+ restricted by a regular expression for interoperability reasons.
1233
+ pattern: >-
1234
+ ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$
1235
+ type: string
1236
+ money:
1237
+ pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$
1238
+ type: string
1239
+ otpDetails:
1240
+ properties:
1241
+ otpValue:
1242
+ description: OTP value.
1243
+ type: string
1244
+ required:
1245
+ - otpValue
1246
+ type: object
1247
+ participantsResponse:
1248
+ properties:
1249
+ fspId:
1250
+ $ref: '#/components/schemas/fspId'
1251
+ type: object
1252
+ payerType:
1253
+ enum:
1254
+ - CONSUMER
1255
+ - AGENT
1256
+ - BUSINESS
1257
+ - DEVICE
1258
+ type: string
1259
+ quoteId:
1260
+ description: A Mojaloop API quote identifier (UUID/ULID).
1261
+ pattern: >-
1262
+ ^[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}$
1263
+ type: string
1264
+ quoteRequest:
1265
+ description: A request for a quote for transfer from the DFSP backend.
1266
+ properties:
1267
+ homeR2PTransactionId:
1268
+ type: string
1269
+ description: >-
1270
+ Linked homeR2PTransactionId which was generated as part of POST
1271
+ /requestToPay to SDK incase of requestToPay transfer.
1272
+ amount:
1273
+ $ref: '#/components/schemas/money'
1274
+ amountType:
1275
+ $ref: '#/components/schemas/amountType'
1276
+ currency:
1277
+ $ref: '#/components/schemas/currency'
1278
+ expiration:
1279
+ $ref: '#/components/schemas/timestamp'
1280
+ extensionList:
1281
+ $ref: '#/components/schemas/extensionList'
1282
+ feesAmount:
1283
+ $ref: '#/components/schemas/money'
1284
+ feesCurrency:
1285
+ $ref: '#/components/schemas/currency'
1286
+ from:
1287
+ $ref: '#/components/schemas/transferParty'
1288
+ geoCode:
1289
+ $ref: '#/components/schemas/geoCode'
1290
+ initiator:
1291
+ $ref: '#/components/schemas/initiator'
1292
+ initiatorType:
1293
+ $ref: '#/components/schemas/initiatorType'
1294
+ note:
1295
+ description: An optional note associated with the requested transfer.
1296
+ maxLength: 128
1297
+ minLength: 1
1298
+ type: string
1299
+ quoteId:
1300
+ $ref: '#/components/schemas/quoteId'
1301
+ subScenario:
1302
+ $ref: '#/components/schemas/TransactionSubScenario'
1303
+ to:
1304
+ $ref: '#/components/schemas/transferParty'
1305
+ transactionId:
1306
+ $ref: '#/components/schemas/transactionId'
1307
+ transactionType:
1308
+ $ref: '#/components/schemas/transactionType'
1309
+ transactionRequestId:
1310
+ $ref: '#/components/schemas/transactionRequestId'
1311
+ converter:
1312
+ allOf:
1313
+ - $ref: '#/components/schemas/CurrencyConverter'
1314
+ - description: >-
1315
+ An optional field which will allow the payer DFSP to specify
1316
+ which DFSP it wants to undertake currency conversion. This is
1317
+ useful incase of if the sender wants the recipient to receive a
1318
+ specified amount of the target currency, but the payer DFSP does
1319
+ not want to undertake the currency conversion. In this case, the
1320
+ amount of the transfer would be expressed in the target currency
1321
+ and the amountType would be set to RECEIVE.
1322
+ currencyConversion:
1323
+ allOf:
1324
+ - $ref: '#/components/schemas/FxRate'
1325
+ - description: >-
1326
+ Used by the debtor party if it wants to share information about
1327
+ the currency conversion it proposes to make; or if it is
1328
+ required by scheme rules to share this information. This object
1329
+ contains the amount of the transfer in the source and target
1330
+ currencies, but does not identify the FXP being used.
1331
+ required:
1332
+ - quoteId
1333
+ - transactionId
1334
+ - to
1335
+ - from
1336
+ - amountType
1337
+ - amount
1338
+ - currency
1339
+ - transactionType
1340
+ - initiator
1341
+ - initiatorType
1342
+ type: object
1343
+ quoteResponse:
1344
+ description: A response to a request for a quote.
1345
+ properties:
1346
+ expiration:
1347
+ $ref: '#/components/schemas/timestamp'
1348
+ extensionList:
1349
+ $ref: '#/components/schemas/extensionList'
1350
+ geoCode:
1351
+ $ref: '#/components/schemas/geoCode'
1352
+ payeeFspCommissionAmount:
1353
+ $ref: '#/components/schemas/money'
1354
+ payeeFspCommissionAmountCurrency:
1355
+ $ref: '#/components/schemas/currency'
1356
+ payeeFspFeeAmount:
1357
+ $ref: '#/components/schemas/money'
1358
+ payeeFspFeeAmountCurrency:
1359
+ $ref: '#/components/schemas/currency'
1360
+ payeeReceiveAmount:
1361
+ $ref: '#/components/schemas/money'
1362
+ payeeReceiveAmountCurrency:
1363
+ $ref: '#/components/schemas/currency'
1364
+ quoteId:
1365
+ $ref: '#/components/schemas/quoteId'
1366
+ transactionId:
1367
+ $ref: '#/components/schemas/transactionId'
1368
+ transferAmount:
1369
+ $ref: '#/components/schemas/money'
1370
+ transferAmountCurrency:
1371
+ $ref: '#/components/schemas/currency'
1372
+ required:
1373
+ - quoteId
1374
+ - transactionId
1375
+ - transferAmount
1376
+ - transferAmountCurrency
1377
+ type: object
1378
+ scenario:
1379
+ enum:
1380
+ - TRANSFER
1381
+ type: string
1382
+ timestamp:
1383
+ description: An ISO-8601 formatted timestamp.
1384
+ pattern: >-
1385
+ ^(?:[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)$
1386
+ type: string
1387
+ transactionId:
1388
+ description: >-
1389
+ ID of the transaction, the ID is decided by the Payer FSP during the
1390
+ creation of the quote.
1391
+ pattern: >-
1392
+ ^[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}$
1393
+ type: string
1394
+ transactionRequest:
1395
+ description: A request for a pull based transfer.
1396
+ properties:
1397
+ amount:
1398
+ $ref: '#/components/schemas/money'
1399
+ currency:
1400
+ $ref: '#/components/schemas/currency'
1401
+ expiration:
1402
+ $ref: '#/components/schemas/timestamp'
1403
+ from:
1404
+ $ref: '#/components/schemas/transferParty'
1405
+ geoCode:
1406
+ $ref: '#/components/schemas/geoCode'
1407
+ initiator:
1408
+ $ref: '#/components/schemas/initiator'
1409
+ initiatorType:
1410
+ $ref: '#/components/schemas/initiatorType'
1411
+ note:
1412
+ description: An optional note associated with the requested transfer.
1413
+ maxLength: 128
1414
+ minLength: 1
1415
+ type: string
1416
+ to:
1417
+ $ref: '#/components/schemas/transferParty'
1418
+ transactionRequestId:
1419
+ $ref: '#/components/schemas/transactionRequestId'
1420
+ transactionType:
1421
+ $ref: '#/components/schemas/transactionType'
1422
+ subScenario:
1423
+ $ref: '#/components/schemas/TransactionSubScenario'
1424
+ authenticationType:
1425
+ $ref: '#/components/schemas/AuthenticationType'
1426
+ required:
1427
+ - transactionRequestId
1428
+ - to
1429
+ - from
1430
+ - amount
1431
+ - currency
1432
+ - transactionType
1433
+ - initiator
1434
+ - initiatorType
1435
+ type: object
1436
+ transactionRequestId:
1437
+ description: A Mojaloop API transaction request identifier (UUID/ULID).
1438
+ pattern: >-
1439
+ ^[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}$
1440
+ type: string
1441
+ transactionRequestResponse:
1442
+ description: A response to a request for a quote.
1443
+ properties:
1444
+ homeR2PTransactionId:
1445
+ type: string
1446
+ description: >-
1447
+ Transaction ID from the DFSP backend, used to reconcile transactions
1448
+ between the Switch and DFSP backend systems.
1449
+ transactionId:
1450
+ $ref: '#/components/schemas/transactionId'
1451
+ transactionRequestState:
1452
+ $ref: '#/components/schemas/transactionRequestState'
1453
+ required:
1454
+ - transactionId
1455
+ - transactionRequestState
1456
+ type: object
1457
+ transactionRequestState:
1458
+ enum:
1459
+ - RECEIVED
1460
+ - PENDING
1461
+ - ACCEPTED
1462
+ - REJECTED
1463
+ type: string
1464
+ transactionSubScenario:
1465
+ description: >-
1466
+ Possible sub-scenario, defined locally within the scheme (UndefinedEnum
1467
+ Type). Based on FSPIOP TransactionSubScenario.
1468
+ example: LOCALLY_DEFINED_SUBSCENARIO
1469
+ pattern: ^[A-Z_]{1,32}$
1470
+ title: transactionSubScenario
1471
+ type: string
1472
+ transactionType:
1473
+ enum:
1474
+ - TRANSFER
1475
+ - DEPOSIT
1476
+ - PAYMENT
1477
+ type: string
1478
+ transactionTypeObject:
1479
+ description: Object containing transfer object.
1480
+ properties:
1481
+ initiator:
1482
+ $ref: '#/components/schemas/initiator'
1483
+ initiatorType:
1484
+ $ref: '#/components/schemas/initiatorType'
1485
+ scenario:
1486
+ $ref: '#/components/schemas/scenario'
1487
+ subScenario:
1488
+ $ref: '#/components/schemas/TransactionSubScenario'
1489
+ required:
1490
+ - scenario
1491
+ - initiator
1492
+ - initiatorType
1493
+ type: object
1494
+ transferDetailsResponse:
1495
+ properties:
1496
+ amount:
1497
+ $ref: '#/components/schemas/money'
1498
+ amountType:
1499
+ $ref: '#/components/schemas/amountType'
1500
+ currency:
1501
+ $ref: '#/components/schemas/currency'
1502
+ extensions:
1503
+ $ref: '#/components/schemas/extensionList'
1504
+ from:
1505
+ $ref: '#/components/schemas/transferParty'
1506
+ homeTransactionId:
1507
+ description: >-
1508
+ Transaction ID from the DFSP backend, used to reconcile transactions
1509
+ between the Switch and DFSP backend systems.
1510
+ type: string
1511
+ note:
1512
+ maxLength: 128
1513
+ type: string
1514
+ subScenario:
1515
+ $ref: '#/components/schemas/TransactionSubScenario'
1516
+ timestamp:
1517
+ $ref: '#/components/schemas/timestamp'
1518
+ to:
1519
+ $ref: '#/components/schemas/transferParty'
1520
+ transactionType:
1521
+ $ref: '#/components/schemas/transactionType'
1522
+ transferState:
1523
+ $ref: '#/components/schemas/transferState'
1524
+ required:
1525
+ - homeTransactionId
1526
+ - from
1527
+ - to
1528
+ - amountType
1529
+ - currency
1530
+ - amount
1531
+ - transferState
1532
+ - transactionType
1533
+ - timestamp
1534
+ type: object
1535
+ transferId:
1536
+ description: A Mojaloop API transfer identifier (UUID/ULID).
1537
+ pattern: >-
1538
+ ^[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}$
1539
+ type: string
1540
+ transferParty:
1541
+ properties:
1542
+ dateOfBirth:
1543
+ $ref: '#/components/schemas/dateOfBirth'
1544
+ displayName:
1545
+ description: Display name of the sender, if known.
1546
+ type: string
1547
+ extensionList:
1548
+ $ref: '#/components/schemas/extensionList'
1549
+ firstName:
1550
+ description: Party first name.
1551
+ type: string
1552
+ fspId:
1553
+ description: Mojaloop scheme FSPID of the DFSP which owns the party account.
1554
+ type: string
1555
+ idSubValue:
1556
+ $ref: '#/components/schemas/idSubValue'
1557
+ idType:
1558
+ $ref: '#/components/schemas/idType'
1559
+ idValue:
1560
+ description: The identifier string used to identify the sender.
1561
+ type: string
1562
+ lastName:
1563
+ description: Party last name.
1564
+ type: string
1565
+ merchantClassificationCode:
1566
+ description: >-
1567
+ Up to 4 digits specifying the sender's merchant classification, if
1568
+ known and applicable.
1569
+ type: string
1570
+ middleName:
1571
+ description: Party middle name.
1572
+ type: string
1573
+ type:
1574
+ $ref: '#/components/schemas/payerType'
1575
+ supportedCurrencies:
1576
+ type: array
1577
+ description: Currencies in which the party can receive funds.
1578
+ items:
1579
+ $ref: '#/components/schemas/currency'
1580
+ minItems: 0
1581
+ maxItems: 16
1582
+ kycInformation:
1583
+ $ref: '#/components/schemas/KYCInformation'
1584
+ required:
1585
+ - idType
1586
+ - idValue
1587
+ type: object
1588
+ transferRequest:
1589
+ properties:
1590
+ homeR2PTransactionId:
1591
+ type: string
1592
+ description: >-
1593
+ Linked homeR2PTransactionId which was generated as part of POST
1594
+ /requestToPay to SDK incase of requestToPay transfer.
1595
+ amount:
1596
+ $ref: '#/components/schemas/money'
1597
+ amountType:
1598
+ $ref: '#/components/schemas/amountType'
1599
+ currency:
1600
+ $ref: '#/components/schemas/currency'
1601
+ from:
1602
+ $ref: '#/components/schemas/transferParty'
1603
+ ilpPacket:
1604
+ properties:
1605
+ data:
1606
+ $ref: '#/components/schemas/ilpPacketData'
1607
+ required:
1608
+ - data
1609
+ type: object
1610
+ note:
1611
+ maxLength: 128
1612
+ type: string
1613
+ quote:
1614
+ $ref: '#/components/schemas/quoteResponse'
1615
+ quoteRequestExtensions:
1616
+ $ref: '#/components/schemas/extensionList'
1617
+ subScenario:
1618
+ $ref: '#/components/schemas/TransactionSubScenario'
1619
+ to:
1620
+ $ref: '#/components/schemas/transferParty'
1621
+ transactionType:
1622
+ $ref: '#/components/schemas/transactionType'
1623
+ transferId:
1624
+ $ref: '#/components/schemas/transferId'
1625
+ transactionRequestId:
1626
+ $ref: '#/components/schemas/transactionRequestId'
1627
+ required:
1628
+ - transferId
1629
+ - quote
1630
+ - from
1631
+ - to
1632
+ - amountType
1633
+ - currency
1634
+ - amount
1635
+ - transactionType
1636
+ - ilpPacket
1637
+ type: object
1638
+ transferResponse:
1639
+ properties:
1640
+ completedTimestamp:
1641
+ $ref: '#/components/schemas/timestamp'
1642
+ fulfilment:
1643
+ $ref: '#/components/schemas/IlpFulfilment'
1644
+ homeTransactionId:
1645
+ description: >-
1646
+ Transaction ID from the DFSP backend, used to reconcile transactions
1647
+ between the Switch and DFSP backend systems.
1648
+ type: string
1649
+ transferState:
1650
+ $ref: '#/components/schemas/transferState'
1651
+ required:
1652
+ - homeTransactionId
1653
+ type: object
1654
+ transferState:
1655
+ description: >
1656
+ Below are the allowed values for the enumeration - RECEIVED DFSP has
1657
+ received the transfer. - RESERVED DFSP has reserved the transfer. -
1658
+ COMMITTED DFSP has successfully performed the transfer. - ABORTED DFSP
1659
+ has aborted the transfer due a rejection or failure to perform the
1660
+ transfer.
1661
+ enum:
1662
+ - RECEIVED
1663
+ - RESERVED
1664
+ - COMMITTED
1665
+ - ABORTED
1666
+ type: string
1667
+ transferStatus:
1668
+ enum:
1669
+ - ERROR_OCCURRED
1670
+ - WAITING_FOR_PARTY_ACCEPTANCE
1671
+ - WAITING_FOR_QUOTE_ACCEPTANCE
1672
+ - COMPLETED
1673
+ type: string
1674
+ requestToPayCallback:
1675
+ description: Callback for requestToPay.
1676
+ properties:
1677
+ homeR2PTransactionId:
1678
+ type: string
1679
+ description: >-
1680
+ Transaction ID from the DFSP backend, used to reconcile transactions
1681
+ between the Switch and DFSP backend systems.
1682
+ transactionRequestState:
1683
+ $ref: '#/components/schemas/transactionRequestState'
1684
+ required:
1685
+ - transactionRequestState
1686
+ KYCInformation:
1687
+ title: KYCInformation
1688
+ type: string
1689
+ minLength: 1
1690
+ maxLength: 2048
1691
+ description: >-
1692
+ KYC information for the party in a form mandated by an individual
1693
+ scheme.
1694
+ example: |-
1695
+ {
1696
+ "metadata": {
1697
+ "format": "JSON",
1698
+ "version": "1.0",
1699
+ "description": "Data containing KYC Information"
1700
+ },
1701
+ "data": {
1702
+ "name": "John Doe",
1703
+ "dob": "1980-05-15",
1704
+ "gender": "Male",
1705
+ "address": "123 Main Street, Anytown, USA",
1706
+ "email": "johndoe@example.com",
1707
+ "phone": "+1 555-123-4567",
1708
+ "nationality": "US",
1709
+ "passport_number": "AB1234567",
1710
+ "issue_date": "2010-02-20",
1711
+ "expiry_date": "2025-02-20",
1712
+ "bank_account_number": "1234567890",
1713
+ "bank_name": "Example Bank",
1714
+ "employer": "ABC Company",
1715
+ "occupation": "Software Engineer",
1716
+ "income": "$80,000 per year",
1717
+ "marital_status": "Single",
1718
+ "dependents": 0,
1719
+ "risk_level": "Low"
1720
+ }
1721
+ }
1722
+ TransactionSubScenario:
1723
+ title: TransactionSubScenario
1724
+ type: string
1725
+ pattern: ^[A-Z_]{1,32}$
1726
+ description: >-
1727
+ Possible sub-scenario, defined locally within the scheme (UndefinedEnum
1728
+ Type).
1729
+ example: LOCALLY_DEFINED_SUBSCENARIO
1730
+ errorResponse:
1731
+ type: object
1732
+ properties:
1733
+ statusCode:
1734
+ type: string
1735
+ description: >
1736
+ Backend error code from FSP. Ideally, statusCode is FSPIOP
1737
+ conforming. SDK will use status code to retrieve an FSPIOP error
1738
+ with the same code.
1739
+
1740
+ Otherwise, a suitable generic FSPIOP will be used with the
1741
+ errorResponse in the FSPIOP error message.
1742
+ message:
1743
+ type: string
1744
+ description: Error message text.
1745
+ CorrelationId:
1746
+ title: CorrelationId
1747
+ type: string
1748
+ pattern: >-
1749
+ ^[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}$
1750
+ description: >-
1751
+ Identifier that correlates all messages of the same sequence.
1752
+ The supported identifiers formats are for
1753
+ lowercase [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and
1754
+ uppercase [ULID](https://github.com/ulid/spec)
1755
+ bulkTransactionStatus:
1756
+ type: string
1757
+ enum:
1758
+ - ERROR_OCCURRED
1759
+ - WAITING_FOR_PARTY_ACCEPTANCE
1760
+ - WAITING_FOR_QUOTE_ACCEPTANCE
1761
+ - COMPLETED
1762
+ autoAcceptPartyOption:
1763
+ type: object
1764
+ required:
1765
+ - enabled
1766
+ properties:
1767
+ enabled:
1768
+ type: boolean
1769
+ enum:
1770
+ - false
1771
+ - true
1772
+ Currency:
1773
+ title: Currency
1774
+ description: >-
1775
+ The currency codes defined in [ISO
1776
+ 4217](https://www.iso.org/iso-4217-currency-codes.html) as three-letter
1777
+ alphabetic codes are used as the standard naming representation for
1778
+ currencies.
1779
+ type: string
1780
+ minLength: 3
1781
+ maxLength: 3
1782
+ enum:
1783
+ - AED
1784
+ - AFN
1785
+ - ALL
1786
+ - AMD
1787
+ - ANG
1788
+ - AOA
1789
+ - ARS
1790
+ - AUD
1791
+ - AWG
1792
+ - AZN
1793
+ - BAM
1794
+ - BBD
1795
+ - BDT
1796
+ - BGN
1797
+ - BHD
1798
+ - BIF
1799
+ - BMD
1800
+ - BND
1801
+ - BOB
1802
+ - BRL
1803
+ - BSD
1804
+ - BTN
1805
+ - BWP
1806
+ - BYN
1807
+ - BZD
1808
+ - CAD
1809
+ - CDF
1810
+ - CHF
1811
+ - CLP
1812
+ - CNY
1813
+ - COP
1814
+ - CRC
1815
+ - CUC
1816
+ - CUP
1817
+ - CVE
1818
+ - CZK
1819
+ - DJF
1820
+ - DKK
1821
+ - DOP
1822
+ - DZD
1823
+ - EGP
1824
+ - ERN
1825
+ - ETB
1826
+ - EUR
1827
+ - FJD
1828
+ - FKP
1829
+ - GBP
1830
+ - GEL
1831
+ - GGP
1832
+ - GHS
1833
+ - GIP
1834
+ - GMD
1835
+ - GNF
1836
+ - GTQ
1837
+ - GYD
1838
+ - HKD
1839
+ - HNL
1840
+ - HRK
1841
+ - HTG
1842
+ - HUF
1843
+ - IDR
1844
+ - ILS
1845
+ - IMP
1846
+ - INR
1847
+ - IQD
1848
+ - IRR
1849
+ - ISK
1850
+ - JEP
1851
+ - JMD
1852
+ - JOD
1853
+ - JPY
1854
+ - KES
1855
+ - KGS
1856
+ - KHR
1857
+ - KMF
1858
+ - KPW
1859
+ - KRW
1860
+ - KWD
1861
+ - KYD
1862
+ - KZT
1863
+ - LAK
1864
+ - LBP
1865
+ - LKR
1866
+ - LRD
1867
+ - LSL
1868
+ - LYD
1869
+ - MAD
1870
+ - MDL
1871
+ - MGA
1872
+ - MKD
1873
+ - MMK
1874
+ - MNT
1875
+ - MOP
1876
+ - MRO
1877
+ - MUR
1878
+ - MVR
1879
+ - MWK
1880
+ - MXN
1881
+ - MYR
1882
+ - MZN
1883
+ - NAD
1884
+ - NGN
1885
+ - NIO
1886
+ - NOK
1887
+ - NPR
1888
+ - NZD
1889
+ - OMR
1890
+ - PAB
1891
+ - PEN
1892
+ - PGK
1893
+ - PHP
1894
+ - PKR
1895
+ - PLN
1896
+ - PYG
1897
+ - QAR
1898
+ - RON
1899
+ - RSD
1900
+ - RUB
1901
+ - RWF
1902
+ - SAR
1903
+ - SBD
1904
+ - SCR
1905
+ - SDG
1906
+ - SEK
1907
+ - SGD
1908
+ - SHP
1909
+ - SLL
1910
+ - SOS
1911
+ - SPL
1912
+ - SRD
1913
+ - STD
1914
+ - SVC
1915
+ - SYP
1916
+ - SZL
1917
+ - THB
1918
+ - TJS
1919
+ - TMT
1920
+ - TND
1921
+ - TOP
1922
+ - TRY
1923
+ - TTD
1924
+ - TVD
1925
+ - TWD
1926
+ - TZS
1927
+ - UAH
1928
+ - UGX
1929
+ - USD
1930
+ - UYU
1931
+ - UZS
1932
+ - VEF
1933
+ - VND
1934
+ - VUV
1935
+ - WST
1936
+ - XAF
1937
+ - XCD
1938
+ - XDR
1939
+ - XOF
1940
+ - XPF
1941
+ - XTS
1942
+ - XXX
1943
+ - YER
1944
+ - ZAR
1945
+ - ZMW
1946
+ - ZWD
1947
+ Amount:
1948
+ title: Amount
1949
+ type: string
1950
+ pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$
1951
+ description: >-
1952
+ The API data type Amount is a JSON String in a canonical format that is
1953
+ restricted by a regular expression for interoperability reasons. This
1954
+ pattern does not allow any trailing zeroes at all, but allows an amount
1955
+ without a minor currency unit. It also only allows four digits in the
1956
+ minor currency unit; a negative value is not allowed. Using more than 18
1957
+ digits in the major currency unit is not allowed.
1958
+ example: '123.45'
1959
+ bulkPerTransferFeeLimit:
1960
+ type: object
1961
+ required:
1962
+ - currency
1963
+ - amount
1964
+ properties:
1965
+ currency:
1966
+ $ref: '#/components/schemas/Currency'
1967
+ amount:
1968
+ $ref: '#/components/schemas/Amount'
1969
+ autoAcceptQuote:
1970
+ type: object
1971
+ required:
1972
+ - enabled
1973
+ properties:
1974
+ enabled:
1975
+ type: boolean
1976
+ enum:
1977
+ - true
1978
+ - false
1979
+ perTransferFeeLimits:
1980
+ type: array
1981
+ minItems: 0
1982
+ items:
1983
+ $ref: '#/components/schemas/bulkPerTransferFeeLimit'
1984
+ DateTime:
1985
+ title: DateTime
1986
+ type: string
1987
+ pattern: >-
1988
+ ^(?:[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)$
1989
+ description: >-
1990
+ The API data type DateTime is a JSON String in a lexical format that is
1991
+ restricted by a regular expression for interoperability reasons. The
1992
+ format is according to [ISO
1993
+ 8601](https://www.iso.org/iso-8601-date-and-time-format.html), expressed
1994
+ in a combined date, time and time zone format. A more readable version
1995
+ of the format is yyyy-MM-ddTHH:mm:ss.SSS[-HH:MM]. Examples are
1996
+ "2016-05-24T08:38:08.699-04:00", "2016-05-24T08:38:08.699Z" (where Z
1997
+ indicates Zulu time zone, same as UTC).
1998
+ example: '2016-05-24T08:38:08.699-04:00'
1999
+ bulkTransactionOptions:
2000
+ type: object
2001
+ required:
2002
+ - autoAcceptParty
2003
+ - autoAcceptQuote
2004
+ - bulkExpiration
2005
+ properties:
2006
+ onlyValidateParty:
2007
+ description: >-
2008
+ Set to true if only party validation is required. This means the
2009
+ quotes and transfers will not run. This is useful for only party
2010
+ resolution.
2011
+ type: boolean
2012
+ autoAcceptParty:
2013
+ $ref: '#/components/schemas/autoAcceptPartyOption'
2014
+ autoAcceptQuote:
2015
+ description: >-
2016
+ Set to true if the quote response is accepted without confirmation
2017
+ from the payer. The fees applied by the payee will be acceptable to
2018
+ the payer abiding by the limits set by optional
2019
+ 'perTransferFeeLimits' array.
2020
+ type: object
2021
+ oneOf:
2022
+ - $ref: '#/components/schemas/autoAcceptQuote'
2023
+ skipPartyLookup:
2024
+ description: >-
2025
+ Set to true if supplying an FSPID for the payee party and no party
2026
+ resolution is needed. This may be useful if a previous party
2027
+ resolution has been performed.
2028
+ type: boolean
2029
+ synchronous:
2030
+ description: >-
2031
+ Set to true if the bulkTransfer requests need be handled
2032
+ synchronous. Otherwise the requests will be handled asynchronously,
2033
+ meaning there will be callbacks whenever the processing is done
2034
+ type: boolean
2035
+ bulkExpiration:
2036
+ $ref: '#/components/schemas/DateTime'
2037
+ PartyIdType:
2038
+ title: PartyIdType
2039
+ type: string
2040
+ enum:
2041
+ - MSISDN
2042
+ - EMAIL
2043
+ - PERSONAL_ID
2044
+ - BUSINESS
2045
+ - DEVICE
2046
+ - ACCOUNT_ID
2047
+ - IBAN
2048
+ - ALIAS
2049
+ description: >-
2050
+ Below are the allowed values for the enumeration.
2051
+
2052
+ - MSISDN - An MSISDN (Mobile Station International Subscriber Directory
2053
+ Number, that is, the phone number) is used as reference to a
2054
+ participant. The MSISDN identifier should be in international format
2055
+ according to the [ITU-T E.164
2056
+ standard](https://www.itu.int/rec/T-REC-E.164/en). Optionally, the
2057
+ MSISDN may be prefixed by a single plus sign, indicating the
2058
+ international prefix.
2059
+
2060
+ - EMAIL - An email is used as reference to a participant. The format of
2061
+ the email should be according to the informational [RFC
2062
+ 3696](https://tools.ietf.org/html/rfc3696).
2063
+
2064
+ - PERSONAL_ID - A personal identifier is used as reference to a
2065
+ participant. Examples of personal identification are passport number,
2066
+ birth certificate number, and national registration number. The
2067
+ identifier number is added in the PartyIdentifier element. The personal
2068
+ identifier type is added in the PartySubIdOrType element.
2069
+
2070
+ - BUSINESS - A specific Business (for example, an organization or a
2071
+ company) is used as reference to a participant. The BUSINESS identifier
2072
+ can be in any format. To make a transaction connected to a specific
2073
+ username or bill number in a Business, the PartySubIdOrType element
2074
+ should be used.
2075
+
2076
+ - DEVICE - A specific device (for example, a POS or ATM) ID connected to
2077
+ a specific business or organization is used as reference to a Party. For
2078
+ referencing a specific device under a specific business or organization,
2079
+ use the PartySubIdOrType element.
2080
+
2081
+ - ACCOUNT_ID - A bank account number or FSP account ID should be used as
2082
+ reference to a participant. The ACCOUNT_ID identifier can be in any
2083
+ format, as formats can greatly differ depending on country and FSP.
2084
+
2085
+ - IBAN - A bank account number or FSP account ID is used as reference to
2086
+ a participant. The IBAN identifier can consist of up to 34 alphanumeric
2087
+ characters and should be entered without whitespace.
2088
+
2089
+ - ALIAS An alias is used as reference to a participant. The alias should
2090
+ be created in the FSP as an alternative reference to an account owner.
2091
+ Another example of an alias is a username in the FSP system. The ALIAS
2092
+ identifier can be in any format. It is also possible to use the
2093
+ PartySubIdOrType element for identifying an account under an Alias
2094
+ defined by the PartyIdentifier.
2095
+ PartyIdentifier:
2096
+ title: PartyIdentifier
2097
+ type: string
2098
+ minLength: 1
2099
+ maxLength: 128
2100
+ description: Identifier of the Party.
2101
+ example: '16135551212'
2102
+ PartySubIdOrType:
2103
+ title: PartySubIdOrType
2104
+ type: string
2105
+ minLength: 1
2106
+ maxLength: 128
2107
+ description: >-
2108
+ Either a sub-identifier of a PartyIdentifier, or a sub-type of the
2109
+ PartyIdType, normally a PersonalIdentifierType.
2110
+ ExtensionKey:
2111
+ title: ExtensionKey
2112
+ type: string
2113
+ minLength: 1
2114
+ maxLength: 32
2115
+ description: Extension key.
2116
+ ExtensionValue:
2117
+ title: ExtensionValue
2118
+ type: string
2119
+ minLength: 1
2120
+ maxLength: 128
2121
+ description: Extension value.
2122
+ Extension:
2123
+ title: Extension
2124
+ type: object
2125
+ description: Data model for the complex type Extension.
2126
+ properties:
2127
+ key:
2128
+ $ref: '#/components/schemas/ExtensionKey'
2129
+ value:
2130
+ $ref: '#/components/schemas/ExtensionValue'
2131
+ required:
2132
+ - key
2133
+ - value
2134
+ ExtensionList:
2135
+ title: ExtensionList
2136
+ type: object
2137
+ description: >-
2138
+ Data model for the complex type ExtensionList. An optional list of
2139
+ extensions, specific to deployment.
2140
+ properties:
2141
+ extension:
2142
+ type: array
2143
+ items:
2144
+ $ref: '#/components/schemas/Extension'
2145
+ minItems: 1
2146
+ maxItems: 16
2147
+ description: Number of Extension elements.
2148
+ required:
2149
+ - extension
2150
+ PartyIdInfo:
2151
+ title: PartyIdInfo
2152
+ type: object
2153
+ description: >-
2154
+ Data model for the complex type PartyIdInfo. An ExtensionList element
2155
+ has been added to this reqeust in version v1.1
2156
+ properties:
2157
+ partyIdType:
2158
+ $ref: '#/components/schemas/PartyIdType'
2159
+ partyIdentifier:
2160
+ $ref: '#/components/schemas/PartyIdentifier'
2161
+ partySubIdOrType:
2162
+ $ref: '#/components/schemas/PartySubIdOrType'
2163
+ fspId:
2164
+ $ref: '#/components/schemas/FspId'
2165
+ extensionList:
2166
+ $ref: '#/components/schemas/ExtensionList'
2167
+ required:
2168
+ - partyIdType
2169
+ - partyIdentifier
2170
+ PartyName:
2171
+ title: PartyName
2172
+ type: string
2173
+ minLength: 1
2174
+ maxLength: 128
2175
+ description: Name of the Party. Could be a real name or a nickname.
2176
+ PartyComplexName:
2177
+ title: PartyComplexName
2178
+ type: object
2179
+ description: Data model for the complex type PartyComplexName.
2180
+ properties:
2181
+ firstName:
2182
+ $ref: '#/components/schemas/FirstName'
2183
+ middleName:
2184
+ $ref: '#/components/schemas/MiddleName'
2185
+ lastName:
2186
+ $ref: '#/components/schemas/LastName'
2187
+ PartyPersonalInfo:
2188
+ title: PartyPersonalInfo
2189
+ type: object
2190
+ description: Data model for the complex type PartyPersonalInfo.
2191
+ properties:
2192
+ complexName:
2193
+ $ref: '#/components/schemas/PartyComplexName'
2194
+ dateOfBirth:
2195
+ $ref: '#/components/schemas/DateOfBirth'
2196
+ kycInformation:
2197
+ $ref: '#/components/schemas/KYCInformation'
2198
+ Party:
2199
+ title: Party
2200
+ type: object
2201
+ description: Data model for the complex type Party.
2202
+ properties:
2203
+ partyIdInfo:
2204
+ $ref: '#/components/schemas/PartyIdInfo'
2205
+ merchantClassificationCode:
2206
+ $ref: '#/components/schemas/MerchantClassificationCode'
2207
+ name:
2208
+ $ref: '#/components/schemas/PartyName'
2209
+ personalInfo:
2210
+ $ref: '#/components/schemas/PartyPersonalInfo'
2211
+ supportedCurrencies:
2212
+ type: array
2213
+ description: Currencies in which the party can receive funds.
2214
+ items:
2215
+ $ref: '#/components/schemas/Currency'
2216
+ minItems: 0
2217
+ maxItems: 16
2218
+ required:
2219
+ - partyIdInfo
2220
+ AmountType:
2221
+ title: AmountType
2222
+ type: string
2223
+ enum:
2224
+ - SEND
2225
+ - RECEIVE
2226
+ description: >-
2227
+ Below are the allowed values for the enumeration AmountType.
2228
+
2229
+ - SEND - Amount the Payer would like to send, that is, the amount that
2230
+ should be withdrawn from the Payer account including any fees.
2231
+
2232
+ - RECEIVE - Amount the Payer would like the Payee to receive, that is,
2233
+ the amount that should be sent to the receiver exclusive of any fees.
2234
+ example: RECEIVE
2235
+ Note:
2236
+ title: Note
2237
+ type: string
2238
+ minLength: 1
2239
+ maxLength: 128
2240
+ description: Memo assigned to transaction.
2241
+ example: Note sent to Payee.
2242
+ Money:
2243
+ title: Money
2244
+ type: object
2245
+ description: Data model for the complex type Money.
2246
+ properties:
2247
+ currency:
2248
+ $ref: '#/components/schemas/Currency'
2249
+ amount:
2250
+ $ref: '#/components/schemas/Amount'
2251
+ required:
2252
+ - currency
2253
+ - amount
2254
+ Latitude:
2255
+ title: Latitude
2256
+ type: string
2257
+ pattern: >-
2258
+ ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$
2259
+ description: >-
2260
+ The API data type Latitude is a JSON String in a lexical format that is
2261
+ restricted by a regular expression for interoperability reasons.
2262
+ example: '+45.4215'
2263
+ Longitude:
2264
+ title: Longitude
2265
+ type: string
2266
+ pattern: >-
2267
+ ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$
2268
+ description: >-
2269
+ The API data type Longitude is a JSON String in a lexical format that is
2270
+ restricted by a regular expression for interoperability reasons.
2271
+ example: '+75.6972'
2272
+ GeoCode:
2273
+ title: GeoCode
2274
+ type: object
2275
+ description: >-
2276
+ Data model for the complex type GeoCode. Indicates the geographic
2277
+ location from where the transaction was initiated.
2278
+ properties:
2279
+ latitude:
2280
+ $ref: '#/components/schemas/Latitude'
2281
+ longitude:
2282
+ $ref: '#/components/schemas/Longitude'
2283
+ required:
2284
+ - latitude
2285
+ - longitude
2286
+ IlpPacket:
2287
+ title: IlpPacket
2288
+ type: string
2289
+ pattern: ^[A-Za-z0-9-_]+[=]{0,2}$
2290
+ minLength: 1
2291
+ maxLength: 32768
2292
+ description: Information for recipient (transport layer information).
2293
+ example: >-
2294
+ AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA
2295
+ IlpCondition:
2296
+ title: IlpCondition
2297
+ type: string
2298
+ pattern: ^[A-Za-z0-9-_]{43}$
2299
+ maxLength: 48
2300
+ description: Condition that must be attached to the transfer by the Payer.
2301
+ ErrorCode:
2302
+ title: ErrorCode
2303
+ type: string
2304
+ pattern: ^[1-9]\d{3}$
2305
+ description: >-
2306
+ The API data type ErrorCode is a JSON String of four characters,
2307
+ consisting of digits only. Negative numbers are not allowed. A leading
2308
+ zero is not allowed. Each error code in the API is a four-digit number,
2309
+ for example, 1234, where the first number (1 in the example) represents
2310
+ the high-level error category, the second number (2 in the example)
2311
+ represents the low-level error category, and the last two numbers (34 in
2312
+ the example) represent the specific error.
2313
+ example: '5100'
2314
+ ErrorDescription:
2315
+ title: ErrorDescription
2316
+ type: string
2317
+ minLength: 1
2318
+ maxLength: 128
2319
+ description: Error description string.
2320
+ ErrorInformation:
2321
+ title: ErrorInformation
2322
+ type: object
2323
+ description: Data model for the complex type ErrorInformation.
2324
+ properties:
2325
+ errorCode:
2326
+ $ref: '#/components/schemas/ErrorCode'
2327
+ errorDescription:
2328
+ $ref: '#/components/schemas/ErrorDescription'
2329
+ extensionList:
2330
+ $ref: '#/components/schemas/ExtensionList'
2331
+ required:
2332
+ - errorCode
2333
+ - errorDescription
2334
+ mojaloopError:
2335
+ type: object
2336
+ properties:
2337
+ errorInformation:
2338
+ $ref: '#/components/schemas/ErrorInformation'
2339
+ quoteError:
2340
+ type: object
2341
+ description: >-
2342
+ This object represents a Mojaloop API error received at any time during
2343
+ the quote process
2344
+ properties:
2345
+ httpStatusCode:
2346
+ type: integer
2347
+ description: >-
2348
+ The HTTP status code returned to the caller. This is the same as the
2349
+ actual HTTP status code returned with the response.
2350
+ mojaloopError:
2351
+ $ref: '#/components/schemas/mojaloopError'
2352
+ individualQuoteResult:
2353
+ type: object
2354
+ properties:
2355
+ quoteId:
2356
+ $ref: '#/components/schemas/CorrelationId'
2357
+ transferAmount:
2358
+ $ref: '#/components/schemas/Money'
2359
+ payeeReceiveAmount:
2360
+ $ref: '#/components/schemas/Money'
2361
+ payeeFspFee:
2362
+ $ref: '#/components/schemas/Money'
2363
+ payeeFspCommission:
2364
+ $ref: '#/components/schemas/Money'
2365
+ geoCode:
2366
+ $ref: '#/components/schemas/GeoCode'
2367
+ ilpPacket:
2368
+ $ref: '#/components/schemas/IlpPacket'
2369
+ condition:
2370
+ $ref: '#/components/schemas/IlpCondition'
2371
+ extensionList:
2372
+ $ref: '#/components/schemas/ExtensionList'
2373
+ lastError:
2374
+ $ref: '#/components/schemas/quoteError'
2375
+ required:
2376
+ - quoteId
2377
+ IlpFulfilment:
2378
+ title: IlpFulfilment
2379
+ type: string
2380
+ pattern: ^[A-Za-z0-9-_]{43}$
2381
+ maxLength: 48
2382
+ description: Fulfilment that must be attached to the transfer by the Payee.
2383
+ example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8
2384
+ TransferState:
2385
+ title: TransferState
2386
+ type: string
2387
+ enum:
2388
+ - RECEIVED
2389
+ - RESERVED
2390
+ - COMMITTED
2391
+ - ABORTED
2392
+ description: >-
2393
+ Below are the allowed values for the enumeration.
2394
+
2395
+ - RECEIVED - Next ledger has received the transfer.
2396
+
2397
+ - RESERVED - Next ledger has reserved the transfer.
2398
+
2399
+ - COMMITTED - Next ledger has successfully performed the transfer.
2400
+
2401
+ - ABORTED - Next ledger has aborted the transfer due to a rejection or
2402
+ failure to perform the transfer.
2403
+ example: RESERVED
2404
+ transferError:
2405
+ type: object
2406
+ description: >-
2407
+ This object represents a Mojaloop API error received at any time during
2408
+ the transfer process
2409
+ properties:
2410
+ httpStatusCode:
2411
+ type: integer
2412
+ description: >-
2413
+ The HTTP status code returned to the caller. This is the same as the
2414
+ actual HTTP status code returned with the response.
2415
+ mojaloopError:
2416
+ $ref: '#/components/schemas/mojaloopError'
2417
+ individualTransferResult:
2418
+ type: object
2419
+ required:
2420
+ - transferId
2421
+ properties:
2422
+ transferId:
2423
+ $ref: '#/components/schemas/CorrelationId'
2424
+ fulfilment:
2425
+ $ref: '#/components/schemas/IlpFulfilment'
2426
+ extensionList:
2427
+ $ref: '#/components/schemas/ExtensionList'
2428
+ transferState:
2429
+ $ref: '#/components/schemas/TransferState'
2430
+ lastError:
2431
+ $ref: '#/components/schemas/transferError'
2432
+ bulkTransactionIndividualTransferResult:
2433
+ type: object
2434
+ required:
2435
+ - homeTransactionId
2436
+ properties:
2437
+ transferId:
2438
+ $ref: '#/components/schemas/CorrelationId'
2439
+ homeTransactionId:
2440
+ type: string
2441
+ description: >-
2442
+ Transaction ID from the DFSP backend, used to reconcile transactions
2443
+ between the Switch and DFSP backend systems.
2444
+ transactionId:
2445
+ $ref: '#/components/schemas/CorrelationId'
2446
+ to:
2447
+ $ref: '#/components/schemas/Party'
2448
+ reference:
2449
+ description: Payer Loan reference
2450
+ type: string
2451
+ amountType:
2452
+ $ref: '#/components/schemas/AmountType'
2453
+ currency:
2454
+ $ref: '#/components/schemas/Currency'
2455
+ amount:
2456
+ $ref: '#/components/schemas/Amount'
2457
+ note:
2458
+ $ref: '#/components/schemas/Note'
2459
+ quoteId:
2460
+ $ref: '#/components/schemas/CorrelationId'
2461
+ quoteResponse:
2462
+ $ref: '#/components/schemas/individualQuoteResult'
2463
+ fulfil:
2464
+ $ref: '#/components/schemas/individualTransferResult'
2465
+ quoteExtensions:
2466
+ $ref: '#/components/schemas/ExtensionList'
2467
+ transferExtensions:
2468
+ $ref: '#/components/schemas/ExtensionList'
2469
+ lastError:
2470
+ $ref: '#/components/schemas/transferError'
2471
+ bulkTransactionResponse:
2472
+ title: BulkTransactionResponse
2473
+ type: object
2474
+ required:
2475
+ - bulkHomeTransactionID
2476
+ - bulkTransactionId
2477
+ - currentState
2478
+ - individualTransferResults
2479
+ properties:
2480
+ bulkHomeTransactionID:
2481
+ type: string
2482
+ description: >-
2483
+ Transaction ID from the DFSP backend, used to reconcile transactions
2484
+ between the Switch and DFSP backend systems.
2485
+ bulkTransactionId:
2486
+ $ref: '#/components/schemas/CorrelationId'
2487
+ currentState:
2488
+ $ref: '#/components/schemas/bulkTransactionStatus'
2489
+ options:
2490
+ $ref: '#/components/schemas/bulkTransactionOptions'
2491
+ individualTransferResults:
2492
+ description: List of individual transfer result in a bulk transfer response.
2493
+ type: array
2494
+ minItems: 1
2495
+ items:
2496
+ $ref: '#/components/schemas/bulkTransactionIndividualTransferResult'
2497
+ extensions:
2498
+ $ref: '#/components/schemas/ExtensionList'
2499
+ CurrencyConverter:
2500
+ title: CurrencyConverter
2501
+ type: string
2502
+ enum:
2503
+ - PAYER
2504
+ - PAYEE
2505
+ description: >-
2506
+ Below are the allowed values for the enumeration CurrencyConverter. -
2507
+ PAYER - Currency conversion should be performed by the payer. - PAYEE -
2508
+ Currency conversion should be performed by the payee.
2509
+ FxRate:
2510
+ title: FxRate
2511
+ type: object
2512
+ description: >-
2513
+ The FxRate object contains information about a currency conversion in
2514
+ the transfer. It can be used by parties to the transfer to exchange
2515
+ information with each other about the exchange rate for the transfer, to
2516
+ ensure that the best rate can be agreed on.
2517
+ properties:
2518
+ sourceAmount:
2519
+ allOf:
2520
+ - $ref: '#/components/schemas/Money'
2521
+ - description: The amount of the transfer in the source currency.
2522
+ targetAmount:
2523
+ allOf:
2524
+ - $ref: '#/components/schemas/Money'
2525
+ - description: The amount of the transfer in the target currency.
2526
+ required:
2527
+ - sourceAmount
2528
+ - targetAmount
2529
+ AuthenticationType:
2530
+ title: AuthenticationType
2531
+ type: string
2532
+ enum:
2533
+ - OTP
2534
+ - QRCODE
2535
+ - U2F
2536
+ description: |-
2537
+ Below are the allowed values for the enumeration AuthenticationType.
2538
+ - OTP - One-time password generated by the Payer FSP.
2539
+ - QRCODE - QR code used as One Time Password.
2540
+ - U2F - U2F is a new addition isolated to Thirdparty stream.
2541
+ example: OTP
2542
+ FxMoney:
2543
+ title: FxMoney
2544
+ type: object
2545
+ description: >-
2546
+ Data model for the complex type FxMoney; This is based on the type Money
2547
+ but allows the amount to be optional to support FX quotations.
2548
+ properties:
2549
+ currency:
2550
+ $ref: '#/components/schemas/Currency'
2551
+ amount:
2552
+ $ref: '#/components/schemas/Amount'
2553
+ required:
2554
+ - currency
2555
+ FxCharge:
2556
+ title: FxCharge
2557
+ type: object
2558
+ description: >-
2559
+ An FXP will be able to specify a charge which it proposes to levy on the
2560
+ currency conversion operation using a FxCharge object.
2561
+ properties:
2562
+ chargeType:
2563
+ type: string
2564
+ minLength: 1
2565
+ maxLength: 32
2566
+ description: A description of the charge which is being levied.
2567
+ sourceAmount:
2568
+ allOf:
2569
+ - $ref: '#/components/schemas/Money'
2570
+ - description: >-
2571
+ The amount of the charge which is being levied, expressed in the
2572
+ source currency.
2573
+ targetAmount:
2574
+ allOf:
2575
+ - $ref: '#/components/schemas/Money'
2576
+ - description: >-
2577
+ The amount of the charge which is being levied, expressed in the
2578
+ target currency.
2579
+ required:
2580
+ - chargeType
2581
+ FxConversion:
2582
+ title: FxConversion
2583
+ type: object
2584
+ description: >-
2585
+ A DFSP will be able to request a currency conversion, and an FX provider
2586
+ will be able to describe its involvement in a proposed transfer, using a
2587
+ FxConversion object.
2588
+ properties:
2589
+ conversionId:
2590
+ allOf:
2591
+ - $ref: '#/components/schemas/CorrelationId'
2592
+ - description: An end-to-end identifier for the conversion request.
2593
+ determiningTransferId:
2594
+ allOf:
2595
+ - $ref: '#/components/schemas/CorrelationId'
2596
+ - description: >-
2597
+ The transaction ID of the transfer on whose success this
2598
+ currency conversion depends.
2599
+ initiatingFsp:
2600
+ allOf:
2601
+ - $ref: '#/components/schemas/FspId'
2602
+ - description: >-
2603
+ The id of the participant who is requesting a currency
2604
+ conversion.
2605
+ counterPartyFsp:
2606
+ allOf:
2607
+ - $ref: '#/components/schemas/FspId'
2608
+ - description: The ID of the FXP performing the conversion.
2609
+ amountType:
2610
+ allOf:
2611
+ - $ref: '#/components/schemas/AmountType'
2612
+ - description: >-
2613
+ This is the AmountType for the base transaction - If SEND - then
2614
+ any charges levied by the FXP as part of the transaction will be
2615
+ deducted by the FXP from the amount shown for the target party
2616
+ in the conversion. If RECEIVE - then any charges levied by the
2617
+ FXP as part of the transaction will be added by the FXP to the
2618
+ amount shown for the source party in the conversion.
2619
+ sourceAmount:
2620
+ allOf:
2621
+ - $ref: '#/components/schemas/FxMoney'
2622
+ - description: The amount to be converted, expressed in the source currency.
2623
+ targetAmount:
2624
+ allOf:
2625
+ - $ref: '#/components/schemas/FxMoney'
2626
+ - description: The converted amount, expressed in the target currency.
2627
+ expiration:
2628
+ allOf:
2629
+ - $ref: '#/components/schemas/DateTime'
2630
+ - description: >-
2631
+ The end of the period for which the currency conversion is
2632
+ required to remain valid.
2633
+ charges:
2634
+ type: array
2635
+ description: >-
2636
+ One or more charges which the FXP intends to levy as part of the
2637
+ currency conversion, or which the payee DFSP intends to add to the
2638
+ amount transferred.
2639
+ items:
2640
+ $ref: '#/components/schemas/FxCharge'
2641
+ minItems: 0
2642
+ maxItems: 16
2643
+ extensionList:
2644
+ allOf:
2645
+ - $ref: '#/components/schemas/ExtensionList'
2646
+ - description: The extension list for the currency conversion request.
2647
+ required:
2648
+ - conversionId
2649
+ - initiatingFsp
2650
+ - counterPartyFsp
2651
+ - amountType
2652
+ - sourceAmount
2653
+ - targetAmount
2654
+ - expiration
2655
+ FxQuotesPostBackendRequest:
2656
+ title: FxQuotesPostBackendRequest
2657
+ type: object
2658
+ description: The object sent in the POST /fxQuotes request.
2659
+ properties:
2660
+ conversionRequestId:
2661
+ allOf:
2662
+ - $ref: '#/components/schemas/CorrelationId'
2663
+ - description: An end-to-end identifier for the conversion quotation request.
2664
+ conversionTerms:
2665
+ allOf:
2666
+ - $ref: '#/components/schemas/FxConversion'
2667
+ - description: >-
2668
+ The terms of the currency conversion for which a quotation is
2669
+ sought.
2670
+ required:
2671
+ - conversionRequestId
2672
+ - conversionTerms
2673
+ FxQuotesPostBackendResponse:
2674
+ title: FxQuotesPostBackendResponse
2675
+ type: object
2676
+ description: >-
2677
+ The object sent as a response for the POST /fxQuotes request. The terms
2678
+ under which the FXP will undertake the currency conversion proposed by
2679
+ the requester.
2680
+ properties:
2681
+ homeTransactionId:
2682
+ description: >-
2683
+ Transaction ID for the FXP backend, used to reconcile transactions
2684
+ between the Switch and FXP backend systems.
2685
+ type: string
2686
+ conversionTerms:
2687
+ allOf:
2688
+ - $ref: '#/components/schemas/FxConversion'
2689
+ - description: >-
2690
+ The terms under which the FXP will undertake the currency
2691
+ conversion proposed by the requester.
2692
+ required:
2693
+ - conversionTerms
2694
+ commitRequestId:
2695
+ allOf:
2696
+ - $ref: '#/components/schemas/CorrelationId'
2697
+ - description: An end-to-end identifier for the confirmation request.
2698
+ determiningTransferId:
2699
+ allOf:
2700
+ - $ref: '#/components/schemas/CorrelationId'
2701
+ - description: >-
2702
+ The transaction ID of the transfer to which this currency conversion
2703
+ relates, if the conversion is part of a transfer. If the conversion
2704
+ is a bulk currency purchase, this field should be omitted.
2705
+ initiatingFsp:
2706
+ allOf:
2707
+ - $ref: '#/components/schemas/FspId'
2708
+ - description: Identifier for the FSP who is requesting a currency conversion.
2709
+ counterPartyFsp:
2710
+ allOf:
2711
+ - $ref: '#/components/schemas/FspId'
2712
+ - description: Identifier for the FXP who is performing the currency conversion.
2713
+ sourceAmount:
2714
+ allOf:
2715
+ - $ref: '#/components/schemas/Money'
2716
+ - description: The amount being offered for conversion by the requesting FSP.
2717
+ targetAmount:
2718
+ allOf:
2719
+ - $ref: '#/components/schemas/Money'
2720
+ - description: >-
2721
+ The amount which the FXP is to credit to the requesting FSP in the
2722
+ target currency.
2723
+ condition:
2724
+ allOf:
2725
+ - $ref: '#/components/schemas/IlpCondition'
2726
+ - description: >-
2727
+ ILP condition received by the requesting FSP when the quote was
2728
+ approved.
2729
+ FxTransfersPostBackendRequest:
2730
+ title: FxTransfersPostBackendRequest
2731
+ type: object
2732
+ description: The object sent in the POST /fxTransfers request.
2733
+ properties:
2734
+ homeTransactionId:
2735
+ description: >-
2736
+ Transaction ID for the FXP backend, used to reconcile transactions
2737
+ between the Switch and FXP backend systems.
2738
+ type: string
2739
+ commitRequestId:
2740
+ $ref: '#/components/schemas/commitRequestId'
2741
+ determiningTransferId:
2742
+ $ref: '#/components/schemas/determiningTransferId'
2743
+ initiatingFsp:
2744
+ $ref: '#/components/schemas/initiatingFsp'
2745
+ counterPartyFsp:
2746
+ $ref: '#/components/schemas/counterPartyFsp'
2747
+ sourceAmount:
2748
+ $ref: '#/components/schemas/sourceAmount'
2749
+ targetAmount:
2750
+ $ref: '#/components/schemas/targetAmount'
2751
+ condition:
2752
+ $ref: '#/components/schemas/condition'
2753
+ required:
2754
+ - commitRequestId
2755
+ - initiatingFsp
2756
+ - counterPartyFsp
2757
+ - sourceAmount
2758
+ - targetAmount
2759
+ fulfilment:
2760
+ allOf:
2761
+ - $ref: '#/components/schemas/IlpFulfilment'
2762
+ - description: >-
2763
+ The fulfilment of the condition specified for the currency
2764
+ conversion. Mandatory if the conversion has been executed
2765
+ successfully.
2766
+ completedTimestamp:
2767
+ allOf:
2768
+ - $ref: '#/components/schemas/DateTime'
2769
+ - description: Time and date when the conversion was executed.
2770
+ conversionState:
2771
+ allOf:
2772
+ - $ref: '#/components/schemas/TransferState'
2773
+ - description: The current status of the conversion request.
2774
+ FxTransfersPostBackendResponse:
2775
+ title: FxTransfersPostBackendResponse
2776
+ type: object
2777
+ description: The object sent as a response for the POST /fxTransfers request.
2778
+ properties:
2779
+ homeTransactionId:
2780
+ description: >-
2781
+ Transaction ID for the FXP backend, used to reconcile transactions
2782
+ between the Switch and FXP backend systems.
2783
+ type: string
2784
+ fulfilment:
2785
+ $ref: '#/components/schemas/fulfilment'
2786
+ completedTimestamp:
2787
+ $ref: '#/components/schemas/completedTimestamp'
2788
+ conversionState:
2789
+ $ref: '#/components/schemas/conversionState'
2790
+ extensionList:
2791
+ $ref: '#/components/schemas/ExtensionList'
2792
+ required:
2793
+ - conversionState
2794
+ FxTransfersPutBackendRequest:
2795
+ title: FxTransfersPutBackendRequest
2796
+ type: object
2797
+ description: PUT /fxTransfers/{commitRequestId} object
2798
+ properties:
2799
+ homeTransactionId:
2800
+ description: >-
2801
+ Transaction ID for the FXP backend, used to reconcile transactions
2802
+ between the Switch and FXP backend systems.
2803
+ type: string
2804
+ fulfilment:
2805
+ $ref: '#/components/schemas/fulfilment'
2806
+ completedTimestamp:
2807
+ $ref: '#/components/schemas/completedTimestamp'
2808
+ conversionState:
2809
+ $ref: '#/components/schemas/conversionState'
2810
+ extensionList:
2811
+ $ref: '#/components/schemas/ExtensionList'
2812
+ required:
2813
+ - conversionState
2814
+ responses:
2815
+ '200':
2816
+ description: OK
2817
+ '400':
2818
+ description: Malformed or missing required headers or parameters.
2819
+ content:
2820
+ application/json:
2821
+ schema:
2822
+ $ref: '#/components/schemas/errorResponse'
2823
+ '404':
2824
+ description: Not Found
2825
+ content:
2826
+ application/json:
2827
+ schema:
2828
+ $ref: '#/components/schemas/errorResponse'
2829
+ '500':
2830
+ description: An error occurred processing the request.
2831
+ content:
2832
+ application/json:
2833
+ schema:
2834
+ $ref: '#/components/schemas/errorResponse'