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,1389 @@
1
+ openapi: 3.0.1
2
+ info:
3
+ title: Payment Manager for Mojaloop API
4
+ description: >
5
+ Specification for the Payment Manager for Mojaloop API
6
+ This API can be used by DFSP backends to simplify the process of sending and receiving funds within a Mojaloop scheme.
7
+ **Note on terminology:** The term "Switch" is equal to the term "Hub", and the term "FSP" is equal to the term "DFSP".
8
+ license:
9
+ name: Apache License Version 2.0, January 2004
10
+ url: http://www.apache.org/licenses/
11
+ version: 1.4.0
12
+
13
+
14
+ paths:
15
+ #Outbound API (Payer DFSP → Payment Manager → Mojaloop Switch)
16
+ /health:
17
+ get:
18
+ description: >
19
+ The HTTP request `GET /health` is used to check if the application is up and running.
20
+ operationId: getHealth
21
+ tags:
22
+ - health
23
+ responses:
24
+ 200:
25
+ description: OK
26
+ content:
27
+ application/json:
28
+ schema:
29
+ type: string
30
+ /sendmoney:
31
+ post:
32
+ summary: Sends money from one account to another
33
+ operationId: postSendMoney
34
+ description: >
35
+ The HTTP request `POST /sendmoney` is used by the Payer DFSP to request the movement of funds from the Payer DFSP to the Payee DFSP.
36
+ The underlying Mojaloop API has three stages for money transfer:
37
+ 1. Party lookup (discovery phase). This facilitates a check by the sending party that the destination party is correct before proceeding with a money movement.
38
+ 2. Quotation (agreement phase). This facilitates the exchange of fee information and the construction of a cryptographic "contract" between the Payee and Payer DFSPs before funds are transferred.
39
+ 3. Transfer (transfer phase). The enactment of the previously agreed "contract".
40
+ This method has several modes of operation.
41
+ - If the configuration variable `AUTO_ACCEPT_PARTY` is set to `"false"`, this method will terminate when the Payee party has been resolved and Payee party details have been returned.
42
+ If the Payer wishes to proceed with the transfer, then a subsequent `PUT /sendmoney/{transferId}` request (accepting the Payee party) is required to continue the operation.
43
+ The Payment Manager will then proceed to the quotation stage.
44
+ - If the configuration variable `AUTO_ACCEPT_QUOTES` is set to `"false"`, this method will terminate and return the quotation when it has been received from the Payee DFSP.
45
+ If the Payee wishes to proceed with the transfer, then a subsequent `PUT /sendmoney/{transferId}` request (accepting the quote) is required to continue the operation.
46
+ The Payment Manager will then proceed to the transfer state.
47
+ If the configuration variables `AUTO_ACCEPT_PARTY` and `AUTO_ACCEPT_QUOTES` are both set to `"true"`, this method will block until all three transfer stages are complete.
48
+ Upon completion, it will return the entire set of transfer details received during the operation.
49
+ Combinations of settings for `AUTO_ACCEPT...` configuration variables allow the Payment Manager user to decide which mode of operation best suits their use cases. i.e., the Payment Manager can be configured to "break" the three-stage transfer at these points in order to execute backend logic such as party verification, quoted fees assessments, etc.
50
+ tags:
51
+ - sendmoney
52
+ requestBody:
53
+ description: Transfer request body
54
+ content:
55
+ application/json:
56
+ schema:
57
+ $ref: '#/components/schemas/transferRequest'
58
+ required: true
59
+ responses:
60
+ 200:
61
+ $ref: '#/components/responses/transferSuccess'
62
+ 400:
63
+ $ref: '#/components/responses/transferBadRequest'
64
+ 500:
65
+ $ref: '#/components/responses/transferServerError'
66
+ 504:
67
+ $ref: '#/components/responses/transferTimeout'
68
+
69
+ /sendmoney/{transferId}:
70
+ put:
71
+ summary: Continues a transfer that has paused at the party lookup and/or quote stage in order to accept or reject Payee party and/or quote
72
+ operationId: putSendMoneyByTransferId
73
+ description: >
74
+ The HTTP request `PUT /sendmoney/{transferId}` is used by the Payer DFSP to continue a transfer initiated via the `POST /sendmoney` method that has halted after party lookup and/or quotation stage.
75
+ The request body should contain either the "acceptParty" or "acceptQuote" property set to `true` as required to continue the transfer.
76
+ See the description of the `POST /sendmoney` HTTP method for more information on modes of transfer.
77
+ tags:
78
+ - sendmoney
79
+ requestBody:
80
+ content:
81
+ application/json:
82
+ schema:
83
+ $ref: '#/components/schemas/transferContinuationAccept'
84
+ # oneOf:
85
+ # - $ref: '#/components/schemas/transferContinuationAcceptParty'
86
+ # - $ref: '#/components/schemas/transferContinuationAcceptQuote'
87
+ parameters:
88
+ - $ref: '#/components/parameters/transferId'
89
+ responses:
90
+ 200:
91
+ $ref: '#/components/responses/transferSuccess'
92
+ 500:
93
+ $ref: '#/components/responses/transferServerError'
94
+ 504:
95
+ $ref: '#/components/responses/transferTimeout'
96
+
97
+ #Inbound API (Mojaloop Switch → Payment Manager → Payee DFSP)
98
+ /parties/{idType}/{idValue}:
99
+ get:
100
+ summary: Requests information relating to a transfer party identified by the specified identifier type and value
101
+ operationId: getPartiesByIdTypeIdValue
102
+ description: The HTTP request `GET /parties/{idType}/{idValue}` is sent to the Payee DFSP, and it is used to look up information regarding the requested transfer party, identified by `{idType}` and `{idValue}`.
103
+ tags:
104
+ - parties
105
+ parameters:
106
+ - $ref: '#/components/parameters/idType'
107
+ - $ref: '#/components/parameters/idValue'
108
+ responses:
109
+ 200:
110
+ description: Response containing details of the requested party
111
+ content:
112
+ application/json:
113
+ schema:
114
+ $ref: '#/components/schemas/transferPartyInbound'
115
+ 400:
116
+ $ref: '#/components/responses/400'
117
+ 404:
118
+ $ref: '#/components/responses/404'
119
+ 500:
120
+ $ref: '#/components/responses/500'
121
+
122
+ /quoterequests:
123
+ post:
124
+ summary: Requests a quote for the specified transfer
125
+ operationId: postQuoteRequests
126
+ description: The HTTP request `POST /quoterequests` is sent to the Payee DFSP, and it is used to request the creation of a quote for the provided financial transaction.
127
+ tags:
128
+ - quoterequests
129
+ requestBody:
130
+ description: Request for a transfer quotation
131
+ content:
132
+ application/json:
133
+ schema:
134
+ $ref: '#/components/schemas/quoteRequest'
135
+ responses:
136
+ 200:
137
+ description: A response to the transfer quotation request
138
+ content:
139
+ application/json:
140
+ schema:
141
+ $ref: '#/components/schemas/quoteResponse'
142
+ 400:
143
+ $ref: '#/components/responses/400'
144
+ 500:
145
+ $ref: '#/components/responses/500'
146
+
147
+ /transfers:
148
+ post:
149
+ summary: Transfers funds from an external account to an internal account
150
+ operationId: postTransfers
151
+ description: The HTTP request `POST /transfers` is sent to the Payee DFSP, and it is used to request the creation of a transfer for the transfer party.
152
+ tags:
153
+ - transfers
154
+ requestBody:
155
+ description: An incoming transfer request
156
+ content:
157
+ application/json:
158
+ schema:
159
+ $ref: '#/components/schemas/transferRequestInbound'
160
+ responses:
161
+ 200:
162
+ description: The transfer was accepted
163
+ content:
164
+ application/json:
165
+ schema:
166
+ $ref: '#/components/schemas/transferResponseInbound'
167
+ 400:
168
+ $ref: '#/components/responses/400'
169
+ 500:
170
+ $ref: '#/components/responses/500'
171
+
172
+ /transfers/{transferId}:
173
+ put:
174
+ summary: Provides a notification about the success/failure of a specific transfer
175
+ operationId: putTransfersByTransferId
176
+ description: The HTTP request `PUT /transfers/{transferId}` is sent to the Payee DFSP, and it is used to notify the Payee DFSP about the final state of a transfer, to indicate whether the transfer has been committed or aborted in the Switch.
177
+ tags:
178
+ - transfers
179
+ parameters:
180
+ - $ref: '#/components/parameters/transferId'
181
+ requestBody:
182
+ description: An incoming notification for a fulfilled transfer
183
+ content:
184
+ application/json:
185
+ schema:
186
+ $ref: '#/components/schemas/fulfilNotification'
187
+ responses:
188
+ 200:
189
+ description: The notification was accepted
190
+ content:
191
+ application/json:
192
+ schema:
193
+ $ref: '#/components/schemas/transferResponseInbound'
194
+ 500:
195
+ $ref: '#/components/responses/500'
196
+
197
+
198
+ components:
199
+ schemas:
200
+
201
+ amountType:
202
+ type: string
203
+ enum:
204
+ - SEND
205
+ - RECEIVE
206
+ description: SEND for send amount. RECEIVE for receive amount.
207
+
208
+ currency:
209
+ maxLength: 3
210
+ minLength: 3
211
+ type: string
212
+ enum:
213
+ - AED
214
+ - AFN
215
+ - ALL
216
+ - AMD
217
+ - ANG
218
+ - AOA
219
+ - ARS
220
+ - AUD
221
+ - AWG
222
+ - AZN
223
+ - BAM
224
+ - BBD
225
+ - BDT
226
+ - BGN
227
+ - BHD
228
+ - BIF
229
+ - BMD
230
+ - BND
231
+ - BOB
232
+ - BRL
233
+ - BSD
234
+ - BTN
235
+ - BWP
236
+ - BYN
237
+ - BZD
238
+ - CAD
239
+ - CDF
240
+ - CHF
241
+ - CLP
242
+ - CNY
243
+ - COP
244
+ - CRC
245
+ - CUC
246
+ - CUP
247
+ - CVE
248
+ - CZK
249
+ - DJF
250
+ - DKK
251
+ - DOP
252
+ - DZD
253
+ - EGP
254
+ - ERN
255
+ - ETB
256
+ - EUR
257
+ - FJD
258
+ - FKP
259
+ - GBP
260
+ - GEL
261
+ - GGP
262
+ - GHS
263
+ - GIP
264
+ - GMD
265
+ - GNF
266
+ - GTQ
267
+ - GYD
268
+ - HKD
269
+ - HNL
270
+ - HRK
271
+ - HTG
272
+ - HUF
273
+ - IDR
274
+ - ILS
275
+ - IMP
276
+ - INR
277
+ - IQD
278
+ - IRR
279
+ - ISK
280
+ - JEP
281
+ - JMD
282
+ - JOD
283
+ - JPY
284
+ - KES
285
+ - KGS
286
+ - KHR
287
+ - KMF
288
+ - KPW
289
+ - KRW
290
+ - KWD
291
+ - KYD
292
+ - KZT
293
+ - LAK
294
+ - LBP
295
+ - LKR
296
+ - LRD
297
+ - LSL
298
+ - LYD
299
+ - MAD
300
+ - MDL
301
+ - MGA
302
+ - MKD
303
+ - MMK
304
+ - MNT
305
+ - MOP
306
+ - MRO
307
+ - MUR
308
+ - MVR
309
+ - MWK
310
+ - MXN
311
+ - MYR
312
+ - MZN
313
+ - NAD
314
+ - NGN
315
+ - NIO
316
+ - NOK
317
+ - NPR
318
+ - NZD
319
+ - OMR
320
+ - PAB
321
+ - PEN
322
+ - PGK
323
+ - PHP
324
+ - PKR
325
+ - PLN
326
+ - PYG
327
+ - QAR
328
+ - RON
329
+ - RSD
330
+ - RUB
331
+ - RWF
332
+ - SAR
333
+ - SBD
334
+ - SCR
335
+ - SDG
336
+ - SEK
337
+ - SGD
338
+ - SHP
339
+ - SLL
340
+ - SOS
341
+ - SPL
342
+ - SRD
343
+ - STD
344
+ - SVC
345
+ - SYP
346
+ - SZL
347
+ - THB
348
+ - TJS
349
+ - TMT
350
+ - TND
351
+ - TOP
352
+ - TRY
353
+ - TTD
354
+ - TVD
355
+ - TWD
356
+ - TZS
357
+ - UAH
358
+ - UGX
359
+ - USD
360
+ - UYU
361
+ - UZS
362
+ - VEF
363
+ - VND
364
+ - VUV
365
+ - WST
366
+ - XAF
367
+ - XCD
368
+ - XDR
369
+ - XOF
370
+ - XPF
371
+ - XTS
372
+ - XXX
373
+ - YER
374
+ - ZAR
375
+ - ZMW
376
+ - ZWD
377
+
378
+ dateShort:
379
+ type: string
380
+ pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)$
381
+ description: Date in the form YYYY-MM-DD.
382
+
383
+ errorCode:
384
+ title: ErrorCode
385
+ type: string
386
+ pattern: '^[1-9]\d{3}$'
387
+ description: >
388
+ The API data type errorCode is a JSON String of four characters,
389
+ consisting of digits only. Negative numbers are not allowed. A leading
390
+ zero is not allowed. Each error code in the API is a four-digit number,
391
+ for example, 1234, where the first number (1 in the example) represents
392
+ the high-level error category, the second number (2 in the example)
393
+ represents the low-level error category, and the last two numbers (34 in
394
+ the example) represents the specific error.
395
+
396
+ errorDescription:
397
+ title: ErrorDescription
398
+ type: string
399
+ minLength: 1
400
+ maxLength: 128
401
+ description: Error description string.
402
+
403
+ errorInformation:
404
+ title: ErrorInformation
405
+ type: object
406
+ description: A Mojaloop API error information construct.
407
+ properties:
408
+ errorCode:
409
+ $ref: '#/components/schemas/errorCode'
410
+ errorDescription:
411
+ $ref: '#/components/schemas/errorDescription'
412
+ extensionList:
413
+ $ref: '#/components/schemas/extensionListComplex'
414
+ required:
415
+ - errorCode
416
+ - errorDescription
417
+
418
+ errorResponse:
419
+ type: object
420
+ properties:
421
+ statusCode:
422
+ type: string
423
+ pattern: ^[1-9]\d{2,3}$
424
+ description: Error code as string.
425
+ message:
426
+ type: string
427
+ maxLength: 4096
428
+ description: Error message text.
429
+
430
+ errorTransferResponse:
431
+ allOf:
432
+ - $ref: '#/components/schemas/errorResponse'
433
+ - type: object
434
+ required:
435
+ - transferState
436
+ properties:
437
+ transferState:
438
+ $ref: '#/components/schemas/transferResponse'
439
+
440
+ extensionItem:
441
+ type: object
442
+ properties:
443
+ key:
444
+ type: string
445
+ minLength: 1
446
+ maxLength: 32
447
+ value:
448
+ type: string
449
+ minLength: 1
450
+ maxLength: 128
451
+
452
+ extensionList:
453
+ type: array
454
+ items:
455
+ $ref: '#/components/schemas/extensionItem'
456
+ minItems: 0
457
+ maxItems: 16
458
+
459
+ extensionListComplex:
460
+ type: object
461
+ description: Data model for the complex type ExtensionList
462
+ properties:
463
+ extension:
464
+ type: array
465
+ items:
466
+ $ref: '#/components/schemas/extensionItem'
467
+ minItems: 1
468
+ maxItems: 16
469
+ description: Number of Extension elements
470
+ required:
471
+ - extension
472
+
473
+ fspId:
474
+ type: string
475
+ minLength: 1
476
+ maxLength: 32
477
+ description: FSP with which the party is associated.
478
+
479
+ fulfilNotification:
480
+ title: TransfersIDPatchResponse
481
+ type: object
482
+ description: PUT /transfers/{transferId} object
483
+ properties:
484
+ transferId:
485
+ $ref: '#/components/schemas/transferId'
486
+ direction:
487
+ type: string
488
+ enum:
489
+ - INBOUND
490
+ quoteRequest:
491
+ type: object
492
+ properties:
493
+ headers:
494
+ type: object
495
+ body:
496
+ $ref: '#/components/schemas/mojaloopQuoteRequestObject'
497
+ quoteResponse:
498
+ type: object
499
+ properties:
500
+ headers:
501
+ type: object
502
+ body:
503
+ type: string
504
+ # $ref: '#/components/schemas/mojaloopQuoteResponseObject'
505
+ # type: object
506
+ prepare:
507
+ type: object
508
+ properties:
509
+ body:
510
+ type: object
511
+ properties:
512
+ transferId:
513
+ $ref: '#/components/schemas/transferId'
514
+ payeeFsp:
515
+ $ref: '#/components/schemas/fspId'
516
+ payerFsp:
517
+ $ref: '#/components/schemas/fspId'
518
+ amount:
519
+ $ref: '#/components/schemas/mojaloopMoney'
520
+ ilpPacket:
521
+ $ref: '#/components/schemas/ilpPacket'
522
+ condition:
523
+ $ref: '#/components/schemas/ilpCondition'
524
+ expiration:
525
+ $ref: '#/components/schemas/timestamp'
526
+ extensionList:
527
+ $ref: '#/components/schemas/extensionList'
528
+ required:
529
+ - amount
530
+ headers:
531
+ type: object
532
+ fulfil:
533
+ type: object
534
+ properties:
535
+ headers:
536
+ type: object
537
+ body:
538
+ type: string
539
+ # type: object
540
+ # properties:
541
+ # completedTimestamp:
542
+ # $ref: '#/components/schemas/timestamp'
543
+ # transferState:
544
+ # $ref: '#/components/schemas/mojaloopTransferState'
545
+ # fulfilment:
546
+ # $ref: '#/components/schemas/ilpFulfilment'
547
+ # extensionList:
548
+ # $ref: '#/components/schemas/extensionList'
549
+ quote:
550
+ type: object
551
+ properties:
552
+ request:
553
+ $ref: '#/components/schemas/mojaloopQuoteRequestObject'
554
+ internalRequest:
555
+ $ref: '#/components/schemas/quoteRequest'
556
+ response:
557
+ $ref: '#/components/schemas/quoteResponse'
558
+ mojaloopResponse:
559
+ $ref: '#/components/schemas/mojaloopQuoteResponseObject'
560
+ fulfilment:
561
+ $ref: '#/components/schemas/ilpFulfilment'
562
+ currentState:
563
+ $ref: '#/components/schemas/transferStatus'
564
+ lastError:
565
+ $ref: '#/components/schemas/transferError'
566
+ initiatedTimestamp:
567
+ $ref: '#/components/schemas/timestamp'
568
+ finalNotification:
569
+ type: object
570
+ properties:
571
+ completedTimestamp:
572
+ $ref: '#/components/schemas/timestamp'
573
+ transferState:
574
+ $ref: '#/components/schemas/transferState'
575
+ extensionList:
576
+ $ref: '#/components/schemas/extensionList'
577
+ required:
578
+ - completedTimestamp
579
+ - transferState
580
+
581
+ geoCode:
582
+ type: object
583
+ description: >
584
+ Data model for the Mojaloop API complex type GeoCode. Indicates a geographic location
585
+ properties:
586
+ latitude:
587
+ $ref: '#/components/schemas/latitude'
588
+ longitude:
589
+ $ref: '#/components/schemas/longitude'
590
+ required:
591
+ - latitude
592
+ - longitude
593
+
594
+ homeTransactionId:
595
+ type: string
596
+ maxLength: 255
597
+ description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems.
598
+
599
+ idType:
600
+ type: string
601
+ enum:
602
+ - MSISDN
603
+ - ACCOUNT_ID
604
+ description: Below are the allowed values for the enumeration.
605
+
606
+ - MSISDN - An MSISDN (Mobile Station International Subscriber Directory Number, that is, the phone number) is used as reference to a participant. The MSISDN identifier should be in international format according to the [ITU-T E.164 standard](https://www.itu.int/rec/T-REC-E.164/en). Optionally, the MSISDN may be prefixed by a single plus sign, indicating the international prefix.
607
+ - ACCOUNT_ID - A bank account number or FSP account ID should be used as reference to a participant. The ACCOUNT_ID identifier can be in any format, as formats can greatly differ depending on country and FSP.
608
+
609
+ idValue:
610
+ type: string
611
+ pattern: '^[A-Za-z0-9]{4,125}$'
612
+ minLength: 4
613
+ maxLength: 125
614
+ description: Identifier of the party.
615
+
616
+ ilpCondition:
617
+ type: string
618
+ pattern: '^[A-Za-z0-9-_]{43}$'
619
+ maxLength: 48
620
+ description: Condition that must be attached to the transfer by the Payer.
621
+
622
+ ilpFulfilment:
623
+ type: string
624
+ pattern: '^[A-Za-z0-9-_]{43}$'
625
+ maxLength: 48
626
+ description: Fulfilment that must be attached to the transfer by the Payee.
627
+
628
+ ilpPacket:
629
+ type: string
630
+ pattern: '^[A-Za-z0-9-_]+[=]{0,2}$'
631
+ minLength: 1
632
+ maxLength: 32768
633
+ description: Information for recipient (transport layer information).
634
+
635
+ initiator:
636
+ type: string
637
+ enum:
638
+ - PAYER
639
+ - PAYEE
640
+ description: Specifies if the initiator of the transfer is the Payer or Payee.
641
+
642
+ initiatorType:
643
+ type: string
644
+ enum:
645
+ - CONSUMER
646
+ - AGENT
647
+ - BUSINESS
648
+ - DEVICE
649
+ description: >
650
+ Below are the allowed values for the enumeration
651
+ - CONSUMER Consumer is the initiator of the transaction. Example - peer-to-peer transfer or loan repayment from wallet.
652
+ - AGENT Agent is the initiator of the transaction. Example - loan repayment via an agent.
653
+ - BUSINESS Business is the initiator of the transaction. Example - loan disbursement.
654
+ - DEVICE Device is the initiator of the transaction. Example - merchant-initiated merchant payment authorized on POS.
655
+
656
+ latitude:
657
+ type: string
658
+ pattern: >-
659
+ ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$
660
+ description: >
661
+ The API data type Latitude is a JSON String in a lexical format that is
662
+ restricted by a regular expression for interoperability reasons.
663
+
664
+ longitude:
665
+ type: string
666
+ pattern: >-
667
+ ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$
668
+ description: >-
669
+ The API data type Longitude is a JSON String in a lexical format that is
670
+ restricted by a regular expression for interoperability reasons.
671
+
672
+ merchantClassificationCode:
673
+ type: string
674
+ pattern: ^[\d]{1,4}$
675
+ description: Up to 4 digits specifying the sender's merchant classification, if known and applicable.
676
+
677
+ mojaloopError:
678
+ type: object
679
+ properties:
680
+ errorInformation:
681
+ $ref: '#/components/schemas/errorInformation'
682
+
683
+ mojaloopIdentifier:
684
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$
685
+ type: string
686
+ description: A Mojaloop API identifier (UUID/ULID).
687
+
688
+ mojaloopMoney:
689
+ title: Money
690
+ type: object
691
+ description: Data model for the Mojaloop API complex type Money.
692
+ properties:
693
+ currency:
694
+ $ref: '#/components/schemas/currency'
695
+ amount:
696
+ $ref: '#/components/schemas/money'
697
+ required:
698
+ - currency
699
+ - amount
700
+
701
+ mojaloopQuoteRequestObject:
702
+ type: object
703
+ properties:
704
+ quoteId:
705
+ $ref: '#/components/schemas/quoteId'
706
+ transactionId:
707
+ $ref: '#/components/schemas/transactionId'
708
+ amountType:
709
+ $ref: '#/components/schemas/amountType'
710
+ amount:
711
+ $ref: '#/components/schemas/mojaloopMoney'
712
+ fees:
713
+ $ref: '#/components/schemas/mojaloopMoney'
714
+ expiration:
715
+ $ref: '#/components/schemas/timestamp'
716
+ payer:
717
+ $ref: '#/components/schemas/Party'
718
+ payee:
719
+ $ref: '#/components/schemas/Party'
720
+ transactionType:
721
+ $ref: '#/components/schemas/mojaloopTransactionType'
722
+ note:
723
+ type: string
724
+ minLength: 1
725
+ maxLength: 128
726
+ description: An optional note associated with the requested transfer.
727
+ extensionList:
728
+ $ref: '#/components/schemas/extensionList'
729
+ required:
730
+ - quoteId
731
+ - transactionId
732
+ - amountType
733
+ - amount
734
+ - payee
735
+ - payer
736
+ - transactionType
737
+
738
+ mojaloopQuoteResponseObject:
739
+ type: object
740
+ properties:
741
+ transferAmount:
742
+ $ref: '#/components/schemas/mojaloopMoney'
743
+ expiration:
744
+ $ref: '#/components/schemas/timestamp'
745
+ ilpPacket:
746
+ $ref: '#/components/schemas/ilpPacket'
747
+ condition:
748
+ $ref: '#/components/schemas/ilpCondition'
749
+ payeeReceiveAmount:
750
+ $ref: '#/components/schemas/mojaloopMoney'
751
+ payeeFspFee:
752
+ $ref: '#/components/schemas/mojaloopMoney'
753
+ payeeFspCommission:
754
+ $ref: '#/components/schemas/mojaloopMoney'
755
+ geoCode:
756
+ $ref: '#/components/schemas/geoCode'
757
+ extensionList:
758
+ $ref: '#/components/schemas/extensionList'
759
+ required:
760
+ - transferAmount
761
+ - expiration
762
+ - ilpPacket
763
+ - condition
764
+
765
+ mojaloopTransactionType:
766
+ title: mojaloopTransactionType
767
+ type: object
768
+ description: Data model for the complex type mojaloopTransactionType.
769
+ properties:
770
+ scenario:
771
+ $ref: '#/components/schemas/TransactionScenario'
772
+ subScenario:
773
+ type: string
774
+ pattern: ^[A-Z_]{1,32}$
775
+ description: Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type).
776
+ initiator:
777
+ $ref: '#/components/schemas/initiator'
778
+ initiatorType:
779
+ $ref: '#/components/schemas/initiatorType'
780
+ required:
781
+ - scenario
782
+ - initiator
783
+ - initiatorType
784
+
785
+ mojaloopTransferState:
786
+ type: string
787
+ enum:
788
+ - RECEIVED
789
+ - RESERVED
790
+ - COMMITTED
791
+ - ABORTED
792
+ description: >
793
+ Below are the allowed values for the enumeration
794
+ - RECEIVED The Switch has received the transfer.
795
+ - RESERVED The Switch has reserved the transfer.
796
+ - COMMITTED The Switch has successfully performed the transfer.
797
+ - ABORTED The Switch has aborted the transfer due a rejection or failure to perform the transfer.
798
+
799
+ money:
800
+ pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$
801
+ type: string
802
+
803
+ Party:
804
+ title: Party
805
+ type: object
806
+ description: Data model for the complex type Party.
807
+ properties:
808
+ partyIdInfo:
809
+ $ref: '#/components/schemas/PartyIdInfo'
810
+ merchantClassificationCode:
811
+ $ref: '#/components/schemas/merchantClassificationCode'
812
+ name:
813
+ $ref: '#/components/schemas/partyName'
814
+ personalInfo:
815
+ $ref: '#/components/schemas/PartyPersonalInfo'
816
+ required:
817
+ - partyIdInfo
818
+
819
+ PartyComplexName:
820
+ title: PartyComplexName
821
+ type: object
822
+ description: Data model for the complex type PartyComplexName.
823
+ properties:
824
+ firstName:
825
+ $ref: '#/components/schemas/partyName'
826
+ middleName:
827
+ $ref: '#/components/schemas/partyName'
828
+ lastName:
829
+ $ref: '#/components/schemas/partyName'
830
+
831
+ PartyIdInfo:
832
+ title: PartyIdInfo
833
+ type: object
834
+ description: Data model for the complex type PartyIdInfo.
835
+ properties:
836
+ partyIdType:
837
+ $ref: '#/components/schemas/idType'
838
+ partyIdentifier:
839
+ type: string
840
+ minLength: 1
841
+ maxLength: 128
842
+ description: An identifier for the Party.
843
+ partySubIdOrType:
844
+ type: string
845
+ minLength: 1
846
+ maxLength: 128
847
+ description: A sub-identifier or sub-type for the Party.
848
+ fspId:
849
+ $ref: '#/components/schemas/fspId'
850
+ extensionList:
851
+ $ref: '#/components/schemas/extensionList'
852
+ required:
853
+ - partyIdType
854
+ - partyIdentifier
855
+
856
+ partyName:
857
+ type: string
858
+ minLength: 1
859
+ maxLength: 128
860
+
861
+ PartyPersonalInfo:
862
+ title: PartyPersonalInfo
863
+ type: object
864
+ description: Data model for the complex type PartyPersonalInfo.
865
+ properties:
866
+ complexName:
867
+ $ref: '#/components/schemas/PartyComplexName'
868
+ dateOfBirth:
869
+ $ref: '#/components/schemas/dateShort'
870
+
871
+ payerType:
872
+ type: string
873
+ enum:
874
+ - CONSUMER
875
+ - AGENT
876
+ - BUSINESS
877
+ - DEVICE
878
+ description: >
879
+ Below are the allowed values for the enumeration
880
+ - CONSUMER Consumer is the initiator of the transaction. Example - peer-to-peer transfer or loan repayment from wallet.
881
+ - AGENT Agent is the initiator of the transaction. Example - loan repayment via an agent.
882
+ - BUSINESS Business is the initiator of the transaction. Example - loan disbursement.
883
+ - DEVICE Device is the initiator of the transaction. Example - merchant-initiated merchant payment authorized on POS.
884
+
885
+ quote:
886
+ type: object
887
+ description: Mojaloop API response to a quote request
888
+ properties:
889
+ transferAmount:
890
+ $ref: '#/components/schemas/mojaloopMoney'
891
+ payeeReceiveAmount:
892
+ $ref: '#/components/schemas/mojaloopMoney'
893
+ payeeFspFee:
894
+ $ref: '#/components/schemas/mojaloopMoney'
895
+ payeeFspCommission:
896
+ $ref: '#/components/schemas/mojaloopMoney'
897
+ expiration:
898
+ $ref: '#/components/schemas/timestamp'
899
+ geoCode:
900
+ $ref: '#/components/schemas/geoCode'
901
+ ilpPacket:
902
+ $ref: '#/components/schemas/ilpPacket'
903
+ condition:
904
+ $ref: '#/components/schemas/ilpCondition'
905
+ extensionList:
906
+ $ref: '#/components/schemas/extensionListComplex'
907
+ required:
908
+ - transferAmount
909
+ - expiration
910
+ - ilpPacket
911
+ - condition
912
+
913
+ quoteId:
914
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$
915
+ type: string
916
+ description: A Mojaloop API quote identifier (UUID/ULID).
917
+
918
+ quoteRequest:
919
+ type: object
920
+ description: A request for a quote for transfer from the DFSP backend.
921
+ required:
922
+ - quoteId
923
+ - transactionId
924
+ - to
925
+ - from
926
+ - amountType
927
+ - amount
928
+ - currency
929
+ - transactionType
930
+ - initiator
931
+ - initiatorType
932
+ properties:
933
+ quoteId:
934
+ $ref: '#/components/schemas/quoteId'
935
+ transactionId:
936
+ $ref: '#/components/schemas/transactionId'
937
+ to:
938
+ $ref: '#/components/schemas/transferPartyInbound'
939
+ from:
940
+ $ref: '#/components/schemas/transferPartyInbound'
941
+ amountType:
942
+ $ref: '#/components/schemas/amountType'
943
+ amount:
944
+ $ref: '#/components/schemas/money'
945
+ currency:
946
+ $ref: '#/components/schemas/currency'
947
+ feesAmount:
948
+ $ref: '#/components/schemas/money'
949
+ feesCurrency:
950
+ $ref: '#/components/schemas/currency'
951
+ transactionType:
952
+ $ref: '#/components/schemas/transactionType'
953
+ initiator:
954
+ $ref: '#/components/schemas/initiator'
955
+ initiatorType:
956
+ $ref: '#/components/schemas/initiatorType'
957
+ geoCode:
958
+ $ref: '#/components/schemas/geoCode'
959
+ note:
960
+ type: string
961
+ minLength: 1
962
+ maxLength: 128
963
+ description: An optional note associated with the requested transfer.
964
+ expiration:
965
+ $ref: '#/components/schemas/timestamp'
966
+
967
+ quoteResponse:
968
+ type: object
969
+ description: A response to a request for a quote.
970
+ required:
971
+ - quoteId
972
+ - transactionId
973
+ - transferAmount
974
+ - transferAmountCurrency
975
+ properties:
976
+ quoteId:
977
+ $ref: '#/components/schemas/quoteId'
978
+ transactionId:
979
+ $ref: '#/components/schemas/transactionId'
980
+ transferAmount:
981
+ $ref: '#/components/schemas/money'
982
+ transferAmountCurrency:
983
+ $ref: '#/components/schemas/currency'
984
+ payeeReceiveAmount:
985
+ $ref: '#/components/schemas/money'
986
+ payeeReceiveAmountCurrency:
987
+ $ref: '#/components/schemas/currency'
988
+ payeeFspFeeAmount:
989
+ $ref: '#/components/schemas/money'
990
+ payeeFspFeeAmountCurrency:
991
+ $ref: '#/components/schemas/currency'
992
+ payeeFspCommissionAmount:
993
+ $ref: '#/components/schemas/money'
994
+ payeeFspCommissionAmountCurrency:
995
+ $ref: '#/components/schemas/currency'
996
+ expiration:
997
+ $ref: '#/components/schemas/timestamp'
998
+ geoCode:
999
+ $ref: '#/components/schemas/geoCode'
1000
+ extensionList:
1001
+ $ref: '#/components/schemas/extensionList'
1002
+
1003
+ timestamp:
1004
+ type: string
1005
+ pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:(\.\d{3}))(?:Z|[+-][01]\d:[0-5]\d)$
1006
+ description: An ISO-8601 formatted timestamp.
1007
+
1008
+ transactionId:
1009
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$
1010
+ type: string
1011
+ description: ID of the transaction, the ID is decided by the Payer FSP during the creation of the quote.
1012
+
1013
+ TransactionScenario:
1014
+ title: TransactionScenario
1015
+ type: string
1016
+ enum:
1017
+ - DEPOSIT
1018
+ - WITHDRAWAL
1019
+ - TRANSFER
1020
+ - PAYMENT
1021
+ - REFUND
1022
+ description: Below are the allowed values for the enumeration.
1023
+
1024
+ - DEPOSIT - Used for performing a Cash-In (deposit) transaction. In a normal scenario, electronic funds are transferred from a Business account to a Consumer account, and physical cash is given from the Consumer to the Business User.
1025
+ - WITHDRAWAL - Used for performing a Cash-Out (withdrawal) transaction. In a normal scenario, electronic funds are transferred from a Consumer’s account to a Business account, and physical cash is given from the Business User to the Consumer.
1026
+ - TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to Consumer) transaction.
1027
+ - PAYMENT - Usually used for performing a transaction from a Consumer to a Merchant or Organization, but could also be for a B2B (Business to Business) payment. The transaction could be online for a purchase in an Internet store, in a physical store where both the Consumer and Business User are present, a bill payment, a donation, and so on.
1028
+ - REFUND - Used for performing a refund of transaction.
1029
+
1030
+ transactionType:
1031
+ type: string
1032
+ enum:
1033
+ - LOAN_REPAYMENT
1034
+ - SAVINGS_DEPOSIT
1035
+ - TRANSFER
1036
+ description: Type of transaction. Below are the allowed values for the enumeration.
1037
+
1038
+ - LOAN_REPAYMENT - Used in the loan repayment use case when the loan repayment goes to a loan account.
1039
+ - SAVINGS_DEPOSIT - Used in the loan repayment use case when the loan repayment goes to a savings account.
1040
+ - TRANSFER - Used in the loan disbursement use case.
1041
+
1042
+ # transferContinuationAcceptParty:
1043
+ # type: object
1044
+ # required:
1045
+ # - acceptParty
1046
+ # properties:
1047
+ # acceptParty:
1048
+ # type: boolean
1049
+ # enum:
1050
+ # - true
1051
+ # - false
1052
+ # amount:
1053
+ # $ref: '#/components/schemas/money'
1054
+ # to:
1055
+ # $ref: '#/components/schemas/transferParty'
1056
+
1057
+ # transferContinuationAcceptQuote:
1058
+ # type: object
1059
+ # required:
1060
+ # - acceptQuote
1061
+ # properties:
1062
+ # acceptQuote:
1063
+ # type: boolean
1064
+ # enum:
1065
+ # - true
1066
+ # - false
1067
+ # amount:
1068
+ # $ref: '#/components/schemas/money'
1069
+ # to:
1070
+ # $ref: '#/components/schemas/transferParty'
1071
+
1072
+ transferContinuationAccept:
1073
+ type: object
1074
+ properties:
1075
+ acceptQuote:
1076
+ type: boolean
1077
+ enum:
1078
+ - true
1079
+ - false
1080
+ acceptParty:
1081
+ type: boolean
1082
+ enum:
1083
+ - true
1084
+ - false
1085
+ amount:
1086
+ $ref: '#/components/schemas/money'
1087
+ to:
1088
+ $ref: '#/components/schemas/transferParty'
1089
+
1090
+ transferError:
1091
+ type: object
1092
+ description: This object represents a Mojaloop API error received at any time during the transfer process
1093
+ properties:
1094
+ httpStatusCode:
1095
+ type: integer
1096
+ description: The HTTP status code returned to the caller. This is the same as the actual HTTP status code returned with the response.
1097
+ mojaloopError:
1098
+ $ref: '#/components/schemas/mojaloopError'
1099
+
1100
+ transferFulfilment:
1101
+ type: object
1102
+ description: A Mojaloop API transfer fulfilment
1103
+ properties:
1104
+ fulfilment:
1105
+ $ref: '#/components/schemas/ilpFulfilment'
1106
+ completedTimestamp:
1107
+ $ref: '#/components/schemas/timestamp'
1108
+ transferState:
1109
+ $ref: '#/components/schemas/mojaloopTransferState'
1110
+ extensionList:
1111
+ $ref: '#/components/schemas/extensionListComplex'
1112
+ required:
1113
+ - transferState
1114
+
1115
+ transferId:
1116
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$
1117
+ type: string
1118
+ description: A Mojaloop API transfer identifier (UUID/ULID).
1119
+
1120
+ transferParty:
1121
+ type: object
1122
+ required:
1123
+ - idType
1124
+ - idValue
1125
+ properties:
1126
+ type:
1127
+ $ref: '#/components/schemas/payerType'
1128
+ idType:
1129
+ $ref: '#/components/schemas/idType'
1130
+ idValue:
1131
+ $ref: '#/components/schemas/idValue'
1132
+ displayName:
1133
+ $ref: '#/components/schemas/partyName'
1134
+ firstName:
1135
+ $ref: '#/components/schemas/partyName'
1136
+ middleName:
1137
+ $ref: '#/components/schemas/partyName'
1138
+ lastName:
1139
+ $ref: '#/components/schemas/partyName'
1140
+ dateOfBirth:
1141
+ $ref: '#/components/schemas/dateShort'
1142
+ merchantClassificationCode:
1143
+ $ref: '#/components/schemas/merchantClassificationCode'
1144
+ fspId:
1145
+ $ref: '#/components/schemas/fspId'
1146
+ extensionList:
1147
+ $ref: '#/components/schemas/extensionList'
1148
+
1149
+ transferPartyInbound:
1150
+ type: object
1151
+ required:
1152
+ - idType
1153
+ - idValue
1154
+ properties:
1155
+ type:
1156
+ $ref: '#/components/schemas/payerType'
1157
+ idType:
1158
+ $ref: '#/components/schemas/idType'
1159
+ idValue:
1160
+ type: string
1161
+ description: The identifier string used to identify the sender.
1162
+ displayName:
1163
+ $ref: '#/components/schemas/partyName'
1164
+ firstName:
1165
+ $ref: '#/components/schemas/partyName'
1166
+ middleName:
1167
+ $ref: '#/components/schemas/partyName'
1168
+ lastName:
1169
+ $ref: '#/components/schemas/partyName'
1170
+ dateOfBirth:
1171
+ $ref: '#/components/schemas/dateShort'
1172
+ merchantClassificationCode:
1173
+ $ref: '#/components/schemas/merchantClassificationCode'
1174
+ fspId:
1175
+ $ref: '#/components/schemas/fspId'
1176
+ extensionList:
1177
+ $ref: '#/components/schemas/extensionList'
1178
+
1179
+ transferRequest:
1180
+ type: object
1181
+ required:
1182
+ - homeTransactionId
1183
+ - from
1184
+ - to
1185
+ - amountType
1186
+ - currency
1187
+ - amount
1188
+ - transactionType
1189
+ properties:
1190
+ homeTransactionId:
1191
+ $ref: '#/components/schemas/homeTransactionId'
1192
+ from:
1193
+ $ref: '#/components/schemas/transferParty'
1194
+ to:
1195
+ $ref: '#/components/schemas/transferParty'
1196
+ amountType:
1197
+ $ref: '#/components/schemas/amountType'
1198
+ currency:
1199
+ $ref: '#/components/schemas/currency'
1200
+ amount:
1201
+ $ref: '#/components/schemas/money'
1202
+ transactionType:
1203
+ $ref: '#/components/schemas/transactionType'
1204
+ note:
1205
+ maxLength: 128
1206
+ type: string
1207
+ quoteRequestExtensions:
1208
+ $ref: '#/components/schemas/extensionList'
1209
+ transferRequestExtensions:
1210
+ $ref: '#/components/schemas/extensionList'
1211
+
1212
+ transferRequestInbound:
1213
+ type: object
1214
+ required:
1215
+ - transferId
1216
+ - quote
1217
+ - from
1218
+ - to
1219
+ - amountType
1220
+ - currency
1221
+ - amount
1222
+ - transactionType
1223
+ properties:
1224
+ transferId:
1225
+ $ref: '#/components/schemas/transferId'
1226
+ quote:
1227
+ $ref: '#/components/schemas/quoteResponse'
1228
+ from:
1229
+ $ref: '#/components/schemas/transferPartyInbound'
1230
+ to:
1231
+ $ref: '#/components/schemas/transferPartyInbound'
1232
+ amountType:
1233
+ $ref: '#/components/schemas/amountType'
1234
+ currency:
1235
+ $ref: '#/components/schemas/currency'
1236
+ amount:
1237
+ $ref: '#/components/schemas/money'
1238
+ transactionType:
1239
+ $ref: '#/components/schemas/transactionType'
1240
+ note:
1241
+ maxLength: 128
1242
+ type: string
1243
+
1244
+ transferResponse:
1245
+ type: object
1246
+ required:
1247
+ - homeTransactionId
1248
+ - from
1249
+ - to
1250
+ - amountType
1251
+ - currency
1252
+ - amount
1253
+ - transactionType
1254
+ properties:
1255
+ transferId:
1256
+ $ref: '#/components/schemas/mojaloopIdentifier'
1257
+ homeTransactionId:
1258
+ $ref: '#/components/schemas/homeTransactionId'
1259
+ from:
1260
+ $ref: '#/components/schemas/transferParty'
1261
+ to:
1262
+ $ref: '#/components/schemas/transferParty'
1263
+ amountType:
1264
+ $ref: '#/components/schemas/amountType'
1265
+ currency:
1266
+ $ref: '#/components/schemas/currency'
1267
+ amount:
1268
+ $ref: '#/components/schemas/money'
1269
+ transactionType:
1270
+ $ref: '#/components/schemas/transactionType'
1271
+ note:
1272
+ maxLength: 128
1273
+ type: string
1274
+ currentState:
1275
+ $ref: '#/components/schemas/transferStatus'
1276
+ quoteId:
1277
+ $ref: '#/components/schemas/mojaloopIdentifier'
1278
+ quoteResponse:
1279
+ $ref: '#/components/schemas/quote'
1280
+ quoteResponseSource:
1281
+ $ref: '#/components/schemas/fspId'
1282
+ fulfil:
1283
+ $ref: '#/components/schemas/transferFulfilment'
1284
+ lastError:
1285
+ $ref: '#/components/schemas/transferError'
1286
+
1287
+ transferResponseInbound:
1288
+ type: object
1289
+ #required:
1290
+ #- homeTransactionId
1291
+ properties:
1292
+ homeTransactionId:
1293
+ $ref: '#/components/schemas/homeTransactionId'
1294
+
1295
+ transferState:
1296
+ type: string
1297
+ enum:
1298
+ - COMMITTED
1299
+ - ABORTED
1300
+ description: >
1301
+ Below are the allowed values for the enumeration
1302
+ - COMMITTED The transfer has been committed in the Switch. The Payee DFSP responds to the `COMMITTED` state with an HTTP 200 message, and then marks the transfer as completed. in its internal records.
1303
+ - ABORTED The transfer has been aborted in the Switch. The Payee DFSP responds to the `ABORTED` state with an HTTP 200 message, and then aborts the transfer in its internal records.
1304
+
1305
+ transferStatus:
1306
+ type: string
1307
+ enum:
1308
+ - ERROR_OCCURRED
1309
+ - WAITING_FOR_PARTY_ACCEPTANCE
1310
+ - WAITING_FOR_QUOTE_ACCEPTANCE
1311
+ - COMPLETED
1312
+ description: >
1313
+ Below are the allowed values for the enumeration
1314
+ - ERROR_OCCURRED An error has occurred during the transfer process.
1315
+ - WAITING_FOR_PARTY_ACCEPTANCE `AUTO_ACCEPT_PARTY` is set to "false" and party information has been returned, waiting to be accepted by the Payer DFSP using a `PUT /sendmoney/{transferId}` request.
1316
+ - WAITING_FOR_QUOTE_ACCEPTANCE `AUTO_ACCEPT_QUOTE` is set to "false" and quote information has been returned, waiting to be accepted by the Payer DFSP using a `PUT /sendmoney/{transferId}` request.
1317
+ - COMPLETED The transfer has completed successfully.
1318
+
1319
+ responses:
1320
+ '400':
1321
+ description: Malformed or missing required headers or parameters
1322
+ content:
1323
+ application/json:
1324
+ schema:
1325
+ $ref: '#/components/schemas/errorResponse'
1326
+ '404':
1327
+ description: The party specified by the provided identifier type and value is not known to the server
1328
+ '500':
1329
+ description: An error occurred processing the request
1330
+ content:
1331
+ application/json:
1332
+ schema:
1333
+ $ref: '#/components/schemas/errorResponse'
1334
+ transferSuccess:
1335
+ description: Transfer completed successfully
1336
+ content:
1337
+ application/json:
1338
+ schema:
1339
+ $ref: '#/components/schemas/transferResponse'
1340
+ transferBadRequest:
1341
+ description: Malformed or missing required body, headers or parameters
1342
+ content:
1343
+ application/json:
1344
+ schema:
1345
+ $ref: '#/components/schemas/errorTransferResponse'
1346
+ transferServerError:
1347
+ description: An error occurred processing the transfer
1348
+ content:
1349
+ application/json:
1350
+ schema:
1351
+ $ref: '#/components/schemas/errorTransferResponse'
1352
+ transferTimeout:
1353
+ description: Timeout occurred processing the transfer
1354
+ content:
1355
+ application/json:
1356
+ schema:
1357
+ $ref: '#/components/schemas/errorTransferResponse'
1358
+
1359
+ parameters:
1360
+ idType:
1361
+ name: idType
1362
+ in: path
1363
+ required: true
1364
+ schema:
1365
+ type: string
1366
+ enum:
1367
+ - MSISDN
1368
+ - ACCOUNT_ID
1369
+ description: Below are the allowed values for the enumeration.
1370
+ - MSISDN - An MSISDN (Mobile Station International Subscriber Directory Number, that is, the phone number) is used as reference to a participant. The MSISDN identifier should be in international format according to the [ITU-T E.164 standard](https://www.itu.int/rec/T-REC-E.164/en). Optionally, the MSISDN may be prefixed by a single plus sign, indicating the international prefix.
1371
+ - ACCOUNT_ID - A bank account number or FSP account ID should be used as reference to a participant. The ACCOUNT_ID identifier can be in any format, as formats can greatly differ depending on country and FSP.
1372
+
1373
+ idValue:
1374
+ name: idValue
1375
+ in: path
1376
+ required: true
1377
+ schema:
1378
+ type: string
1379
+ minLength: 1
1380
+ maxLength: 128
1381
+ description: Identifier of the party.
1382
+ transferId:
1383
+ name: transferId
1384
+ in: path
1385
+ required: true
1386
+ schema:
1387
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$
1388
+ type: string
1389
+ description: Transfer identifier.