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.
- package/.dockerignore +10 -0
- package/.grype.yaml +16 -0
- package/.ncurc.yaml +9 -0
- package/.nvmrc +1 -0
- package/.versionrc.js +16 -0
- package/CHANGELOG.md +504 -0
- package/CODEOWNERS +30 -0
- package/Dockerfile +42 -0
- package/Dockerfile-newman +13 -0
- package/LICENSE.md +9 -0
- package/README.md +119 -0
- package/assets/diagrams/architectural/architectural-diagram.svg +3 -0
- package/assets/diagrams/flow/flow-diagram.svg +3 -0
- package/assets/images/Sample-Response-Failure.png +0 -0
- package/assets/images/Screenshot 2020-04-16 at 22.58.04.png +0 -0
- package/assets/images/TLS-Enabled-on-Environment.png +0 -0
- package/assets/images/adapter-mutual-tls-enabled.png +0 -0
- package/assets/images/add-additional-input-values.png +0 -0
- package/assets/images/add-condition-button.png +0 -0
- package/assets/images/add-new-assertion.png +0 -0
- package/assets/images/add-new-input-value.png +0 -0
- package/assets/images/add-new-input-variable.png +0 -0
- package/assets/images/additional-transfers.png +0 -0
- package/assets/images/api-provisioning-add-new-api-confirmation.png +0 -0
- package/assets/images/api-provisioning-file-input-window.png +0 -0
- package/assets/images/api-provisioning-list-apis-view.png +0 -0
- package/assets/images/api-provisioning-menu-item.png +0 -0
- package/assets/images/apply_and_restart.jpg +0 -0
- package/assets/images/assess-request-or-response.png +0 -0
- package/assets/images/assess-response-equation-save.png +0 -0
- package/assets/images/assess-response-equation.png +0 -0
- package/assets/images/assess-response-status.png +0 -0
- package/assets/images/building-new-rules-file.png +0 -0
- package/assets/images/callback-rules-screen.png +0 -0
- package/assets/images/configurable-parameter-assertion.png +0 -0
- package/assets/images/configurable-parameter-currency.png +0 -0
- package/assets/images/configurable-parameter.png +0 -0
- package/assets/images/connection-manager-ui-opening.png +0 -0
- package/assets/images/create-inbound-user-simulator.png +0 -0
- package/assets/images/creating-new-rule-file.png +0 -0
- package/assets/images/dfsp-client-cacert.png +0 -0
- package/assets/images/dfsp-client-submit.png +0 -0
- package/assets/images/dfsp-client.png +0 -0
- package/assets/images/dfsp-p2p-happy-path.png +0 -0
- package/assets/images/dfsp-server-cacert.png +0 -0
- package/assets/images/dfsp-server-cert.png +0 -0
- package/assets/images/download-report.png +0 -0
- package/assets/images/drive_have_not_been_shared.jpg +0 -0
- package/assets/images/event-response-options.png +0 -0
- package/assets/images/expand-monitoring-messages.png +0 -0
- package/assets/images/fixed-response-sample.png +0 -0
- package/assets/images/header-selection.png +0 -0
- package/assets/images/heap_error_windows.jpg +0 -0
- package/assets/images/hosted-mode-docker-compose-intro.png +0 -0
- package/assets/images/hub-client-cert.png +0 -0
- package/assets/images/import-template.png +0 -0
- package/assets/images/inbound-requests-environment.png +0 -0
- package/assets/images/inbound-requests-scripts.png +0 -0
- package/assets/images/jws-certificate-submit.png +0 -0
- package/assets/images/jws-certificate.png +0 -0
- package/assets/images/jws-certs-keys.png +0 -0
- package/assets/images/jws-hub-certs-keys.png +0 -0
- package/assets/images/local-enable-jws-publickey.png +0 -0
- package/assets/images/local-mutual-tls-enabled.png +0 -0
- package/assets/images/local_drives_to_be_available.jpg +0 -0
- package/assets/images/mcm-environment-opening.png +0 -0
- package/assets/images/menu-items.png +0 -0
- package/assets/images/mock-response-sample.png +0 -0
- package/assets/images/monitoring-initial-state.png +0 -0
- package/assets/images/monitoring-messages.png +0 -0
- package/assets/images/new-empty-assertion.png +0 -0
- package/assets/images/opened-imported-template.png +0 -0
- package/assets/images/opening-default-settings.png +0 -0
- package/assets/images/opening-sync-response-rules.png +0 -0
- package/assets/images/opening-view.png +0 -0
- package/assets/images/outbound-display-opening-hub.png +0 -0
- package/assets/images/outbound-display-opening.png +0 -0
- package/assets/images/override-with-environment-variable.png +0 -0
- package/assets/images/populate-with-sample-body.png +0 -0
- package/assets/images/resource-selection.png +0 -0
- package/assets/images/rule-builder-select-api.png +0 -0
- package/assets/images/sample-condition-add-configurable-params.png +0 -0
- package/assets/images/sample-condition.png +0 -0
- package/assets/images/sample-editor.png +0 -0
- package/assets/images/sample-request.png +0 -0
- package/assets/images/sample-test-assertion.png +0 -0
- package/assets/images/send-transfer.png +0 -0
- package/assets/images/sending-single-test-case-1.png +0 -0
- package/assets/images/sending-single-test-case-2.png +0 -0
- package/assets/images/sending-test-cases.png +0 -0
- package/assets/images/server-certificates-submitted.png +0 -0
- package/assets/images/simulator-response.png +0 -0
- package/assets/images/simulator-scheme-adapter-endpoint.png +0 -0
- package/assets/images/summarized-view-of-rule.png +0 -0
- package/assets/images/template-window.png +0 -0
- package/assets/images/test-case-editor-console-log.png +0 -0
- package/assets/images/test-case-editor-environment-state.png +0 -0
- package/assets/images/test-case-editor-scripts.png +0 -0
- package/assets/images/test-case-editor.png +0 -0
- package/assets/images/testcase-definition-download.png +0 -0
- package/assets/images/testcase-definition-edit-meta-info.png +0 -0
- package/assets/images/testing-toolkit-mojaloop-testing-toolkit-endpoint.png +0 -0
- package/assets/images/tls-hub-certs-keys.png +0 -0
- package/assets/images/tls-jws-enabled-on-environment.png +0 -0
- package/assets/images/updated-sample-body-data.png +0 -0
- package/assets/images/using-configurable-parameter.png +0 -0
- package/assets/images/validation-rules-screen.png +0 -0
- package/assets/images/view-response.png +0 -0
- package/audit-ci.jsonc +7 -0
- package/connection-manager/docker-compose.yml +55 -0
- package/database/docker-compose.yml +16 -0
- package/docker/hosted-mode/docker-compose.yaml +107 -0
- package/docker/hosted-mode/keycloak/keycloak-realm.json +2298 -0
- package/docker/hosted-mode/mongo-init.sh +1 -0
- package/docker/hosted-mode-tls/docker-compose.yaml +171 -0
- package/docker/hosted-mode-tls/keycloak/keycloak-realm.json +2298 -0
- package/docker/hosted-mode-tls/mongo-init.sh +1 -0
- package/docker-compose.yml +62 -0
- package/documents/Mojaloop-Testing-Toolkit.md +296 -0
- package/documents/RULES_ENGINE.md +403 -0
- package/documents/User-Guide-API-Provisioning.md +121 -0
- package/documents/User-Guide-CLI.md +218 -0
- package/documents/User-Guide-Connection-Manager.md +282 -0
- package/documents/User-Guide-Frequently-Asked-Questions.md +39 -0
- package/documents/User-Guide-Hosted-Mode-Docker-Compose.md +110 -0
- package/documents/User-Guide-Installation.md +163 -0
- package/documents/User-Guide-Mojaloop-Testing-Toolkit.md +642 -0
- package/documents/User-Guide-OAuth-Server-Deployment.md +283 -0
- package/documents/User-Guide-Onboarding-DFSP.md +197 -0
- package/documents/User-Guide-Onboarding-HUB.md +191 -0
- package/documents/User-Guide.md +53 -0
- package/examples/collections/dfsp/p2p_failed_tests.json +7161 -0
- package/examples/collections/dfsp/p2p_fx_happy_path.json +502 -0
- package/examples/collections/dfsp/p2p_happy_path.json +350 -0
- package/examples/collections/dfsp/p2p_happy_path_extended.json +6106 -0
- package/examples/collections/dfsp/p2p_happy_path_jws.json +511 -0
- package/examples/collections/dfsp/p2p_payee_assertions_websocket.json +441 -0
- package/examples/collections/dfsp/sample.json +5029 -0
- package/examples/collections/dfsp/transaction_request_service.json +240 -0
- package/examples/collections/fxp/FXP.json +264 -0
- package/examples/collections/fxp/SDK_backend.json +98 -0
- package/examples/collections/fxp/SDK_outbound.json +163 -0
- package/examples/collections/hub/hub_01_p2p_happy_path/hub_p2p_receive_quote.json +400 -0
- package/examples/collections/hub/hub_01_p2p_happy_path/hub_p2p_send_quote.json +395 -0
- package/examples/collections/hub/hub_02_block_transfer/hub_block_transfer.json +393 -0
- package/examples/collections/hub/hub_03_funds_in_out/hub_funds_in.json +224 -0
- package/examples/collections/hub/hub_03_funds_in_out/hub_funds_out.json +780 -0
- package/examples/collections/hub/hub_04_settlements/hub_settlements.json +3138 -0
- package/examples/collections/hub/hub_05_transfer_negative_scenarios/hub_transfer_negative_payee_abort.json +475 -0
- package/examples/collections/hub/hub_05_transfer_negative_scenarios/hub_transfer_negative_payee_invalid_fulfillment.json +370 -0
- package/examples/collections/hub/hub_05_transfer_negative_scenarios/hub_transfer_negative_transfer_timeout.json +262 -0
- package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_authorizations.json +117 -0
- package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_error_framework.json +591 -0
- package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_received_state.json +379 -0
- package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_reject_state.json +361 -0
- package/examples/collections/hub/hub_07_quoting_service.json +525 -0
- package/examples/collections/hub/hub_08_participant_inactive_stop_transfers.json +706 -0
- package/examples/collections/hub/hub_09_duplicate_handling_transfers.json +1377 -0
- package/examples/collections/hub/hub_10_on_us_transfers.json +245 -0
- package/examples/collections/hub/hub_11_accented_and_spl_chars.json +629 -0
- package/examples/collections/hub/hub_12_fspiop_version_1.1.json +646 -0
- package/examples/collections/hub/hub_13_bulk_transfers.json +1857 -0
- package/examples/collections/iso20022/self_referencing_iso20022.json +926 -0
- package/examples/collections/provisioning/testingtoolkitdfsp.json +904 -0
- package/examples/environments/dfsp_local_environment.json +46 -0
- package/examples/environments/hub_local_environment.json +57 -0
- package/jest.config.js +17 -0
- package/package.json +199 -0
- package/sbom-v18.12.4.csv +1553 -0
- package/secrets/keygen.sh +5 -0
- package/secrets/privatekey.pem +27 -0
- package/secrets/publickey.cer +21 -0
- package/secrets/tls/01.pem +132 -0
- package/secrets/tls/createSecrets.sh +20 -0
- package/secrets/tls/hub_client.csr +32 -0
- package/secrets/tls/hub_client_cacert.pem +35 -0
- package/secrets/tls/hub_client_cakey.pem +52 -0
- package/secrets/tls/hub_client_key.key +52 -0
- package/secrets/tls/hub_server.csr +31 -0
- package/secrets/tls/hub_server_cacert.pem +35 -0
- package/secrets/tls/hub_server_cakey.pem +52 -0
- package/secrets/tls/hub_server_cert.pem +132 -0
- package/secrets/tls/hub_server_key.key +52 -0
- package/secrets/tls/index.txt +1 -0
- package/secrets/tls/index.txt.attr +1 -0
- package/secrets/tls/openssl-client.cnf +36 -0
- package/secrets/tls/openssl-clientca.cnf +71 -0
- package/secrets/tls/openssl-server.cnf +39 -0
- package/secrets/tls/openssl-serverca.cnf +71 -0
- package/secrets/tls/serial.txt +1 -0
- package/spec_files/api_definitions/als_admin_1.1/api_spec.yaml +804 -0
- package/spec_files/api_definitions/central_admin_1.0/api_spec.yaml +1850 -0
- package/spec_files/api_definitions/central_admin_1.0/response_map.json +96 -0
- package/spec_files/api_definitions/central_admin_old_9.3/api_spec.yaml +2467 -0
- package/spec_files/api_definitions/central_admin_old_9.3/response_map.json +96 -0
- package/spec_files/api_definitions/fspiop_1.0/api_spec.yaml +4187 -0
- package/spec_files/api_definitions/fspiop_1.0/callback_map.json +568 -0
- package/spec_files/api_definitions/fspiop_1.0/mockRef.json +79 -0
- package/spec_files/api_definitions/fspiop_1.0/trigger_templates/transaction_request_followup.json +126 -0
- package/spec_files/api_definitions/fspiop_1.0/trigger_templates/transaction_request_followup_quotes_only.json +97 -0
- package/spec_files/api_definitions/fspiop_1.1/api_spec.yaml +3778 -0
- package/spec_files/api_definitions/fspiop_1.1/callback_map.json +568 -0
- package/spec_files/api_definitions/fspiop_1.1/mockRef.json +79 -0
- package/spec_files/api_definitions/fspiop_1.1/trigger_templates/transaction_request_followup.json +125 -0
- package/spec_files/api_definitions/fspiop_2.0/api_spec.yaml +4839 -0
- package/spec_files/api_definitions/fspiop_2.0/callback_map.json +716 -0
- package/spec_files/api_definitions/fspiop_2.0/mockRef.json +79 -0
- package/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json +125 -0
- package/spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml +8331 -0
- package/spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json +508 -0
- package/spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json +66 -0
- package/spec_files/api_definitions/fx-api_2.0/api_spec.yaml +1768 -0
- package/spec_files/api_definitions/fx-api_2.0/callback_map.json +188 -0
- package/spec_files/api_definitions/fx-api_2.0/mockRef.json +83 -0
- package/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +2612 -0
- package/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/mockRef.json +22 -0
- package/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/response_map.json +35 -0
- package/spec_files/api_definitions/mojaloop_simulator_0.1/api_spec.yaml +225 -0
- package/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml +1087 -0
- package/spec_files/api_definitions/mojaloop_simulator_sim_1.4/mockRef.json +75 -0
- package/spec_files/api_definitions/mojaloop_simulator_sim_1.4/response_map.json +55 -0
- package/spec_files/api_definitions/payment_manager_1.4/api_spec.yaml +1389 -0
- package/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +2834 -0
- package/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +3449 -0
- package/spec_files/api_definitions/settlements_1.0/api_spec.yaml +983 -0
- package/spec_files/api_definitions/settlements_1.0/mockRef.json +38 -0
- package/spec_files/api_definitions/settlements_1.0/response_map.json +34 -0
- package/spec_files/api_definitions/settlements_2.0/api_spec.yaml +1001 -0
- package/spec_files/api_definitions/settlements_2.0/mockRef.json +38 -0
- package/spec_files/api_definitions/settlements_2.0/response_map.json +34 -0
- package/spec_files/api_definitions/thirdparty_sdk_outbound_0.1/api_spec.yaml +2139 -0
- package/spec_files/reports/templates/newman/html_template.html +1202 -0
- package/spec_files/reports/templates/newman/pdf_template.html +790 -0
- package/spec_files/reports/templates/testcase_definition/table_view.html +1602 -0
- package/spec_files/rules_callback/config.json +3 -0
- package/spec_files/rules_callback/default.json +2698 -0
- package/spec_files/rules_callback/p2p-limit.json +129 -0
- package/spec_files/rules_forward/config.json +3 -0
- package/spec_files/rules_forward/default.json +482 -0
- package/spec_files/rules_response/config.json +3 -0
- package/spec_files/rules_response/default.json +295 -0
- package/spec_files/rules_validation/config.json +3 -0
- package/spec_files/rules_validation/default.json +1 -0
- package/spec_files/rules_validation/p2p-limit.json +55 -0
- package/spec_files/system_config.json +175 -0
- package/spec_files/user_config.json +109 -0
- package/src/index.js +67 -0
- package/src/lib/MyEventEmitter.js +54 -0
- package/src/lib/api-management.js +143 -0
- package/src/lib/api-routes/config.js +83 -0
- package/src/lib/api-routes/history.js +139 -0
- package/src/lib/api-routes/keycloak.js +54 -0
- package/src/lib/api-routes/longpolling.js +70 -0
- package/src/lib/api-routes/oauth2.js +149 -0
- package/src/lib/api-routes/objectstore.js +53 -0
- package/src/lib/api-routes/openapi.js +224 -0
- package/src/lib/api-routes/outbound.js +134 -0
- package/src/lib/api-routes/reports.js +72 -0
- package/src/lib/api-routes/rules.js +356 -0
- package/src/lib/api-routes/samples.js +92 -0
- package/src/lib/api-routes/server-logs.js +44 -0
- package/src/lib/api-routes/settings.js +71 -0
- package/src/lib/api-server.js +135 -0
- package/src/lib/arrayStore.js +101 -0
- package/src/lib/callbackHandler.js +201 -0
- package/src/lib/config.js +177 -0
- package/src/lib/configuration-providers/mb-connection-manager.js +625 -0
- package/src/lib/db/adapters/dbAdapter.js +184 -0
- package/src/lib/db/dfspMockUsers.js +64 -0
- package/src/lib/db/models/mongoDBWrapper.js +78 -0
- package/src/lib/eventListenerClient/inboundEventListener.js +176 -0
- package/src/lib/fileAdapter.js +57 -0
- package/src/lib/httpAgentStore.js +135 -0
- package/src/lib/importExport.js +186 -0
- package/src/lib/jws/JwsSigning.js +141 -0
- package/src/lib/loadSamples.js +128 -0
- package/src/lib/logger.js +20 -0
- package/src/lib/longpollingEmitter.js +56 -0
- package/src/lib/metrics.js +51 -0
- package/src/lib/mocking/custom-functions/generic.js +57 -0
- package/src/lib/mocking/middleware-functions/ilpModel.js +238 -0
- package/src/lib/mocking/middleware-functions/quotesAssociation.js +75 -0
- package/src/lib/mocking/middleware-functions/transactionRequestsService.js +78 -0
- package/src/lib/mocking/openApiDefinitionsModel.js +64 -0
- package/src/lib/mocking/openApiMockHandler.js +466 -0
- package/src/lib/mocking/openApiRulesEngine.js +492 -0
- package/src/lib/mocking/openApiVersionTools.js +136 -0
- package/src/lib/mocking/transformers/fspiopToISO20022.js +230 -0
- package/src/lib/mocking/transformers/index.js +41 -0
- package/src/lib/notificationEmitter.js +64 -0
- package/src/lib/oauth/KeycloakHelper.js +220 -0
- package/src/lib/oauth/LoginService.js +133 -0
- package/src/lib/oauth/OAuthHelper.js +181 -0
- package/src/lib/oauth/OAuthValidator.js +118 -0
- package/src/lib/oauth/Wso2Client.js +64 -0
- package/src/lib/objectStore/inMemoryImpl.js +50 -0
- package/src/lib/objectStore/objectStoreInterface.js +51 -0
- package/src/lib/objectStore.js +122 -0
- package/src/lib/report-generator/generator.js +126 -0
- package/src/lib/report-generator/helpers.js +154 -0
- package/src/lib/requestLogger.js +190 -0
- package/src/lib/resources/wso2carbon-publickey.cert +20 -0
- package/src/lib/rulesEngine.js +95 -0
- package/src/lib/rulesEngineModel.js +463 -0
- package/src/lib/scripting-engines/postman-sandbox.js +142 -0
- package/src/lib/scripting-engines/vm-javascript-sandbox.js +294 -0
- package/src/lib/server-logs/adapters/elastic-search.js +102 -0
- package/src/lib/server-logs/adapters/grafana.js +0 -0
- package/src/lib/server-logs/index.js +75 -0
- package/src/lib/socket-server.js +55 -0
- package/src/lib/storageAdapter.js +109 -0
- package/src/lib/test-outbound/TestCaseRunner.js +173 -0
- package/src/lib/test-outbound/getTracing.js +19 -0
- package/src/lib/test-outbound/outbound-initiator.js +1107 -0
- package/src/lib/uniqueIdGenerator.js +35 -0
- package/src/lib/utils.js +89 -0
- package/src/lib/utilsInternal.js +56 -0
- package/src/lib/webSocketClient/WebSocketClientManager.js +197 -0
- 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.
|