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,2139 @@
|
|
|
1
|
+
openapi: 3.0.1
|
|
2
|
+
info:
|
|
3
|
+
title: Mojaloop Thirdparty Outbound SDK
|
|
4
|
+
description: >
|
|
5
|
+
Specification for the Thirdparty Outbound SDK API.
|
|
6
|
+
|
|
7
|
+
This API is a synchronous API which makes integrating with the Mojaloop 3rd
|
|
8
|
+
Party API easier.
|
|
9
|
+
|
|
10
|
+
Please see other documentation on
|
|
11
|
+
https://github.com/mojaloop/thirdparty-sdk for more information.
|
|
12
|
+
license:
|
|
13
|
+
name: Apache 2.0
|
|
14
|
+
version: 0.1.0
|
|
15
|
+
servers:
|
|
16
|
+
- url: 'http://sandbox.mojaloop.io/switch-ttk-backend'
|
|
17
|
+
description: The mock 3p-scheme-adapter server running in the Mojaloop Sandbox
|
|
18
|
+
- url: 'http://localhost:15000'
|
|
19
|
+
description: A locally running TTK instance
|
|
20
|
+
paths:
|
|
21
|
+
/health:
|
|
22
|
+
get:
|
|
23
|
+
tags:
|
|
24
|
+
- health
|
|
25
|
+
responses:
|
|
26
|
+
'200':
|
|
27
|
+
$ref: '#/components/responses/200'
|
|
28
|
+
'400':
|
|
29
|
+
$ref: '#/components/responses/400'
|
|
30
|
+
'401':
|
|
31
|
+
$ref: '#/components/responses/401'
|
|
32
|
+
'403':
|
|
33
|
+
$ref: '#/components/responses/403'
|
|
34
|
+
'404':
|
|
35
|
+
$ref: '#/components/responses/404'
|
|
36
|
+
'405':
|
|
37
|
+
$ref: '#/components/responses/405'
|
|
38
|
+
'406':
|
|
39
|
+
$ref: '#/components/responses/406'
|
|
40
|
+
'501':
|
|
41
|
+
$ref: '#/components/responses/501'
|
|
42
|
+
'503':
|
|
43
|
+
$ref: '#/components/responses/503'
|
|
44
|
+
operationId: HealthGet
|
|
45
|
+
summary: Health check endpoint
|
|
46
|
+
description: >-
|
|
47
|
+
The HTTP request GET /health is used to return the current status of the
|
|
48
|
+
API.
|
|
49
|
+
/metrics:
|
|
50
|
+
get:
|
|
51
|
+
tags:
|
|
52
|
+
- health
|
|
53
|
+
responses:
|
|
54
|
+
'200':
|
|
55
|
+
$ref: '#/components/responses/200'
|
|
56
|
+
'400':
|
|
57
|
+
$ref: '#/components/responses/400'
|
|
58
|
+
'401':
|
|
59
|
+
$ref: '#/components/responses/401'
|
|
60
|
+
'403':
|
|
61
|
+
$ref: '#/components/responses/403'
|
|
62
|
+
'404':
|
|
63
|
+
$ref: '#/components/responses/404'
|
|
64
|
+
'405':
|
|
65
|
+
$ref: '#/components/responses/405'
|
|
66
|
+
'406':
|
|
67
|
+
$ref: '#/components/responses/406'
|
|
68
|
+
'501':
|
|
69
|
+
$ref: '#/components/responses/501'
|
|
70
|
+
'503':
|
|
71
|
+
$ref: '#/components/responses/503'
|
|
72
|
+
operationId: MetricsGet
|
|
73
|
+
summary: Prometheus metrics endpoint
|
|
74
|
+
description: The HTTP request GET /metrics is used to return metrics for the API.
|
|
75
|
+
/thirdpartyTransaction/partyLookup:
|
|
76
|
+
post:
|
|
77
|
+
operationId: ThirdpartyTransactionPartyLookup
|
|
78
|
+
summary: Thirdparty transaction party lookup.
|
|
79
|
+
description: >
|
|
80
|
+
The HTTP request `POST /thirdpartyTransaction/partyLookup` is used to
|
|
81
|
+
lookup information regarding the requested Party, defined by `Type`,
|
|
82
|
+
`ID` and optionally `SubId`.
|
|
83
|
+
tags:
|
|
84
|
+
- thirdpartyRequests
|
|
85
|
+
requestBody:
|
|
86
|
+
description: Thirdparty transaction party lookup body.
|
|
87
|
+
required: true
|
|
88
|
+
content:
|
|
89
|
+
application/json:
|
|
90
|
+
schema:
|
|
91
|
+
$ref: '#/components/schemas/ThirdpartyTransactionPartyLookupRequest'
|
|
92
|
+
example:
|
|
93
|
+
transactionRequestId: b51ec534-ee48-4575-b6a9-ead2955b8069
|
|
94
|
+
payee:
|
|
95
|
+
partyIdType: MSISDN
|
|
96
|
+
partyIdentifier: '16135551212'
|
|
97
|
+
responses:
|
|
98
|
+
'200':
|
|
99
|
+
$ref: '#/components/responses/ThirdpartyTransactionPartyLookupResponse'
|
|
100
|
+
default:
|
|
101
|
+
$ref: '#/components/responses/400'
|
|
102
|
+
'/thirdpartyTransaction/{ID}/initiate':
|
|
103
|
+
post:
|
|
104
|
+
operationId: ThirdpartyTransactionIDInitiate
|
|
105
|
+
summary: Initiates a third party transaction.
|
|
106
|
+
description: >
|
|
107
|
+
The HTTP request `POST /thirdpartyTransaction/{ID}/initiate` is sent to
|
|
108
|
+
the Switch to initiate a third party request transaction.
|
|
109
|
+
tags:
|
|
110
|
+
- thirdpartyRequests
|
|
111
|
+
parameters:
|
|
112
|
+
- $ref: '#/components/parameters/ID'
|
|
113
|
+
requestBody:
|
|
114
|
+
description: Thirdparty transaction initiate request body.
|
|
115
|
+
required: true
|
|
116
|
+
content:
|
|
117
|
+
application/json:
|
|
118
|
+
schema:
|
|
119
|
+
$ref: '#/components/schemas/ThirdpartyTransactionIDInitiateRequest'
|
|
120
|
+
example:
|
|
121
|
+
payee:
|
|
122
|
+
name: Bob bobbington
|
|
123
|
+
partyIdInfo:
|
|
124
|
+
fspId: dfspb
|
|
125
|
+
partyIdType: MSISDN
|
|
126
|
+
partyIdentifier: '16135551212'
|
|
127
|
+
payer:
|
|
128
|
+
partyIdType: THIRD_PARTY_LINK
|
|
129
|
+
partyIdentifier: '16135551212'
|
|
130
|
+
fspId: dfspa
|
|
131
|
+
amountType: RECEIVE
|
|
132
|
+
amount:
|
|
133
|
+
currency: USD
|
|
134
|
+
amount: '123.47'
|
|
135
|
+
transactionType:
|
|
136
|
+
scenario: DEPOSIT
|
|
137
|
+
initiator: PAYER
|
|
138
|
+
initiatorType: CONSUMER
|
|
139
|
+
expiration: '2021-05-24T08:38:08.699-04:00'
|
|
140
|
+
responses:
|
|
141
|
+
'200':
|
|
142
|
+
$ref: '#/components/responses/ThirdpartyTransactionIDInitiateResponse'
|
|
143
|
+
default:
|
|
144
|
+
$ref: '#/components/responses/400'
|
|
145
|
+
'/thirdpartyTransaction/{ID}/approve':
|
|
146
|
+
post:
|
|
147
|
+
operationId: ThirdpartyTransactionIDApprove
|
|
148
|
+
summary: Approve a third party transaction.
|
|
149
|
+
description: >
|
|
150
|
+
The HTTP request `POST /thirdpartyTransaction/{ID}/approve` is used to
|
|
151
|
+
approve a third party transaction .
|
|
152
|
+
tags:
|
|
153
|
+
- thirdpartyRequests
|
|
154
|
+
parameters:
|
|
155
|
+
- $ref: '#/components/parameters/ID'
|
|
156
|
+
requestBody:
|
|
157
|
+
description: >-
|
|
158
|
+
Thirdparty transaction approve request body contains Authorization
|
|
159
|
+
details
|
|
160
|
+
required: true
|
|
161
|
+
content:
|
|
162
|
+
application/json:
|
|
163
|
+
schema:
|
|
164
|
+
$ref: '#/components/schemas/ThirdpartyTransactionIDApproveRequest'
|
|
165
|
+
example:
|
|
166
|
+
authorizationResponse:
|
|
167
|
+
authenticationInfo:
|
|
168
|
+
authentication: U2F
|
|
169
|
+
authenticationValue:
|
|
170
|
+
pinValue: xxxxxxxxxxx
|
|
171
|
+
counter: '1'
|
|
172
|
+
responseType: ENTERED
|
|
173
|
+
responses:
|
|
174
|
+
'200':
|
|
175
|
+
$ref: '#/components/responses/ThirdpartyTransactionIDApproveResponse'
|
|
176
|
+
default:
|
|
177
|
+
$ref: '#/components/responses/400'
|
|
178
|
+
/linking/providers:
|
|
179
|
+
get:
|
|
180
|
+
operationId: GetLinkingProviders
|
|
181
|
+
summary: GetLinkingProviders
|
|
182
|
+
description: >
|
|
183
|
+
The HTTP request `GET /linking/providers` is used to retrieve a list of
|
|
184
|
+
thirdparty enabled DFSP identifiers.
|
|
185
|
+
tags:
|
|
186
|
+
- linking
|
|
187
|
+
responses:
|
|
188
|
+
'200':
|
|
189
|
+
$ref: '#/components/responses/LinkingProvidersResponse'
|
|
190
|
+
default:
|
|
191
|
+
$ref: '#/components/responses/400'
|
|
192
|
+
'/linking/accounts/{fspId}/{userId}':
|
|
193
|
+
get:
|
|
194
|
+
operationId: GetLinkingAccountsByUserId
|
|
195
|
+
summary: GetLinkingAccountsByUserId
|
|
196
|
+
description: >
|
|
197
|
+
The HTTP request `GET /linking/accounts/{fspId}/{userId}` is used to
|
|
198
|
+
retrieve the list of potential accounts available for linking.
|
|
199
|
+
tags:
|
|
200
|
+
- linking
|
|
201
|
+
parameters:
|
|
202
|
+
- name: fspId
|
|
203
|
+
in: path
|
|
204
|
+
required: true
|
|
205
|
+
schema:
|
|
206
|
+
$ref: '#/components/schemas/FspId'
|
|
207
|
+
- name: userId
|
|
208
|
+
in: path
|
|
209
|
+
required: true
|
|
210
|
+
schema:
|
|
211
|
+
$ref: '#/components/schemas/AccountId'
|
|
212
|
+
responses:
|
|
213
|
+
'200':
|
|
214
|
+
$ref: '#/components/responses/AccountsByUserIdResponse'
|
|
215
|
+
default:
|
|
216
|
+
$ref: '#/components/responses/400'
|
|
217
|
+
/linking/request-consent:
|
|
218
|
+
post:
|
|
219
|
+
operationId: PostLinkingRequestConsent
|
|
220
|
+
summary: PostLinkingRequestConsent
|
|
221
|
+
description: >
|
|
222
|
+
The HTTP request `POST /linking/request-consent` is used to by a PISP to
|
|
223
|
+
ask
|
|
224
|
+
|
|
225
|
+
a specific DFSP to start the process of establishing consent between
|
|
226
|
+
three parties.
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
- The PISP
|
|
230
|
+
|
|
231
|
+
- The DFSP
|
|
232
|
+
|
|
233
|
+
- A user presumed to be a customer of 'The DFSP'
|
|
234
|
+
tags:
|
|
235
|
+
- linking
|
|
236
|
+
requestBody:
|
|
237
|
+
description: Consent requests validate request details
|
|
238
|
+
required: true
|
|
239
|
+
content:
|
|
240
|
+
application/json:
|
|
241
|
+
schema:
|
|
242
|
+
$ref: '#/components/schemas/LinkingRequestConsentPostRequest'
|
|
243
|
+
example:
|
|
244
|
+
consentRequestId: f6ab43b0-71cc-49f9-b763-2ac3f05ac8c1
|
|
245
|
+
toParticipantId: dfspa
|
|
246
|
+
accounts:
|
|
247
|
+
- accountNickname: SpeXXXXXXXXnt
|
|
248
|
+
id: dfspa.username.5678
|
|
249
|
+
currency: USD
|
|
250
|
+
actions:
|
|
251
|
+
- accounts.transfer
|
|
252
|
+
userId: username1234
|
|
253
|
+
callbackUri: 'pisp-app://callback'
|
|
254
|
+
responses:
|
|
255
|
+
'200':
|
|
256
|
+
$ref: '#/components/responses/LinkingRequestConsentResponse'
|
|
257
|
+
default:
|
|
258
|
+
$ref: '#/components/responses/400'
|
|
259
|
+
'/linking/request-consent/{ID}/authenticate':
|
|
260
|
+
patch:
|
|
261
|
+
operationId: PatchLinkingRequestConsentIDAuthenticate
|
|
262
|
+
summary: 'Outbound PATCH /linking/request-consent/{ID}/authenticate endpoint'
|
|
263
|
+
description: >
|
|
264
|
+
Used in the authentication phase of account linking.
|
|
265
|
+
|
|
266
|
+
Used by the PISP to pass an Auth token on behalf of the user to the DFSP
|
|
267
|
+
to establish a chain of trust.
|
|
268
|
+
tags:
|
|
269
|
+
- linking
|
|
270
|
+
parameters:
|
|
271
|
+
- name: ID
|
|
272
|
+
in: path
|
|
273
|
+
required: true
|
|
274
|
+
schema:
|
|
275
|
+
$ref: '#/components/schemas/CorrelationId'
|
|
276
|
+
requestBody:
|
|
277
|
+
description: Linking request consent authenticate request details
|
|
278
|
+
required: true
|
|
279
|
+
content:
|
|
280
|
+
application/json:
|
|
281
|
+
schema:
|
|
282
|
+
$ref: '#/components/schemas/LinkingRequestConsentIDAuthenticateRequest'
|
|
283
|
+
example:
|
|
284
|
+
authToken: '123456'
|
|
285
|
+
responses:
|
|
286
|
+
'200':
|
|
287
|
+
$ref: '#/components/responses/LinkingRequestConsentIDAuthenticateResponse'
|
|
288
|
+
default:
|
|
289
|
+
$ref: '#/components/responses/400'
|
|
290
|
+
'/linking/request-consent/{ID}/pass-credential':
|
|
291
|
+
post:
|
|
292
|
+
operationId: PostLinkingRequestConsentIDPassCredential
|
|
293
|
+
summary: 'Outbound POST /linking/request-consent/{ID}/pass-credential endpoint'
|
|
294
|
+
description: >
|
|
295
|
+
Used in the credential registration phase of account linking.
|
|
296
|
+
|
|
297
|
+
Used by the PISP to pass an credential on behalf of the user to the
|
|
298
|
+
DFSP.
|
|
299
|
+
tags:
|
|
300
|
+
- linking
|
|
301
|
+
parameters:
|
|
302
|
+
- name: ID
|
|
303
|
+
in: path
|
|
304
|
+
required: true
|
|
305
|
+
schema:
|
|
306
|
+
$ref: '#/components/schemas/CorrelationId'
|
|
307
|
+
requestBody:
|
|
308
|
+
description: Linking request consent pass credential request details
|
|
309
|
+
required: true
|
|
310
|
+
content:
|
|
311
|
+
application/json:
|
|
312
|
+
schema:
|
|
313
|
+
$ref: >-
|
|
314
|
+
#/components/schemas/LinkingRequestConsentIDPassCredentialRequest
|
|
315
|
+
example:
|
|
316
|
+
credential:
|
|
317
|
+
credentialType: FIDO
|
|
318
|
+
status: PENDING
|
|
319
|
+
payload:
|
|
320
|
+
id: >-
|
|
321
|
+
HskU2gw4np09IUtYNHnxMM696jJHqvccUdBmd0xP6XEWwH0xLei1PUzDJCM19SZ3A2Ex0fNLw0nc2hrIlFnAtw
|
|
322
|
+
rawId: >-
|
|
323
|
+
HskU2gw4np09IUtYNHnxMM696jJHqvccUdBmd0xP6XEWwH0xLei1PUzDJCM19SZ3A2Ex0fNLw0nc2hrIlFnAtw==
|
|
324
|
+
response:
|
|
325
|
+
clientDataJSON: >-
|
|
326
|
+
eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiWXpSaFpHRmlZak16WlRrek1EWmlNRE00TURnNE1UTXlZV1ptWTJSbE5UVTJZelV3WkRneVpqWXdNMlkwTnpjeE1XRTVOVEV3WW1ZelltVmxaalprTmciLCJvcmlnaW4iOiJodHRwOi8vbG9jYWxob3N0OjQyMTgxIiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ==
|
|
327
|
+
attestationObject: >-
|
|
328
|
+
o2NmbXRmcGFja2VkZ2F0dFN0bXSjY2FsZyZjc2lnWEcwRQIhAN2JDPPTse/45EHSqSpEJiiok5sns+HqdJch3+gsL09VAiAh7W7ZhQC8gMIkgwcA+S4rQkaHoHnP9AkkohaKCuuA62N4NWOBWQLBMIICvTCCAaWgAwIBAgIECwXNUzANBgkqhkiG9w0BAQsFADAuMSwwKgYDVQQDEyNZdWJpY28gVTJGIFJvb3QgQ0EgU2VyaWFsIDQ1NzIwMDYzMTAgFw0xNDA4MDEwMDAwMDBaGA8yMDUwMDkwNDAwMDAwMFowbjELMAkGA1UEBhMCU0UxEjAQBgNVBAoMCVl1YmljbyBBQjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjEnMCUGA1UEAwweWXViaWNvIFUyRiBFRSBTZXJpYWwgMTg0OTI5NjE5MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIRpvsbWJJcsKwRhffCrjqLSIEBR5sR7/9VXgfZdRvSsXaiUt7lns44WZIFuz6ii/j9f8fadcBUJyrkhY5ZH8WqNsMGowIgYJKwYBBAGCxAoCBBUxLjMuNi4xLjQuMS40MTQ4Mi4xLjEwEwYLKwYBBAGC5RwCAQEEBAMCBDAwIQYLKwYBBAGC5RwBAQQEEgQQFJogIY72QTOWuIH41bfx9TAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA+/qPfPSrgclePfgTQ3VpLaNsBr+hjLhi04LhzQxiRGWwYS+vB1TOiPXeLsQQIwbmqQU51doVbCTaXGLNIr1zvbLAwhnLWH7i9m4ahCqaCzowtTvCQ7VBUGP5T1M4eYnoo83IDCVjQj/pZG8QYgOGOigztGoWAf5CWcUF6C0UyFbONwUcqJEl2QLToa/7E8VRjm4W46IAUljYkODVZASv8h3wLROx9p5TSBlSymtwdulxQe/DKbfNSvM3edA0up+EIJKLOOU+QTR2ZQV46fEW1/ih6m8vcaY6L3NW0eYpc7TXeijUJAgoUtya/vzmnRAecuY9bncoJt8PrvL2ir2kDaGF1dGhEYXRhWMRJlg3liA6MaHQ0Fw9kdmBbj+SuuaKGMseZXPO6gx2XY0EAAAAEFJogIY72QTOWuIH41bfx9QBAHskU2gw4np09IUtYNHnxMM696jJHqvccUdBmd0xP6XEWwH0xLei1PUzDJCM19SZ3A2Ex0fNLw0nc2hrIlFnAt6UBAgMmIAEhWCBYz+SV6fSy7ZjFzdj+SWxaMbfaw4ZT+wYgClN3v93kVSJYIGSzY41DNLrh1jXp4J53qCnq4+b9HYXud/0UEsZquDeV
|
|
329
|
+
type: public-key
|
|
330
|
+
responses:
|
|
331
|
+
'200':
|
|
332
|
+
$ref: '#/components/responses/LinkingRequestConsentIDPassCredentialResponse'
|
|
333
|
+
default:
|
|
334
|
+
$ref: '#/components/responses/400'
|
|
335
|
+
components:
|
|
336
|
+
responses:
|
|
337
|
+
'200':
|
|
338
|
+
description: OK
|
|
339
|
+
'400':
|
|
340
|
+
description: Bad Request
|
|
341
|
+
content:
|
|
342
|
+
application/json:
|
|
343
|
+
schema:
|
|
344
|
+
$ref: '#/components/schemas/ErrorInformationResponse'
|
|
345
|
+
headers:
|
|
346
|
+
Content-Length:
|
|
347
|
+
$ref: '#/components/headers/Content-Length'
|
|
348
|
+
Content-Type:
|
|
349
|
+
$ref: '#/components/headers/Content-Type'
|
|
350
|
+
'401':
|
|
351
|
+
description: Unauthorized
|
|
352
|
+
content:
|
|
353
|
+
application/json:
|
|
354
|
+
schema:
|
|
355
|
+
$ref: '#/components/schemas/ErrorInformationResponse'
|
|
356
|
+
headers:
|
|
357
|
+
Content-Length:
|
|
358
|
+
$ref: '#/components/headers/Content-Length'
|
|
359
|
+
Content-Type:
|
|
360
|
+
$ref: '#/components/headers/Content-Type'
|
|
361
|
+
'403':
|
|
362
|
+
description: Forbidden
|
|
363
|
+
content:
|
|
364
|
+
application/json:
|
|
365
|
+
schema:
|
|
366
|
+
$ref: '#/components/schemas/ErrorInformationResponse'
|
|
367
|
+
headers:
|
|
368
|
+
Content-Length:
|
|
369
|
+
$ref: '#/components/headers/Content-Length'
|
|
370
|
+
Content-Type:
|
|
371
|
+
$ref: '#/components/headers/Content-Type'
|
|
372
|
+
'404':
|
|
373
|
+
description: Not Found
|
|
374
|
+
content:
|
|
375
|
+
application/json:
|
|
376
|
+
schema:
|
|
377
|
+
$ref: '#/components/schemas/ErrorInformationResponse'
|
|
378
|
+
headers:
|
|
379
|
+
Content-Length:
|
|
380
|
+
$ref: '#/components/headers/Content-Length'
|
|
381
|
+
Content-Type:
|
|
382
|
+
$ref: '#/components/headers/Content-Type'
|
|
383
|
+
'405':
|
|
384
|
+
description: Method Not Allowed
|
|
385
|
+
content:
|
|
386
|
+
application/json:
|
|
387
|
+
schema:
|
|
388
|
+
$ref: '#/components/schemas/ErrorInformationResponse'
|
|
389
|
+
headers:
|
|
390
|
+
Content-Length:
|
|
391
|
+
$ref: '#/components/headers/Content-Length'
|
|
392
|
+
Content-Type:
|
|
393
|
+
$ref: '#/components/headers/Content-Type'
|
|
394
|
+
'406':
|
|
395
|
+
description: Not Acceptable
|
|
396
|
+
content:
|
|
397
|
+
application/json:
|
|
398
|
+
schema:
|
|
399
|
+
$ref: '#/components/schemas/ErrorInformationResponse'
|
|
400
|
+
headers:
|
|
401
|
+
Content-Length:
|
|
402
|
+
$ref: '#/components/headers/Content-Length'
|
|
403
|
+
Content-Type:
|
|
404
|
+
$ref: '#/components/headers/Content-Type'
|
|
405
|
+
'501':
|
|
406
|
+
description: Not Implemented
|
|
407
|
+
content:
|
|
408
|
+
application/json:
|
|
409
|
+
schema:
|
|
410
|
+
$ref: '#/components/schemas/ErrorInformationResponse'
|
|
411
|
+
headers:
|
|
412
|
+
Content-Length:
|
|
413
|
+
$ref: '#/components/headers/Content-Length'
|
|
414
|
+
Content-Type:
|
|
415
|
+
$ref: '#/components/headers/Content-Type'
|
|
416
|
+
'503':
|
|
417
|
+
description: Service Unavailable
|
|
418
|
+
content:
|
|
419
|
+
application/json:
|
|
420
|
+
schema:
|
|
421
|
+
$ref: '#/components/schemas/ErrorInformationResponse'
|
|
422
|
+
headers:
|
|
423
|
+
Content-Length:
|
|
424
|
+
$ref: '#/components/headers/Content-Length'
|
|
425
|
+
Content-Type:
|
|
426
|
+
$ref: '#/components/headers/Content-Type'
|
|
427
|
+
ThirdpartyTransactionPartyLookupResponse:
|
|
428
|
+
description: ThirdpartyTransaction partyLookup response
|
|
429
|
+
content:
|
|
430
|
+
application/json:
|
|
431
|
+
schema:
|
|
432
|
+
$ref: '#/components/schemas/ThirdpartyTransactionPartyLookupResponse'
|
|
433
|
+
example:
|
|
434
|
+
currentState: partyLookupSuccess
|
|
435
|
+
party:
|
|
436
|
+
partyIdInfo:
|
|
437
|
+
partyIdType: MSISDN
|
|
438
|
+
partyIdentifier: '16135551212'
|
|
439
|
+
fspId: dfspb
|
|
440
|
+
name: Bob bobbington
|
|
441
|
+
ThirdpartyTransactionIDInitiateResponse:
|
|
442
|
+
description: ThirdpartyTransactionIDInitiate response
|
|
443
|
+
content:
|
|
444
|
+
application/json:
|
|
445
|
+
schema:
|
|
446
|
+
$ref: '#/components/schemas/ThirdpartyTransactionIDInitiateResponse'
|
|
447
|
+
example:
|
|
448
|
+
currentState: authorizationReceived
|
|
449
|
+
authorization:
|
|
450
|
+
authenticationType: U2F
|
|
451
|
+
retriesLeft: '1'
|
|
452
|
+
amount:
|
|
453
|
+
currency: USD
|
|
454
|
+
amount: '10.00'
|
|
455
|
+
transactionId: 1234-1234-1234-1234
|
|
456
|
+
transactionRequestId: 1234-1234-1234-1234
|
|
457
|
+
quote:
|
|
458
|
+
transferAmount:
|
|
459
|
+
currency: USD
|
|
460
|
+
amount: '10.00'
|
|
461
|
+
expiration: '2022-01-01T08:38:08.699-04:00'
|
|
462
|
+
ilpPacket: >-
|
|
463
|
+
AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA
|
|
464
|
+
condition: f5sqb7tBTWPd5Y8BDFdMm9BJR_MNI4isf8p8n4D5pH
|
|
465
|
+
ThirdpartyTransactionIDApproveResponse:
|
|
466
|
+
description: ThirdpartyTransactionIDApproveResponse
|
|
467
|
+
content:
|
|
468
|
+
application/json:
|
|
469
|
+
schema:
|
|
470
|
+
$ref: '#/components/schemas/ThirdpartyTransactionIDApproveResponse'
|
|
471
|
+
example:
|
|
472
|
+
transactionStatus:
|
|
473
|
+
transactionId: 8f6b2a9c-df32-4248-b115-799beada85ec
|
|
474
|
+
transactionRequestState: ACCEPTED
|
|
475
|
+
currentState: transactionStatusReceived
|
|
476
|
+
LinkingProvidersResponse:
|
|
477
|
+
description: |
|
|
478
|
+
Response body of GET /linking/providers
|
|
479
|
+
content:
|
|
480
|
+
application/json:
|
|
481
|
+
schema:
|
|
482
|
+
$ref: '#/components/schemas/LinkingProvidersResponse'
|
|
483
|
+
example:
|
|
484
|
+
providers:
|
|
485
|
+
- dfspa
|
|
486
|
+
- dfspb
|
|
487
|
+
currentState: providersLookupSuccess
|
|
488
|
+
AccountsByUserIdResponse:
|
|
489
|
+
description: >
|
|
490
|
+
response body of GET /accounts/{ID}
|
|
491
|
+
|
|
492
|
+
derived from UpdateAccountsByUserId by Inbound Service via Pub/Sub
|
|
493
|
+
channel
|
|
494
|
+
content:
|
|
495
|
+
application/json:
|
|
496
|
+
schema:
|
|
497
|
+
$ref: '#/components/schemas/AccountsIDPutResponse'
|
|
498
|
+
example:
|
|
499
|
+
- accountNickname: dfspa.user.nickname1
|
|
500
|
+
id: dfspa.username.1234
|
|
501
|
+
currency: ZAR
|
|
502
|
+
- accountNickname: dfspa.user.nickname2
|
|
503
|
+
id: dfspa.username.5678
|
|
504
|
+
currency: USD
|
|
505
|
+
LinkingRequestConsentResponse:
|
|
506
|
+
description: |
|
|
507
|
+
Response body of POST /linking/request-consent.
|
|
508
|
+
content:
|
|
509
|
+
application/json:
|
|
510
|
+
schema:
|
|
511
|
+
$ref: '#/components/schemas/LinkingRequestConsentResponse'
|
|
512
|
+
example:
|
|
513
|
+
channelResponse:
|
|
514
|
+
consentRequestId: f6ab43b0-71cc-49f9-b763-2ac3f05ac8c1
|
|
515
|
+
scopes:
|
|
516
|
+
- accountId: dfspa.username.1234
|
|
517
|
+
actions:
|
|
518
|
+
- accounts.getBalance
|
|
519
|
+
- accounts.transfer
|
|
520
|
+
- accountId: dfspa.username.5678
|
|
521
|
+
actions:
|
|
522
|
+
- accounts.getBalance
|
|
523
|
+
- accounts.transfer
|
|
524
|
+
authChannels:
|
|
525
|
+
- OTP
|
|
526
|
+
callbackUri: 'pisp-app://callback...'
|
|
527
|
+
currentState: OTPAuthenticationChannelResponseReceived
|
|
528
|
+
LinkingRequestConsentIDAuthenticateResponse:
|
|
529
|
+
description: Linking request consent authenticate response
|
|
530
|
+
content:
|
|
531
|
+
application/json:
|
|
532
|
+
schema:
|
|
533
|
+
$ref: '#/components/schemas/LinkingRequestConsentIDAuthenticateResponse'
|
|
534
|
+
example:
|
|
535
|
+
consent:
|
|
536
|
+
consentId: 76059a0a-684f-4002-a880-b01159afe119
|
|
537
|
+
consentRequestId: f6ab43b0-71cc-49f9-b763-2ac3f05ac8c1
|
|
538
|
+
scopes:
|
|
539
|
+
- accountId: dfspa.username.5678
|
|
540
|
+
actions:
|
|
541
|
+
- accounts.transfer
|
|
542
|
+
challenge: c4adabb33e9306b038088132affcde556c50d82f603f47711a9510bf3beef6d6
|
|
543
|
+
currentState: consentReceivedAwaitingCredential
|
|
544
|
+
LinkingRequestConsentIDPassCredentialResponse:
|
|
545
|
+
description: Linking request consent pass credential response
|
|
546
|
+
content:
|
|
547
|
+
application/json:
|
|
548
|
+
schema:
|
|
549
|
+
$ref: '#/components/schemas/LinkingRequestConsentIDPassCredentialResponse'
|
|
550
|
+
example:
|
|
551
|
+
credential:
|
|
552
|
+
status: VERIFIED
|
|
553
|
+
currentState: accountsLinked
|
|
554
|
+
headers:
|
|
555
|
+
Content-Length:
|
|
556
|
+
required: false
|
|
557
|
+
schema:
|
|
558
|
+
type: integer
|
|
559
|
+
description: >-
|
|
560
|
+
The `Content-Length` header field indicates the anticipated size of the
|
|
561
|
+
payload body. Only sent if there is a body.
|
|
562
|
+
|
|
563
|
+
|
|
564
|
+
**Note:** The API supports a maximum size of 5242880 bytes (5
|
|
565
|
+
Megabytes).
|
|
566
|
+
Content-Type:
|
|
567
|
+
schema:
|
|
568
|
+
type: string
|
|
569
|
+
required: true
|
|
570
|
+
description: >-
|
|
571
|
+
The `Content-Type` header indicates the specific version of the API used
|
|
572
|
+
to send the payload body.
|
|
573
|
+
schemas:
|
|
574
|
+
ErrorCode:
|
|
575
|
+
title: ErrorCode
|
|
576
|
+
type: string
|
|
577
|
+
pattern: '^[1-9]\d{3}$'
|
|
578
|
+
description: >-
|
|
579
|
+
The API data type ErrorCode is a JSON String of four characters,
|
|
580
|
+
consisting of digits only. Negative numbers are not allowed. A leading
|
|
581
|
+
zero is not allowed. Each error code in the API is a four-digit number,
|
|
582
|
+
for example, 1234, where the first number (1 in the example) represents
|
|
583
|
+
the high-level error category, the second number (2 in the example)
|
|
584
|
+
represents the low-level error category, and the last two numbers (34 in
|
|
585
|
+
the example) represent the specific error.
|
|
586
|
+
example: '5100'
|
|
587
|
+
ErrorDescription:
|
|
588
|
+
title: ErrorDescription
|
|
589
|
+
type: string
|
|
590
|
+
minLength: 1
|
|
591
|
+
maxLength: 128
|
|
592
|
+
description: Error description string.
|
|
593
|
+
ExtensionKey:
|
|
594
|
+
title: ExtensionKey
|
|
595
|
+
type: string
|
|
596
|
+
minLength: 1
|
|
597
|
+
maxLength: 32
|
|
598
|
+
description: Extension key.
|
|
599
|
+
ExtensionValue:
|
|
600
|
+
title: ExtensionValue
|
|
601
|
+
type: string
|
|
602
|
+
minLength: 1
|
|
603
|
+
maxLength: 128
|
|
604
|
+
description: Extension value.
|
|
605
|
+
Extension:
|
|
606
|
+
title: Extension
|
|
607
|
+
type: object
|
|
608
|
+
description: Data model for the complex type Extension.
|
|
609
|
+
properties:
|
|
610
|
+
key:
|
|
611
|
+
$ref: '#/components/schemas/ExtensionKey'
|
|
612
|
+
value:
|
|
613
|
+
$ref: '#/components/schemas/ExtensionValue'
|
|
614
|
+
required:
|
|
615
|
+
- key
|
|
616
|
+
- value
|
|
617
|
+
ExtensionList:
|
|
618
|
+
title: ExtensionList
|
|
619
|
+
type: object
|
|
620
|
+
description: >-
|
|
621
|
+
Data model for the complex type ExtensionList. An optional list of
|
|
622
|
+
extensions, specific to deployment.
|
|
623
|
+
properties:
|
|
624
|
+
extension:
|
|
625
|
+
type: array
|
|
626
|
+
items:
|
|
627
|
+
$ref: '#/components/schemas/Extension'
|
|
628
|
+
minItems: 1
|
|
629
|
+
maxItems: 16
|
|
630
|
+
description: Number of Extension elements.
|
|
631
|
+
required:
|
|
632
|
+
- extension
|
|
633
|
+
ErrorInformation:
|
|
634
|
+
title: ErrorInformation
|
|
635
|
+
type: object
|
|
636
|
+
description: Data model for the complex type ErrorInformation.
|
|
637
|
+
properties:
|
|
638
|
+
errorCode:
|
|
639
|
+
$ref: '#/components/schemas/ErrorCode'
|
|
640
|
+
errorDescription:
|
|
641
|
+
$ref: '#/components/schemas/ErrorDescription'
|
|
642
|
+
extensionList:
|
|
643
|
+
$ref: '#/components/schemas/ExtensionList'
|
|
644
|
+
required:
|
|
645
|
+
- errorCode
|
|
646
|
+
- errorDescription
|
|
647
|
+
ErrorInformationResponse:
|
|
648
|
+
title: ErrorInformationResponse
|
|
649
|
+
type: object
|
|
650
|
+
description: >-
|
|
651
|
+
Data model for the complex type object that contains an optional element
|
|
652
|
+
ErrorInformation used along with 4xx and 5xx responses.
|
|
653
|
+
properties:
|
|
654
|
+
errorInformation:
|
|
655
|
+
$ref: '#/components/schemas/ErrorInformation'
|
|
656
|
+
PartyIdType:
|
|
657
|
+
title: PartyIdType
|
|
658
|
+
type: string
|
|
659
|
+
enum:
|
|
660
|
+
- MSISDN
|
|
661
|
+
- EMAIL
|
|
662
|
+
- PERSONAL_ID
|
|
663
|
+
- BUSINESS
|
|
664
|
+
- DEVICE
|
|
665
|
+
- ACCOUNT_ID
|
|
666
|
+
- IBAN
|
|
667
|
+
- ALIAS
|
|
668
|
+
- CONSENT
|
|
669
|
+
- THIRD_PARTY_LINK
|
|
670
|
+
description: >
|
|
671
|
+
This is a variant based on FSPIOP `PartyIdType` specification.
|
|
672
|
+
|
|
673
|
+
Main difference being the CONSENT and THIRD_PARTY_LINK enums.
|
|
674
|
+
|
|
675
|
+
|
|
676
|
+
Below are the allowed values for the enumeration.
|
|
677
|
+
|
|
678
|
+
- MSISDN - An MSISDN (Mobile Station International Subscriber Directory
|
|
679
|
+
|
|
680
|
+
Number, that is, the phone number) is used as reference to a
|
|
681
|
+
participant.
|
|
682
|
+
|
|
683
|
+
The MSISDN identifier should be in international format according to the
|
|
684
|
+
|
|
685
|
+
[ITU-T E.164 standard](https://www.itu.int/rec/T-REC-E.164/en).
|
|
686
|
+
|
|
687
|
+
Optionally, the MSISDN may be prefixed by a single plus sign, indicating
|
|
688
|
+
the
|
|
689
|
+
|
|
690
|
+
international prefix.
|
|
691
|
+
|
|
692
|
+
- EMAIL - An email is used as reference to a
|
|
693
|
+
|
|
694
|
+
participant. The format of the email should be according to the
|
|
695
|
+
informational
|
|
696
|
+
|
|
697
|
+
[RFC 3696](https://tools.ietf.org/html/rfc3696).
|
|
698
|
+
|
|
699
|
+
- PERSONAL_ID - A personal identifier is used as reference to a
|
|
700
|
+
participant.
|
|
701
|
+
|
|
702
|
+
Examples of personal identification are passport number, birth
|
|
703
|
+
certificate
|
|
704
|
+
|
|
705
|
+
number, and national registration number. The identifier number is added
|
|
706
|
+
in
|
|
707
|
+
|
|
708
|
+
the PartyIdentifier element. The personal identifier type is added in
|
|
709
|
+
the
|
|
710
|
+
|
|
711
|
+
PartySubIdOrType element.
|
|
712
|
+
|
|
713
|
+
- BUSINESS - A specific Business (for example, an organization or a
|
|
714
|
+
company)
|
|
715
|
+
|
|
716
|
+
is used as reference to a participant. The BUSINESS identifier can be in
|
|
717
|
+
any
|
|
718
|
+
|
|
719
|
+
format. To make a transaction connected to a specific username or bill
|
|
720
|
+
number
|
|
721
|
+
|
|
722
|
+
in a Business, the PartySubIdOrType element should be used.
|
|
723
|
+
|
|
724
|
+
- DEVICE - A specific device (for example, a POS or ATM) ID connected to
|
|
725
|
+
a
|
|
726
|
+
|
|
727
|
+
specific business or organization is used as reference to a Party.
|
|
728
|
+
|
|
729
|
+
For referencing a specific device under a specific business or
|
|
730
|
+
organization,
|
|
731
|
+
|
|
732
|
+
use the PartySubIdOrType element.
|
|
733
|
+
|
|
734
|
+
- ACCOUNT_ID - A bank account number or FSP account ID should be used as
|
|
735
|
+
|
|
736
|
+
reference to a participant. The ACCOUNT_ID identifier can be in any
|
|
737
|
+
format,
|
|
738
|
+
|
|
739
|
+
as formats can greatly differ depending on country and FSP.
|
|
740
|
+
|
|
741
|
+
- IBAN - A bank account number or FSP account ID is used as reference to
|
|
742
|
+
a
|
|
743
|
+
|
|
744
|
+
participant. The IBAN identifier can consist of up to 34 alphanumeric
|
|
745
|
+
|
|
746
|
+
characters and should be entered without whitespace.
|
|
747
|
+
|
|
748
|
+
- ALIAS An alias is used as reference to a participant. The alias should
|
|
749
|
+
be
|
|
750
|
+
|
|
751
|
+
created in the FSP as an alternative reference to an account owner.
|
|
752
|
+
|
|
753
|
+
Another example of an alias is a username in the FSP system.
|
|
754
|
+
|
|
755
|
+
The ALIAS identifier can be in any format. It is also possible to use
|
|
756
|
+
the
|
|
757
|
+
|
|
758
|
+
PartySubIdOrType element for identifying an account under an Alias
|
|
759
|
+
defined
|
|
760
|
+
|
|
761
|
+
by the PartyIdentifier.
|
|
762
|
+
|
|
763
|
+
- CONSENT - TBD
|
|
764
|
+
|
|
765
|
+
- THIRD_PARTY_LINK - TBD
|
|
766
|
+
example: PERSONAL_ID
|
|
767
|
+
PartyIdentifier:
|
|
768
|
+
title: PartyIdentifier
|
|
769
|
+
type: string
|
|
770
|
+
minLength: 1
|
|
771
|
+
maxLength: 128
|
|
772
|
+
description: Identifier of the Party.
|
|
773
|
+
example: '16135551212'
|
|
774
|
+
PartySubIdOrType:
|
|
775
|
+
title: PartySubIdOrType
|
|
776
|
+
type: string
|
|
777
|
+
minLength: 1
|
|
778
|
+
maxLength: 128
|
|
779
|
+
description: >-
|
|
780
|
+
Either a sub-identifier of a PartyIdentifier, or a sub-type of the
|
|
781
|
+
PartyIdType, normally a PersonalIdentifierType.
|
|
782
|
+
FspId:
|
|
783
|
+
title: FspId
|
|
784
|
+
type: string
|
|
785
|
+
minLength: 1
|
|
786
|
+
maxLength: 32
|
|
787
|
+
description: FSP identifier.
|
|
788
|
+
PartyIdInfo:
|
|
789
|
+
title: PartyIdInfo
|
|
790
|
+
type: object
|
|
791
|
+
description: Data model for the complex type PartyIdInfo.
|
|
792
|
+
properties:
|
|
793
|
+
partyIdType:
|
|
794
|
+
$ref: '#/components/schemas/PartyIdType'
|
|
795
|
+
partyIdentifier:
|
|
796
|
+
$ref: '#/components/schemas/PartyIdentifier'
|
|
797
|
+
partySubIdOrType:
|
|
798
|
+
$ref: '#/components/schemas/PartySubIdOrType'
|
|
799
|
+
fspId:
|
|
800
|
+
$ref: '#/components/schemas/FspId'
|
|
801
|
+
extensionList:
|
|
802
|
+
$ref: '#/components/schemas/ExtensionList'
|
|
803
|
+
required:
|
|
804
|
+
- partyIdType
|
|
805
|
+
- partyIdentifier
|
|
806
|
+
CorrelationId:
|
|
807
|
+
title: CorrelationId
|
|
808
|
+
type: string
|
|
809
|
+
pattern: >-
|
|
810
|
+
^[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}$
|
|
811
|
+
description: >-
|
|
812
|
+
Identifier that correlates all messages of the same sequence.
|
|
813
|
+
The supported identifiers formats are for
|
|
814
|
+
lowercase [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and
|
|
815
|
+
uppercase [ULID](https://github.com/ulid/spec)
|
|
816
|
+
example: b51ec534-ee48-4575-b6a9-ead2955b8069
|
|
817
|
+
ThirdpartyTransactionPartyLookupRequest:
|
|
818
|
+
type: object
|
|
819
|
+
description: ThirdpartyTransaction partyLookup request
|
|
820
|
+
properties:
|
|
821
|
+
payee:
|
|
822
|
+
$ref: '#/components/schemas/PartyIdInfo'
|
|
823
|
+
transactionRequestId:
|
|
824
|
+
$ref: '#/components/schemas/CorrelationId'
|
|
825
|
+
required:
|
|
826
|
+
- payee
|
|
827
|
+
- transactionRequestId
|
|
828
|
+
ThirdpartyTransactionPartyLookupState:
|
|
829
|
+
title: ThirdpartyTransactionPartyLookupState
|
|
830
|
+
description: state of thirdparty transaction partyLookup phase
|
|
831
|
+
type: string
|
|
832
|
+
enum:
|
|
833
|
+
- start
|
|
834
|
+
- partyLookupSuccess
|
|
835
|
+
- partyLookupFailure
|
|
836
|
+
- errored
|
|
837
|
+
ThirdpartyTransactionPartyLookupResponseError:
|
|
838
|
+
title: ThirdpartyTransactionPartyLookupResponseError
|
|
839
|
+
type: object
|
|
840
|
+
properties:
|
|
841
|
+
currentState:
|
|
842
|
+
$ref: '#/components/schemas/ThirdpartyTransactionPartyLookupState'
|
|
843
|
+
errorInformation:
|
|
844
|
+
$ref: '#/components/schemas/ErrorInformation'
|
|
845
|
+
required:
|
|
846
|
+
- errorInformation
|
|
847
|
+
- currentState
|
|
848
|
+
MerchantClassificationCode:
|
|
849
|
+
title: MerchantClassificationCode
|
|
850
|
+
type: string
|
|
851
|
+
pattern: '^[\d]{1,4}$'
|
|
852
|
+
description: >-
|
|
853
|
+
A limited set of pre-defined numbers. This list would be a limited set
|
|
854
|
+
of numbers identifying a set of popular merchant types like School Fees,
|
|
855
|
+
Pubs and Restaurants, Groceries, etc.
|
|
856
|
+
PartyName:
|
|
857
|
+
title: PartyName
|
|
858
|
+
type: string
|
|
859
|
+
minLength: 1
|
|
860
|
+
maxLength: 128
|
|
861
|
+
description: Name of the Party. Could be a real name or a nickname.
|
|
862
|
+
FirstName:
|
|
863
|
+
title: FirstName
|
|
864
|
+
type: string
|
|
865
|
+
minLength: 1
|
|
866
|
+
maxLength: 128
|
|
867
|
+
pattern: >-
|
|
868
|
+
^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control}
|
|
869
|
+
.,''-]{1,128}$
|
|
870
|
+
description: First name of the Party (Name Type).
|
|
871
|
+
example: Henrik
|
|
872
|
+
MiddleName:
|
|
873
|
+
title: MiddleName
|
|
874
|
+
type: string
|
|
875
|
+
minLength: 1
|
|
876
|
+
maxLength: 128
|
|
877
|
+
pattern: >-
|
|
878
|
+
^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control}
|
|
879
|
+
.,''-]{1,128}$
|
|
880
|
+
description: Middle name of the Party (Name Type).
|
|
881
|
+
example: Johannes
|
|
882
|
+
LastName:
|
|
883
|
+
title: LastName
|
|
884
|
+
type: string
|
|
885
|
+
minLength: 1
|
|
886
|
+
maxLength: 128
|
|
887
|
+
pattern: >-
|
|
888
|
+
^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control}
|
|
889
|
+
.,''-]{1,128}$
|
|
890
|
+
description: Last name of the Party (Name Type).
|
|
891
|
+
example: Karlsson
|
|
892
|
+
PartyComplexName:
|
|
893
|
+
title: PartyComplexName
|
|
894
|
+
type: object
|
|
895
|
+
description: Data model for the complex type PartyComplexName.
|
|
896
|
+
properties:
|
|
897
|
+
firstName:
|
|
898
|
+
$ref: '#/components/schemas/FirstName'
|
|
899
|
+
middleName:
|
|
900
|
+
$ref: '#/components/schemas/MiddleName'
|
|
901
|
+
lastName:
|
|
902
|
+
$ref: '#/components/schemas/LastName'
|
|
903
|
+
DateOfBirth:
|
|
904
|
+
title: DateofBirth (type Date)
|
|
905
|
+
type: string
|
|
906
|
+
pattern: >-
|
|
907
|
+
^(?:[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)$
|
|
908
|
+
description: Date of Birth of the Party.
|
|
909
|
+
example: '1966-06-16'
|
|
910
|
+
PartyPersonalInfo:
|
|
911
|
+
title: PartyPersonalInfo
|
|
912
|
+
type: object
|
|
913
|
+
description: Data model for the complex type PartyPersonalInfo.
|
|
914
|
+
properties:
|
|
915
|
+
complexName:
|
|
916
|
+
$ref: '#/components/schemas/PartyComplexName'
|
|
917
|
+
dateOfBirth:
|
|
918
|
+
$ref: '#/components/schemas/DateOfBirth'
|
|
919
|
+
ThirdpartyTransactionPartyLookupResponseSuccess:
|
|
920
|
+
title: ThirdpartyTransactionPartyLookupResponseSuccess
|
|
921
|
+
type: object
|
|
922
|
+
properties:
|
|
923
|
+
currentState:
|
|
924
|
+
$ref: '#/components/schemas/ThirdpartyTransactionPartyLookupState'
|
|
925
|
+
party:
|
|
926
|
+
type: object
|
|
927
|
+
properties:
|
|
928
|
+
partyIdInfo:
|
|
929
|
+
$ref: '#/components/schemas/PartyIdInfo'
|
|
930
|
+
merchantClassificationCode:
|
|
931
|
+
$ref: '#/components/schemas/MerchantClassificationCode'
|
|
932
|
+
name:
|
|
933
|
+
$ref: '#/components/schemas/PartyName'
|
|
934
|
+
personalInfo:
|
|
935
|
+
$ref: '#/components/schemas/PartyPersonalInfo'
|
|
936
|
+
required:
|
|
937
|
+
- party
|
|
938
|
+
- currentState
|
|
939
|
+
ThirdpartyTransactionPartyLookupResponse:
|
|
940
|
+
oneOf:
|
|
941
|
+
- $ref: '#/components/schemas/ThirdpartyTransactionPartyLookupResponseError'
|
|
942
|
+
- $ref: '#/components/schemas/ThirdpartyTransactionPartyLookupResponseSuccess'
|
|
943
|
+
Party:
|
|
944
|
+
title: Party
|
|
945
|
+
type: object
|
|
946
|
+
description: Data model for the complex type Party.
|
|
947
|
+
properties:
|
|
948
|
+
partyIdInfo:
|
|
949
|
+
$ref: '#/components/schemas/PartyIdInfo'
|
|
950
|
+
merchantClassificationCode:
|
|
951
|
+
$ref: '#/components/schemas/MerchantClassificationCode'
|
|
952
|
+
name:
|
|
953
|
+
$ref: '#/components/schemas/PartyName'
|
|
954
|
+
personalInfo:
|
|
955
|
+
$ref: '#/components/schemas/PartyPersonalInfo'
|
|
956
|
+
required:
|
|
957
|
+
- partyIdInfo
|
|
958
|
+
PartyIdTypeTPLink:
|
|
959
|
+
title: PartyIdTypeTPLink
|
|
960
|
+
type: string
|
|
961
|
+
enum:
|
|
962
|
+
- THIRD_PARTY_LINK
|
|
963
|
+
description: >
|
|
964
|
+
This is a variant based on FSPIOP `PartyIdType` specification.
|
|
965
|
+
|
|
966
|
+
This validation interface should be use by `POST
|
|
967
|
+
/thirdpartyRequests/transactions`
|
|
968
|
+
|
|
969
|
+
- THIRD_PARTY_LINK - is the DFSP's internal reference which allows DFSP
|
|
970
|
+
to find out the corresponding consent
|
|
971
|
+
example: PERSONAL_ID
|
|
972
|
+
PartyIdInfoTPLink:
|
|
973
|
+
title: PartyIdInfo
|
|
974
|
+
type: object
|
|
975
|
+
description: Data model for the complex type PartyIdInfo.
|
|
976
|
+
properties:
|
|
977
|
+
partyIdType:
|
|
978
|
+
$ref: '#/components/schemas/PartyIdTypeTPLink'
|
|
979
|
+
partyIdentifier:
|
|
980
|
+
$ref: '#/components/schemas/PartyIdentifier'
|
|
981
|
+
partySubIdOrType:
|
|
982
|
+
$ref: '#/components/schemas/PartySubIdOrType'
|
|
983
|
+
fspId:
|
|
984
|
+
$ref: '#/components/schemas/FspId'
|
|
985
|
+
extensionList:
|
|
986
|
+
$ref: '#/components/schemas/ExtensionList'
|
|
987
|
+
required:
|
|
988
|
+
- partyIdType
|
|
989
|
+
- partyIdentifier
|
|
990
|
+
AmountType:
|
|
991
|
+
title: AmountType
|
|
992
|
+
type: string
|
|
993
|
+
enum:
|
|
994
|
+
- SEND
|
|
995
|
+
- RECEIVE
|
|
996
|
+
description: >-
|
|
997
|
+
Below are the allowed values for the enumeration AmountType.
|
|
998
|
+
|
|
999
|
+
- SEND - Amount the Payer would like to send, that is, the amount that
|
|
1000
|
+
should be withdrawn from the Payer account including any fees.
|
|
1001
|
+
|
|
1002
|
+
- RECEIVE - Amount the Payer would like the Payee to receive, that is,
|
|
1003
|
+
the amount that should be sent to the receiver exclusive of any fees.
|
|
1004
|
+
example: RECEIVE
|
|
1005
|
+
Currency:
|
|
1006
|
+
title: Currency
|
|
1007
|
+
description: >-
|
|
1008
|
+
The currency codes defined in [ISO
|
|
1009
|
+
4217](https://www.iso.org/iso-4217-currency-codes.html) as three-letter
|
|
1010
|
+
alphabetic codes are used as the standard naming representation for
|
|
1011
|
+
currencies.
|
|
1012
|
+
type: string
|
|
1013
|
+
minLength: 3
|
|
1014
|
+
maxLength: 3
|
|
1015
|
+
enum:
|
|
1016
|
+
- AED
|
|
1017
|
+
- AFN
|
|
1018
|
+
- ALL
|
|
1019
|
+
- AMD
|
|
1020
|
+
- ANG
|
|
1021
|
+
- AOA
|
|
1022
|
+
- ARS
|
|
1023
|
+
- AUD
|
|
1024
|
+
- AWG
|
|
1025
|
+
- AZN
|
|
1026
|
+
- BAM
|
|
1027
|
+
- BBD
|
|
1028
|
+
- BDT
|
|
1029
|
+
- BGN
|
|
1030
|
+
- BHD
|
|
1031
|
+
- BIF
|
|
1032
|
+
- BMD
|
|
1033
|
+
- BND
|
|
1034
|
+
- BOB
|
|
1035
|
+
- BRL
|
|
1036
|
+
- BSD
|
|
1037
|
+
- BTN
|
|
1038
|
+
- BWP
|
|
1039
|
+
- BYN
|
|
1040
|
+
- BZD
|
|
1041
|
+
- CAD
|
|
1042
|
+
- CDF
|
|
1043
|
+
- CHF
|
|
1044
|
+
- CLP
|
|
1045
|
+
- CNY
|
|
1046
|
+
- COP
|
|
1047
|
+
- CRC
|
|
1048
|
+
- CUC
|
|
1049
|
+
- CUP
|
|
1050
|
+
- CVE
|
|
1051
|
+
- CZK
|
|
1052
|
+
- DJF
|
|
1053
|
+
- DKK
|
|
1054
|
+
- DOP
|
|
1055
|
+
- DZD
|
|
1056
|
+
- EGP
|
|
1057
|
+
- ERN
|
|
1058
|
+
- ETB
|
|
1059
|
+
- EUR
|
|
1060
|
+
- FJD
|
|
1061
|
+
- FKP
|
|
1062
|
+
- GBP
|
|
1063
|
+
- GEL
|
|
1064
|
+
- GGP
|
|
1065
|
+
- GHS
|
|
1066
|
+
- GIP
|
|
1067
|
+
- GMD
|
|
1068
|
+
- GNF
|
|
1069
|
+
- GTQ
|
|
1070
|
+
- GYD
|
|
1071
|
+
- HKD
|
|
1072
|
+
- HNL
|
|
1073
|
+
- HRK
|
|
1074
|
+
- HTG
|
|
1075
|
+
- HUF
|
|
1076
|
+
- IDR
|
|
1077
|
+
- ILS
|
|
1078
|
+
- IMP
|
|
1079
|
+
- INR
|
|
1080
|
+
- IQD
|
|
1081
|
+
- IRR
|
|
1082
|
+
- ISK
|
|
1083
|
+
- JEP
|
|
1084
|
+
- JMD
|
|
1085
|
+
- JOD
|
|
1086
|
+
- JPY
|
|
1087
|
+
- KES
|
|
1088
|
+
- KGS
|
|
1089
|
+
- KHR
|
|
1090
|
+
- KMF
|
|
1091
|
+
- KPW
|
|
1092
|
+
- KRW
|
|
1093
|
+
- KWD
|
|
1094
|
+
- KYD
|
|
1095
|
+
- KZT
|
|
1096
|
+
- LAK
|
|
1097
|
+
- LBP
|
|
1098
|
+
- LKR
|
|
1099
|
+
- LRD
|
|
1100
|
+
- LSL
|
|
1101
|
+
- LYD
|
|
1102
|
+
- MAD
|
|
1103
|
+
- MDL
|
|
1104
|
+
- MGA
|
|
1105
|
+
- MKD
|
|
1106
|
+
- MMK
|
|
1107
|
+
- MNT
|
|
1108
|
+
- MOP
|
|
1109
|
+
- MRO
|
|
1110
|
+
- MUR
|
|
1111
|
+
- MVR
|
|
1112
|
+
- MWK
|
|
1113
|
+
- MXN
|
|
1114
|
+
- MYR
|
|
1115
|
+
- MZN
|
|
1116
|
+
- NAD
|
|
1117
|
+
- NGN
|
|
1118
|
+
- NIO
|
|
1119
|
+
- NOK
|
|
1120
|
+
- NPR
|
|
1121
|
+
- NZD
|
|
1122
|
+
- OMR
|
|
1123
|
+
- PAB
|
|
1124
|
+
- PEN
|
|
1125
|
+
- PGK
|
|
1126
|
+
- PHP
|
|
1127
|
+
- PKR
|
|
1128
|
+
- PLN
|
|
1129
|
+
- PYG
|
|
1130
|
+
- QAR
|
|
1131
|
+
- RON
|
|
1132
|
+
- RSD
|
|
1133
|
+
- RUB
|
|
1134
|
+
- RWF
|
|
1135
|
+
- SAR
|
|
1136
|
+
- SBD
|
|
1137
|
+
- SCR
|
|
1138
|
+
- SDG
|
|
1139
|
+
- SEK
|
|
1140
|
+
- SGD
|
|
1141
|
+
- SHP
|
|
1142
|
+
- SLL
|
|
1143
|
+
- SOS
|
|
1144
|
+
- SPL
|
|
1145
|
+
- SRD
|
|
1146
|
+
- STD
|
|
1147
|
+
- SVC
|
|
1148
|
+
- SYP
|
|
1149
|
+
- SZL
|
|
1150
|
+
- THB
|
|
1151
|
+
- TJS
|
|
1152
|
+
- TMT
|
|
1153
|
+
- TND
|
|
1154
|
+
- TOP
|
|
1155
|
+
- TRY
|
|
1156
|
+
- TTD
|
|
1157
|
+
- TVD
|
|
1158
|
+
- TWD
|
|
1159
|
+
- TZS
|
|
1160
|
+
- UAH
|
|
1161
|
+
- UGX
|
|
1162
|
+
- USD
|
|
1163
|
+
- UYU
|
|
1164
|
+
- UZS
|
|
1165
|
+
- VEF
|
|
1166
|
+
- VND
|
|
1167
|
+
- VUV
|
|
1168
|
+
- WST
|
|
1169
|
+
- XAF
|
|
1170
|
+
- XCD
|
|
1171
|
+
- XDR
|
|
1172
|
+
- XOF
|
|
1173
|
+
- XPF
|
|
1174
|
+
- XTS
|
|
1175
|
+
- XXX
|
|
1176
|
+
- YER
|
|
1177
|
+
- ZAR
|
|
1178
|
+
- ZMW
|
|
1179
|
+
- ZWD
|
|
1180
|
+
Amount:
|
|
1181
|
+
title: Amount
|
|
1182
|
+
type: string
|
|
1183
|
+
pattern: '^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$'
|
|
1184
|
+
description: >-
|
|
1185
|
+
The API data type Amount is a JSON String in a canonical format that is
|
|
1186
|
+
restricted by a regular expression for interoperability reasons. This
|
|
1187
|
+
pattern does not allow any trailing zeroes at all, but allows an amount
|
|
1188
|
+
without a minor currency unit. It also only allows four digits in the
|
|
1189
|
+
minor currency unit; a negative value is not allowed. Using more than 18
|
|
1190
|
+
digits in the major currency unit is not allowed.
|
|
1191
|
+
example: '123.45'
|
|
1192
|
+
Money:
|
|
1193
|
+
title: Money
|
|
1194
|
+
type: object
|
|
1195
|
+
description: Data model for the complex type Money.
|
|
1196
|
+
properties:
|
|
1197
|
+
currency:
|
|
1198
|
+
$ref: '#/components/schemas/Currency'
|
|
1199
|
+
amount:
|
|
1200
|
+
$ref: '#/components/schemas/Amount'
|
|
1201
|
+
required:
|
|
1202
|
+
- currency
|
|
1203
|
+
- amount
|
|
1204
|
+
TransactionScenario:
|
|
1205
|
+
title: TransactionScenario
|
|
1206
|
+
type: string
|
|
1207
|
+
enum:
|
|
1208
|
+
- DEPOSIT
|
|
1209
|
+
- WITHDRAWAL
|
|
1210
|
+
- TRANSFER
|
|
1211
|
+
- PAYMENT
|
|
1212
|
+
- REFUND
|
|
1213
|
+
description: >-
|
|
1214
|
+
Below are the allowed values for the enumeration.
|
|
1215
|
+
|
|
1216
|
+
- DEPOSIT - Used for performing a Cash-In (deposit) transaction. In a
|
|
1217
|
+
normal scenario, electronic funds are transferred from a Business
|
|
1218
|
+
account to a Consumer account, and physical cash is given from the
|
|
1219
|
+
Consumer to the Business User.
|
|
1220
|
+
|
|
1221
|
+
- WITHDRAWAL - Used for performing a Cash-Out (withdrawal) transaction.
|
|
1222
|
+
In a normal scenario, electronic funds are transferred from a Consumer’s
|
|
1223
|
+
account to a Business account, and physical cash is given from the
|
|
1224
|
+
Business User to the Consumer.
|
|
1225
|
+
|
|
1226
|
+
- TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to
|
|
1227
|
+
Consumer) transaction.
|
|
1228
|
+
|
|
1229
|
+
- PAYMENT - Usually used for performing a transaction from a Consumer to
|
|
1230
|
+
a Merchant or Organization, but could also be for a B2B (Business to
|
|
1231
|
+
Business) payment. The transaction could be online for a purchase in an
|
|
1232
|
+
Internet store, in a physical store where both the Consumer and Business
|
|
1233
|
+
User are present, a bill payment, a donation, and so on.
|
|
1234
|
+
|
|
1235
|
+
- REFUND - Used for performing a refund of transaction.
|
|
1236
|
+
example: DEPOSIT
|
|
1237
|
+
TransactionSubScenario:
|
|
1238
|
+
title: TransactionSubScenario
|
|
1239
|
+
type: string
|
|
1240
|
+
pattern: '^[A-Z_]{1,32}$'
|
|
1241
|
+
description: >-
|
|
1242
|
+
Possible sub-scenario, defined locally within the scheme (UndefinedEnum
|
|
1243
|
+
Type).
|
|
1244
|
+
example: LOCALLY_DEFINED_SUBSCENARIO
|
|
1245
|
+
TransactionInitiator:
|
|
1246
|
+
title: TransactionInitiator
|
|
1247
|
+
type: string
|
|
1248
|
+
enum:
|
|
1249
|
+
- PAYER
|
|
1250
|
+
- PAYEE
|
|
1251
|
+
description: >-
|
|
1252
|
+
Below are the allowed values for the enumeration.
|
|
1253
|
+
|
|
1254
|
+
- PAYER - Sender of funds is initiating the transaction. The account to
|
|
1255
|
+
send from is either owned by the Payer or is connected to the Payer in
|
|
1256
|
+
some way.
|
|
1257
|
+
|
|
1258
|
+
- PAYEE - Recipient of the funds is initiating the transaction by
|
|
1259
|
+
sending a transaction request. The Payer must approve the transaction,
|
|
1260
|
+
either automatically by a pre-generated OTP or by pre-approval of the
|
|
1261
|
+
Payee, or by manually approving in his or her own Device.
|
|
1262
|
+
example: PAYEE
|
|
1263
|
+
TransactionInitiatorType:
|
|
1264
|
+
title: TransactionInitiatorType
|
|
1265
|
+
type: string
|
|
1266
|
+
enum:
|
|
1267
|
+
- CONSUMER
|
|
1268
|
+
- AGENT
|
|
1269
|
+
- BUSINESS
|
|
1270
|
+
- DEVICE
|
|
1271
|
+
description: |-
|
|
1272
|
+
Below are the allowed values for the enumeration.
|
|
1273
|
+
- CONSUMER - Consumer is the initiator of the transaction.
|
|
1274
|
+
- AGENT - Agent is the initiator of the transaction.
|
|
1275
|
+
- BUSINESS - Business is the initiator of the transaction.
|
|
1276
|
+
- DEVICE - Device is the initiator of the transaction.
|
|
1277
|
+
example: CONSUMER
|
|
1278
|
+
RefundReason:
|
|
1279
|
+
title: RefundReason
|
|
1280
|
+
type: string
|
|
1281
|
+
minLength: 1
|
|
1282
|
+
maxLength: 128
|
|
1283
|
+
description: Reason for the refund.
|
|
1284
|
+
example: Free text indicating reason for the refund.
|
|
1285
|
+
Refund:
|
|
1286
|
+
title: Refund
|
|
1287
|
+
type: object
|
|
1288
|
+
description: Data model for the complex type Refund.
|
|
1289
|
+
properties:
|
|
1290
|
+
originalTransactionId:
|
|
1291
|
+
$ref: '#/components/schemas/CorrelationId'
|
|
1292
|
+
refundReason:
|
|
1293
|
+
$ref: '#/components/schemas/RefundReason'
|
|
1294
|
+
required:
|
|
1295
|
+
- originalTransactionId
|
|
1296
|
+
BalanceOfPayments:
|
|
1297
|
+
title: BalanceOfPayments
|
|
1298
|
+
type: string
|
|
1299
|
+
pattern: '^[1-9]\d{2}$'
|
|
1300
|
+
description: >-
|
|
1301
|
+
(BopCode) The API data type
|
|
1302
|
+
[BopCode](https://www.imf.org/external/np/sta/bopcode/) is a JSON String
|
|
1303
|
+
of 3 characters, consisting of digits only. Negative numbers are not
|
|
1304
|
+
allowed. A leading zero is not allowed.
|
|
1305
|
+
example: '123'
|
|
1306
|
+
TransactionType:
|
|
1307
|
+
title: TransactionType
|
|
1308
|
+
type: object
|
|
1309
|
+
description: Data model for the complex type TransactionType.
|
|
1310
|
+
properties:
|
|
1311
|
+
scenario:
|
|
1312
|
+
$ref: '#/components/schemas/TransactionScenario'
|
|
1313
|
+
subScenario:
|
|
1314
|
+
$ref: '#/components/schemas/TransactionSubScenario'
|
|
1315
|
+
initiator:
|
|
1316
|
+
$ref: '#/components/schemas/TransactionInitiator'
|
|
1317
|
+
initiatorType:
|
|
1318
|
+
$ref: '#/components/schemas/TransactionInitiatorType'
|
|
1319
|
+
refundInfo:
|
|
1320
|
+
$ref: '#/components/schemas/Refund'
|
|
1321
|
+
balanceOfPayments:
|
|
1322
|
+
$ref: '#/components/schemas/BalanceOfPayments'
|
|
1323
|
+
required:
|
|
1324
|
+
- scenario
|
|
1325
|
+
- initiator
|
|
1326
|
+
- initiatorType
|
|
1327
|
+
ThirdpartyTransactionIDInitiateRequest:
|
|
1328
|
+
title: ThirdpartyTransactionIDInitiateRequest
|
|
1329
|
+
type: object
|
|
1330
|
+
description: >-
|
|
1331
|
+
The object sent in the POST `/thirdpartyTransaction/{ID}/initiate`
|
|
1332
|
+
request.
|
|
1333
|
+
properties:
|
|
1334
|
+
payee:
|
|
1335
|
+
$ref: '#/components/schemas/Party'
|
|
1336
|
+
payer:
|
|
1337
|
+
$ref: '#/components/schemas/PartyIdInfoTPLink'
|
|
1338
|
+
amountType:
|
|
1339
|
+
$ref: '#/components/schemas/AmountType'
|
|
1340
|
+
amount:
|
|
1341
|
+
$ref: '#/components/schemas/Money'
|
|
1342
|
+
transactionType:
|
|
1343
|
+
$ref: '#/components/schemas/TransactionType'
|
|
1344
|
+
expiration:
|
|
1345
|
+
type: string
|
|
1346
|
+
example: '2016-05-24T08:38:08.699-04:00'
|
|
1347
|
+
required:
|
|
1348
|
+
- payee
|
|
1349
|
+
- payer
|
|
1350
|
+
- amountType
|
|
1351
|
+
- amount
|
|
1352
|
+
- transactionType
|
|
1353
|
+
- expiration
|
|
1354
|
+
ThirdpartyTransactionIDInitiateState:
|
|
1355
|
+
title: ThirdpartyTransactionIDInitiateState
|
|
1356
|
+
description: state of thirdparty transaction for initiate phase
|
|
1357
|
+
type: string
|
|
1358
|
+
enum:
|
|
1359
|
+
- partyLookupSuccess
|
|
1360
|
+
- authorizationReceived
|
|
1361
|
+
- errored
|
|
1362
|
+
ThirdpartyTransactionIDInitiateResponseError:
|
|
1363
|
+
title: ThirdpartyTransactionIDInitateResponseError
|
|
1364
|
+
type: object
|
|
1365
|
+
properties:
|
|
1366
|
+
currentState:
|
|
1367
|
+
$ref: '#/components/schemas/ThirdpartyTransactionIDInitiateState'
|
|
1368
|
+
errorInformation:
|
|
1369
|
+
$ref: '#/components/schemas/ErrorInformation'
|
|
1370
|
+
required:
|
|
1371
|
+
- currentState
|
|
1372
|
+
- errorInformation
|
|
1373
|
+
DateTime:
|
|
1374
|
+
title: DateTime
|
|
1375
|
+
type: string
|
|
1376
|
+
pattern: >-
|
|
1377
|
+
^(?:[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)$
|
|
1378
|
+
description: >-
|
|
1379
|
+
The API data type DateTime is a JSON String in a lexical format that is
|
|
1380
|
+
restricted by a regular expression for interoperability reasons. The
|
|
1381
|
+
format is according to [ISO
|
|
1382
|
+
8601](https://www.iso.org/iso-8601-date-and-time-format.html), expressed
|
|
1383
|
+
in a combined date, time and time zone format. A more readable version
|
|
1384
|
+
of the format is yyyy-MM-ddTHH:mm:ss.SSS[-HH:MM]. Examples are
|
|
1385
|
+
"2016-05-24T08:38:08.699-04:00", "2016-05-24T08:38:08.699Z" (where Z
|
|
1386
|
+
indicates Zulu time zone, same as UTC).
|
|
1387
|
+
example: '2016-05-24T08:38:08.699-04:00'
|
|
1388
|
+
ThirdpartyRequestsAuthorizationsPostRequest:
|
|
1389
|
+
title: ThirdpartyRequestsAuthorizationsPostRequest
|
|
1390
|
+
description: POST /thirdpartyRequests/authorizations request object.
|
|
1391
|
+
type: object
|
|
1392
|
+
properties:
|
|
1393
|
+
authorizationRequestId:
|
|
1394
|
+
$ref: '#/components/schemas/CorrelationId'
|
|
1395
|
+
transactionRequestId:
|
|
1396
|
+
$ref: '#/components/schemas/CorrelationId'
|
|
1397
|
+
challenge:
|
|
1398
|
+
type: string
|
|
1399
|
+
description: The challenge that the PISP's client is to sign
|
|
1400
|
+
transferAmount:
|
|
1401
|
+
allOf:
|
|
1402
|
+
- $ref: '#/components/schemas/Money'
|
|
1403
|
+
description: >-
|
|
1404
|
+
The amount that will be debited from the sending customer’s account
|
|
1405
|
+
as a consequence of the transaction.
|
|
1406
|
+
payeeReceiveAmount:
|
|
1407
|
+
allOf:
|
|
1408
|
+
- $ref: '#/components/schemas/Money'
|
|
1409
|
+
description: >-
|
|
1410
|
+
The amount that will be credited to the receiving customer’s
|
|
1411
|
+
account as a consequence of the transaction.
|
|
1412
|
+
fees:
|
|
1413
|
+
allOf:
|
|
1414
|
+
- $ref: '#/components/schemas/Money'
|
|
1415
|
+
description: >-
|
|
1416
|
+
The amount of fees that the paying customer will be charged as part
|
|
1417
|
+
of the transaction.
|
|
1418
|
+
payer:
|
|
1419
|
+
allOf:
|
|
1420
|
+
- $ref: '#/components/schemas/PartyIdInfo'
|
|
1421
|
+
description: >-
|
|
1422
|
+
Information about the Payer type, id, sub-type/id, FSP Id in the
|
|
1423
|
+
proposed financial transaction.
|
|
1424
|
+
payee:
|
|
1425
|
+
allOf:
|
|
1426
|
+
- $ref: '#/components/schemas/Party'
|
|
1427
|
+
description: Information about the Payee in the proposed financial transaction.
|
|
1428
|
+
transactionType:
|
|
1429
|
+
$ref: '#/components/schemas/TransactionType'
|
|
1430
|
+
expiration:
|
|
1431
|
+
allOf:
|
|
1432
|
+
- $ref: '#/components/schemas/DateTime'
|
|
1433
|
+
description: >-
|
|
1434
|
+
The time by which the transfer must be completed, set by the payee
|
|
1435
|
+
DFSP.
|
|
1436
|
+
extensionList:
|
|
1437
|
+
$ref: '#/components/schemas/ExtensionList'
|
|
1438
|
+
required:
|
|
1439
|
+
- authorizationRequestId
|
|
1440
|
+
- transactionRequestId
|
|
1441
|
+
- challenge
|
|
1442
|
+
- transferAmount
|
|
1443
|
+
- payeeReceiveAmount
|
|
1444
|
+
- fees
|
|
1445
|
+
- payer
|
|
1446
|
+
- payee
|
|
1447
|
+
- transactionType
|
|
1448
|
+
- expiration
|
|
1449
|
+
additionalProperties: false
|
|
1450
|
+
ThirdpartyTransactionIDInitiateResponseSuccess:
|
|
1451
|
+
title: ThirdpartyTransactionIDInitateResponseSuccess
|
|
1452
|
+
type: object
|
|
1453
|
+
properties:
|
|
1454
|
+
currentState:
|
|
1455
|
+
$ref: '#/components/schemas/ThirdpartyTransactionIDInitiateState'
|
|
1456
|
+
authorization:
|
|
1457
|
+
$ref: '#/components/schemas/ThirdpartyRequestsAuthorizationsPostRequest'
|
|
1458
|
+
required:
|
|
1459
|
+
- currentState
|
|
1460
|
+
- authorization
|
|
1461
|
+
ThirdpartyTransactionIDInitiateResponse:
|
|
1462
|
+
oneOf:
|
|
1463
|
+
- $ref: '#/components/schemas/ThirdpartyTransactionIDInitiateResponseError'
|
|
1464
|
+
- $ref: '#/components/schemas/ThirdpartyTransactionIDInitiateResponseSuccess'
|
|
1465
|
+
SignedPayloadTypeGeneric:
|
|
1466
|
+
title: SignedPayloadTypeGeneric
|
|
1467
|
+
type: string
|
|
1468
|
+
enum:
|
|
1469
|
+
- GENERIC
|
|
1470
|
+
description: Describes a challenge that has been signed with a private key
|
|
1471
|
+
BinaryString:
|
|
1472
|
+
type: string
|
|
1473
|
+
pattern: '^[A-Za-z0-9-_]+[=]{0,2}$'
|
|
1474
|
+
description: >-
|
|
1475
|
+
The API data type BinaryString is a JSON String. The string is a
|
|
1476
|
+
base64url encoding of a string of raw bytes, where padding (character
|
|
1477
|
+
‘=’) is added at the end of the data if needed to ensure that the string
|
|
1478
|
+
is a multiple of 4 characters. The length restriction indicates the
|
|
1479
|
+
allowed number of characters.
|
|
1480
|
+
ThirdpartyRequestsAuthorizationsIDPutResponseGeneric:
|
|
1481
|
+
title: ThirdpartyRequestsAuthorizationsIDPutResponseGeneric
|
|
1482
|
+
type: object
|
|
1483
|
+
description: >-
|
|
1484
|
+
The object sent in the PUT /thirdpartyRequests/authorizations/{ID}
|
|
1485
|
+
callback.
|
|
1486
|
+
properties:
|
|
1487
|
+
signedPayloadType:
|
|
1488
|
+
$ref: '#/components/schemas/SignedPayloadTypeGeneric'
|
|
1489
|
+
signedPayload:
|
|
1490
|
+
$ref: '#/components/schemas/BinaryString'
|
|
1491
|
+
required:
|
|
1492
|
+
- signedPayloadType
|
|
1493
|
+
- authenticationValue
|
|
1494
|
+
SignedPayloadTypeFIDO:
|
|
1495
|
+
title: SignedPayloadTypeFIDO
|
|
1496
|
+
type: string
|
|
1497
|
+
enum:
|
|
1498
|
+
- FIDO
|
|
1499
|
+
description: Describes a challenge that has been signed with FIDO Attestation flows
|
|
1500
|
+
FIDOPublicKeyCredentialAssertion:
|
|
1501
|
+
title: FIDOPublicKeyCredentialAssertion
|
|
1502
|
+
type: object
|
|
1503
|
+
description: >
|
|
1504
|
+
An object sent in a `PUT /thirdpartyRequests/authorization/{ID}`
|
|
1505
|
+
request.
|
|
1506
|
+
|
|
1507
|
+
based mostly on: https://webauthn.guide/#authentication
|
|
1508
|
+
|
|
1509
|
+
AuthenticatorAssertionResponse
|
|
1510
|
+
properties:
|
|
1511
|
+
id:
|
|
1512
|
+
type: string
|
|
1513
|
+
description: |
|
|
1514
|
+
credential id: identifier of pair of keys, base64 encoded
|
|
1515
|
+
https://w3c.github.io/webauthn/#ref-for-dom-credential-id
|
|
1516
|
+
minLength: 59
|
|
1517
|
+
maxLength: 118
|
|
1518
|
+
rawId:
|
|
1519
|
+
type: string
|
|
1520
|
+
description: |
|
|
1521
|
+
raw credential id: identifier of pair of keys, base64 encoded.
|
|
1522
|
+
minLength: 59
|
|
1523
|
+
maxLength: 118
|
|
1524
|
+
response:
|
|
1525
|
+
type: object
|
|
1526
|
+
description: |
|
|
1527
|
+
AuthenticatorAssertionResponse
|
|
1528
|
+
properties:
|
|
1529
|
+
authenticatorData:
|
|
1530
|
+
type: string
|
|
1531
|
+
description: |
|
|
1532
|
+
Authenticator data object.
|
|
1533
|
+
minLength: 49
|
|
1534
|
+
maxLength: 256
|
|
1535
|
+
clientDataJSON:
|
|
1536
|
+
type: string
|
|
1537
|
+
description: |
|
|
1538
|
+
JSON string with client data.
|
|
1539
|
+
minLength: 121
|
|
1540
|
+
maxLength: 512
|
|
1541
|
+
signature:
|
|
1542
|
+
type: string
|
|
1543
|
+
description: >
|
|
1544
|
+
The signature generated by the private key associated with this
|
|
1545
|
+
credential.
|
|
1546
|
+
minLength: 59
|
|
1547
|
+
maxLength: 256
|
|
1548
|
+
userHandle:
|
|
1549
|
+
type: string
|
|
1550
|
+
description: |
|
|
1551
|
+
This field is optionally provided by the authenticator, and
|
|
1552
|
+
represents the user.id that was supplied during registration.
|
|
1553
|
+
minLength: 1
|
|
1554
|
+
maxLength: 88
|
|
1555
|
+
required:
|
|
1556
|
+
- authenticatorData
|
|
1557
|
+
- clientDataJSON
|
|
1558
|
+
- signature
|
|
1559
|
+
additionalProperties: false
|
|
1560
|
+
type:
|
|
1561
|
+
type: string
|
|
1562
|
+
description: 'response type, we need only the type of public-key'
|
|
1563
|
+
enum:
|
|
1564
|
+
- public-key
|
|
1565
|
+
required:
|
|
1566
|
+
- id
|
|
1567
|
+
- rawId
|
|
1568
|
+
- response
|
|
1569
|
+
- type
|
|
1570
|
+
additionalProperties: false
|
|
1571
|
+
ThirdpartyRequestsAuthorizationsIDPutResponseFIDO:
|
|
1572
|
+
title: ThirdpartyRequestsAuthorizationsIDPutResponseFIDO
|
|
1573
|
+
type: object
|
|
1574
|
+
description: >-
|
|
1575
|
+
The object sent in the PUT /thirdpartyRequests/authorizations/{ID}
|
|
1576
|
+
callback.
|
|
1577
|
+
properties:
|
|
1578
|
+
signedPayloadType:
|
|
1579
|
+
$ref: '#/components/schemas/SignedPayloadTypeFIDO'
|
|
1580
|
+
signedPayload:
|
|
1581
|
+
$ref: '#/components/schemas/FIDOPublicKeyCredentialAssertion'
|
|
1582
|
+
required:
|
|
1583
|
+
- signedPayloadType
|
|
1584
|
+
- signedPayload
|
|
1585
|
+
ThirdpartyTransactionIDApproveRequest:
|
|
1586
|
+
title: ThirdpartyTransactionIDApproveRequest
|
|
1587
|
+
type: object
|
|
1588
|
+
properties:
|
|
1589
|
+
authorizationResponse:
|
|
1590
|
+
oneOf:
|
|
1591
|
+
- $ref: >-
|
|
1592
|
+
#/components/schemas/ThirdpartyRequestsAuthorizationsIDPutResponseGeneric
|
|
1593
|
+
- $ref: >-
|
|
1594
|
+
#/components/schemas/ThirdpartyRequestsAuthorizationsIDPutResponseFIDO
|
|
1595
|
+
required:
|
|
1596
|
+
- authorizationResponse
|
|
1597
|
+
ThirdpartyTransactionIDApproveState:
|
|
1598
|
+
title: ThirdpartyTransactionIDApproveState
|
|
1599
|
+
description: state of thirdparty transaction
|
|
1600
|
+
type: string
|
|
1601
|
+
enum:
|
|
1602
|
+
- authorizationReceived
|
|
1603
|
+
- transactionStatusReceived
|
|
1604
|
+
- errored
|
|
1605
|
+
ThirdpartyTransactionIDApproveResponseError:
|
|
1606
|
+
title: ThirdpartyTransactionIDApproveResponseError
|
|
1607
|
+
type: object
|
|
1608
|
+
properties:
|
|
1609
|
+
currentState:
|
|
1610
|
+
$ref: '#/components/schemas/ThirdpartyTransactionIDApproveState'
|
|
1611
|
+
errorInformation:
|
|
1612
|
+
$ref: '#/components/schemas/ErrorInformation'
|
|
1613
|
+
required:
|
|
1614
|
+
- currentState
|
|
1615
|
+
- errorInformation
|
|
1616
|
+
TransactionRequestState:
|
|
1617
|
+
title: TransactionRequestState
|
|
1618
|
+
type: string
|
|
1619
|
+
enum:
|
|
1620
|
+
- RECEIVED
|
|
1621
|
+
- PENDING
|
|
1622
|
+
- ACCEPTED
|
|
1623
|
+
- REJECTED
|
|
1624
|
+
description: |-
|
|
1625
|
+
Below are the allowed values for the enumeration.
|
|
1626
|
+
- RECEIVED - Payer FSP has received the transaction from the Payee FSP.
|
|
1627
|
+
- PENDING - Payer FSP has sent the transaction request to the Payer.
|
|
1628
|
+
- ACCEPTED - Payer has approved the transaction.
|
|
1629
|
+
- REJECTED - Payer has rejected the transaction.
|
|
1630
|
+
ThirdpartyTransactionIDApproveResponseSuccess:
|
|
1631
|
+
title: ThirdpartyTransactionIDApproveResponseSuccess
|
|
1632
|
+
type: object
|
|
1633
|
+
properties:
|
|
1634
|
+
transactionStatus:
|
|
1635
|
+
type: object
|
|
1636
|
+
properties:
|
|
1637
|
+
transactionId:
|
|
1638
|
+
$ref: '#/components/schemas/CorrelationId'
|
|
1639
|
+
transactionRequestState:
|
|
1640
|
+
$ref: '#/components/schemas/TransactionRequestState'
|
|
1641
|
+
required:
|
|
1642
|
+
- transactionId
|
|
1643
|
+
- transactionRequestState
|
|
1644
|
+
currentState:
|
|
1645
|
+
$ref: '#/components/schemas/ThirdpartyTransactionIDApproveState'
|
|
1646
|
+
required:
|
|
1647
|
+
- currentState
|
|
1648
|
+
- transactionStatus
|
|
1649
|
+
ThirdpartyTransactionIDApproveResponse:
|
|
1650
|
+
oneOf:
|
|
1651
|
+
- $ref: '#/components/schemas/ThirdpartyTransactionIDApproveResponseError'
|
|
1652
|
+
- $ref: '#/components/schemas/ThirdpartyTransactionIDApproveResponseSuccess'
|
|
1653
|
+
LinkingProvidersState:
|
|
1654
|
+
title: LinkingProvidersState
|
|
1655
|
+
description: State of GET /linking/providers request
|
|
1656
|
+
type: string
|
|
1657
|
+
enum:
|
|
1658
|
+
- start
|
|
1659
|
+
- errored
|
|
1660
|
+
- providersLookupSuccess
|
|
1661
|
+
LinkingProvidersResponseError:
|
|
1662
|
+
title: LinkingProvidersResponseError
|
|
1663
|
+
type: object
|
|
1664
|
+
properties:
|
|
1665
|
+
errorInformation:
|
|
1666
|
+
$ref: '#/components/schemas/ErrorInformation'
|
|
1667
|
+
currentState:
|
|
1668
|
+
$ref: '#/components/schemas/LinkingProvidersState'
|
|
1669
|
+
required:
|
|
1670
|
+
- errorInformation
|
|
1671
|
+
- currentState
|
|
1672
|
+
LinkingProvidersResponseSuccess:
|
|
1673
|
+
title: LinkingProvidersResponseSuccess
|
|
1674
|
+
type: object
|
|
1675
|
+
properties:
|
|
1676
|
+
providers:
|
|
1677
|
+
type: array
|
|
1678
|
+
items:
|
|
1679
|
+
$ref: '#/components/schemas/FspId'
|
|
1680
|
+
currentState:
|
|
1681
|
+
$ref: '#/components/schemas/LinkingProvidersState'
|
|
1682
|
+
required:
|
|
1683
|
+
- providers
|
|
1684
|
+
- currentState
|
|
1685
|
+
LinkingProvidersResponse:
|
|
1686
|
+
oneOf:
|
|
1687
|
+
- $ref: '#/components/schemas/LinkingProvidersResponseError'
|
|
1688
|
+
- $ref: '#/components/schemas/LinkingProvidersResponseSuccess'
|
|
1689
|
+
AccountId:
|
|
1690
|
+
title: AccountId
|
|
1691
|
+
type: string
|
|
1692
|
+
description: >
|
|
1693
|
+
A long-lived unique account identifier provided by the DFSP. This MUST
|
|
1694
|
+
NOT
|
|
1695
|
+
|
|
1696
|
+
be Bank Account Number or anything that may expose a User's private bank
|
|
1697
|
+
|
|
1698
|
+
account information.
|
|
1699
|
+
pattern: '^([0-9A-Za-z_~\-\.]+[0-9A-Za-z_~\-])$'
|
|
1700
|
+
minLength: 1
|
|
1701
|
+
maxLength: 1023
|
|
1702
|
+
Name:
|
|
1703
|
+
title: Name
|
|
1704
|
+
type: string
|
|
1705
|
+
pattern: '^(?!\s*$)[\w .,''-]{1,128}$'
|
|
1706
|
+
description: >-
|
|
1707
|
+
The API data type Name is a JSON String, restricted by a regular
|
|
1708
|
+
expression to avoid characters which are generally not used in a name.
|
|
1709
|
+
|
|
1710
|
+
|
|
1711
|
+
Regular Expression - The regular expression for restricting the Name
|
|
1712
|
+
type is "^(?!\s*$)[\w .,'-]{1,128}$". The restriction does not allow a
|
|
1713
|
+
string consisting of whitespace only, all Unicode characters are
|
|
1714
|
+
allowed, as well as the period (.) (apostrophe (‘), dash (-), comma (,)
|
|
1715
|
+
and space characters ( ).
|
|
1716
|
+
|
|
1717
|
+
|
|
1718
|
+
**Note:** In some programming languages, Unicode support must be
|
|
1719
|
+
specifically enabled. For example, if Java is used, the flag
|
|
1720
|
+
UNICODE_CHARACTER_CLASS must be enabled to allow Unicode characters.
|
|
1721
|
+
Account:
|
|
1722
|
+
title: Account
|
|
1723
|
+
type: object
|
|
1724
|
+
description: Data model for the complex type Account.
|
|
1725
|
+
properties:
|
|
1726
|
+
accountNickname:
|
|
1727
|
+
$ref: '#/components/schemas/Name'
|
|
1728
|
+
id:
|
|
1729
|
+
$ref: '#/components/schemas/AccountId'
|
|
1730
|
+
currency:
|
|
1731
|
+
$ref: '#/components/schemas/Currency'
|
|
1732
|
+
required:
|
|
1733
|
+
- accountNickname
|
|
1734
|
+
- id
|
|
1735
|
+
- currency
|
|
1736
|
+
AccountsIDPutResponse:
|
|
1737
|
+
title: AccountsIDPutResponse
|
|
1738
|
+
type: object
|
|
1739
|
+
description: 'The object sent in a `PUT /accounts/{ID}` request.'
|
|
1740
|
+
properties:
|
|
1741
|
+
accounts:
|
|
1742
|
+
type: array
|
|
1743
|
+
items:
|
|
1744
|
+
$ref: '#/components/schemas/Account'
|
|
1745
|
+
required:
|
|
1746
|
+
- accounts
|
|
1747
|
+
ConsentScopeType:
|
|
1748
|
+
title: ConsentScopeType
|
|
1749
|
+
type: string
|
|
1750
|
+
enum:
|
|
1751
|
+
- accounts.getBalance
|
|
1752
|
+
- accounts.transfer
|
|
1753
|
+
description: |
|
|
1754
|
+
The scopes requested for a ConsentRequest.
|
|
1755
|
+
- "accounts.getBalance" - Get the balance of a given account.
|
|
1756
|
+
- "accounts.transfer" - Initiate a transfer from an account.
|
|
1757
|
+
LinkingRequestConsentPostRequest:
|
|
1758
|
+
title: LinkingRequestConsentPostRequest
|
|
1759
|
+
type: object
|
|
1760
|
+
description: The object sent in a `POST /linking/request-consent` request.
|
|
1761
|
+
properties:
|
|
1762
|
+
toParticipantId:
|
|
1763
|
+
type: string
|
|
1764
|
+
consentRequestId:
|
|
1765
|
+
$ref: '#/components/schemas/CorrelationId'
|
|
1766
|
+
accounts:
|
|
1767
|
+
type: array
|
|
1768
|
+
items:
|
|
1769
|
+
$ref: '#/components/schemas/Account'
|
|
1770
|
+
actions:
|
|
1771
|
+
type: array
|
|
1772
|
+
items:
|
|
1773
|
+
$ref: '#/components/schemas/ConsentScopeType'
|
|
1774
|
+
userId:
|
|
1775
|
+
type: string
|
|
1776
|
+
description: ID used to associate request with GET /accounts request.
|
|
1777
|
+
callbackUri:
|
|
1778
|
+
type: string
|
|
1779
|
+
description: >-
|
|
1780
|
+
The callback uri that the user will be redirected to after
|
|
1781
|
+
completing the WEB auth channel.
|
|
1782
|
+
required:
|
|
1783
|
+
- toParticipantId
|
|
1784
|
+
- consentRequestId
|
|
1785
|
+
- accounts
|
|
1786
|
+
- userId
|
|
1787
|
+
- callbackUri
|
|
1788
|
+
- actions
|
|
1789
|
+
LinkingRequestConsentState:
|
|
1790
|
+
title: LinkingRequestConsentState
|
|
1791
|
+
description: State of `POST /linking/request-consent` request
|
|
1792
|
+
type: string
|
|
1793
|
+
enum:
|
|
1794
|
+
- start
|
|
1795
|
+
- errored
|
|
1796
|
+
- success
|
|
1797
|
+
- OTPAuthenticationChannelResponseRecieved
|
|
1798
|
+
- WebAuthenticationChannelResponseRecieved
|
|
1799
|
+
LinkingRequestConsentResponseError:
|
|
1800
|
+
title: LinkingRequestConsentResponseError
|
|
1801
|
+
type: object
|
|
1802
|
+
properties:
|
|
1803
|
+
errorInformation:
|
|
1804
|
+
$ref: '#/components/schemas/ErrorInformation'
|
|
1805
|
+
currentState:
|
|
1806
|
+
$ref: '#/components/schemas/LinkingRequestConsentState'
|
|
1807
|
+
required:
|
|
1808
|
+
- errorInformation
|
|
1809
|
+
- currentState
|
|
1810
|
+
Scope:
|
|
1811
|
+
title: Scope
|
|
1812
|
+
type: object
|
|
1813
|
+
description: Scope + Account Identifier mapping for a Consent.
|
|
1814
|
+
example: |
|
|
1815
|
+
{
|
|
1816
|
+
accountId: "dfsp.username.5678",
|
|
1817
|
+
actions: [ "accounts.transfer", "accounts.getBalance" ]
|
|
1818
|
+
}
|
|
1819
|
+
properties:
|
|
1820
|
+
accountId:
|
|
1821
|
+
$ref: '#/components/schemas/AccountId'
|
|
1822
|
+
actions:
|
|
1823
|
+
type: array
|
|
1824
|
+
items:
|
|
1825
|
+
$ref: '#/components/schemas/ConsentScopeType'
|
|
1826
|
+
required:
|
|
1827
|
+
- accountId
|
|
1828
|
+
- actions
|
|
1829
|
+
ConsentRequestChannelTypeWeb:
|
|
1830
|
+
title: ConsentRequestChannelTypeWeb
|
|
1831
|
+
type: string
|
|
1832
|
+
enum:
|
|
1833
|
+
- WEB
|
|
1834
|
+
description: |
|
|
1835
|
+
The web auth channel being used for PUT consentRequest/{ID} request.
|
|
1836
|
+
ConsentRequestsIDPutResponseWeb:
|
|
1837
|
+
title: ConsentRequestsIDPutResponseWeb
|
|
1838
|
+
type: object
|
|
1839
|
+
description: >
|
|
1840
|
+
The object sent in a `PUT /consentRequests/{ID}` request.
|
|
1841
|
+
|
|
1842
|
+
|
|
1843
|
+
Schema used in the request consent phase of the account linking web
|
|
1844
|
+
flow,
|
|
1845
|
+
|
|
1846
|
+
the result is the PISP being instructed on a specific URL where this
|
|
1847
|
+
|
|
1848
|
+
supposed user should be redirected. This URL should be a place where
|
|
1849
|
+
|
|
1850
|
+
the user can prove their identity (e.g., by logging in).
|
|
1851
|
+
properties:
|
|
1852
|
+
consentRequestId:
|
|
1853
|
+
$ref: '#/components/schemas/CorrelationId'
|
|
1854
|
+
scopes:
|
|
1855
|
+
type: array
|
|
1856
|
+
items:
|
|
1857
|
+
$ref: '#/components/schemas/Scope'
|
|
1858
|
+
authChannels:
|
|
1859
|
+
type: array
|
|
1860
|
+
items:
|
|
1861
|
+
$ref: '#/components/schemas/ConsentRequestChannelTypeWeb'
|
|
1862
|
+
callbackUri:
|
|
1863
|
+
type: string
|
|
1864
|
+
description: >-
|
|
1865
|
+
The callback uri that the user will be redirected to after
|
|
1866
|
+
completing the WEB auth channel.
|
|
1867
|
+
authUri:
|
|
1868
|
+
type: string
|
|
1869
|
+
description: >-
|
|
1870
|
+
The callback uri that the pisp app redirects to for user to complete
|
|
1871
|
+
their login.
|
|
1872
|
+
required:
|
|
1873
|
+
- consentRequestId
|
|
1874
|
+
- scopes
|
|
1875
|
+
- authChannels
|
|
1876
|
+
- callbackUri
|
|
1877
|
+
- authUri
|
|
1878
|
+
additionalProperties: false
|
|
1879
|
+
ConsentRequestChannelTypeOTP:
|
|
1880
|
+
title: ConsentRequestChannelTypeOTP
|
|
1881
|
+
type: string
|
|
1882
|
+
enum:
|
|
1883
|
+
- OTP
|
|
1884
|
+
description: |
|
|
1885
|
+
The OTP auth channel being used for PUT consentRequest/{ID} request.
|
|
1886
|
+
ConsentRequestsIDPutResponseOTP:
|
|
1887
|
+
title: ConsentRequestsIDPutResponseOTP
|
|
1888
|
+
type: object
|
|
1889
|
+
description: >
|
|
1890
|
+
The object sent in a `PUT /consentRequests/{ID}` request.
|
|
1891
|
+
|
|
1892
|
+
|
|
1893
|
+
Schema used in the request consent phase of the account linking OTP/SMS
|
|
1894
|
+
flow.
|
|
1895
|
+
properties:
|
|
1896
|
+
consentRequestId:
|
|
1897
|
+
$ref: '#/components/schemas/CorrelationId'
|
|
1898
|
+
scopes:
|
|
1899
|
+
type: array
|
|
1900
|
+
items:
|
|
1901
|
+
$ref: '#/components/schemas/Scope'
|
|
1902
|
+
authChannels:
|
|
1903
|
+
type: array
|
|
1904
|
+
items:
|
|
1905
|
+
$ref: '#/components/schemas/ConsentRequestChannelTypeOTP'
|
|
1906
|
+
callbackUri:
|
|
1907
|
+
type: string
|
|
1908
|
+
description: >-
|
|
1909
|
+
The callback uri that the user will be redirected to after
|
|
1910
|
+
completing the WEB auth channel.
|
|
1911
|
+
required:
|
|
1912
|
+
- consentRequestId
|
|
1913
|
+
- scopes
|
|
1914
|
+
- authChannels
|
|
1915
|
+
- callbackUri
|
|
1916
|
+
additionalProperties: false
|
|
1917
|
+
LinkingRequestConsentResponseSuccess:
|
|
1918
|
+
title: LinkingRequestConsentResponseSuccess
|
|
1919
|
+
type: object
|
|
1920
|
+
properties:
|
|
1921
|
+
channelResponse:
|
|
1922
|
+
oneOf:
|
|
1923
|
+
- $ref: '#/components/schemas/ConsentRequestsIDPutResponseWeb'
|
|
1924
|
+
- $ref: '#/components/schemas/ConsentRequestsIDPutResponseOTP'
|
|
1925
|
+
currentState:
|
|
1926
|
+
$ref: '#/components/schemas/LinkingRequestConsentState'
|
|
1927
|
+
required:
|
|
1928
|
+
- channelResponse
|
|
1929
|
+
- currentState
|
|
1930
|
+
LinkingRequestConsentResponse:
|
|
1931
|
+
oneOf:
|
|
1932
|
+
- $ref: '#/components/schemas/LinkingRequestConsentResponseError'
|
|
1933
|
+
- $ref: '#/components/schemas/LinkingRequestConsentResponseSuccess'
|
|
1934
|
+
LinkingRequestConsentIDAuthenticateRequest:
|
|
1935
|
+
title: LinkingRequestConsentIDAuthenticateRequest
|
|
1936
|
+
description: 'PATCH /linking/request-consent/{ID}/authenticate Request object'
|
|
1937
|
+
type: object
|
|
1938
|
+
properties:
|
|
1939
|
+
authToken:
|
|
1940
|
+
type: string
|
|
1941
|
+
required:
|
|
1942
|
+
- authToken
|
|
1943
|
+
additionalProperties: false
|
|
1944
|
+
LinkingRequestConsentIDAuthenticateState:
|
|
1945
|
+
title: LinkingRequestConsentIDAuthenticateState
|
|
1946
|
+
description: State of PATCH linking request consent Authenticate
|
|
1947
|
+
type: string
|
|
1948
|
+
enum:
|
|
1949
|
+
- errored
|
|
1950
|
+
- consentReceivedAwaitingCredential
|
|
1951
|
+
LinkingRequestConsentIDAuthenticateResponseError:
|
|
1952
|
+
title: LinkingRequestConsentIDAuthenticateResponseError
|
|
1953
|
+
type: object
|
|
1954
|
+
properties:
|
|
1955
|
+
errorInformation:
|
|
1956
|
+
$ref: '#/components/schemas/ErrorInformation'
|
|
1957
|
+
currentState:
|
|
1958
|
+
$ref: '#/components/schemas/LinkingRequestConsentIDAuthenticateState'
|
|
1959
|
+
required:
|
|
1960
|
+
- errorInformation
|
|
1961
|
+
- currentState
|
|
1962
|
+
ConsentsPostRequestPISP:
|
|
1963
|
+
title: ConsentPostRequestPISP
|
|
1964
|
+
type: object
|
|
1965
|
+
description: >-
|
|
1966
|
+
The object sent in a `POST /consents` request to PISP by DFSP to ask for
|
|
1967
|
+
delivering the credential object.
|
|
1968
|
+
properties:
|
|
1969
|
+
consentId:
|
|
1970
|
+
allOf:
|
|
1971
|
+
- $ref: '#/components/schemas/CorrelationId'
|
|
1972
|
+
description: |
|
|
1973
|
+
Common ID between the PISP and FSP for the Consent object
|
|
1974
|
+
decided by the DFSP who creates the Consent
|
|
1975
|
+
This field is REQUIRED for POST /consent.
|
|
1976
|
+
consentRequestId:
|
|
1977
|
+
allOf:
|
|
1978
|
+
- $ref: '#/components/schemas/CorrelationId'
|
|
1979
|
+
description: |
|
|
1980
|
+
The id of the ConsentRequest that was used to initiate the
|
|
1981
|
+
creation of this Consent.
|
|
1982
|
+
scopes:
|
|
1983
|
+
type: array
|
|
1984
|
+
items:
|
|
1985
|
+
$ref: '#/components/schemas/Scope'
|
|
1986
|
+
required:
|
|
1987
|
+
- consentId
|
|
1988
|
+
- scopes
|
|
1989
|
+
- consentRequestId
|
|
1990
|
+
LinkingRequestConsentIDAuthenticateResponseSuccess:
|
|
1991
|
+
title: LinkingRequestConsentIDAuthenticateResponse
|
|
1992
|
+
type: object
|
|
1993
|
+
properties:
|
|
1994
|
+
consent:
|
|
1995
|
+
$ref: '#/components/schemas/ConsentsPostRequestPISP'
|
|
1996
|
+
challenge:
|
|
1997
|
+
type: string
|
|
1998
|
+
currentState:
|
|
1999
|
+
$ref: '#/components/schemas/LinkingRequestConsentIDAuthenticateState'
|
|
2000
|
+
required:
|
|
2001
|
+
- consent
|
|
2002
|
+
- challenge
|
|
2003
|
+
- currentState
|
|
2004
|
+
LinkingRequestConsentIDAuthenticateResponse:
|
|
2005
|
+
oneOf:
|
|
2006
|
+
- $ref: >-
|
|
2007
|
+
#/components/schemas/LinkingRequestConsentIDAuthenticateResponseError
|
|
2008
|
+
- $ref: >-
|
|
2009
|
+
#/components/schemas/LinkingRequestConsentIDAuthenticateResponseSuccess
|
|
2010
|
+
FIDOPublicKeyCredentialAttestation:
|
|
2011
|
+
title: FIDOPublicKeyCredentialAttestation
|
|
2012
|
+
type: object
|
|
2013
|
+
description: >
|
|
2014
|
+
An object sent in a `PUT /consents/{ID}` request.
|
|
2015
|
+
|
|
2016
|
+
Based on https://w3c.github.io/webauthn/#iface-pkcredential
|
|
2017
|
+
|
|
2018
|
+
and mostly on: https://webauthn.guide/#registration
|
|
2019
|
+
|
|
2020
|
+
AuthenticatorAttestationResponse
|
|
2021
|
+
|
|
2022
|
+
https://w3c.github.io/webauthn/#dom-authenticatorattestationresponse-attestationobject
|
|
2023
|
+
properties:
|
|
2024
|
+
id:
|
|
2025
|
+
type: string
|
|
2026
|
+
description: |
|
|
2027
|
+
credential id: identifier of pair of keys, base64 encoded
|
|
2028
|
+
https://w3c.github.io/webauthn/#ref-for-dom-credential-id
|
|
2029
|
+
minLength: 59
|
|
2030
|
+
maxLength: 118
|
|
2031
|
+
rawId:
|
|
2032
|
+
type: string
|
|
2033
|
+
description: |
|
|
2034
|
+
raw credential id: identifier of pair of keys, base64 encoded
|
|
2035
|
+
minLength: 59
|
|
2036
|
+
maxLength: 118
|
|
2037
|
+
response:
|
|
2038
|
+
type: object
|
|
2039
|
+
description: |
|
|
2040
|
+
AuthenticatorAttestationResponse
|
|
2041
|
+
properties:
|
|
2042
|
+
clientDataJSON:
|
|
2043
|
+
type: string
|
|
2044
|
+
description: |
|
|
2045
|
+
JSON string with client data
|
|
2046
|
+
minLength: 121
|
|
2047
|
+
maxLength: 512
|
|
2048
|
+
attestationObject:
|
|
2049
|
+
type: string
|
|
2050
|
+
description: |
|
|
2051
|
+
CBOR.encoded attestation object
|
|
2052
|
+
minLength: 306
|
|
2053
|
+
maxLength: 2048
|
|
2054
|
+
required:
|
|
2055
|
+
- clientDataJSON
|
|
2056
|
+
- attestationObject
|
|
2057
|
+
additionalProperties: false
|
|
2058
|
+
type:
|
|
2059
|
+
type: string
|
|
2060
|
+
description: 'response type, we need only the type of public-key'
|
|
2061
|
+
enum:
|
|
2062
|
+
- public-key
|
|
2063
|
+
required:
|
|
2064
|
+
- id
|
|
2065
|
+
- rawId
|
|
2066
|
+
- response
|
|
2067
|
+
- type
|
|
2068
|
+
additionalProperties: false
|
|
2069
|
+
LinkingRequestConsentIDPassCredentialRequest:
|
|
2070
|
+
title: LinkingRequestConsentIDPassCredentialRequest
|
|
2071
|
+
description: 'POST /linking/request-consent/{ID}/pass-credential request object'
|
|
2072
|
+
type: object
|
|
2073
|
+
properties:
|
|
2074
|
+
credential:
|
|
2075
|
+
type: object
|
|
2076
|
+
properties:
|
|
2077
|
+
payload:
|
|
2078
|
+
$ref: '#/components/schemas/FIDOPublicKeyCredentialAttestation'
|
|
2079
|
+
required:
|
|
2080
|
+
- payload
|
|
2081
|
+
required:
|
|
2082
|
+
- credential
|
|
2083
|
+
additionalProperties: false
|
|
2084
|
+
LinkingRequestConsentIDPassCredentialState:
|
|
2085
|
+
title: LinkingRequestConsentIDPassCredentialState
|
|
2086
|
+
description: State of post linking request consent pass credential
|
|
2087
|
+
type: string
|
|
2088
|
+
enum:
|
|
2089
|
+
- errored
|
|
2090
|
+
- accountsLinked
|
|
2091
|
+
LinkingRequestConsentIDPassCredentialResponseError:
|
|
2092
|
+
title: LinkingRequestConsentIDPassCredentialResponseError
|
|
2093
|
+
type: object
|
|
2094
|
+
properties:
|
|
2095
|
+
errorInformation:
|
|
2096
|
+
$ref: '#/components/schemas/ErrorInformation'
|
|
2097
|
+
currentState:
|
|
2098
|
+
$ref: '#/components/schemas/LinkingRequestConsentIDPassCredentialState'
|
|
2099
|
+
required:
|
|
2100
|
+
- errorInformation
|
|
2101
|
+
- currentState
|
|
2102
|
+
ConsentStatusTypeVerified:
|
|
2103
|
+
title: ConsentStatusType
|
|
2104
|
+
type: string
|
|
2105
|
+
enum:
|
|
2106
|
+
- VERIFIED
|
|
2107
|
+
description: |
|
|
2108
|
+
The status of the Consent.
|
|
2109
|
+
- "VERIFIED" - The Consent is valid and verified.
|
|
2110
|
+
LinkingRequestConsentIDPassCredentialResponseSuccess:
|
|
2111
|
+
title: LinkingRequestConsentIDPassCredentialResponseSuccess
|
|
2112
|
+
type: object
|
|
2113
|
+
properties:
|
|
2114
|
+
credential:
|
|
2115
|
+
type: object
|
|
2116
|
+
properties:
|
|
2117
|
+
status:
|
|
2118
|
+
$ref: '#/components/schemas/ConsentStatusTypeVerified'
|
|
2119
|
+
required:
|
|
2120
|
+
- status
|
|
2121
|
+
currentState:
|
|
2122
|
+
$ref: '#/components/schemas/LinkingRequestConsentIDPassCredentialState'
|
|
2123
|
+
required:
|
|
2124
|
+
- credential
|
|
2125
|
+
- currentState
|
|
2126
|
+
LinkingRequestConsentIDPassCredentialResponse:
|
|
2127
|
+
oneOf:
|
|
2128
|
+
- $ref: >-
|
|
2129
|
+
#/components/schemas/LinkingRequestConsentIDPassCredentialResponseError
|
|
2130
|
+
- $ref: >-
|
|
2131
|
+
#/components/schemas/LinkingRequestConsentIDPassCredentialResponseSuccess
|
|
2132
|
+
parameters:
|
|
2133
|
+
ID:
|
|
2134
|
+
name: ID
|
|
2135
|
+
in: path
|
|
2136
|
+
required: true
|
|
2137
|
+
schema:
|
|
2138
|
+
type: string
|
|
2139
|
+
description: The identifier value.
|