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,3449 @@
1
+ openapi: 3.0.1
2
+ info:
3
+ title: Mojaloop SDK Outbound Scheme Adapter API
4
+ description: >
5
+ Specification for the Mojaloop SDK Scheme Adapter Outbound Transfers API
6
+
7
+
8
+ This API can be used by DFSP backends to simplify the process of sending
9
+ funds to other parties within a Mojaloop scheme.
10
+
11
+
12
+ Please see other documentation on
13
+ https://github.com/mojaloop/sdk-scheme-adapter for more information.
14
+
15
+
16
+ **Note on terminology:** The term "Switch" is equal to the term "Hub", and
17
+ the term "FSP" is equal to the term "DFSP".
18
+ license:
19
+ name: Apache License Version 2.0, January 2004
20
+ url: https://github.com/mojaloop/documentation/blob/main/LICENSE.md
21
+ version: 2.1.0
22
+ paths:
23
+ /:
24
+ get:
25
+ summary: Health check endpoint
26
+ description: >-
27
+ This endpoint allows a user of the SDK scheme adapter to check the
28
+ outbound transfers service is listening.
29
+ tags:
30
+ - Health
31
+ responses:
32
+ '200':
33
+ description: >-
34
+ Returns empty body if the scheme adapter outbound transfers service
35
+ is running.
36
+ /accounts:
37
+ post:
38
+ summary: Create accounts on the Account Lookup Service
39
+ description: >-
40
+ The HTTP request `POST /accounts` is used to create account information
41
+ on the Account Lookup Service (ALS) regarding the provided list of
42
+ identities.
43
+
44
+
45
+ Caller DFSP is used as the account source FSP information
46
+ tags:
47
+ - Accounts
48
+ requestBody:
49
+ description: Identities list request body
50
+ content:
51
+ application/json:
52
+ schema:
53
+ $ref: '#/components/schemas/accountsRequest'
54
+ required: true
55
+ responses:
56
+ '200':
57
+ $ref: '#/components/responses/accountsCreationCompleted'
58
+ '400':
59
+ $ref: '#/components/responses/accountsCreationError'
60
+ '500':
61
+ $ref: '#/components/responses/accountsCreationError'
62
+ '504':
63
+ $ref: '#/components/responses/accountsCreationTimeout'
64
+ /bulkQuotes:
65
+ post:
66
+ summary: Request bulk quotes for the provided financial transactions
67
+ description: >
68
+ The HTTP request `POST /bulkQuotes` is used to request a bulk quote to
69
+ fascilitate funds transfer from payer DFSP to payees' DFSP.
70
+ tags:
71
+ - BulkQuotes
72
+ requestBody:
73
+ description: Bulk quote request body
74
+ content:
75
+ application/json:
76
+ schema:
77
+ $ref: '#/components/schemas/bulkQuoteRequest'
78
+ required: true
79
+ responses:
80
+ '200':
81
+ $ref: '#/components/responses/bulkQuoteSuccess'
82
+ '400':
83
+ $ref: '#/components/responses/bulkQuoteBadRequest'
84
+ '500':
85
+ $ref: '#/components/responses/bulkQuoteServerError'
86
+ '504':
87
+ $ref: '#/components/responses/bulkQuoteTimeout'
88
+ /bulkQuotes/{bulkQuoteId}:
89
+ get:
90
+ summary: Retrieves information for a specific bulk quote
91
+ description: >-
92
+ The HTTP request `GET /bulkQuotes/{bulktQuoteId}` is used to get
93
+ information regarding a bulk quote created or requested earlier. The
94
+ `{bulkQuoteId}` in the URI should contain the `bulkQuoteId` that was
95
+ used for the creation of the bulk quote.
96
+ tags:
97
+ - BulkQuotes
98
+ parameters:
99
+ - $ref: '#/components/parameters/bulkQuoteId'
100
+ responses:
101
+ '200':
102
+ description: Bulk quote information successfully retrieved
103
+ content:
104
+ application/json:
105
+ schema:
106
+ $ref: '#/components/schemas/bulkQuoteStatusResponse'
107
+ '500':
108
+ description: An error occurred processing the bulk quote
109
+ content:
110
+ application/json:
111
+ schema:
112
+ $ref: '#/components/schemas/errorResponse'
113
+ /bulkTransactions:
114
+ post:
115
+ summary: Sends money from one account to multiple accounts
116
+ description: >
117
+ The HTTP request `POST /bulkTransactions` is used to request the
118
+ movement of funds from payer DFSP to payees' DFSP.
119
+ tags:
120
+ - BulkTransactions
121
+ requestBody:
122
+ description: Bulk transfer request body
123
+ content:
124
+ application/json:
125
+ schema:
126
+ $ref: '#/components/schemas/bulkTransactionRequest'
127
+ required: true
128
+ responses:
129
+ '202':
130
+ $ref: '#/components/responses/bulkTransactionAccepted'
131
+ '400':
132
+ $ref: '#/components/responses/bulkTransferBadRequest'
133
+ '500':
134
+ $ref: '#/components/responses/errorResponse'
135
+ /bulkTransactions/{bulkTransactionId}:
136
+ put:
137
+ summary: Amends the bulk transaction request
138
+ description: >-
139
+ The HTTP request `PUT /bulkTransactions/{bulkTransactionId}` is used to
140
+ amend information regarding a bulk transaction, i.e. when
141
+ autoAcceptParty or autoAcceptQuote is false then the payer need to
142
+ provide confirmation to proceed with further processing of the request.
143
+ The `{bulkTransactionId}` in the URI should contain the
144
+ `bulkTransactionId` that was used for the creation of the bulk transfer.
145
+ tags:
146
+ - BulkTransactions
147
+ parameters:
148
+ - $ref: '#/components/parameters/bulkTransactionId'
149
+ requestBody:
150
+ description: Bulk transaction request body
151
+ content:
152
+ application/json:
153
+ schema:
154
+ oneOf:
155
+ - $ref: '#/components/schemas/bulkTransactionContinuationAcceptParty'
156
+ - $ref: '#/components/schemas/bulkTransactionContinuationAcceptQuote'
157
+ required: true
158
+ responses:
159
+ '202':
160
+ description: Bulk transaction information successfully amended
161
+ '400':
162
+ $ref: '#/components/responses/bulkTransactionPutBadRequest'
163
+ '500':
164
+ description: An error occurred processing the bulk transaction
165
+ content:
166
+ application/json:
167
+ schema:
168
+ $ref: '#/components/schemas/errorResponse'
169
+ /bulkTransfers:
170
+ post:
171
+ summary: Sends money from one account to multiple accounts
172
+ description: >
173
+ The HTTP request `POST /bulkTransfers` is used to request the movement
174
+ of funds from payer DFSP to payees' DFSP.
175
+ tags:
176
+ - BulkTransfers
177
+ requestBody:
178
+ description: Bulk transfer request body
179
+ content:
180
+ application/json:
181
+ schema:
182
+ $ref: '#/components/schemas/bulkTransferRequest'
183
+ required: true
184
+ responses:
185
+ '200':
186
+ $ref: '#/components/responses/bulkTransferSuccess'
187
+ '400':
188
+ $ref: '#/components/responses/bulkTransferBadRequest'
189
+ '500':
190
+ $ref: '#/components/responses/errorResponse'
191
+ /bulkTransfers/{bulkTransferId}:
192
+ get:
193
+ summary: Retrieves information for a specific bulk transfer
194
+ description: >-
195
+ The HTTP request `GET /bulkTransfers/{bulkTransferId}` is used to get
196
+ information regarding a bulk transfer created or requested earlier. The
197
+ `{bulkTransferId}` in the URI should contain the `bulkTransferId` that
198
+ was used for the creation of the bulk transfer.
199
+ tags:
200
+ - BulkTransfers
201
+ parameters:
202
+ - $ref: '#/components/parameters/bulkTransferId'
203
+ responses:
204
+ '200':
205
+ description: Bulk transfer information successfully retrieved
206
+ content:
207
+ application/json:
208
+ schema:
209
+ $ref: '#/components/schemas/bulkTransferStatusResponse'
210
+ '500':
211
+ description: An error occurred processing the bulk transfer
212
+ content:
213
+ application/json:
214
+ schema:
215
+ $ref: '#/components/schemas/errorResponse'
216
+ /parties/{Type}/{ID}:
217
+ parameters:
218
+ - $ref: '#/components/parameters/Type'
219
+ - $ref: '#/components/parameters/ID'
220
+ get:
221
+ description: >-
222
+ The HTTP request GET /parties// (or GET /parties///) is used to lookup
223
+ information regarding the requested Party, defined by , and optionally
224
+ (for example, GET /parties/MSISDN/123456789, or GET
225
+ /parties/BUSINESS/shoecompany/employee1).
226
+ summary: PartiesByTypeAndID
227
+ tags:
228
+ - parties
229
+ operationId: PartiesByTypeAndID
230
+ responses:
231
+ '200':
232
+ $ref: '#/components/responses/partiesByIdSuccess'
233
+ '404':
234
+ $ref: '#/components/responses/partiesByIdError404'
235
+ /parties/{Type}/{ID}/{SubId}:
236
+ parameters:
237
+ - $ref: '#/components/parameters/Type'
238
+ - $ref: '#/components/parameters/ID'
239
+ - $ref: '#/components/parameters/SubId'
240
+ get:
241
+ description: >-
242
+ The HTTP request GET /parties// (or GET /parties///) is used to lookup
243
+ information regarding the requested Party, defined by , and optionally
244
+ (for example, GET /parties/MSISDN/123456789, or GET
245
+ /parties/BUSINESS/shoecompany/employee1).
246
+ summary: PartiesSubIdByTypeAndID
247
+ tags:
248
+ - parties
249
+ operationId: PartiesSubIdByTypeAndID
250
+ responses:
251
+ '200':
252
+ $ref: '#/components/responses/partiesByIdSuccess'
253
+ '404':
254
+ $ref: '#/components/responses/partiesByIdError404'
255
+ /quotes:
256
+ post:
257
+ summary: Quotes endpoint
258
+ description: is used to request quotes from other DFSP
259
+ tags:
260
+ - quotes
261
+ operationId: QuotesPost
262
+ requestBody:
263
+ description: Quotes request payload
264
+ content:
265
+ application/json:
266
+ schema:
267
+ $ref: '#/components/schemas/simpleQuotesPostRequest'
268
+ required: true
269
+ responses:
270
+ '200':
271
+ $ref: '#/components/responses/quotesPostSuccess'
272
+ '500':
273
+ $ref: '#/components/responses/quotesServerError'
274
+ /requestToPay:
275
+ post:
276
+ summary: Receiver requesting funds from Sender
277
+ description: >
278
+ The HTTP request `POST /requestToPay` is used to support Pull Funds
279
+ pattern where in a receiver can request for funds from the Sender.
280
+
281
+ The underlying API has two stages:
282
+
283
+ 1. Party lookup. This facilitates a check by the sending party that the destination party is correct before proceeding with a money movement.
284
+ 2. Transaction Request. This request enables a Payee to request Payer to send electronic funds to the Payee.
285
+ tags:
286
+ - RequestToPay
287
+ requestBody:
288
+ description: RequestToPay request body
289
+ content:
290
+ application/json:
291
+ schema:
292
+ $ref: '#/components/schemas/requestToPayRequest'
293
+ required: true
294
+ responses:
295
+ '200':
296
+ $ref: '#/components/responses/requestToPaySuccess'
297
+ /requestToPay/{transactionRequestId}:
298
+ put:
299
+ summary: >-
300
+ Continues a request funds from sender that has paused at the party
301
+ resolution stage in order to accept or reject party information
302
+ description: >
303
+ The HTTP request `PUT /requestToPay/{transactionRequestId}` is used to
304
+ continue a transfer initiated via the `POST /requestToPay` method that
305
+ has halted after party lookup stage.
306
+
307
+ The request body should contain the "acceptParty" property set to `true`
308
+ as required to continue the transfer.
309
+
310
+ See the description of the `POST /requestToPay` HTTP method for more
311
+ information on modes of transfer.
312
+ tags:
313
+ - RequestToPay
314
+ requestBody:
315
+ content:
316
+ application/json:
317
+ schema:
318
+ $ref: '#/components/schemas/transferContinuationAcceptParty'
319
+ parameters:
320
+ - $ref: '#/components/parameters/transactionRequestId'
321
+ responses:
322
+ '200':
323
+ $ref: '#/components/responses/requestToPaySuccess'
324
+ '500':
325
+ $ref: '#/components/responses/transferServerError'
326
+ '504':
327
+ $ref: '#/components/responses/transferTimeout'
328
+ /requestToPayTransfer:
329
+ post:
330
+ summary: >-
331
+ Used to trigger funds from customer fsp account to merchant fsp account.
332
+ This is a follow-up request to requestToPay.
333
+ description: >
334
+ The HTTP request `POST /requestToPayTransfer` is used to request the
335
+ movement of funds from payer DFSP to payee DFSP.
336
+
337
+ The underlying Mojaloop API has three stages for money transfer:
338
+
339
+ 1. Quotation. This facilitates the exchange of fee information and the construction of a cryptographic "contract" between payee and payer DFSPs before funds are transferred.
340
+ 2. Authorization. This facilitates getting OTP from payee DFSP.
341
+ 3. Transfer. The enactment of the previously agreed "contract"
342
+
343
+ This method has several modes of operation.
344
+
345
+ - If the configuration variable `AUTO_ACCEPT_QUOTES` is set to `"false"`
346
+ this method will terminate and return the quotation when it has been
347
+ received from the payee DFSP.
348
+ If the payee wished to proceed with the otp, then a subsequent `PUT /transfers/{transferId}` request (accepting the quote) is required to continue the operation.
349
+ The scheme adapter will then proceed with the transfer state.
350
+
351
+ - If the configuration variable `AUTO_ACCEPT_OTP` is set to `"false"`
352
+ this method will terminate and return the otp when it has been received
353
+ from the payee DFSP.
354
+ If the payer wished to proceed with the transfer, then a subsequent `PUT /transfers/{transferId}` request (accepting the quote) is required to continue the operation.
355
+ The scheme adapter will then proceed with the transfer state.
356
+
357
+ If the configuration variables `AUTO_ACCEPT_PARTIES` and
358
+ `AUTO_ACCEPT_QUOTES` are both set to `"true"` this method will block
359
+ until all three transfer stages are complete. Upon completion it will
360
+ return the entire set of transfer details received during the operation.
361
+
362
+
363
+ Combinations of settings for `AUTO_ACCEPT...` configuration variables
364
+ allow the scheme adapter user to decide which mode of operation best
365
+ suits their use cases. i.e. the scheme adapter can be configured to
366
+ "break" the three stage transfer at these points in order to execute
367
+ backend logic such as party verification, quoted fees assessments etc...
368
+ tags:
369
+ - RequestToPayTransfer
370
+ requestBody:
371
+ description: Request To Pay Transfer request body
372
+ content:
373
+ application/json:
374
+ schema:
375
+ $ref: '#/components/schemas/requestToPayTransferRequest'
376
+ required: true
377
+ responses:
378
+ '200':
379
+ $ref: '#/components/responses/requestToPayTransferSuccess'
380
+ '400':
381
+ $ref: '#/components/responses/requestToPayTransferBadRequest'
382
+ '500':
383
+ $ref: '#/components/responses/transferServerError'
384
+ '504':
385
+ $ref: '#/components/responses/transferTimeout'
386
+ /requestToPayTransfer/{transactionRequestId}:
387
+ put:
388
+ summary: >-
389
+ Continues a transfer that has paused at the otp stage in order to accept
390
+ or reject quote
391
+ description: >
392
+ This request is used to continue a requestToPayTransfer initiated via
393
+ the `POST /requestToPayTransfer` method that has halted after quotation
394
+ stage and/or otp stage.
395
+
396
+
397
+ The request body should contain either the "acceptOTP" or "acceptQuote"
398
+ property set to `true` as required to continue the transfer.
399
+
400
+
401
+ See the description of the `POST /requestToPayTransfer` HTTP method for
402
+ more information on modes of transfer.
403
+ tags:
404
+ - RequestToPayTransferID
405
+ requestBody:
406
+ content:
407
+ application/json:
408
+ schema:
409
+ oneOf:
410
+ - $ref: '#/components/schemas/transferContinuationAcceptQuote'
411
+ - $ref: '#/components/schemas/transferContinuationAcceptOTP'
412
+ parameters:
413
+ - $ref: '#/components/parameters/transactionRequestId'
414
+ responses:
415
+ '200':
416
+ $ref: '#/components/responses/transferSuccess'
417
+ '500':
418
+ $ref: '#/components/responses/transferServerError'
419
+ '504':
420
+ $ref: '#/components/responses/transferTimeout'
421
+ /simpleTransfers:
422
+ post:
423
+ summary: Simple Transfers endpoint
424
+ description: is used to request a transfer
425
+ tags:
426
+ - transfers
427
+ operationId: SimpleTransfersPost
428
+ requestBody:
429
+ description: Simple Transfer request payload
430
+ content:
431
+ application/json:
432
+ schema:
433
+ $ref: '#/components/schemas/simpleTransfersPostRequest'
434
+ required: true
435
+ responses:
436
+ '200':
437
+ $ref: '#/components/responses/simpleTransfersPostSuccess'
438
+ '500':
439
+ $ref: '#/components/responses/simpleTransfersServerError'
440
+ /transfers:
441
+ post:
442
+ summary: Sends money from one account to another
443
+ description: >
444
+ The HTTP request `POST /transfers` is used to request the movement of
445
+ funds from payer DFSP to payee DFSP.
446
+
447
+ The underlying Mojaloop API has three stages for money transfer:
448
+
449
+ 1. Party lookup. This facilitates a check by the sending party that the destination party is correct before proceeding with a money movement.
450
+ 2. Quotation. This facilitates the exchange of fee information and the construction of a cryptographic "contract" between payee and payer DFSPs before funds are transferred.
451
+ 3. Transfer. The enactment of the previously agreed "contract"
452
+
453
+ This method has several modes of operation.
454
+
455
+ - If the configuration variables `AUTO_ACCEPT_PARTIES` is set to
456
+ `"false"` this method will terminate when the payee party has been
457
+ resolved and return the payee party details.
458
+ If the payee wishes to proceed with the transfer, then a subsequent `PUT /transfers/{transferId}` request (accepting the payee party) is required to continue the operation.
459
+ The scheme adapter will then proceed with quotation stage...
460
+
461
+ - If the configuration variable `AUTO_ACCEPT_QUOTES` is set to `"false"`
462
+ this method will terminate and return the quotation when it has been
463
+ received from the payee DFSP.
464
+ If the payee wished to proceed with the transfer, then a subsequent `PUT /transfers/{transferId}` request (accepting the quote) is required to continue the operation.
465
+ The scheme adapter will then proceed with the transfer state.
466
+
467
+ If the configuration variables `AUTO_ACCEPT_PARTIES` and
468
+ `AUTO_ACCEPT_QUOTES` are both set to `"true"` this method will block
469
+ until all three transfer stages are complete. Upon completion it will
470
+ return the entire set of transfer details received during the operation.
471
+
472
+
473
+ Combinations of settings for `AUTO_ACCEPT...` configuration variables
474
+ allow the scheme adapter user to decide which mode of operation best
475
+ suits their use cases. i.e. the scheme adapter can be configured to
476
+ "break" the three stage transfer at these points in order to execute
477
+ backend logic such as party verification, quoted fees assessments etc...
478
+ tags:
479
+ - Transfers
480
+ requestBody:
481
+ description: Transfer request body
482
+ content:
483
+ application/json:
484
+ schema:
485
+ $ref: '#/components/schemas/transferRequest'
486
+ required: true
487
+ responses:
488
+ '200':
489
+ $ref: '#/components/responses/transferSuccess'
490
+ '400':
491
+ $ref: '#/components/responses/transferBadRequest'
492
+ '500':
493
+ $ref: '#/components/responses/transferServerError'
494
+ '504':
495
+ $ref: '#/components/responses/transferTimeout'
496
+ /transfers/{transferId}:
497
+ put:
498
+ summary: >-
499
+ Continues a transfer that has paused at the quote stage in order to
500
+ accept or reject payee party and/or quote and/or conversion
501
+ description: >
502
+ The HTTP request `PUT /transfers/{transferId}` is used to continue a
503
+ transfer initiated via the `POST /transfers` method that has halted
504
+ after party lookup and/or quotation stage and/or currency conversion
505
+ stage.
506
+
507
+
508
+ The request body should contain either the "acceptParty" or
509
+ "acceptQuote" or "acceptConversion" property set to `true` as required
510
+ to continue the transfer.
511
+
512
+
513
+ See the description of the `POST /transfers` HTTP method for more
514
+ information on modes of transfer.
515
+ tags:
516
+ - Transfers
517
+ requestBody:
518
+ content:
519
+ application/json:
520
+ schema:
521
+ oneOf:
522
+ - $ref: '#/components/schemas/transferContinuationAcceptParty'
523
+ - $ref: '#/components/schemas/transferContinuationAcceptQuote'
524
+ - $ref: '#/components/schemas/transferContinuationAcceptConversion'
525
+ parameters:
526
+ - $ref: '#/components/parameters/transferId'
527
+ responses:
528
+ '200':
529
+ $ref: '#/components/responses/transferSuccess'
530
+ '500':
531
+ $ref: '#/components/responses/transferServerError'
532
+ '504':
533
+ $ref: '#/components/responses/transferTimeout'
534
+ get:
535
+ summary: Retrieves information for a specific transfer
536
+ description: >-
537
+ The HTTP request `GET /transfers/{transferId}` is used to get
538
+ information regarding a transfer created or requested earlier. The
539
+ `{transferId}` in the URI should contain the `transferId` that was used
540
+ for the creation of the transfer.
541
+ tags:
542
+ - Transfers
543
+ parameters:
544
+ - $ref: '#/components/parameters/transferId'
545
+ responses:
546
+ '200':
547
+ description: Transfer information successfully retrieved
548
+ content:
549
+ application/json:
550
+ schema:
551
+ $ref: '#/components/schemas/transferStatusResponse'
552
+ '500':
553
+ description: An error occurred processing the transfer
554
+ content:
555
+ application/json:
556
+ schema:
557
+ $ref: '#/components/schemas/errorResponse'
558
+ /services/FXP:
559
+ get:
560
+ description: >-
561
+ The HTTP request `GET /services/FXP` is used to request information
562
+ about the participants in a scheme who offer currency conversion
563
+ services.
564
+ summary: Obtain a list of the DFSPs in the scheme who provide FXP service
565
+ tags:
566
+ - servicesFXP
567
+ operationId: ServicesFXPGet
568
+ responses:
569
+ '200':
570
+ $ref: '#/components/responses/servicesFXPSucess'
571
+ '400':
572
+ $ref: '#/components/responses/400'
573
+ '500':
574
+ $ref: '#/components/responses/500'
575
+ /services/FXP/{SourceCurrency}/{TargetCurrency}:
576
+ get:
577
+ description: >-
578
+ The HTTP request `GET /services/FXP/{SourceCurrency}/{TargetCurrency}`
579
+ is used to request information about the participants in a scheme who
580
+ offer currency conversion services in a particular currency corridor.
581
+ The required corridor is specified by giving the ISO 4217 currency code
582
+ for the SourceCurrency and the TargetCurrency.
583
+ summary: Obtain a list of the DFSPs in the scheme who provide FXP service
584
+ tags:
585
+ - servicesFXP
586
+ operationId: ServicesFXPSourceCurrencyTargetCurrencyGet
587
+ parameters:
588
+ - $ref: '#/components/parameters/SourceCurrency'
589
+ - $ref: '#/components/parameters/TargetCurrency'
590
+ responses:
591
+ '200':
592
+ $ref: '#/components/responses/servicesFXPSucess'
593
+ '400':
594
+ $ref: '#/components/responses/400'
595
+ '500':
596
+ $ref: '#/components/responses/500'
597
+ /fxQuotes:
598
+ post:
599
+ description: >-
600
+ The HTTP request `POST /fxQuotes` is used to ask to provide a quotation
601
+ for a currency conversion.
602
+ summary: Calculate FX quote
603
+ tags:
604
+ - Fx
605
+ operationId: FxQuotesPost
606
+ requestBody:
607
+ description: Details of the FX quote request.
608
+ required: true
609
+ content:
610
+ application/json:
611
+ schema:
612
+ $ref: '#/components/schemas/FxQuotesPostOutboundRequest'
613
+ responses:
614
+ '200':
615
+ description: Successful response.
616
+ content:
617
+ application/json:
618
+ schema:
619
+ $ref: '#/components/schemas/FxQuotesPostOutboundResponse'
620
+ '400':
621
+ $ref: '#/components/responses/400'
622
+ '500':
623
+ $ref: '#/components/responses/500'
624
+ /fxTransfers:
625
+ post:
626
+ description: >-
627
+ The HTTP request `POST /fxTransfers` is used to ask to confirm the
628
+ execution of an agreed currency conversion.
629
+ summary: Perform FX transfer
630
+ tags:
631
+ - Fx
632
+ operationId: FxTransfersPost
633
+ requestBody:
634
+ description: Details of the FX transfer request.
635
+ required: true
636
+ content:
637
+ application/json:
638
+ schema:
639
+ $ref: '#/components/schemas/FxTransfersPostOutboundRequest'
640
+ responses:
641
+ '200':
642
+ description: Successful response.
643
+ content:
644
+ application/json:
645
+ schema:
646
+ $ref: '#/components/schemas/FxTransfersPostOutboundResponse'
647
+ '400':
648
+ $ref: '#/components/responses/400'
649
+ '500':
650
+ $ref: '#/components/responses/500'
651
+ components:
652
+ schemas:
653
+ PartyIdType:
654
+ title: PartyIdType
655
+ type: string
656
+ enum:
657
+ - MSISDN
658
+ - EMAIL
659
+ - PERSONAL_ID
660
+ - BUSINESS
661
+ - DEVICE
662
+ - ACCOUNT_ID
663
+ - IBAN
664
+ - ALIAS
665
+ description: >-
666
+ Below are the allowed values for the enumeration.
667
+
668
+ - MSISDN - An MSISDN (Mobile Station International Subscriber Directory
669
+ Number, that is, the phone number) is used as reference to a
670
+ participant. The MSISDN identifier should be in international format
671
+ according to the [ITU-T E.164
672
+ standard](https://www.itu.int/rec/T-REC-E.164/en). Optionally, the
673
+ MSISDN may be prefixed by a single plus sign, indicating the
674
+ international prefix.
675
+
676
+ - EMAIL - An email is used as reference to a participant. The format of
677
+ the email should be according to the informational [RFC
678
+ 3696](https://tools.ietf.org/html/rfc3696).
679
+
680
+ - PERSONAL_ID - A personal identifier is used as reference to a
681
+ participant. Examples of personal identification are passport number,
682
+ birth certificate number, and national registration number. The
683
+ identifier number is added in the PartyIdentifier element. The personal
684
+ identifier type is added in the PartySubIdOrType element.
685
+
686
+ - BUSINESS - A specific Business (for example, an organization or a
687
+ company) is used as reference to a participant. The BUSINESS identifier
688
+ can be in any format. To make a transaction connected to a specific
689
+ username or bill number in a Business, the PartySubIdOrType element
690
+ should be used.
691
+
692
+ - DEVICE - A specific device (for example, a POS or ATM) ID connected to
693
+ a specific business or organization is used as reference to a Party. For
694
+ referencing a specific device under a specific business or organization,
695
+ use the PartySubIdOrType element.
696
+
697
+ - ACCOUNT_ID - A bank account number or FSP account ID should be used as
698
+ reference to a participant. The ACCOUNT_ID identifier can be in any
699
+ format, as formats can greatly differ depending on country and FSP.
700
+
701
+ - IBAN - A bank account number or FSP account ID is used as reference to
702
+ a participant. The IBAN identifier can consist of up to 34 alphanumeric
703
+ characters and should be entered without whitespace.
704
+
705
+ - ALIAS An alias is used as reference to a participant. The alias should
706
+ be created in the FSP as an alternative reference to an account owner.
707
+ Another example of an alias is a username in the FSP system. The ALIAS
708
+ identifier can be in any format. It is also possible to use the
709
+ PartySubIdOrType element for identifying an account under an Alias
710
+ defined by the PartyIdentifier.
711
+ PartyIdentifier:
712
+ title: PartyIdentifier
713
+ type: string
714
+ minLength: 1
715
+ maxLength: 128
716
+ description: Identifier of the Party.
717
+ example: '16135551212'
718
+ PartySubIdOrType:
719
+ title: PartySubIdOrType
720
+ type: string
721
+ minLength: 1
722
+ maxLength: 128
723
+ description: >-
724
+ Either a sub-identifier of a PartyIdentifier, or a sub-type of the
725
+ PartyIdType, normally a PersonalIdentifierType.
726
+ Currency:
727
+ title: Currency
728
+ description: >-
729
+ The currency codes defined in [ISO
730
+ 4217](https://www.iso.org/iso-4217-currency-codes.html) as three-letter
731
+ alphabetic codes are used as the standard naming representation for
732
+ currencies.
733
+ type: string
734
+ minLength: 3
735
+ maxLength: 3
736
+ enum:
737
+ - AED
738
+ - AFN
739
+ - ALL
740
+ - AMD
741
+ - ANG
742
+ - AOA
743
+ - ARS
744
+ - AUD
745
+ - AWG
746
+ - AZN
747
+ - BAM
748
+ - BBD
749
+ - BDT
750
+ - BGN
751
+ - BHD
752
+ - BIF
753
+ - BMD
754
+ - BND
755
+ - BOB
756
+ - BRL
757
+ - BSD
758
+ - BTN
759
+ - BWP
760
+ - BYN
761
+ - BZD
762
+ - CAD
763
+ - CDF
764
+ - CHF
765
+ - CLP
766
+ - CNY
767
+ - COP
768
+ - CRC
769
+ - CUC
770
+ - CUP
771
+ - CVE
772
+ - CZK
773
+ - DJF
774
+ - DKK
775
+ - DOP
776
+ - DZD
777
+ - EGP
778
+ - ERN
779
+ - ETB
780
+ - EUR
781
+ - FJD
782
+ - FKP
783
+ - GBP
784
+ - GEL
785
+ - GGP
786
+ - GHS
787
+ - GIP
788
+ - GMD
789
+ - GNF
790
+ - GTQ
791
+ - GYD
792
+ - HKD
793
+ - HNL
794
+ - HRK
795
+ - HTG
796
+ - HUF
797
+ - IDR
798
+ - ILS
799
+ - IMP
800
+ - INR
801
+ - IQD
802
+ - IRR
803
+ - ISK
804
+ - JEP
805
+ - JMD
806
+ - JOD
807
+ - JPY
808
+ - KES
809
+ - KGS
810
+ - KHR
811
+ - KMF
812
+ - KPW
813
+ - KRW
814
+ - KWD
815
+ - KYD
816
+ - KZT
817
+ - LAK
818
+ - LBP
819
+ - LKR
820
+ - LRD
821
+ - LSL
822
+ - LYD
823
+ - MAD
824
+ - MDL
825
+ - MGA
826
+ - MKD
827
+ - MMK
828
+ - MNT
829
+ - MOP
830
+ - MRO
831
+ - MUR
832
+ - MVR
833
+ - MWK
834
+ - MXN
835
+ - MYR
836
+ - MZN
837
+ - NAD
838
+ - NGN
839
+ - NIO
840
+ - NOK
841
+ - NPR
842
+ - NZD
843
+ - OMR
844
+ - PAB
845
+ - PEN
846
+ - PGK
847
+ - PHP
848
+ - PKR
849
+ - PLN
850
+ - PYG
851
+ - QAR
852
+ - RON
853
+ - RSD
854
+ - RUB
855
+ - RWF
856
+ - SAR
857
+ - SBD
858
+ - SCR
859
+ - SDG
860
+ - SEK
861
+ - SGD
862
+ - SHP
863
+ - SLL
864
+ - SOS
865
+ - SPL
866
+ - SRD
867
+ - STD
868
+ - SVC
869
+ - SYP
870
+ - SZL
871
+ - THB
872
+ - TJS
873
+ - TMT
874
+ - TND
875
+ - TOP
876
+ - TRY
877
+ - TTD
878
+ - TVD
879
+ - TWD
880
+ - TZS
881
+ - UAH
882
+ - UGX
883
+ - USD
884
+ - UYU
885
+ - UZS
886
+ - VEF
887
+ - VND
888
+ - VUV
889
+ - WST
890
+ - XAF
891
+ - XCD
892
+ - XDR
893
+ - XOF
894
+ - XPF
895
+ - XTS
896
+ - XXX
897
+ - YER
898
+ - ZAR
899
+ - ZMW
900
+ - ZWD
901
+ accountsRequest:
902
+ type: array
903
+ items:
904
+ type: object
905
+ required:
906
+ - idType
907
+ - idValue
908
+ - currency
909
+ properties:
910
+ idType:
911
+ $ref: '#/components/schemas/PartyIdType'
912
+ idValue:
913
+ $ref: '#/components/schemas/PartyIdentifier'
914
+ idSubValue:
915
+ $ref: '#/components/schemas/PartySubIdOrType'
916
+ currency:
917
+ $ref: '#/components/schemas/Currency'
918
+ CorrelationId:
919
+ title: CorrelationId
920
+ type: string
921
+ pattern: >-
922
+ ^[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}$
923
+ description: >-
924
+ Identifier that correlates all messages of the same sequence.
925
+ The supported identifiers formats are for
926
+ lowercase [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and
927
+ uppercase [ULID](https://github.com/ulid/spec)
928
+ example: b51ec534-ee48-4575-b6a9-ead2955b8069
929
+ errorResponse:
930
+ type: object
931
+ properties:
932
+ statusCode:
933
+ type: string
934
+ description: >
935
+ Backend error code from FSP. Ideally, statusCode is FSPIOP
936
+ conforming. SDK will use status code to retrieve an FSPIOP error
937
+ with the same code.
938
+
939
+ Otherwise, a suitable generic FSPIOP will be used with the
940
+ errorResponse in the FSPIOP error message.
941
+ message:
942
+ type: string
943
+ description: Error message text.
944
+ accountCreationStatus:
945
+ type: array
946
+ items:
947
+ type: object
948
+ required:
949
+ - idType
950
+ - idValue
951
+ properties:
952
+ idType:
953
+ $ref: '#/components/schemas/PartyIdType'
954
+ idValue:
955
+ $ref: '#/components/schemas/PartyIdentifier'
956
+ idSubValue:
957
+ $ref: '#/components/schemas/PartySubIdOrType'
958
+ error:
959
+ $ref: '#/components/schemas/errorResponse'
960
+ accountsCreationState:
961
+ type: string
962
+ enum:
963
+ - ERROR_OCCURRED
964
+ - COMPLETED
965
+ ErrorCode:
966
+ title: ErrorCode
967
+ type: string
968
+ pattern: ^[1-9]\d{3}$
969
+ description: >-
970
+ The API data type ErrorCode is a JSON String of four characters,
971
+ consisting of digits only. Negative numbers are not allowed. A leading
972
+ zero is not allowed. Each error code in the API is a four-digit number,
973
+ for example, 1234, where the first number (1 in the example) represents
974
+ the high-level error category, the second number (2 in the example)
975
+ represents the low-level error category, and the last two numbers (34 in
976
+ the example) represent the specific error.
977
+ example: '5100'
978
+ ErrorDescription:
979
+ title: ErrorDescription
980
+ type: string
981
+ minLength: 1
982
+ maxLength: 128
983
+ description: Error description string.
984
+ ExtensionKey:
985
+ title: ExtensionKey
986
+ type: string
987
+ minLength: 1
988
+ maxLength: 32
989
+ description: Extension key.
990
+ ExtensionValue:
991
+ title: ExtensionValue
992
+ type: string
993
+ minLength: 1
994
+ maxLength: 128
995
+ description: Extension value.
996
+ Extension:
997
+ title: Extension
998
+ type: object
999
+ description: Data model for the complex type Extension.
1000
+ properties:
1001
+ key:
1002
+ $ref: '#/components/schemas/ExtensionKey'
1003
+ value:
1004
+ $ref: '#/components/schemas/ExtensionValue'
1005
+ required:
1006
+ - key
1007
+ - value
1008
+ ExtensionList:
1009
+ title: ExtensionList
1010
+ type: object
1011
+ description: >-
1012
+ Data model for the complex type ExtensionList. An optional list of
1013
+ extensions, specific to deployment.
1014
+ properties:
1015
+ extension:
1016
+ type: array
1017
+ items:
1018
+ $ref: '#/components/schemas/Extension'
1019
+ minItems: 1
1020
+ maxItems: 16
1021
+ description: Number of Extension elements.
1022
+ required:
1023
+ - extension
1024
+ ErrorInformation:
1025
+ title: ErrorInformation
1026
+ type: object
1027
+ description: Data model for the complex type ErrorInformation.
1028
+ properties:
1029
+ errorCode:
1030
+ $ref: '#/components/schemas/ErrorCode'
1031
+ errorDescription:
1032
+ $ref: '#/components/schemas/ErrorDescription'
1033
+ extensionList:
1034
+ $ref: '#/components/schemas/ExtensionList'
1035
+ required:
1036
+ - errorCode
1037
+ - errorDescription
1038
+ mojaloopError:
1039
+ type: object
1040
+ properties:
1041
+ errorInformation:
1042
+ $ref: '#/components/schemas/ErrorInformation'
1043
+ transferError:
1044
+ type: object
1045
+ description: >-
1046
+ This object represents a Mojaloop API error received at any time during
1047
+ the transfer process
1048
+ properties:
1049
+ httpStatusCode:
1050
+ type: integer
1051
+ description: >-
1052
+ The HTTP status code returned to the caller. This is the same as the
1053
+ actual HTTP status code returned with the response.
1054
+ mojaloopError:
1055
+ $ref: '#/components/schemas/mojaloopError'
1056
+ accountsResponse:
1057
+ type: object
1058
+ required:
1059
+ - accounts
1060
+ properties:
1061
+ modelId:
1062
+ $ref: '#/components/schemas/CorrelationId'
1063
+ accounts:
1064
+ $ref: '#/components/schemas/accountsRequest'
1065
+ response:
1066
+ $ref: '#/components/schemas/accountCreationStatus'
1067
+ currentState:
1068
+ $ref: '#/components/schemas/accountsCreationState'
1069
+ lastError:
1070
+ $ref: '#/components/schemas/transferError'
1071
+ postAccountsResponse:
1072
+ type: object
1073
+ required:
1074
+ - body
1075
+ properties:
1076
+ body:
1077
+ type: object
1078
+ headers:
1079
+ type: object
1080
+ errorAccountsResponse:
1081
+ allOf:
1082
+ - $ref: '#/components/schemas/errorResponse'
1083
+ - type: object
1084
+ required:
1085
+ - executionState
1086
+ properties:
1087
+ executionState:
1088
+ $ref: '#/components/schemas/accountsResponse'
1089
+ TransactionInitiatorType:
1090
+ title: TransactionInitiatorType
1091
+ type: string
1092
+ enum:
1093
+ - CONSUMER
1094
+ - AGENT
1095
+ - BUSINESS
1096
+ - DEVICE
1097
+ description: |-
1098
+ Below are the allowed values for the enumeration.
1099
+ - CONSUMER - Consumer is the initiator of the transaction.
1100
+ - AGENT - Agent is the initiator of the transaction.
1101
+ - BUSINESS - Business is the initiator of the transaction.
1102
+ - DEVICE - Device is the initiator of the transaction.
1103
+ example: CONSUMER
1104
+ Name:
1105
+ title: Name
1106
+ type: string
1107
+ pattern: ^(?!\s*$)[\w .,'-]{1,128}$
1108
+ description: >-
1109
+ The API data type Name is a JSON String, restricted by a regular
1110
+ expression to avoid characters which are generally not used in a name.
1111
+
1112
+
1113
+ Regular Expression - The regular expression for restricting the Name
1114
+ type is "^(?!\s*$)[\w .,'-]{1,128}$". The restriction does not allow a
1115
+ string consisting of whitespace only, all Unicode characters are
1116
+ allowed, as well as the period (.) (apostrophe (‘), dash (-), comma (,)
1117
+ and space characters ( ).
1118
+
1119
+
1120
+ **Note:** In some programming languages, Unicode support must be
1121
+ specifically enabled. For example, if Java is used, the flag
1122
+ UNICODE_CHARACTER_CLASS must be enabled to allow Unicode characters.
1123
+ FirstName:
1124
+ title: FirstName
1125
+ type: string
1126
+ minLength: 1
1127
+ maxLength: 128
1128
+ pattern: >-
1129
+ ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control}
1130
+ .,''-]{1,128}$
1131
+ description: First name of the Party (Name Type).
1132
+ example: Henrik
1133
+ MiddleName:
1134
+ title: MiddleName
1135
+ type: string
1136
+ minLength: 1
1137
+ maxLength: 128
1138
+ pattern: >-
1139
+ ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control}
1140
+ .,''-]{1,128}$
1141
+ description: Middle name of the Party (Name Type).
1142
+ example: Johannes
1143
+ LastName:
1144
+ title: LastName
1145
+ type: string
1146
+ minLength: 1
1147
+ maxLength: 128
1148
+ pattern: >-
1149
+ ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control}
1150
+ .,''-]{1,128}$
1151
+ description: Last name of the Party (Name Type).
1152
+ example: Karlsson
1153
+ DateOfBirth:
1154
+ title: DateofBirth (type Date)
1155
+ type: string
1156
+ pattern: >-
1157
+ ^(?:[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)$
1158
+ description: Date of Birth of the Party.
1159
+ example: '1966-06-16'
1160
+ MerchantClassificationCode:
1161
+ title: MerchantClassificationCode
1162
+ type: string
1163
+ pattern: ^[\d]{1,4}$
1164
+ description: >-
1165
+ A limited set of pre-defined numbers. This list would be a limited set
1166
+ of numbers identifying a set of popular merchant types like School Fees,
1167
+ Pubs and Restaurants, Groceries, etc.
1168
+ FspId:
1169
+ title: FspId
1170
+ type: string
1171
+ minLength: 1
1172
+ maxLength: 32
1173
+ description: FSP identifier.
1174
+ KYCInformation:
1175
+ title: KYCInformation
1176
+ type: string
1177
+ minLength: 1
1178
+ maxLength: 2048
1179
+ description: >-
1180
+ KYC information for the party in a form mandated by an individual
1181
+ scheme.
1182
+ example: |-
1183
+ {
1184
+ "metadata": {
1185
+ "format": "JSON",
1186
+ "version": "1.0",
1187
+ "description": "Data containing KYC Information"
1188
+ },
1189
+ "data": {
1190
+ "name": "John Doe",
1191
+ "dob": "1980-05-15",
1192
+ "gender": "Male",
1193
+ "address": "123 Main Street, Anytown, USA",
1194
+ "email": "johndoe@example.com",
1195
+ "phone": "+1 555-123-4567",
1196
+ "nationality": "US",
1197
+ "passport_number": "AB1234567",
1198
+ "issue_date": "2010-02-20",
1199
+ "expiry_date": "2025-02-20",
1200
+ "bank_account_number": "1234567890",
1201
+ "bank_name": "Example Bank",
1202
+ "employer": "ABC Company",
1203
+ "occupation": "Software Engineer",
1204
+ "income": "$80,000 per year",
1205
+ "marital_status": "Single",
1206
+ "dependents": 0,
1207
+ "risk_level": "Low"
1208
+ }
1209
+ }
1210
+ extensionListEmptiable:
1211
+ type: array
1212
+ items:
1213
+ $ref: '#/components/schemas/Extension'
1214
+ minItems: 0
1215
+ maxItems: 16
1216
+ transferParty:
1217
+ type: object
1218
+ required:
1219
+ - idType
1220
+ - idValue
1221
+ properties:
1222
+ type:
1223
+ $ref: '#/components/schemas/TransactionInitiatorType'
1224
+ idType:
1225
+ $ref: '#/components/schemas/PartyIdType'
1226
+ idValue:
1227
+ $ref: '#/components/schemas/PartyIdentifier'
1228
+ idSubValue:
1229
+ $ref: '#/components/schemas/PartySubIdOrType'
1230
+ displayName:
1231
+ $ref: '#/components/schemas/Name'
1232
+ firstName:
1233
+ $ref: '#/components/schemas/FirstName'
1234
+ middleName:
1235
+ $ref: '#/components/schemas/MiddleName'
1236
+ lastName:
1237
+ $ref: '#/components/schemas/LastName'
1238
+ dateOfBirth:
1239
+ $ref: '#/components/schemas/DateOfBirth'
1240
+ merchantClassificationCode:
1241
+ $ref: '#/components/schemas/MerchantClassificationCode'
1242
+ fspId:
1243
+ $ref: '#/components/schemas/FspId'
1244
+ supportedCurrencies:
1245
+ type: array
1246
+ description: Currencies in which the party can receive funds.
1247
+ items:
1248
+ $ref: '#/components/schemas/Currency'
1249
+ minItems: 0
1250
+ maxItems: 16
1251
+ kycInformation:
1252
+ $ref: '#/components/schemas/KYCInformation'
1253
+ extensionList:
1254
+ $ref: '#/components/schemas/extensionListEmptiable'
1255
+ AmountType:
1256
+ title: AmountType
1257
+ type: string
1258
+ enum:
1259
+ - SEND
1260
+ - RECEIVE
1261
+ description: >-
1262
+ Below are the allowed values for the enumeration AmountType.
1263
+
1264
+ - SEND - Amount the Payer would like to send, that is, the amount that
1265
+ should be withdrawn from the Payer account including any fees.
1266
+
1267
+ - RECEIVE - Amount the Payer would like the Payee to receive, that is,
1268
+ the amount that should be sent to the receiver exclusive of any fees.
1269
+ example: RECEIVE
1270
+ Amount:
1271
+ title: Amount
1272
+ type: string
1273
+ pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$
1274
+ description: >-
1275
+ The API data type Amount is a JSON String in a canonical format that is
1276
+ restricted by a regular expression for interoperability reasons. This
1277
+ pattern does not allow any trailing zeroes at all, but allows an amount
1278
+ without a minor currency unit. It also only allows four digits in the
1279
+ minor currency unit; a negative value is not allowed. Using more than 18
1280
+ digits in the major currency unit is not allowed.
1281
+ example: '123.45'
1282
+ transferTransactionType:
1283
+ title: transferTransactionType
1284
+ type: string
1285
+ enum:
1286
+ - TRANSFER
1287
+ description: Type of transaction.
1288
+ TransactionSubScenario:
1289
+ title: TransactionSubScenario
1290
+ type: string
1291
+ pattern: ^[A-Z_]{1,32}$
1292
+ description: >-
1293
+ Possible sub-scenario, defined locally within the scheme (UndefinedEnum
1294
+ Type).
1295
+ example: LOCALLY_DEFINED_SUBSCENARIO
1296
+ Note:
1297
+ title: Note
1298
+ type: string
1299
+ minLength: 1
1300
+ maxLength: 128
1301
+ description: Memo assigned to transaction.
1302
+ example: Note sent to Payee.
1303
+ individualQuote:
1304
+ title: IndividualQuote
1305
+ type: object
1306
+ description: Data model for the complex type 'individualQuote'.
1307
+ properties:
1308
+ quoteId:
1309
+ $ref: '#/components/schemas/CorrelationId'
1310
+ to:
1311
+ $ref: '#/components/schemas/transferParty'
1312
+ amountType:
1313
+ $ref: '#/components/schemas/AmountType'
1314
+ currency:
1315
+ $ref: '#/components/schemas/Currency'
1316
+ amount:
1317
+ $ref: '#/components/schemas/Amount'
1318
+ transactionType:
1319
+ $ref: '#/components/schemas/transferTransactionType'
1320
+ subScenario:
1321
+ $ref: '#/components/schemas/TransactionSubScenario'
1322
+ note:
1323
+ $ref: '#/components/schemas/Note'
1324
+ extensions:
1325
+ $ref: '#/components/schemas/ExtensionList'
1326
+ required:
1327
+ - quoteId
1328
+ - to
1329
+ - amountType
1330
+ - currency
1331
+ - transactionType
1332
+ - amount
1333
+ bulkQuoteRequest:
1334
+ type: object
1335
+ required:
1336
+ - homeTransactionId
1337
+ - from
1338
+ - individualQuotes
1339
+ properties:
1340
+ homeTransactionId:
1341
+ type: string
1342
+ description: >-
1343
+ Transaction ID from the DFSP backend, used to reconcile transactions
1344
+ between the Switch and DFSP backend systems.
1345
+ bulkQuoteId:
1346
+ $ref: '#/components/schemas/CorrelationId'
1347
+ from:
1348
+ $ref: '#/components/schemas/transferParty'
1349
+ individualQuotes:
1350
+ description: List of individual quotes in a bulk quote.
1351
+ type: array
1352
+ minItems: 1
1353
+ maxItems: 1000
1354
+ items:
1355
+ $ref: '#/components/schemas/individualQuote'
1356
+ extensions:
1357
+ $ref: '#/components/schemas/ExtensionList'
1358
+ DateTime:
1359
+ title: DateTime
1360
+ type: string
1361
+ pattern: >-
1362
+ ^(?:[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)$
1363
+ description: >-
1364
+ The API data type DateTime is a JSON String in a lexical format that is
1365
+ restricted by a regular expression for interoperability reasons. The
1366
+ format is according to [ISO
1367
+ 8601](https://www.iso.org/iso-8601-date-and-time-format.html), expressed
1368
+ in a combined date, time and time zone format. A more readable version
1369
+ of the format is yyyy-MM-ddTHH:mm:ss.SSS[-HH:MM]. Examples are
1370
+ "2016-05-24T08:38:08.699-04:00", "2016-05-24T08:38:08.699Z" (where Z
1371
+ indicates Zulu time zone, same as UTC).
1372
+ example: '2016-05-24T08:38:08.699-04:00'
1373
+ bulkTransferStatus:
1374
+ type: string
1375
+ enum:
1376
+ - ERROR_OCCURRED
1377
+ - COMPLETED
1378
+ Money:
1379
+ title: Money
1380
+ type: object
1381
+ description: Data model for the complex type Money.
1382
+ properties:
1383
+ currency:
1384
+ $ref: '#/components/schemas/Currency'
1385
+ amount:
1386
+ $ref: '#/components/schemas/Amount'
1387
+ required:
1388
+ - currency
1389
+ - amount
1390
+ Latitude:
1391
+ title: Latitude
1392
+ type: string
1393
+ pattern: >-
1394
+ ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$
1395
+ description: >-
1396
+ The API data type Latitude is a JSON String in a lexical format that is
1397
+ restricted by a regular expression for interoperability reasons.
1398
+ example: '+45.4215'
1399
+ Longitude:
1400
+ title: Longitude
1401
+ type: string
1402
+ pattern: >-
1403
+ ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$
1404
+ description: >-
1405
+ The API data type Longitude is a JSON String in a lexical format that is
1406
+ restricted by a regular expression for interoperability reasons.
1407
+ example: '+75.6972'
1408
+ GeoCode:
1409
+ title: GeoCode
1410
+ type: object
1411
+ description: >-
1412
+ Data model for the complex type GeoCode. Indicates the geographic
1413
+ location from where the transaction was initiated.
1414
+ properties:
1415
+ latitude:
1416
+ $ref: '#/components/schemas/Latitude'
1417
+ longitude:
1418
+ $ref: '#/components/schemas/Longitude'
1419
+ required:
1420
+ - latitude
1421
+ - longitude
1422
+ IlpPacket:
1423
+ title: IlpPacket
1424
+ type: string
1425
+ pattern: ^[A-Za-z0-9-_]+[=]{0,2}$
1426
+ minLength: 1
1427
+ maxLength: 32768
1428
+ description: Information for recipient (transport layer information).
1429
+ example: >-
1430
+ AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA
1431
+ IlpCondition:
1432
+ title: IlpCondition
1433
+ type: string
1434
+ pattern: ^[A-Za-z0-9-_]{43}$
1435
+ maxLength: 48
1436
+ description: Condition that must be attached to the transfer by the Payer.
1437
+ quoteError:
1438
+ type: object
1439
+ description: >-
1440
+ This object represents a Mojaloop API error received at any time during
1441
+ the quote process
1442
+ properties:
1443
+ httpStatusCode:
1444
+ type: integer
1445
+ description: >-
1446
+ The HTTP status code returned to the caller. This is the same as the
1447
+ actual HTTP status code returned with the response.
1448
+ mojaloopError:
1449
+ $ref: '#/components/schemas/mojaloopError'
1450
+ individualQuoteResult:
1451
+ type: object
1452
+ properties:
1453
+ quoteId:
1454
+ $ref: '#/components/schemas/CorrelationId'
1455
+ transferAmount:
1456
+ $ref: '#/components/schemas/Money'
1457
+ payeeReceiveAmount:
1458
+ $ref: '#/components/schemas/Money'
1459
+ payeeFspFee:
1460
+ $ref: '#/components/schemas/Money'
1461
+ payeeFspCommission:
1462
+ $ref: '#/components/schemas/Money'
1463
+ geoCode:
1464
+ $ref: '#/components/schemas/GeoCode'
1465
+ ilpPacket:
1466
+ $ref: '#/components/schemas/IlpPacket'
1467
+ condition:
1468
+ $ref: '#/components/schemas/IlpCondition'
1469
+ extensionList:
1470
+ $ref: '#/components/schemas/ExtensionList'
1471
+ lastError:
1472
+ $ref: '#/components/schemas/quoteError'
1473
+ required:
1474
+ - quoteId
1475
+ bulkQuoteResponse:
1476
+ type: object
1477
+ required:
1478
+ - bulkQuoteId
1479
+ - individualQuoteResults
1480
+ - currentState
1481
+ - expiration
1482
+ properties:
1483
+ bulkQuoteId:
1484
+ $ref: '#/components/schemas/CorrelationId'
1485
+ homeTransactionId:
1486
+ type: string
1487
+ description: >-
1488
+ Transaction ID from the DFSP backend, used to reconcile transactions
1489
+ between the Switch and DFSP backend systems.
1490
+ expiration:
1491
+ $ref: '#/components/schemas/DateTime'
1492
+ extensionList:
1493
+ $ref: '#/components/schemas/ExtensionList'
1494
+ currentState:
1495
+ $ref: '#/components/schemas/bulkTransferStatus'
1496
+ individualQuoteResults:
1497
+ type: array
1498
+ maxItems: 1000
1499
+ items:
1500
+ $ref: '#/components/schemas/individualQuoteResult'
1501
+ description: List of individualQuoteResults in a bulk transfer response.
1502
+ bulkQuoteErrorResponse:
1503
+ allOf:
1504
+ - $ref: '#/components/schemas/errorResponse'
1505
+ - type: object
1506
+ required:
1507
+ - bulkQuoteState
1508
+ properties:
1509
+ bulkQuoteState:
1510
+ $ref: '#/components/schemas/bulkQuoteResponse'
1511
+ bulkQuoteStatus:
1512
+ type: string
1513
+ enum:
1514
+ - ERROR_OCCURRED
1515
+ - COMPLETED
1516
+ bulkQuoteStatusResponse:
1517
+ type: object
1518
+ required:
1519
+ - bulkQuoteId
1520
+ - currentState
1521
+ - individualQuotes
1522
+ properties:
1523
+ bulkQuoteId:
1524
+ $ref: '#/components/schemas/CorrelationId'
1525
+ currentState:
1526
+ $ref: '#/components/schemas/bulkQuoteStatus'
1527
+ individualQuotes:
1528
+ type: array
1529
+ minItems: 1
1530
+ maxItems: 1000
1531
+ items:
1532
+ $ref: '#/components/schemas/individualQuote'
1533
+ autoAcceptPartyOption:
1534
+ type: object
1535
+ required:
1536
+ - enabled
1537
+ properties:
1538
+ enabled:
1539
+ type: boolean
1540
+ enum:
1541
+ - false
1542
+ - true
1543
+ bulkPerTransferFeeLimit:
1544
+ type: object
1545
+ required:
1546
+ - currency
1547
+ - amount
1548
+ properties:
1549
+ currency:
1550
+ $ref: '#/components/schemas/Currency'
1551
+ amount:
1552
+ $ref: '#/components/schemas/Amount'
1553
+ autoAcceptQuote:
1554
+ type: object
1555
+ required:
1556
+ - enabled
1557
+ properties:
1558
+ enabled:
1559
+ type: boolean
1560
+ enum:
1561
+ - true
1562
+ - false
1563
+ perTransferFeeLimits:
1564
+ type: array
1565
+ minItems: 0
1566
+ items:
1567
+ $ref: '#/components/schemas/bulkPerTransferFeeLimit'
1568
+ bulkTransactionOptions:
1569
+ type: object
1570
+ required:
1571
+ - autoAcceptParty
1572
+ - autoAcceptQuote
1573
+ - bulkExpiration
1574
+ properties:
1575
+ onlyValidateParty:
1576
+ description: >-
1577
+ Set to true if only party validation is required. This means the
1578
+ quotes and transfers will not run. This is useful for only party
1579
+ resolution.
1580
+ type: boolean
1581
+ autoAcceptParty:
1582
+ $ref: '#/components/schemas/autoAcceptPartyOption'
1583
+ autoAcceptQuote:
1584
+ description: >-
1585
+ Set to true if the quote response is accepted without confirmation
1586
+ from the payer. The fees applied by the payee will be acceptable to
1587
+ the payer abiding by the limits set by optional
1588
+ 'perTransferFeeLimits' array.
1589
+ type: object
1590
+ oneOf:
1591
+ - $ref: '#/components/schemas/autoAcceptQuote'
1592
+ skipPartyLookup:
1593
+ description: >-
1594
+ Set to true if supplying an FSPID for the payee party and no party
1595
+ resolution is needed. This may be useful if a previous party
1596
+ resolution has been performed.
1597
+ type: boolean
1598
+ synchronous:
1599
+ description: >-
1600
+ Set to true if the bulkTransfer requests need be handled
1601
+ synchronous. Otherwise the requests will be handled asynchronously,
1602
+ meaning there will be callbacks whenever the processing is done
1603
+ type: boolean
1604
+ bulkExpiration:
1605
+ $ref: '#/components/schemas/DateTime'
1606
+ PartyIdInfo:
1607
+ title: PartyIdInfo
1608
+ type: object
1609
+ description: >-
1610
+ Data model for the complex type PartyIdInfo. An ExtensionList element
1611
+ has been added to this reqeust in version v1.1
1612
+ properties:
1613
+ partyIdType:
1614
+ $ref: '#/components/schemas/PartyIdType'
1615
+ partyIdentifier:
1616
+ $ref: '#/components/schemas/PartyIdentifier'
1617
+ partySubIdOrType:
1618
+ $ref: '#/components/schemas/PartySubIdOrType'
1619
+ fspId:
1620
+ $ref: '#/components/schemas/FspId'
1621
+ extensionList:
1622
+ $ref: '#/components/schemas/ExtensionList'
1623
+ required:
1624
+ - partyIdType
1625
+ - partyIdentifier
1626
+ PartyName:
1627
+ title: PartyName
1628
+ type: string
1629
+ minLength: 1
1630
+ maxLength: 128
1631
+ description: Name of the Party. Could be a real name or a nickname.
1632
+ PartyComplexName:
1633
+ title: PartyComplexName
1634
+ type: object
1635
+ description: Data model for the complex type PartyComplexName.
1636
+ properties:
1637
+ firstName:
1638
+ $ref: '#/components/schemas/FirstName'
1639
+ middleName:
1640
+ $ref: '#/components/schemas/MiddleName'
1641
+ lastName:
1642
+ $ref: '#/components/schemas/LastName'
1643
+ PartyPersonalInfo:
1644
+ title: PartyPersonalInfo
1645
+ type: object
1646
+ description: Data model for the complex type PartyPersonalInfo.
1647
+ properties:
1648
+ complexName:
1649
+ $ref: '#/components/schemas/PartyComplexName'
1650
+ dateOfBirth:
1651
+ $ref: '#/components/schemas/DateOfBirth'
1652
+ kycInformation:
1653
+ $ref: '#/components/schemas/KYCInformation'
1654
+ Party:
1655
+ title: Party
1656
+ type: object
1657
+ description: Data model for the complex type Party.
1658
+ properties:
1659
+ partyIdInfo:
1660
+ $ref: '#/components/schemas/PartyIdInfo'
1661
+ merchantClassificationCode:
1662
+ $ref: '#/components/schemas/MerchantClassificationCode'
1663
+ name:
1664
+ $ref: '#/components/schemas/PartyName'
1665
+ personalInfo:
1666
+ $ref: '#/components/schemas/PartyPersonalInfo'
1667
+ supportedCurrencies:
1668
+ type: array
1669
+ description: Currencies in which the party can receive funds.
1670
+ items:
1671
+ $ref: '#/components/schemas/Currency'
1672
+ minItems: 0
1673
+ maxItems: 16
1674
+ required:
1675
+ - partyIdInfo
1676
+ bulkTransactionIndividualTransfer:
1677
+ title: BulkTransactionIndividualTransfer
1678
+ type: object
1679
+ description: Data model for the complex type 'bulkTransactionIndividualTransfer'.
1680
+ properties:
1681
+ homeTransactionId:
1682
+ type: string
1683
+ description: >-
1684
+ Transaction ID from the DFSP backend, used to reconcile transactions
1685
+ between the Switch and DFSP backend systems.
1686
+ to:
1687
+ $ref: '#/components/schemas/Party'
1688
+ reference:
1689
+ description: Payer Loan reference
1690
+ type: string
1691
+ amountType:
1692
+ $ref: '#/components/schemas/AmountType'
1693
+ currency:
1694
+ $ref: '#/components/schemas/Currency'
1695
+ amount:
1696
+ $ref: '#/components/schemas/Amount'
1697
+ note:
1698
+ $ref: '#/components/schemas/Note'
1699
+ quoteExtensions:
1700
+ $ref: '#/components/schemas/ExtensionList'
1701
+ transferExtensions:
1702
+ $ref: '#/components/schemas/ExtensionList'
1703
+ lastError:
1704
+ $ref: '#/components/schemas/transferError'
1705
+ required:
1706
+ - homeTransactionId
1707
+ - to
1708
+ - amountType
1709
+ - currency
1710
+ - amount
1711
+ bulkTransactionRequest:
1712
+ type: object
1713
+ required:
1714
+ - bulkTransactionId
1715
+ - bulkHomeTransactionID
1716
+ - options
1717
+ - from
1718
+ - individualTransfers
1719
+ properties:
1720
+ bulkHomeTransactionID:
1721
+ type: string
1722
+ description: >-
1723
+ Transaction ID from the DFSP backend, used to reconcile transactions
1724
+ between the Switch and DFSP backend systems.
1725
+ bulkTransactionId:
1726
+ $ref: '#/components/schemas/CorrelationId'
1727
+ options:
1728
+ $ref: '#/components/schemas/bulkTransactionOptions'
1729
+ from:
1730
+ $ref: '#/components/schemas/Party'
1731
+ individualTransfers:
1732
+ description: List of individual transfers in a bulk transfer.
1733
+ type: array
1734
+ minItems: 1
1735
+ items:
1736
+ $ref: '#/components/schemas/bulkTransactionIndividualTransfer'
1737
+ extensions:
1738
+ $ref: '#/components/schemas/ExtensionList'
1739
+ TransferState:
1740
+ title: TransferState
1741
+ type: string
1742
+ enum:
1743
+ - RECEIVED
1744
+ - RESERVED
1745
+ - COMMITTED
1746
+ - ABORTED
1747
+ description: >-
1748
+ Below are the allowed values for the enumeration.
1749
+
1750
+ - RECEIVED - Next ledger has received the transfer.
1751
+
1752
+ - RESERVED - Next ledger has reserved the transfer.
1753
+
1754
+ - COMMITTED - Next ledger has successfully performed the transfer.
1755
+
1756
+ - ABORTED - Next ledger has aborted the transfer due to a rejection or
1757
+ failure to perform the transfer.
1758
+ example: RESERVED
1759
+ IlpFulfilment:
1760
+ title: IlpFulfilment
1761
+ type: string
1762
+ pattern: ^[A-Za-z0-9-_]{43}$
1763
+ maxLength: 48
1764
+ description: Fulfilment that must be attached to the transfer by the Payee.
1765
+ example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8
1766
+ individualTransferResult:
1767
+ type: object
1768
+ required:
1769
+ - transferId
1770
+ properties:
1771
+ transferId:
1772
+ $ref: '#/components/schemas/CorrelationId'
1773
+ fulfilment:
1774
+ $ref: '#/components/schemas/IlpFulfilment'
1775
+ extensionList:
1776
+ $ref: '#/components/schemas/ExtensionList'
1777
+ transferState:
1778
+ $ref: '#/components/schemas/TransferState'
1779
+ lastError:
1780
+ $ref: '#/components/schemas/transferError'
1781
+ bulkTransferResponse:
1782
+ type: object
1783
+ required:
1784
+ - bulkTransferId
1785
+ - individualTransferResults
1786
+ - currentState
1787
+ properties:
1788
+ bulkTransferId:
1789
+ $ref: '#/components/schemas/CorrelationId'
1790
+ bulkQuoteId:
1791
+ $ref: '#/components/schemas/CorrelationId'
1792
+ homeTransactionId:
1793
+ type: string
1794
+ description: >-
1795
+ Transaction ID from the DFSP backend, used to reconcile transactions
1796
+ between the Switch and DFSP backend systems.
1797
+ bulkTransferState:
1798
+ $ref: '#/components/schemas/TransferState'
1799
+ completedTimestamp:
1800
+ $ref: '#/components/schemas/DateTime'
1801
+ extensionList:
1802
+ $ref: '#/components/schemas/ExtensionList'
1803
+ currentState:
1804
+ $ref: '#/components/schemas/bulkTransferStatus'
1805
+ individualTransferResults:
1806
+ type: array
1807
+ maxItems: 1000
1808
+ items:
1809
+ $ref: '#/components/schemas/individualTransferResult'
1810
+ description: List of individual transfer result in a bulk transfer response.
1811
+ bulkTransferErrorResponse:
1812
+ allOf:
1813
+ - $ref: '#/components/schemas/errorResponse'
1814
+ - type: object
1815
+ required:
1816
+ - bulkTransferState
1817
+ properties:
1818
+ bulkTransferState:
1819
+ $ref: '#/components/schemas/bulkTransferResponse'
1820
+ bulkTransactionIndividualTransferAccept:
1821
+ type: object
1822
+ description: Data model for the 'individualTransfer' while accepting party or quote.
1823
+ properties:
1824
+ transferId:
1825
+ $ref: '#/components/schemas/CorrelationId'
1826
+ required:
1827
+ - transferId
1828
+ transferContinuationAcceptParty:
1829
+ type: object
1830
+ required:
1831
+ - acceptParty
1832
+ properties:
1833
+ acceptParty:
1834
+ type: boolean
1835
+ enum:
1836
+ - true
1837
+ - false
1838
+ bulkTransactionContinuationAcceptParty:
1839
+ description: >-
1840
+ The object sent back as confirmation of payee parties when
1841
+ autoAcceptParty is false.
1842
+ type: object
1843
+ required:
1844
+ - individualTransfers
1845
+ properties:
1846
+ individualTransfers:
1847
+ description: >-
1848
+ List of individual transfers in a bulk transfer with accept party
1849
+ information.
1850
+ type: array
1851
+ minItems: 1
1852
+ items:
1853
+ allOf:
1854
+ - $ref: '#/components/schemas/bulkTransactionIndividualTransferAccept'
1855
+ - $ref: '#/components/schemas/transferContinuationAcceptParty'
1856
+ transferContinuationAcceptQuote:
1857
+ type: object
1858
+ required:
1859
+ - acceptQuote
1860
+ properties:
1861
+ acceptQuote:
1862
+ type: boolean
1863
+ enum:
1864
+ - true
1865
+ - false
1866
+ bulkTransactionContinuationAcceptQuote:
1867
+ description: >-
1868
+ The object sent back as confirmation of quotes when autoAcceptQuotes is
1869
+ false.
1870
+ type: object
1871
+ required:
1872
+ - individualTransfers
1873
+ properties:
1874
+ individualTransfers:
1875
+ description: List of individual transfers in a bulk transfer.
1876
+ type: array
1877
+ minItems: 1
1878
+ items:
1879
+ allOf:
1880
+ - $ref: '#/components/schemas/bulkTransactionIndividualTransferAccept'
1881
+ - $ref: '#/components/schemas/transferContinuationAcceptQuote'
1882
+ partyError:
1883
+ type: object
1884
+ description: >-
1885
+ This object represents a Mojaloop API error received at any time during
1886
+ the party discovery process
1887
+ properties:
1888
+ httpStatusCode:
1889
+ type: integer
1890
+ description: >-
1891
+ The HTTP status code returned to the caller. This is the same as the
1892
+ actual HTTP status code returned with the response.
1893
+ mojaloopError:
1894
+ $ref: '#/components/schemas/mojaloopError'
1895
+ bulkTransactionAcceptPartyErrorResponse:
1896
+ allOf:
1897
+ - $ref: '#/components/schemas/errorResponse'
1898
+ - type: object
1899
+ required:
1900
+ - bulkTransferState
1901
+ properties:
1902
+ bulkTransferState:
1903
+ allOf:
1904
+ - $ref: '#/components/schemas/bulkTransactionContinuationAcceptParty'
1905
+ - $ref: '#/components/schemas/partyError'
1906
+ bulkTransactionAcceptQuoteErrorResponse:
1907
+ allOf:
1908
+ - $ref: '#/components/schemas/errorResponse'
1909
+ - type: object
1910
+ required:
1911
+ - bulkTansferState
1912
+ properties:
1913
+ bulkTransferState:
1914
+ allOf:
1915
+ - $ref: '#/components/schemas/bulkTransactionContinuationAcceptQuote'
1916
+ - $ref: '#/components/schemas/quoteError'
1917
+ individualTransfer:
1918
+ title: IndividualTransfer
1919
+ type: object
1920
+ description: Data model for the complex type 'individualTransfer'.
1921
+ properties:
1922
+ transferId:
1923
+ $ref: '#/components/schemas/CorrelationId'
1924
+ to:
1925
+ $ref: '#/components/schemas/transferParty'
1926
+ amountType:
1927
+ $ref: '#/components/schemas/AmountType'
1928
+ currency:
1929
+ $ref: '#/components/schemas/Currency'
1930
+ amount:
1931
+ $ref: '#/components/schemas/Amount'
1932
+ transactionType:
1933
+ $ref: '#/components/schemas/transferTransactionType'
1934
+ subScenario:
1935
+ $ref: '#/components/schemas/TransactionSubScenario'
1936
+ ilpPacket:
1937
+ $ref: '#/components/schemas/IlpPacket'
1938
+ condition:
1939
+ $ref: '#/components/schemas/IlpCondition'
1940
+ note:
1941
+ $ref: '#/components/schemas/Note'
1942
+ extensions:
1943
+ $ref: '#/components/schemas/ExtensionList'
1944
+ required:
1945
+ - transferId
1946
+ - to
1947
+ - amountType
1948
+ - currency
1949
+ - amount
1950
+ - ilpPacket
1951
+ - condition
1952
+ bulkTransferRequest:
1953
+ type: object
1954
+ required:
1955
+ - bulkTransferId
1956
+ - homeTransactionId
1957
+ - bulkQuoteId
1958
+ - from
1959
+ - individualTransfers
1960
+ properties:
1961
+ homeTransactionId:
1962
+ type: string
1963
+ description: >-
1964
+ Transaction ID from the DFSP backend, used to reconcile transactions
1965
+ between the Switch and DFSP backend systems.
1966
+ bulkTransferId:
1967
+ $ref: '#/components/schemas/CorrelationId'
1968
+ bulkQuoteId:
1969
+ $ref: '#/components/schemas/CorrelationId'
1970
+ from:
1971
+ $ref: '#/components/schemas/transferParty'
1972
+ individualTransfers:
1973
+ description: List of individual transfers in a bulk transfer.
1974
+ type: array
1975
+ minItems: 1
1976
+ maxItems: 1000
1977
+ items:
1978
+ $ref: '#/components/schemas/individualTransfer'
1979
+ extensions:
1980
+ $ref: '#/components/schemas/ExtensionList'
1981
+ individualTransferFulfilment:
1982
+ type: object
1983
+ description: >-
1984
+ A Mojaloop API transfer fulfilment for individual transfers in a bulk
1985
+ transfer
1986
+ properties:
1987
+ fulfilment:
1988
+ $ref: '#/components/schemas/IlpFulfilment'
1989
+ extensionList:
1990
+ $ref: '#/components/schemas/ExtensionList'
1991
+ bulkTransferStatusResponse:
1992
+ type: object
1993
+ required:
1994
+ - bulkTransferId
1995
+ - currentState
1996
+ - fulfils
1997
+ properties:
1998
+ bulkTransferId:
1999
+ $ref: '#/components/schemas/CorrelationId'
2000
+ currentState:
2001
+ $ref: '#/components/schemas/bulkTransferStatus'
2002
+ fulfils:
2003
+ type: array
2004
+ minItems: 1
2005
+ maxItems: 1000
2006
+ items:
2007
+ $ref: '#/components/schemas/individualTransferFulfilment'
2008
+ async2SyncCurrentState:
2009
+ type: string
2010
+ enum:
2011
+ - WAITING_FOR_ACTION
2012
+ - COMPLETED
2013
+ - ERROR_OCCURRED
2014
+ partiesByIdResponse:
2015
+ title: partiesByIdResponse
2016
+ type: object
2017
+ description: GET /parties/{Type}/{ID} response object
2018
+ properties:
2019
+ party:
2020
+ properties:
2021
+ body:
2022
+ $ref: '#/components/schemas/Party'
2023
+ headers:
2024
+ type: object
2025
+ required:
2026
+ - body
2027
+ - headers
2028
+ currentState:
2029
+ $ref: '#/components/schemas/async2SyncCurrentState'
2030
+ required:
2031
+ - party
2032
+ - currentState
2033
+ TransactionScenario:
2034
+ title: TransactionScenario
2035
+ type: string
2036
+ enum:
2037
+ - DEPOSIT
2038
+ - WITHDRAWAL
2039
+ - TRANSFER
2040
+ - PAYMENT
2041
+ - REFUND
2042
+ description: >-
2043
+ Below are the allowed values for the enumeration.
2044
+
2045
+ - DEPOSIT - Used for performing a Cash-In (deposit) transaction. In a
2046
+ normal scenario, electronic funds are transferred from a Business
2047
+ account to a Consumer account, and physical cash is given from the
2048
+ Consumer to the Business User.
2049
+
2050
+ - WITHDRAWAL - Used for performing a Cash-Out (withdrawal) transaction.
2051
+ In a normal scenario, electronic funds are transferred from a Consumer’s
2052
+ account to a Business account, and physical cash is given from the
2053
+ Business User to the Consumer.
2054
+
2055
+ - TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to
2056
+ Consumer) transaction.
2057
+
2058
+ - PAYMENT - Usually used for performing a transaction from a Consumer to
2059
+ a Merchant or Organization, but could also be for a B2B (Business to
2060
+ Business) payment. The transaction could be online for a purchase in an
2061
+ Internet store, in a physical store where both the Consumer and Business
2062
+ User are present, a bill payment, a donation, and so on.
2063
+
2064
+ - REFUND - Used for performing a refund of transaction.
2065
+ example: DEPOSIT
2066
+ TransactionInitiator:
2067
+ title: TransactionInitiator
2068
+ type: string
2069
+ enum:
2070
+ - PAYER
2071
+ - PAYEE
2072
+ description: >-
2073
+ Below are the allowed values for the enumeration.
2074
+
2075
+ - PAYER - Sender of funds is initiating the transaction. The account to
2076
+ send from is either owned by the Payer or is connected to the Payer in
2077
+ some way.
2078
+
2079
+ - PAYEE - Recipient of the funds is initiating the transaction by
2080
+ sending a transaction request. The Payer must approve the transaction,
2081
+ either automatically by a pre-generated OTP or by pre-approval of the
2082
+ Payee, or by manually approving in his or her own Device.
2083
+ example: PAYEE
2084
+ RefundReason:
2085
+ title: RefundReason
2086
+ type: string
2087
+ minLength: 1
2088
+ maxLength: 128
2089
+ description: Reason for the refund.
2090
+ example: Free text indicating reason for the refund.
2091
+ Refund:
2092
+ title: Refund
2093
+ type: object
2094
+ description: Data model for the complex type Refund.
2095
+ properties:
2096
+ originalTransactionId:
2097
+ $ref: '#/components/schemas/CorrelationId'
2098
+ refundReason:
2099
+ $ref: '#/components/schemas/RefundReason'
2100
+ required:
2101
+ - originalTransactionId
2102
+ BalanceOfPayments:
2103
+ title: BalanceOfPayments
2104
+ type: string
2105
+ pattern: ^[1-9]\d{2}$
2106
+ description: >-
2107
+ (BopCode) The API data type
2108
+ [BopCode](https://www.imf.org/external/np/sta/bopcode/) is a JSON String
2109
+ of 3 characters, consisting of digits only. Negative numbers are not
2110
+ allowed. A leading zero is not allowed.
2111
+ example: '123'
2112
+ TransactionType:
2113
+ title: TransactionType
2114
+ type: object
2115
+ description: Data model for the complex type TransactionType.
2116
+ properties:
2117
+ scenario:
2118
+ $ref: '#/components/schemas/TransactionScenario'
2119
+ subScenario:
2120
+ $ref: '#/components/schemas/TransactionSubScenario'
2121
+ initiator:
2122
+ $ref: '#/components/schemas/TransactionInitiator'
2123
+ initiatorType:
2124
+ $ref: '#/components/schemas/TransactionInitiatorType'
2125
+ refundInfo:
2126
+ $ref: '#/components/schemas/Refund'
2127
+ balanceOfPayments:
2128
+ $ref: '#/components/schemas/BalanceOfPayments'
2129
+ required:
2130
+ - scenario
2131
+ - initiator
2132
+ - initiatorType
2133
+ CurrencyConverter:
2134
+ title: CurrencyConverter
2135
+ type: string
2136
+ enum:
2137
+ - PAYER
2138
+ - PAYEE
2139
+ description: >-
2140
+ Below are the allowed values for the enumeration CurrencyConverter. -
2141
+ PAYER - Currency conversion should be performed by the payer. - PAYEE -
2142
+ Currency conversion should be performed by the payee.
2143
+ FxRate:
2144
+ title: FxRate
2145
+ type: object
2146
+ description: >-
2147
+ The FxRate object contains information about a currency conversion in
2148
+ the transfer. It can be used by parties to the transfer to exchange
2149
+ information with each other about the exchange rate for the transfer, to
2150
+ ensure that the best rate can be agreed on.
2151
+ properties:
2152
+ sourceAmount:
2153
+ allOf:
2154
+ - $ref: '#/components/schemas/Money'
2155
+ - description: The amount of the transfer in the source currency.
2156
+ targetAmount:
2157
+ allOf:
2158
+ - $ref: '#/components/schemas/Money'
2159
+ - description: The amount of the transfer in the target currency.
2160
+ required:
2161
+ - sourceAmount
2162
+ - targetAmount
2163
+ QuotesPostRequest:
2164
+ title: QuotesPostRequest
2165
+ type: object
2166
+ description: The object sent in the POST /quotes request.
2167
+ properties:
2168
+ quoteId:
2169
+ $ref: '#/components/schemas/CorrelationId'
2170
+ transactionId:
2171
+ $ref: '#/components/schemas/CorrelationId'
2172
+ transactionRequestId:
2173
+ $ref: '#/components/schemas/CorrelationId'
2174
+ payee:
2175
+ $ref: '#/components/schemas/Party'
2176
+ payer:
2177
+ $ref: '#/components/schemas/Party'
2178
+ amountType:
2179
+ $ref: '#/components/schemas/AmountType'
2180
+ amount:
2181
+ $ref: '#/components/schemas/Money'
2182
+ fees:
2183
+ $ref: '#/components/schemas/Money'
2184
+ transactionType:
2185
+ $ref: '#/components/schemas/TransactionType'
2186
+ converter:
2187
+ allOf:
2188
+ - $ref: '#/components/schemas/CurrencyConverter'
2189
+ - description: >-
2190
+ An optional field which will allow the payer DFSP to specify
2191
+ which DFSP it wants to undertake currency conversion. This is
2192
+ useful incase of if the sender wants the recipient to receive a
2193
+ specified amount of the target currency, but the payer DFSP does
2194
+ not want to undertake the currency conversion. In this case, the
2195
+ amount of the transfer would be expressed in the target currency
2196
+ and the amountType would be set to RECEIVE.
2197
+ currencyConversion:
2198
+ allOf:
2199
+ - $ref: '#/components/schemas/FxRate'
2200
+ - description: >-
2201
+ Used by the debtor party if it wants to share information about
2202
+ the currency conversion it proposes to make; or if it is
2203
+ required by scheme rules to share this information. This object
2204
+ contains the amount of the transfer in the source and target
2205
+ currencies, but does not identify the FXP being used.
2206
+ geoCode:
2207
+ $ref: '#/components/schemas/GeoCode'
2208
+ note:
2209
+ $ref: '#/components/schemas/Note'
2210
+ expiration:
2211
+ $ref: '#/components/schemas/DateTime'
2212
+ extensionList:
2213
+ $ref: '#/components/schemas/ExtensionList'
2214
+ required:
2215
+ - quoteId
2216
+ - transactionId
2217
+ - payee
2218
+ - payer
2219
+ - amountType
2220
+ - amount
2221
+ - transactionType
2222
+ simpleQuotesPostRequest:
2223
+ title: simpleQuotesPostRequest
2224
+ type: object
2225
+ properties:
2226
+ fspId:
2227
+ $ref: '#/components/schemas/FspId'
2228
+ quotesPostRequest:
2229
+ $ref: '#/components/schemas/QuotesPostRequest'
2230
+ required:
2231
+ - fspId
2232
+ - quotesPostRequest
2233
+ quotesPostResponse:
2234
+ title: QuotesPostResponse
2235
+ type: object
2236
+ properties:
2237
+ quotes:
2238
+ title: QuotesIDPutResponse
2239
+ type: object
2240
+ description: The object sent in the PUT /quotes/{ID} callback.
2241
+ properties:
2242
+ body:
2243
+ type: object
2244
+ properties:
2245
+ transferAmount:
2246
+ $ref: '#/components/schemas/Money'
2247
+ payeeReceiveAmount:
2248
+ $ref: '#/components/schemas/Money'
2249
+ payeeFspFee:
2250
+ $ref: '#/components/schemas/Money'
2251
+ payeeFspCommission:
2252
+ $ref: '#/components/schemas/Money'
2253
+ expiration:
2254
+ type: string
2255
+ description: >-
2256
+ Date and time until when the quotation is valid and can be
2257
+ honored when used in the subsequent transaction.
2258
+ example: '2016-05-24T08:38:08.699-04:00'
2259
+ geoCode:
2260
+ $ref: '#/components/schemas/GeoCode'
2261
+ ilpPacket:
2262
+ $ref: '#/components/schemas/IlpPacket'
2263
+ condition:
2264
+ $ref: '#/components/schemas/IlpCondition'
2265
+ extensionList:
2266
+ $ref: '#/components/schemas/ExtensionList'
2267
+ required:
2268
+ - transferAmount
2269
+ - expiration
2270
+ - ilpPacket
2271
+ - condition
2272
+ headers:
2273
+ type: object
2274
+ required:
2275
+ - body
2276
+ - headers
2277
+ currentState:
2278
+ $ref: '#/components/schemas/async2SyncCurrentState'
2279
+ required:
2280
+ - quotes
2281
+ - currentState
2282
+ errorQuotesResponse:
2283
+ allOf:
2284
+ - $ref: '#/components/schemas/errorResponse'
2285
+ - type: object
2286
+ AuthenticationType:
2287
+ title: AuthenticationType
2288
+ type: string
2289
+ enum:
2290
+ - OTP
2291
+ - QRCODE
2292
+ - U2F
2293
+ description: |-
2294
+ Below are the allowed values for the enumeration AuthenticationType.
2295
+ - OTP - One-time password generated by the Payer FSP.
2296
+ - QRCODE - QR code used as One Time Password.
2297
+ - U2F - U2F is a new addition isolated to Thirdparty stream.
2298
+ example: OTP
2299
+ requestToPayRequest:
2300
+ type: object
2301
+ required:
2302
+ - homeR2PTransactionId
2303
+ - from
2304
+ - to
2305
+ - amountType
2306
+ - currency
2307
+ - amount
2308
+ - transactionType
2309
+ properties:
2310
+ homeR2PTransactionId:
2311
+ type: string
2312
+ description: >-
2313
+ Transaction ID from the DFSP backend, used to reconcile transactions
2314
+ between the Switch and DFSP backend systems.
2315
+ from:
2316
+ $ref: '#/components/schemas/transferParty'
2317
+ to:
2318
+ $ref: '#/components/schemas/transferParty'
2319
+ amountType:
2320
+ $ref: '#/components/schemas/AmountType'
2321
+ currency:
2322
+ $ref: '#/components/schemas/Currency'
2323
+ amount:
2324
+ $ref: '#/components/schemas/Amount'
2325
+ transactionType:
2326
+ $ref: '#/components/schemas/TransactionScenario'
2327
+ subScenario:
2328
+ $ref: '#/components/schemas/TransactionSubScenario'
2329
+ authenticationType:
2330
+ $ref: '#/components/schemas/AuthenticationType'
2331
+ requestToPayStatus:
2332
+ type: string
2333
+ enum:
2334
+ - ERROR_OCCURRED
2335
+ - WAITING_FOR_PARTY_ACCEPTANCE
2336
+ - COMPLETED
2337
+ getPartiesResponse:
2338
+ title: getPartiesResponse
2339
+ type: object
2340
+ description: The object sent in the GET /parties/{Type}/{ID} callback.
2341
+ properties:
2342
+ body:
2343
+ $ref: '#/components/schemas/Party'
2344
+ headers:
2345
+ type: object
2346
+ required:
2347
+ - body
2348
+ - headers
2349
+ TransactionRequestState:
2350
+ title: TransactionRequestState
2351
+ type: string
2352
+ enum:
2353
+ - RECEIVED
2354
+ - PENDING
2355
+ - ACCEPTED
2356
+ - REJECTED
2357
+ description: |-
2358
+ Below are the allowed values for the enumeration.
2359
+ - RECEIVED - Payer FSP has received the transaction from the Payee FSP.
2360
+ - PENDING - Payer FSP has sent the transaction request to the Payer.
2361
+ - ACCEPTED - Payer has approved the transaction.
2362
+ - REJECTED - Payer has rejected the transaction.
2363
+ example: RECEIVED
2364
+ TransactionRequestResponse:
2365
+ title: TransactionRequestResponse
2366
+ type: object
2367
+ description: The object sent in the PUT /transactionRequests/{ID} callback.
2368
+ properties:
2369
+ body:
2370
+ type: object
2371
+ properties:
2372
+ transactionId:
2373
+ $ref: '#/components/schemas/CorrelationId'
2374
+ transactionRequestState:
2375
+ $ref: '#/components/schemas/TransactionRequestState'
2376
+ extensionList:
2377
+ $ref: '#/components/schemas/ExtensionList'
2378
+ required:
2379
+ - transactionRequestState
2380
+ headers:
2381
+ type: object
2382
+ required:
2383
+ - body
2384
+ - headers
2385
+ requestToPayResponse:
2386
+ type: object
2387
+ required:
2388
+ - transactionRequestId
2389
+ - from
2390
+ - to
2391
+ - amountType
2392
+ - currency
2393
+ - amount
2394
+ - transactionType
2395
+ - currentState
2396
+ properties:
2397
+ transactionRequestId:
2398
+ $ref: '#/components/schemas/CorrelationId'
2399
+ from:
2400
+ $ref: '#/components/schemas/transferParty'
2401
+ to:
2402
+ $ref: '#/components/schemas/transferParty'
2403
+ amountType:
2404
+ $ref: '#/components/schemas/AmountType'
2405
+ currency:
2406
+ $ref: '#/components/schemas/Currency'
2407
+ amount:
2408
+ $ref: '#/components/schemas/Amount'
2409
+ transactionType:
2410
+ $ref: '#/components/schemas/TransactionScenario'
2411
+ subScenario:
2412
+ $ref: '#/components/schemas/TransactionSubScenario'
2413
+ currentState:
2414
+ $ref: '#/components/schemas/requestToPayStatus'
2415
+ getPartiesResponse:
2416
+ $ref: '#/components/schemas/getPartiesResponse'
2417
+ transactionRequestResponse:
2418
+ $ref: '#/components/schemas/TransactionRequestResponse'
2419
+ lastError:
2420
+ $ref: '#/components/schemas/transferError'
2421
+ transferStatus:
2422
+ type: string
2423
+ enum:
2424
+ - ERROR_OCCURRED
2425
+ - WAITING_FOR_PARTY_ACCEPTANCE
2426
+ - WAITING_FOR_QUOTE_ACCEPTANCE
2427
+ - WAITING_FOR_CONVERSION_ACCEPTANCE
2428
+ - COMPLETED
2429
+ QuotesIDPutResponse:
2430
+ title: QuotesIDPutResponse
2431
+ type: object
2432
+ description: The object sent in the PUT /quotes/{ID} callback.
2433
+ properties:
2434
+ transferAmount:
2435
+ $ref: '#/components/schemas/Money'
2436
+ payeeReceiveAmount:
2437
+ $ref: '#/components/schemas/Money'
2438
+ payeeFspFee:
2439
+ $ref: '#/components/schemas/Money'
2440
+ payeeFspCommission:
2441
+ $ref: '#/components/schemas/Money'
2442
+ expiration:
2443
+ $ref: '#/components/schemas/DateTime'
2444
+ geoCode:
2445
+ $ref: '#/components/schemas/GeoCode'
2446
+ ilpPacket:
2447
+ $ref: '#/components/schemas/IlpPacket'
2448
+ condition:
2449
+ $ref: '#/components/schemas/IlpCondition'
2450
+ extensionList:
2451
+ $ref: '#/components/schemas/ExtensionList'
2452
+ required:
2453
+ - transferAmount
2454
+ - expiration
2455
+ - ilpPacket
2456
+ - condition
2457
+ FxMoney:
2458
+ title: FxMoney
2459
+ type: object
2460
+ description: >-
2461
+ Data model for the complex type FxMoney; This is based on the type Money
2462
+ but allows the amount to be optional to support FX quotations.
2463
+ properties:
2464
+ currency:
2465
+ $ref: '#/components/schemas/Currency'
2466
+ amount:
2467
+ $ref: '#/components/schemas/Amount'
2468
+ required:
2469
+ - currency
2470
+ FxCharge:
2471
+ title: FxCharge
2472
+ type: object
2473
+ description: >-
2474
+ An FXP will be able to specify a charge which it proposes to levy on the
2475
+ currency conversion operation using a FxCharge object.
2476
+ properties:
2477
+ chargeType:
2478
+ type: string
2479
+ minLength: 1
2480
+ maxLength: 32
2481
+ description: A description of the charge which is being levied.
2482
+ sourceAmount:
2483
+ allOf:
2484
+ - $ref: '#/components/schemas/Money'
2485
+ - description: >-
2486
+ The amount of the charge which is being levied, expressed in the
2487
+ source currency.
2488
+ targetAmount:
2489
+ allOf:
2490
+ - $ref: '#/components/schemas/Money'
2491
+ - description: >-
2492
+ The amount of the charge which is being levied, expressed in the
2493
+ target currency.
2494
+ required:
2495
+ - chargeType
2496
+ FxConversion:
2497
+ title: FxConversion
2498
+ type: object
2499
+ description: >-
2500
+ A DFSP will be able to request a currency conversion, and an FX provider
2501
+ will be able to describe its involvement in a proposed transfer, using a
2502
+ FxConversion object.
2503
+ properties:
2504
+ conversionId:
2505
+ allOf:
2506
+ - $ref: '#/components/schemas/CorrelationId'
2507
+ - description: An end-to-end identifier for the conversion request.
2508
+ determiningTransferId:
2509
+ allOf:
2510
+ - $ref: '#/components/schemas/CorrelationId'
2511
+ - description: >-
2512
+ The transaction ID of the transfer on whose success this
2513
+ currency conversion depends.
2514
+ initiatingFsp:
2515
+ allOf:
2516
+ - $ref: '#/components/schemas/FspId'
2517
+ - description: >-
2518
+ The id of the participant who is requesting a currency
2519
+ conversion.
2520
+ counterPartyFsp:
2521
+ allOf:
2522
+ - $ref: '#/components/schemas/FspId'
2523
+ - description: The ID of the FXP performing the conversion.
2524
+ amountType:
2525
+ allOf:
2526
+ - $ref: '#/components/schemas/AmountType'
2527
+ - description: >-
2528
+ This is the AmountType for the base transaction - If SEND - then
2529
+ any charges levied by the FXP as part of the transaction will be
2530
+ deducted by the FXP from the amount shown for the target party
2531
+ in the conversion. If RECEIVE - then any charges levied by the
2532
+ FXP as part of the transaction will be added by the FXP to the
2533
+ amount shown for the source party in the conversion.
2534
+ sourceAmount:
2535
+ allOf:
2536
+ - $ref: '#/components/schemas/FxMoney'
2537
+ - description: The amount to be converted, expressed in the source currency.
2538
+ targetAmount:
2539
+ allOf:
2540
+ - $ref: '#/components/schemas/FxMoney'
2541
+ - description: The converted amount, expressed in the target currency.
2542
+ expiration:
2543
+ allOf:
2544
+ - $ref: '#/components/schemas/DateTime'
2545
+ - description: >-
2546
+ The end of the period for which the currency conversion is
2547
+ required to remain valid.
2548
+ charges:
2549
+ type: array
2550
+ description: >-
2551
+ One or more charges which the FXP intends to levy as part of the
2552
+ currency conversion, or which the payee DFSP intends to add to the
2553
+ amount transferred.
2554
+ items:
2555
+ $ref: '#/components/schemas/FxCharge'
2556
+ minItems: 0
2557
+ maxItems: 16
2558
+ extensionList:
2559
+ allOf:
2560
+ - $ref: '#/components/schemas/ExtensionList'
2561
+ - description: The extension list for the currency conversion request.
2562
+ required:
2563
+ - conversionId
2564
+ - initiatingFsp
2565
+ - counterPartyFsp
2566
+ - amountType
2567
+ - sourceAmount
2568
+ - targetAmount
2569
+ - expiration
2570
+ FxQuotesPostOutboundResponse:
2571
+ title: FxQuotesPostOutboundResponse
2572
+ type: object
2573
+ description: >-
2574
+ The object sent as a response for the POST /fxQuotes request. The terms
2575
+ under which the FXP will undertake the currency conversion proposed by
2576
+ the requester.
2577
+ properties:
2578
+ homeTransactionId:
2579
+ description: >-
2580
+ Transaction ID for the FXP backend, used to reconcile transactions
2581
+ between the Switch and FXP backend systems.
2582
+ type: string
2583
+ condition:
2584
+ allOf:
2585
+ - $ref: '#/components/schemas/IlpCondition'
2586
+ - description: The ILP condition for the conversion.
2587
+ conversionTerms:
2588
+ allOf:
2589
+ - $ref: '#/components/schemas/FxConversion'
2590
+ - description: >-
2591
+ The terms under which the FXP will undertake the currency
2592
+ conversion proposed by the requester.
2593
+ required:
2594
+ - conversionTerms
2595
+ TransfersIDPutResponse:
2596
+ title: TransfersIDPutResponse
2597
+ type: object
2598
+ description: The object sent in the PUT /transfers/{ID} callback.
2599
+ properties:
2600
+ fulfilment:
2601
+ $ref: '#/components/schemas/IlpFulfilment'
2602
+ completedTimestamp:
2603
+ $ref: '#/components/schemas/DateTime'
2604
+ transferState:
2605
+ $ref: '#/components/schemas/TransferState'
2606
+ extensionList:
2607
+ $ref: '#/components/schemas/ExtensionList'
2608
+ required:
2609
+ - transferState
2610
+ transferResponse:
2611
+ type: object
2612
+ required:
2613
+ - homeTransactionId
2614
+ - from
2615
+ - to
2616
+ - amountType
2617
+ - currency
2618
+ - amount
2619
+ - transactionType
2620
+ properties:
2621
+ transferId:
2622
+ $ref: '#/components/schemas/CorrelationId'
2623
+ homeTransactionId:
2624
+ type: string
2625
+ description: >-
2626
+ Transaction ID from the DFSP backend, used to reconcile transactions
2627
+ between the Switch and DFSP backend systems.
2628
+ from:
2629
+ $ref: '#/components/schemas/transferParty'
2630
+ to:
2631
+ $ref: '#/components/schemas/transferParty'
2632
+ amountType:
2633
+ $ref: '#/components/schemas/AmountType'
2634
+ currency:
2635
+ $ref: '#/components/schemas/Currency'
2636
+ amount:
2637
+ $ref: '#/components/schemas/Amount'
2638
+ transactionType:
2639
+ $ref: '#/components/schemas/transferTransactionType'
2640
+ subScenario:
2641
+ $ref: '#/components/schemas/TransactionSubScenario'
2642
+ note:
2643
+ $ref: '#/components/schemas/Note'
2644
+ currentState:
2645
+ $ref: '#/components/schemas/transferStatus'
2646
+ quoteId:
2647
+ $ref: '#/components/schemas/CorrelationId'
2648
+ getPartiesResponse:
2649
+ type: object
2650
+ required:
2651
+ - body
2652
+ properties:
2653
+ body:
2654
+ type: object
2655
+ headers:
2656
+ type: object
2657
+ quoteResponse:
2658
+ type: object
2659
+ required:
2660
+ - body
2661
+ properties:
2662
+ body:
2663
+ $ref: '#/components/schemas/QuotesIDPutResponse'
2664
+ headers:
2665
+ type: object
2666
+ quoteResponseSource:
2667
+ type: string
2668
+ description: >
2669
+ FSPID of the entity that supplied the quote response. This may not
2670
+ be the same as the FSPID of the entity which owns the end user
2671
+ account in the case of a FOREX transfer. i.e. it may be a FOREX
2672
+ gateway.
2673
+ conversionRequestId:
2674
+ $ref: '#/components/schemas/CorrelationId'
2675
+ fxQuotesResponse:
2676
+ type: object
2677
+ required:
2678
+ - body
2679
+ properties:
2680
+ body:
2681
+ $ref: '#/components/schemas/FxQuotesPostOutboundResponse'
2682
+ headers:
2683
+ type: object
2684
+ fxQuotesResponseSource:
2685
+ type: string
2686
+ description: |
2687
+ FXPID of the entity that supplied the fxQuotes response.
2688
+ fulfil:
2689
+ type: object
2690
+ required:
2691
+ - body
2692
+ properties:
2693
+ body:
2694
+ $ref: '#/components/schemas/TransfersIDPutResponse'
2695
+ headers:
2696
+ type: object
2697
+ lastError:
2698
+ $ref: '#/components/schemas/transferError'
2699
+ skipPartyLookup:
2700
+ description: >-
2701
+ Set to true if supplying an FSPID for the payee party and no party
2702
+ resolution is needed. This may be useful is a previous party
2703
+ resolution has been performed.
2704
+ type: boolean
2705
+ errorTransferResponse:
2706
+ allOf:
2707
+ - $ref: '#/components/schemas/errorResponse'
2708
+ - type: object
2709
+ required:
2710
+ - transferState
2711
+ properties:
2712
+ transferState:
2713
+ $ref: '#/components/schemas/transferResponse'
2714
+ requestToPayTransferRequest:
2715
+ type: object
2716
+ required:
2717
+ - homeR2PTransactionId
2718
+ - transactionRequestId
2719
+ - from
2720
+ - to
2721
+ - amountType
2722
+ - currency
2723
+ - amount
2724
+ - scenario
2725
+ - initiator
2726
+ - initiatorType
2727
+ properties:
2728
+ homeR2PTransactionId:
2729
+ type: string
2730
+ description: >-
2731
+ Transaction ID from the DFSP backend, used to reconcile transactions
2732
+ between the Switch and DFSP backend systems.
2733
+ transactionRequestId:
2734
+ $ref: '#/components/schemas/CorrelationId'
2735
+ from:
2736
+ $ref: '#/components/schemas/transferParty'
2737
+ to:
2738
+ $ref: '#/components/schemas/transferParty'
2739
+ amountType:
2740
+ $ref: '#/components/schemas/AmountType'
2741
+ currency:
2742
+ $ref: '#/components/schemas/Currency'
2743
+ amount:
2744
+ $ref: '#/components/schemas/Amount'
2745
+ scenario:
2746
+ $ref: '#/components/schemas/TransactionScenario'
2747
+ subScenario:
2748
+ $ref: '#/components/schemas/TransactionSubScenario'
2749
+ initiator:
2750
+ $ref: '#/components/schemas/TransactionInitiator'
2751
+ initiatorType:
2752
+ $ref: '#/components/schemas/TransactionInitiatorType'
2753
+ note:
2754
+ $ref: '#/components/schemas/Note'
2755
+ authenticationType:
2756
+ $ref: '#/components/schemas/AuthenticationType'
2757
+ AuthenticationValue:
2758
+ title: AuthenticationValue
2759
+ anyOf:
2760
+ - title: OtpValue
2761
+ type: string
2762
+ pattern: ^\d{3,10}$
2763
+ description: >-
2764
+ The API data type OtpValue is a JSON String of 3 to 10 characters,
2765
+ consisting of digits only. Negative numbers are not allowed. One or
2766
+ more leading zeros are allowed.
2767
+ - title: QRCODE
2768
+ type: string
2769
+ minLength: 1
2770
+ maxLength: 64
2771
+ description: QR code used as a One Time Password.
2772
+ - title: U2FPinValue
2773
+ type: object
2774
+ description: >
2775
+ U2F challenge-response, where payer FSP verifies if the response
2776
+ provided by end-user device matches the previously registered key.
2777
+ properties:
2778
+ pinValue:
2779
+ type: string
2780
+ pattern: ^\S{1,64}$
2781
+ minLength: 1
2782
+ maxLength: 64
2783
+ description: >
2784
+ U2F challenge-response, where payer FSP verifies if the response
2785
+ provided by end-user device matches the previously registered
2786
+ key.
2787
+ counter:
2788
+ title: Integer
2789
+ type: string
2790
+ pattern: ^[1-9]\d*$
2791
+ description: >-
2792
+ Sequential counter used for cloning detection. Present only for
2793
+ U2F authentication.
2794
+ required:
2795
+ - pinValue
2796
+ - counter
2797
+ pattern: ^\d{3,10}$|^\S{1,64}$
2798
+ description: >-
2799
+ Contains the authentication value. The format depends on the
2800
+ authentication type used in the AuthenticationInfo complex type.
2801
+ AuthenticationInfo:
2802
+ title: AuthenticationInfo
2803
+ type: object
2804
+ description: Data model for the complex type AuthenticationInfo.
2805
+ properties:
2806
+ authentication:
2807
+ $ref: '#/components/schemas/AuthenticationType'
2808
+ authenticationValue:
2809
+ $ref: '#/components/schemas/AuthenticationValue'
2810
+ required:
2811
+ - authentication
2812
+ - authenticationValue
2813
+ AuthorizationResponseType:
2814
+ title: AuthorizationResponseType
2815
+ type: string
2816
+ enum:
2817
+ - ENTERED
2818
+ - REJECTED
2819
+ - RESEND
2820
+ description: |-
2821
+ Below are the allowed values for the enumeration.
2822
+ - ENTERED - Consumer entered the authentication value.
2823
+ - REJECTED - Consumer rejected the transaction.
2824
+ - RESEND - Consumer requested to resend the authentication value.
2825
+ example: ENTERED
2826
+ AuthorizationIDPutResponse:
2827
+ title: AuthorizationIDPutResponse
2828
+ type: object
2829
+ description: The object sent in the PUT /authorizations/{ID} callback.
2830
+ properties:
2831
+ authenticationInfo:
2832
+ $ref: '#/components/schemas/AuthenticationInfo'
2833
+ responseType:
2834
+ $ref: '#/components/schemas/AuthorizationResponseType'
2835
+ required:
2836
+ - responseType
2837
+ requestToPayTransferResponse:
2838
+ type: object
2839
+ required:
2840
+ - transactionRequestId
2841
+ - from
2842
+ - to
2843
+ - amountType
2844
+ - currency
2845
+ - amount
2846
+ - transactionType
2847
+ properties:
2848
+ transferId:
2849
+ $ref: '#/components/schemas/CorrelationId'
2850
+ homeR2PTransactionId:
2851
+ type: string
2852
+ description: >-
2853
+ Transaction ID from the DFSP backend, used to reconcile transactions
2854
+ between the Switch and DFSP backend systems.
2855
+ transactionRequestId:
2856
+ $ref: '#/components/schemas/CorrelationId'
2857
+ from:
2858
+ $ref: '#/components/schemas/transferParty'
2859
+ to:
2860
+ $ref: '#/components/schemas/transferParty'
2861
+ amountType:
2862
+ $ref: '#/components/schemas/AmountType'
2863
+ currency:
2864
+ $ref: '#/components/schemas/Currency'
2865
+ amount:
2866
+ $ref: '#/components/schemas/Amount'
2867
+ transactionType:
2868
+ $ref: '#/components/schemas/transferTransactionType'
2869
+ note:
2870
+ $ref: '#/components/schemas/Note'
2871
+ currentState:
2872
+ $ref: '#/components/schemas/transferStatus'
2873
+ quoteId:
2874
+ $ref: '#/components/schemas/CorrelationId'
2875
+ quoteResponse:
2876
+ type: object
2877
+ required:
2878
+ - body
2879
+ properties:
2880
+ body:
2881
+ $ref: '#/components/schemas/QuotesIDPutResponse'
2882
+ headers:
2883
+ type: object
2884
+ quoteResponseSource:
2885
+ type: string
2886
+ description: >
2887
+ FSPID of the entity that supplied the quote response. This may not
2888
+ be the same as the FSPID of the entity which owns the end user
2889
+ account in the case of a FOREX transfer. i.e. it may be a FOREX
2890
+ gateway.
2891
+ authorizationResponse:
2892
+ type: object
2893
+ required:
2894
+ - body
2895
+ properties:
2896
+ body:
2897
+ $ref: '#/components/schemas/AuthorizationIDPutResponse'
2898
+ headers:
2899
+ type: object
2900
+ fulfil:
2901
+ type: object
2902
+ required:
2903
+ - body
2904
+ properties:
2905
+ body:
2906
+ $ref: '#/components/schemas/TransfersIDPutResponse'
2907
+ headers:
2908
+ type: object
2909
+ lastError:
2910
+ $ref: '#/components/schemas/transferError'
2911
+ transferContinuationAcceptOTP:
2912
+ type: object
2913
+ required:
2914
+ - acceptOTP
2915
+ properties:
2916
+ acceptOTP:
2917
+ type: boolean
2918
+ enum:
2919
+ - true
2920
+ - false
2921
+ TransfersPostRequest:
2922
+ title: TransfersPostRequest
2923
+ type: object
2924
+ description: The object sent in the POST /transfers request.
2925
+ properties:
2926
+ transferId:
2927
+ $ref: '#/components/schemas/CorrelationId'
2928
+ payeeFsp:
2929
+ $ref: '#/components/schemas/FspId'
2930
+ payerFsp:
2931
+ $ref: '#/components/schemas/FspId'
2932
+ amount:
2933
+ $ref: '#/components/schemas/Money'
2934
+ ilpPacket:
2935
+ $ref: '#/components/schemas/IlpPacket'
2936
+ condition:
2937
+ $ref: '#/components/schemas/IlpCondition'
2938
+ expiration:
2939
+ $ref: '#/components/schemas/DateTime'
2940
+ extensionList:
2941
+ $ref: '#/components/schemas/ExtensionList'
2942
+ required:
2943
+ - transferId
2944
+ - payeeFsp
2945
+ - payerFsp
2946
+ - amount
2947
+ - ilpPacket
2948
+ - condition
2949
+ - expiration
2950
+ simpleTransfersPostRequest:
2951
+ title: SimpleTransfersPostRequest
2952
+ type: object
2953
+ properties:
2954
+ fspId:
2955
+ $ref: '#/components/schemas/FspId'
2956
+ transfersPostRequest:
2957
+ $ref: '#/components/schemas/TransfersPostRequest'
2958
+ required:
2959
+ - fspId
2960
+ - transfersPostRequest
2961
+ simpleTransfersPostResponse:
2962
+ title: SimpleTransfersPostResponse
2963
+ type: object
2964
+ properties:
2965
+ transfer:
2966
+ properties:
2967
+ body:
2968
+ $ref: '#/components/schemas/TransfersIDPutResponse'
2969
+ headers:
2970
+ type: object
2971
+ required:
2972
+ - body
2973
+ - headers
2974
+ currentState:
2975
+ $ref: '#/components/schemas/async2SyncCurrentState'
2976
+ required:
2977
+ - transfer
2978
+ - currentState
2979
+ errorSimpleTransfersResponse:
2980
+ allOf:
2981
+ - $ref: '#/components/schemas/errorResponse'
2982
+ - type: object
2983
+ transferRequest:
2984
+ type: object
2985
+ required:
2986
+ - homeTransactionId
2987
+ - from
2988
+ - to
2989
+ - amountType
2990
+ - currency
2991
+ - amount
2992
+ - transactionType
2993
+ properties:
2994
+ homeTransactionId:
2995
+ type: string
2996
+ description: >-
2997
+ Transaction ID from the DFSP backend, used to reconcile transactions
2998
+ between the Switch and DFSP backend systems.
2999
+ from:
3000
+ $ref: '#/components/schemas/transferParty'
3001
+ to:
3002
+ $ref: '#/components/schemas/transferParty'
3003
+ amountType:
3004
+ $ref: '#/components/schemas/AmountType'
3005
+ currency:
3006
+ $ref: '#/components/schemas/Currency'
3007
+ amount:
3008
+ $ref: '#/components/schemas/Amount'
3009
+ transactionType:
3010
+ $ref: '#/components/schemas/transferTransactionType'
3011
+ subScenario:
3012
+ $ref: '#/components/schemas/TransactionSubScenario'
3013
+ note:
3014
+ $ref: '#/components/schemas/Note'
3015
+ quoteRequestExtensions:
3016
+ $ref: '#/components/schemas/extensionListEmptiable'
3017
+ transferRequestExtensions:
3018
+ $ref: '#/components/schemas/extensionListEmptiable'
3019
+ skipPartyLookup:
3020
+ description: >-
3021
+ Set to true if supplying an FSPID for the payee party and no party
3022
+ resolution is needed. This may be useful is a previous party
3023
+ resolution has been performed.
3024
+ type: boolean
3025
+ transferStatusResponse:
3026
+ type: object
3027
+ required:
3028
+ - transferId
3029
+ - currentState
3030
+ - fulfil
3031
+ properties:
3032
+ transferId:
3033
+ $ref: '#/components/schemas/CorrelationId'
3034
+ currentState:
3035
+ $ref: '#/components/schemas/transferStatus'
3036
+ fulfil:
3037
+ type: object
3038
+ required:
3039
+ - body
3040
+ properties:
3041
+ body:
3042
+ $ref: '#/components/schemas/TransfersIDPutResponse'
3043
+ headers:
3044
+ type: object
3045
+ transferContinuationAcceptConversion:
3046
+ type: object
3047
+ required:
3048
+ - acceptConversion
3049
+ properties:
3050
+ acceptConversion:
3051
+ type: boolean
3052
+ enum:
3053
+ - true
3054
+ - false
3055
+ ServicesFXPPutResponse:
3056
+ title: ServicesFXPPutResponse
3057
+ type: object
3058
+ description: The object sent in the PUT /services/FXP callback.
3059
+ properties:
3060
+ providers:
3061
+ type: array
3062
+ description: >-
3063
+ The FSP Id(s) of the participant(s) who offer currency conversion
3064
+ services.
3065
+ items:
3066
+ $ref: '#/components/schemas/FspId'
3067
+ minItems: 0
3068
+ maxItems: 16
3069
+ required:
3070
+ - providers
3071
+ FxQuotesPostOutboundRequest:
3072
+ title: FxQuotesPostOutboundRequest
3073
+ type: object
3074
+ description: The object sent in the POST /fxQuotes request.
3075
+ properties:
3076
+ homeTransactionId:
3077
+ description: >-
3078
+ Transaction ID for the backend, used to reconcile transactions
3079
+ between the Switch and backend systems.
3080
+ type: string
3081
+ conversionRequestId:
3082
+ allOf:
3083
+ - $ref: '#/components/schemas/CorrelationId'
3084
+ - description: An end-to-end identifier for the conversion quotation request.
3085
+ conversionTerms:
3086
+ allOf:
3087
+ - $ref: '#/components/schemas/FxConversion'
3088
+ - description: >-
3089
+ The terms of the currency conversion for which a quotation is
3090
+ sought.
3091
+ required:
3092
+ - conversionRequestId
3093
+ - conversionTerms
3094
+ commitRequestId:
3095
+ allOf:
3096
+ - $ref: '#/components/schemas/CorrelationId'
3097
+ - description: An end-to-end identifier for the confirmation request.
3098
+ determiningTransferId:
3099
+ allOf:
3100
+ - $ref: '#/components/schemas/CorrelationId'
3101
+ - description: >-
3102
+ The transaction ID of the transfer to which this currency conversion
3103
+ relates, if the conversion is part of a transfer. If the conversion
3104
+ is a bulk currency purchase, this field should be omitted.
3105
+ initiatingFsp:
3106
+ allOf:
3107
+ - $ref: '#/components/schemas/FspId'
3108
+ - description: Identifier for the FSP who is requesting a currency conversion.
3109
+ counterPartyFsp:
3110
+ allOf:
3111
+ - $ref: '#/components/schemas/FspId'
3112
+ - description: Identifier for the FXP who is performing the currency conversion.
3113
+ sourceAmount:
3114
+ allOf:
3115
+ - $ref: '#/components/schemas/Money'
3116
+ - description: The amount being offered for conversion by the requesting FSP.
3117
+ targetAmount:
3118
+ allOf:
3119
+ - $ref: '#/components/schemas/Money'
3120
+ - description: >-
3121
+ The amount which the FXP is to credit to the requesting FSP in the
3122
+ target currency.
3123
+ condition:
3124
+ allOf:
3125
+ - $ref: '#/components/schemas/IlpCondition'
3126
+ - description: >-
3127
+ ILP condition received by the requesting FSP when the quote was
3128
+ approved.
3129
+ FxTransfersPostOutboundRequest:
3130
+ title: FxTransfersPostOutboundRequest
3131
+ type: object
3132
+ description: The object sent in the POST /fxTransfers request.
3133
+ properties:
3134
+ homeTransactionId:
3135
+ description: >-
3136
+ Transaction ID for the backend, used to reconcile transactions
3137
+ between the Switch and backend systems.
3138
+ type: string
3139
+ commitRequestId:
3140
+ $ref: '#/components/schemas/commitRequestId'
3141
+ determiningTransferId:
3142
+ $ref: '#/components/schemas/determiningTransferId'
3143
+ initiatingFsp:
3144
+ $ref: '#/components/schemas/initiatingFsp'
3145
+ counterPartyFsp:
3146
+ $ref: '#/components/schemas/counterPartyFsp'
3147
+ sourceAmount:
3148
+ $ref: '#/components/schemas/sourceAmount'
3149
+ targetAmount:
3150
+ $ref: '#/components/schemas/targetAmount'
3151
+ condition:
3152
+ $ref: '#/components/schemas/condition'
3153
+ required:
3154
+ - commitRequestId
3155
+ - initiatingFsp
3156
+ - counterPartyFsp
3157
+ - sourceAmount
3158
+ - targetAmount
3159
+ fulfilment:
3160
+ allOf:
3161
+ - $ref: '#/components/schemas/IlpFulfilment'
3162
+ - description: >-
3163
+ The fulfilment of the condition specified for the currency
3164
+ conversion. Mandatory if the conversion has been executed
3165
+ successfully.
3166
+ completedTimestamp:
3167
+ allOf:
3168
+ - $ref: '#/components/schemas/DateTime'
3169
+ - description: Time and date when the conversion was executed.
3170
+ conversionState:
3171
+ allOf:
3172
+ - $ref: '#/components/schemas/TransferState'
3173
+ - description: The current status of the conversion request.
3174
+ FxTransfersPostOutboundResponse:
3175
+ title: FxTransfersPostOutboundResponse
3176
+ type: object
3177
+ description: The object sent as a response for the POST /fxTransfers request.
3178
+ properties:
3179
+ homeTransactionId:
3180
+ description: >-
3181
+ Transaction ID for the backend, used to reconcile transactions
3182
+ between the Switch and backend systems.
3183
+ type: string
3184
+ fulfilment:
3185
+ $ref: '#/components/schemas/fulfilment'
3186
+ completedTimestamp:
3187
+ $ref: '#/components/schemas/completedTimestamp'
3188
+ conversionState:
3189
+ $ref: '#/components/schemas/conversionState'
3190
+ extensionList:
3191
+ $ref: '#/components/schemas/ExtensionList'
3192
+ required:
3193
+ - conversionState
3194
+ responses:
3195
+ '400':
3196
+ description: Malformed or missing required headers or parameters.
3197
+ content:
3198
+ application/json:
3199
+ schema:
3200
+ $ref: '#/components/schemas/errorResponse'
3201
+ '500':
3202
+ description: An error occurred processing the request.
3203
+ content:
3204
+ application/json:
3205
+ schema:
3206
+ $ref: '#/components/schemas/errorResponse'
3207
+ accountsCreationCompleted:
3208
+ description: Accounts creation completed
3209
+ content:
3210
+ application/json:
3211
+ schema:
3212
+ $ref: '#/components/schemas/accountsResponse'
3213
+ accountsCreationError:
3214
+ description: An error occurred creating accounts
3215
+ content:
3216
+ application/json:
3217
+ schema:
3218
+ $ref: '#/components/schemas/errorAccountsResponse'
3219
+ accountsCreationTimeout:
3220
+ description: Timeout occurred creating accounts
3221
+ content:
3222
+ application/json:
3223
+ schema:
3224
+ $ref: '#/components/schemas/errorAccountsResponse'
3225
+ bulkQuoteSuccess:
3226
+ description: Bulk quote completed successfully
3227
+ content:
3228
+ application/json:
3229
+ schema:
3230
+ $ref: '#/components/schemas/bulkQuoteResponse'
3231
+ bulkQuoteBadRequest:
3232
+ description: Malformed or missing required body, headers or parameters
3233
+ content:
3234
+ application/json:
3235
+ schema:
3236
+ $ref: '#/components/schemas/bulkQuoteErrorResponse'
3237
+ bulkQuoteServerError:
3238
+ description: An error occurred processing the bulk quote
3239
+ content:
3240
+ application/json:
3241
+ schema:
3242
+ $ref: '#/components/schemas/bulkQuoteErrorResponse'
3243
+ bulkQuoteTimeout:
3244
+ description: Timeout occurred processing the bulk quote
3245
+ content:
3246
+ application/json:
3247
+ schema:
3248
+ $ref: '#/components/schemas/bulkQuoteErrorResponse'
3249
+ bulkTransactionAccepted:
3250
+ description: Bulk transfer accepted successfully
3251
+ bulkTransferBadRequest:
3252
+ description: Malformed or missing required body, headers or parameters
3253
+ content:
3254
+ application/json:
3255
+ schema:
3256
+ $ref: '#/components/schemas/bulkTransferErrorResponse'
3257
+ errorResponse:
3258
+ description: Internal Server Error
3259
+ content:
3260
+ application/json:
3261
+ schema:
3262
+ $ref: '#/components/schemas/errorResponse'
3263
+ bulkTransactionPutBadRequest:
3264
+ description: Malformed or missing required body, headers or parameters
3265
+ content:
3266
+ application/json:
3267
+ schema:
3268
+ oneOf:
3269
+ - $ref: '#/components/schemas/bulkTransactionAcceptPartyErrorResponse'
3270
+ - $ref: '#/components/schemas/bulkTransactionAcceptQuoteErrorResponse'
3271
+ bulkTransferSuccess:
3272
+ description: Bulk transfer completed successfully
3273
+ content:
3274
+ application/json:
3275
+ schema:
3276
+ $ref: '#/components/schemas/bulkTransferResponse'
3277
+ partiesByIdSuccess:
3278
+ description: PartiesByIdSuccess
3279
+ content:
3280
+ application/json:
3281
+ schema:
3282
+ $ref: '#/components/schemas/partiesByIdResponse'
3283
+ partiesByIdError404:
3284
+ description: PartiesByIdError404
3285
+ content:
3286
+ application/json:
3287
+ schema:
3288
+ type: object
3289
+ properties:
3290
+ errorInformation:
3291
+ $ref: '#/components/schemas/ErrorInformation'
3292
+ quotesPostSuccess:
3293
+ description: sync response from POST /quotes
3294
+ content:
3295
+ application/json:
3296
+ schema:
3297
+ $ref: '#/components/schemas/quotesPostResponse'
3298
+ quotesServerError:
3299
+ description: An error occurred processing the quotes request
3300
+ content:
3301
+ application/json:
3302
+ schema:
3303
+ $ref: '#/components/schemas/errorQuotesResponse'
3304
+ requestToPaySuccess:
3305
+ description: Request to Pay completed successfully
3306
+ content:
3307
+ application/json:
3308
+ schema:
3309
+ $ref: '#/components/schemas/requestToPayResponse'
3310
+ transferServerError:
3311
+ description: An error occurred processing the transfer
3312
+ content:
3313
+ application/json:
3314
+ schema:
3315
+ $ref: '#/components/schemas/errorTransferResponse'
3316
+ transferTimeout:
3317
+ description: Timeout occurred processing the transfer
3318
+ content:
3319
+ application/json:
3320
+ schema:
3321
+ $ref: '#/components/schemas/errorTransferResponse'
3322
+ requestToPayTransferSuccess:
3323
+ description: Transfer completed successfully
3324
+ content:
3325
+ application/json:
3326
+ schema:
3327
+ $ref: '#/components/schemas/requestToPayTransferResponse'
3328
+ requestToPayTransferBadRequest:
3329
+ description: Malformed or missing required body, headers or parameters
3330
+ content:
3331
+ application/json:
3332
+ schema:
3333
+ $ref: '#/components/schemas/errorTransferResponse'
3334
+ transferSuccess:
3335
+ description: Transfer completed successfully
3336
+ content:
3337
+ application/json:
3338
+ schema:
3339
+ $ref: '#/components/schemas/transferResponse'
3340
+ simpleTransfersPostSuccess:
3341
+ description: sync response from POST /simpleTransfers
3342
+ content:
3343
+ application/json:
3344
+ schema:
3345
+ $ref: '#/components/schemas/simpleTransfersPostResponse'
3346
+ simpleTransfersServerError:
3347
+ description: An error occurred processing the simple transfers request
3348
+ content:
3349
+ application/json:
3350
+ schema:
3351
+ $ref: '#/components/schemas/errorSimpleTransfersResponse'
3352
+ transferBadRequest:
3353
+ description: Malformed or missing required body, headers or parameters
3354
+ content:
3355
+ application/json:
3356
+ schema:
3357
+ $ref: '#/components/schemas/errorTransferResponse'
3358
+ servicesFXPSucess:
3359
+ description: >-
3360
+ The response contains participants in a scheme who offer currency
3361
+ conversion services. If no participants offer these services, the return
3362
+ object will be blank.
3363
+ content:
3364
+ application/json:
3365
+ schema:
3366
+ $ref: '#/components/schemas/ServicesFXPPutResponse'
3367
+ parameters:
3368
+ bulkQuoteId:
3369
+ name: bulkQuoteId
3370
+ in: path
3371
+ required: true
3372
+ schema:
3373
+ $ref: '#/components/schemas/CorrelationId'
3374
+ description: >-
3375
+ Identifier of the bulk transfer to continue as returned in the response
3376
+ to a `POST /bulkTransfers` request.
3377
+ bulkTransactionId:
3378
+ name: bulkTransactionId
3379
+ in: path
3380
+ required: true
3381
+ schema:
3382
+ $ref: '#/components/schemas/CorrelationId'
3383
+ description: >-
3384
+ Identifier of the bulk transaction to continue as returned in the
3385
+ response to a `POST /bulkTransaction` request.
3386
+ bulkTransferId:
3387
+ name: bulkTransferId
3388
+ in: path
3389
+ required: true
3390
+ schema:
3391
+ $ref: '#/components/schemas/CorrelationId'
3392
+ description: >-
3393
+ Identifier of the bulk transfer to continue as returned in the response
3394
+ to a `POST /bulkTransfers` request.
3395
+ Type:
3396
+ name: Type
3397
+ in: path
3398
+ required: true
3399
+ schema:
3400
+ type: string
3401
+ description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`.
3402
+ ID:
3403
+ name: ID
3404
+ in: path
3405
+ required: true
3406
+ schema:
3407
+ type: string
3408
+ description: The identifier value.
3409
+ SubId:
3410
+ name: SubId
3411
+ in: path
3412
+ required: true
3413
+ schema:
3414
+ type: string
3415
+ description: >-
3416
+ A sub-identifier of the party identifier, or a sub-type of the party
3417
+ identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`.
3418
+ transactionRequestId:
3419
+ name: transactionRequestId
3420
+ in: path
3421
+ required: true
3422
+ schema:
3423
+ $ref: '#/components/schemas/CorrelationId'
3424
+ description: >-
3425
+ Identifier of the merchant request to pay to continue as returned in the
3426
+ response to a `POST /requestToPay` request.
3427
+ transferId:
3428
+ name: transferId
3429
+ in: path
3430
+ required: true
3431
+ schema:
3432
+ $ref: '#/components/schemas/CorrelationId'
3433
+ description: >-
3434
+ Identifier of the transfer to continue as returned in the response to a
3435
+ `POST /transfers` request.
3436
+ SourceCurrency:
3437
+ name: SourceCurrency
3438
+ in: path
3439
+ required: true
3440
+ schema:
3441
+ type: string
3442
+ description: ISO 4217 currency code for the source currency.
3443
+ TargetCurrency:
3444
+ name: TargetCurrency
3445
+ in: path
3446
+ required: true
3447
+ schema:
3448
+ type: string
3449
+ description: ISO 4217 currency code for the target currency.