diff --git a/audit-ci.jsonc b/audit-ci.jsonc index 80f42e924..eb639fd7d 100644 --- a/audit-ci.jsonc +++ b/audit-ci.jsonc @@ -16,6 +16,7 @@ "GHSA-3cvr-822r-rqcc", "GHSA-8qr4-xgw6-wmr3", "GHSA-f772-66g8-q5h3", - "GHSA-cph5-m8f7-6c5x" + "GHSA-cph5-m8f7-6c5x", + "GHSA-hrpp-h998-j3pp" ] } diff --git a/modules/api-svc/package.json b/modules/api-svc/package.json index e863918c7..29d51c9c8 100644 --- a/modules/api-svc/package.json +++ b/modules/api-svc/package.json @@ -70,7 +70,7 @@ "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^", "@mojaloop/sdk-standard-components": "^17.1.1", "ajv": "8.11.2", - "axios": "^1.2.0", + "axios": "^1.2.1", "co-body": "^6.1.0", "dotenv": "^16.0.3", "env-var": "^7.3.0", @@ -79,39 +79,39 @@ "javascript-state-machine": "^3.1.0", "js-yaml": "^4.1.0", "json-schema-ref-parser": "^9.0.9", - "koa": "^2.13.4", + "koa": "^2.14.1", "koa-body": "^6.0.1", "lodash": "^4.17.21", "module-alias": "^2.2.2", "oauth2-server": "^4.0.0-dev.2", - "openapi-jsonschema-parameters": "^12.0.2", + "openapi-jsonschema-parameters": "^12.1.0", "prom-client": "^14.1.0", "promise-timeout": "^1.3.0", "random-word-slugs": "^0.1.6", - "redis": "^4.5.0", + "redis": "^4.5.1", "uuidv4": "^6.2.13", "ws": "^8.11.0" }, "devDependencies": { - "@babel/core": "^7.20.2", + "@babel/core": "^7.20.5", "@babel/preset-env": "^7.20.2", "@redocly/openapi-cli": "^1.0.0-beta.94", - "@types/jest": "^29.2.3", + "@types/jest": "^29.2.4", "babel-jest": "^29.3.1", - "eslint": "^8.28.0", + "eslint": "^8.29.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", + "eslint-plugin-jest": "^27.1.6", "jest": "^29.3.1", "jest-junit": "^15.0.0", "nock": "^13.2.9", - "npm-check-updates": "^16.4.3", - "openapi-response-validator": "^12.0.2", + "npm-check-updates": "^16.5.6", + "openapi-response-validator": "^12.1.0", "openapi-typescript": "^6.1.0", "redis-mock": "^0.56.3", "replace": "^1.2.2", "standard-version": "^9.5.0", - "supertest": "^6.3.1", + "supertest": "^6.3.3", "swagger-cli": "^4.0.4" }, "standard-version": { diff --git a/modules/outbound-command-event-handler/package.json b/modules/outbound-command-event-handler/package.json index 21f418664..c08b04281 100644 --- a/modules/outbound-command-event-handler/package.json +++ b/modules/outbound-command-event-handler/package.json @@ -50,31 +50,31 @@ "convict": "^6.2.3", "express": "^4.18.2", "openapi-backend": "^5.6.0", - "redis": "^4.5.0", + "redis": "^4.5.1", "swagger-ui-express": "^4.6.0", "yamljs": "^0.3.0" }, "devDependencies": { "@types/convict": "^6.1.1", - "@types/express": "^4.17.14", - "@types/jest": "^29.2.3", - "@types/node": "^18.11.9", + "@types/express": "^4.17.15", + "@types/jest": "^29.2.4", + "@types/node": "^18.11.15", "@types/node-cache": "^4.2.5", "@types/supertest": "^2.0.12", "@types/swagger-ui-express": "^4.1.3", "@types/yamljs": "^0.2.31", - "@typescript-eslint/eslint-plugin": "^5.44.0", - "@typescript-eslint/parser": "^5.44.0", + "@typescript-eslint/eslint-plugin": "^5.46.1", + "@typescript-eslint/parser": "^5.46.1", "copyfiles": "^2.4.1", - "eslint": "^8.28.0", + "eslint": "^8.29.0", "jest": "^29.3.1", "nodemon": "^2.0.20", - "npm-check-updates": "^16.4.3", + "npm-check-updates": "^16.5.6", "replace": "^1.2.2", "standard-version": "^9.5.0", "ts-jest": "^29.0.3", "ts-node": "^10.9.1", - "typescript": "^4.9.3" + "typescript": "^4.9.4" }, "nodemonConfig": { "watch": [ diff --git a/modules/outbound-domain-event-handler/package.json b/modules/outbound-domain-event-handler/package.json index ac2f6c77e..99abdbf7c 100644 --- a/modules/outbound-domain-event-handler/package.json +++ b/modules/outbound-domain-event-handler/package.json @@ -48,31 +48,31 @@ "convict": "^6.2.3", "express": "^4.18.2", "openapi-backend": "^5.6.0", - "redis": "^4.5.0", + "redis": "^4.5.1", "swagger-ui-express": "^4.6.0", "yamljs": "^0.3.0" }, "devDependencies": { "@types/convict": "^6.1.1", - "@types/express": "^4.17.14", - "@types/jest": "^29.2.3", - "@types/node": "^18.11.9", + "@types/express": "^4.17.15", + "@types/jest": "^29.2.4", + "@types/node": "^18.11.15", "@types/node-cache": "^4.2.5", "@types/supertest": "^2.0.12", "@types/swagger-ui-express": "^4.1.3", "@types/yamljs": "^0.2.31", - "@typescript-eslint/eslint-plugin": "^5.44.0", - "@typescript-eslint/parser": "^5.44.0", + "@typescript-eslint/eslint-plugin": "^5.46.1", + "@typescript-eslint/parser": "^5.46.1", "copyfiles": "^2.4.1", - "eslint": "^8.28.0", + "eslint": "^8.29.0", "jest": "^29.3.1", "nodemon": "^2.0.20", - "npm-check-updates": "^16.4.3", + "npm-check-updates": "^16.5.6", "replace": "^1.2.2", "standard-version": "^9.5.0", "ts-jest": "^29.0.3", "ts-node": "^10.9.1", - "typescript": "^4.9.3" + "typescript": "^4.9.4" }, "nodemonConfig": { "watch": [ diff --git a/modules/private-shared-lib/package.json b/modules/private-shared-lib/package.json index 01f27e78f..81f18a253 100644 --- a/modules/private-shared-lib/package.json +++ b/modules/private-shared-lib/package.json @@ -30,21 +30,21 @@ "@mojaloop/api-snippets": "17.0.0", "@mojaloop/central-services-shared": "^17.3.1", "@mojaloop/logging-bc-public-types-lib": "^0.1.14", - "@mojaloop/platform-shared-lib-messaging-types-lib": "^0.2.24", + "@mojaloop/platform-shared-lib-messaging-types-lib": "^0.2.27", "@mojaloop/platform-shared-lib-nodejs-kafka-client-lib": "0.2.15", "ajv": "^8.11.2", - "redis": "^4.5.0", + "redis": "^4.5.1", "uuid": "^9.0.0" }, "devDependencies": { - "@types/node": "^18.11.9", - "eslint": "^8.28.0", + "@types/node": "^18.11.15", + "eslint": "^8.29.0", "jest": "^29.3.1", - "npm-check-updates": "^16.4.3", + "npm-check-updates": "^16.5.6", "replace": "^1.2.2", "standard-version": "^9.5.0", "ts-jest": "^29.0.3", - "typescript": "^4.9.3" + "typescript": "^4.9.4" }, "standard-version": { "scripts": { diff --git a/package.json b/package.json index 49125128d..6feb8c95d 100644 --- a/package.json +++ b/package.json @@ -67,28 +67,28 @@ "wait-4-docker": "node ./scripts/_wait4_all.js" }, "dependencies": { - "nx": "15.2.1", + "nx": "15.3.3", "tslib": "^2.4.1" }, "devDependencies": { - "@types/jest": "^29.2.3", - "@types/node": "^18.11.9", + "@types/jest": "^29.2.4", + "@types/node": "^18.11.15", "@types/node-cache": "^4.2.5", - "@typescript-eslint/eslint-plugin": "^5.44.0", - "@typescript-eslint/parser": "^5.44.0", - "audit-ci": "^6.3.0", - "eslint": "^8.28.0", + "@typescript-eslint/eslint-plugin": "^5.46.1", + "@typescript-eslint/parser": "^5.46.1", + "audit-ci": "^6.4.0", + "eslint": "^8.29.0", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-plugin-import": "latest", "husky": "^8.0.2", "jest": "^29.3.1", "nodemon": "^2.0.20", - "npm-check-updates": "^16.4.3", + "npm-check-updates": "^16.5.6", "replace": "^1.2.2", "standard-version": "^9.5.0", "ts-jest": "^29.0.3", "ts-node": "^10.9.1", - "typescript": "^4.9.3", + "typescript": "^4.9.4", "yarn-audit-fix": "^9.3.7" }, "standard-version": { diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml b/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml index c4ac5d25b..40bb7e9cf 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml @@ -10,1117 +10,781 @@ info: paths: /: get: - summary: Health check endpoint. operationId: healthCheck responses: - 200: + '200': description: Returns empty body if the service is running. - /participants/{idType}/{idValue}: - get: - summary: Asks for the FSPID of the scheme participant that can handle transfers for the specified identifier type and value - tags: - - Participants - operationId: ParticipantsGetByTypeAndID - parameters: - - name: idType - in: path - required: true - schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' + summary: Health check endpoint. + /bulkQuotes: + post: + operationId: BulkQuotesPost + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteRequest' + description: Incoming request for a bulk quotation responses: - 200: - description: Response containing details of the requested party + '200': content: application/json: schema: - $ref: '#/components/schemas/participantsResponse' - 404: - description: The party specified by the provided identifier type and value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/bulkQuoteResponse' + description: A response to the bulk quote request + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /participants/{idType}/{idValue}/{subIdValue}: - get: - summary: Asks for the FSPID of the scheme participant that can handle transfers for the specified identifier type, value and subId value + description: An error occured processing the request + summary: Requests a bulk quote tags: - - Participants - operationId: ParticipantsGetByTypeIDAndSubId + - BulkQuotes + /bulkQuotes/{idValue}: + get: + operationId: BulkQuotesGet parameters: - - name: idType - in: path - required: true - schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path + - in: path + name: idValue required: true schema: $ref: '#/components/schemas/idValue' - - name: subIdValue - in: path - required: true - schema: - $ref: '#/components/schemas/subIdValue' responses: - 200: - description: Response containing details of the requested party + '200': content: application/json: schema: - $ref: '#/components/schemas/participantsResponse' - 404: - description: The party specified by the provided identifier type and value/subId is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/bulkQuoteResponse' + description: Response containing details of the requested bulk quote + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The bulk quote specified by the provided identifier value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /parties/{idType}/{idValue}: - get: - summary: Requests information relating to a transfer party identified by the specified identifier type and value + description: An error occured processing the request + summary: Requests information relating to a bulk quote identified by the specified identifier value tags: - - Parties - operationId: PartiesGetByTypeAndID + - BulkQuotes + /bulkTransactions/{bulkTransactionId}: + put: + description: The HTTP request `PUT /bulkTransactions/{bulkTransactionId}` is used to amend information regarding a bulk transaction, i.e. when autoAcceptParty or autoAcceptQuote is false then the payer need to provide confirmation to proceed with further processing of the request. The `{bulkTransactionId}` in the URI should contain the `bulkTransactionId` that was used for the creation of the bulk transfer. + operationId: BulkTransactionsPut parameters: - - name: idType + - description: Identifier of the bulk transaction to continue as returned in the response to a `POST /bulkTransaction` request. in: path + name: bulkTransactionId required: true schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' + description: Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘). + example: b51ec534-ee48-4575-b6a9-ead2955b8069 + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + title: CorrelationId + type: string + requestBody: + content: + application/json: + schema: + properties: + bulkHomeTransactionID: + description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + type: string + individualTransferResults: + description: List of individual transfers in a bulk transfer with accept party information. + items: + description: Data model for the 'individualTransfer' while accepting party or quote. + properties: + homeTransactionId: + description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + type: string + transactionId: + description: Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘). + example: b51ec534-ee48-4575-b6a9-ead2955b8069 + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + title: CorrelationId + type: string + required: + - homeTransactionId + type: object + minItems: 1 + type: array + required: + - bulkHomeTransactionID + - individualTransferResults + type: object + description: Bulk transaction request body + required: true responses: - 200: - description: Response containing details of the requested party + '202': + description: Bulk transaction information successfully amended + '400': + description: Malformed or missing required body, headers or parameters + '500': + description: An error occurred processing the bulk transaction + summary: Callbacks for the bulk transaction request + tags: + - BulkTransactionsPut + /bulkTransfers: + post: + operationId: BulkTransfersPost + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferRequest' + description: An incoming bulk transfer request + responses: + '200': content: application/json: schema: - $ref: '#/components/schemas/transferParty' - 404: - description: The party specified by the provided identifier type and value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/bulkTransferResponse' + description: The bulk transfer was accepted + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /parties/{idType}/{idValue}/{subIdValue}: - get: - summary: Requests information relating to a transfer party identified by the specified identifier type, value and subId value + description: An error occured processing the request + summary: Execute bulk transfer of funds from an external account to internal accounts tags: - - Parties - operationId: PartiesGetByTypeIdAndSubId + - BulkTransfers + /bulkTransfers/{idValue}: + get: + operationId: BulkTransfersGet parameters: - - name: idType - in: path - required: true - schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path + - in: path + name: idValue required: true schema: $ref: '#/components/schemas/idValue' - - name: subIdValue - in: path - required: true - schema: - $ref: '#/components/schemas/subIdValue' responses: - 200: - description: Response containing details of the requested party + '200': content: application/json: schema: - $ref: '#/components/schemas/transferParty' - 404: - description: The party specified by the provided identifier type and value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/bulkTransferResponse' + description: Response containing details of the requested bulk transfer + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The bulk transfer specified by the provided identifier value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /quoterequests: - post: - summary: Requests a quote for the specified transfer + description: An error occured processing the request + summary: Requests information relating to a bulk transfer identified by the specified identifier value tags: - - Quotes - operationId: QuoteRequest - requestBody: - description: Request for a transfer quotation - content: - application/json: - schema: - $ref: '#/components/schemas/quoteRequest' + - BulkTransfers + /otp/{requestToPayId}: + get: + operationId: OtpGet + parameters: + - in: path + name: requestToPayId + required: true + schema: + $ref: '#/components/schemas/idValue' responses: - 200: - description: A response to the transfer quotation request + '200': content: application/json: schema: - $ref: '#/components/schemas/quoteResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/otpDetails' + description: Response containing details of the OTP + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /transactionrequests: - post: - summary: transaction request that supports pull based transfers + description: An error occured processing the request + summary: Requests OTP tags: - - TransactionRequest - operationId: TransactionRequest - requestBody: - description: Request for Transaction Request - content: - application/json: - schema: - $ref: '#/components/schemas/transactionRequest' + - OTP + /participants/{idType}/{idValue}: + get: + operationId: ParticipantsGetByTypeAndID + parameters: + - in: path + name: idType + required: true + schema: + $ref: '#/components/schemas/idType' + - in: path + name: idValue + required: true + schema: + $ref: '#/components/schemas/idValue' responses: - 200: - description: A response to the transfer transaction request + '200': content: application/json: schema: - $ref: '#/components/schemas/transactionRequestResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/participantsResponse' + description: Response containing details of the requested party + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /transfers: - post: - summary: Transfers funds from an external account to an internal account + description: An error occured processing the request + summary: Asks for the FSPID of the scheme participant that can handle transfers for the specified identifier type and value tags: - - Transfers - operationId: TransfersPost - requestBody: - description: An incoming transfer request - content: - application/json: - schema: - $ref: '#/components/schemas/transferRequest' + - Participants + /participants/{idType}/{idValue}/{subIdValue}: + get: + operationId: ParticipantsGetByTypeIDAndSubId + parameters: + - in: path + name: idType + required: true + schema: + $ref: '#/components/schemas/idType' + - in: path + name: idValue + required: true + schema: + $ref: '#/components/schemas/idValue' + - in: path + name: subIdValue + required: true + schema: + $ref: '#/components/schemas/subIdValue' responses: - 200: - description: The transfer was accepted + '200': content: application/json: schema: - $ref: '#/components/schemas/transferResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/participantsResponse' + description: Response containing details of the requested party + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value/subId is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /transfers/{transferId}: - put: - summary: Receive notification for a specific transfer - description: The HTTP request `PUT /transfers/{transferId}` is used to receive notification for transfer being fulfiled when the FSP is a Payee + description: An error occured processing the request + summary: Asks for the FSPID of the scheme participant that can handle transfers for the specified identifier type, value and subId value + tags: + - Participants + /parties/{idType}/{idValue}: + get: + operationId: PartiesGetByTypeAndID parameters: - - name: transferId - in: path + - in: path + name: idType + required: true + schema: + $ref: '#/components/schemas/idType' + - in: path + name: idValue required: true schema: $ref: '#/components/schemas/idValue' - tags: - - Transfers - operationId: TransfersPut - requestBody: - description: An incoming notification for fulfiled transfer - content: - application/json: - schema: - $ref: '#/components/schemas/fulfilNotification' responses: - 200: - description: The notification was accepted - 500: - description: An error occured processing the request + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/transferParty' + description: Response containing details of the requested party + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - - /otp/{requestToPayId}: - get: - summary: Requests OTP + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value is not known to the server + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + description: An error occured processing the request + summary: Requests information relating to a transfer party identified by the specified identifier type and value tags: - - OTP - operationId: OtpGet + - Parties + /parties/{idType}/{idValue}/{subIdValue}: + get: + operationId: PartiesGetByTypeIdAndSubId parameters: - - name: requestToPayId - in: path + - in: path + name: idType + required: true + schema: + $ref: '#/components/schemas/idType' + - in: path + name: idValue required: true schema: $ref: '#/components/schemas/idValue' + - in: path + name: subIdValue + required: true + schema: + $ref: '#/components/schemas/subIdValue' responses: - 200: - description: Response containing details of the OTP + '200': content: application/json: schema: - $ref: '#/components/schemas/otpDetails' - 404: - description: The party specified by the provided identifier type and value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/transferParty' + description: Response containing details of the requested party + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /bulkQuotes: - post: - summary: Requests a bulk quote + description: An error occured processing the request + summary: Requests information relating to a transfer party identified by the specified identifier type, value and subId value tags: - - BulkQuotes - operationId: BulkQuotesPost + - Parties + /quoterequests: + post: + operationId: QuoteRequest requestBody: - description: Incoming request for a bulk quotation content: application/json: schema: - $ref: '#/components/schemas/bulkQuoteRequest' + $ref: '#/components/schemas/quoteRequest' + description: Request for a transfer quotation responses: - 200: - description: A response to the bulk quote request + '200': content: application/json: schema: - $ref: '#/components/schemas/bulkQuoteResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/quoteResponse' + description: A response to the transfer quotation request + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /bulkQuotes/{idValue}: - get: - summary: Requests information relating to a bulk quote identified by the specified identifier value + description: An error occured processing the request + summary: Requests a quote for the specified transfer tags: - - BulkQuotes - operationId: BulkQuotesGet - parameters: - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' + - Quotes + /transactionrequests: + post: + operationId: TransactionRequest + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/transactionRequest' + description: Request for Transaction Request responses: - 200: - description: Response containing details of the requested bulk quote + '200': content: application/json: schema: - $ref: '#/components/schemas/bulkQuoteResponse' - 404: - description: The bulk quote specified by the provided identifier value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/transactionRequestResponse' + description: A response to the transfer transaction request + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /bulkTransactions/{bulkTransactionId}: - put: - summary: Callbacks for the bulk transaction request - operationId: BulkTransactionsPut - description: >- - The HTTP request `PUT /bulkTransactions/{bulkTransactionId}` is used to - amend information regarding a bulk transaction, i.e. when - autoAcceptParty or autoAcceptQuote is false then the payer need to - provide confirmation to proceed with further processing of the request. - The `{bulkTransactionId}` in the URI should contain the - `bulkTransactionId` that was used for the creation of the bulk transfer. + description: An error occured processing the request + summary: transaction request that supports pull based transfers tags: - - BulkTransactionsPut - parameters: - - name: bulkTransactionId - in: path - required: true - schema: - title: CorrelationId - type: string - pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ - description: >- - Identifier that correlates all messages of the same sequence. The - API data type UUID (Universally Unique Identifier) is a JSON - String in canonical format, conforming to [RFC - 4122](https://tools.ietf.org/html/rfc4122), that is restricted by - a regular expression for interoperability reasons. A UUID is - always 36 characters long, 32 hexadecimal symbols and 4 dashes - (‘-‘). - example: b51ec534-ee48-4575-b6a9-ead2955b8069 - description: >- - Identifier of the bulk transaction to continue as returned in the - response to a `POST /bulkTransaction` request. - requestBody: - description: Bulk transaction request body - content: - application/json: - schema: - type: object - required: - - bulkHomeTransactionID - - individualTransferResults - properties: - bulkHomeTransactionID: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile - transactions between the Switch and DFSP backend - systems. - individualTransferResults: - description: >- - List of individual transfers in a bulk transfer with - accept party information. - type: array - minItems: 1 - items: - type: object - description: >- - Data model for the 'individualTransfer' while - accepting party or quote. - properties: - homeTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to - reconcile transactions between the Switch and - DFSP backend systems. - transactionId: - title: CorrelationId - type: string - pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ - description: >- - Identifier that correlates all messages of the - same sequence. The API data type UUID - (Universally Unique Identifier) is a JSON - String in canonical format, conforming to [RFC - 4122](https://tools.ietf.org/html/rfc4122), - that is restricted by a regular expression for - interoperability reasons. A UUID is always 36 - characters long, 32 hexadecimal symbols and 4 - dashes (‘-‘). - example: b51ec534-ee48-4575-b6a9-ead2955b8069 - required: - - homeTransactionId - required: true - responses: - '202': - description: Bulk transaction information successfully amended - '400': - description: Malformed or missing required body, headers or parameters - '500': - description: An error occurred processing the bulk transaction - - - /bulkTransfers: + - TransactionRequest + /transfers: post: - summary: Execute bulk transfer of funds from an external account to internal accounts - tags: - - BulkTransfers - operationId: BulkTransfersPost + operationId: TransfersPost requestBody: - description: An incoming bulk transfer request content: application/json: schema: - $ref: '#/components/schemas/bulkTransferRequest' + $ref: '#/components/schemas/transferRequest' + description: An incoming transfer request responses: - 200: - description: The bulk transfer was accepted + '200': content: application/json: schema: - $ref: '#/components/schemas/bulkTransferResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/transferResponse' + description: The transfer was accepted + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /bulkTransfers/{idValue}: - get: - summary: Requests information relating to a bulk transfer identified by the specified identifier value + description: An error occured processing the request + summary: Transfers funds from an external account to an internal account tags: - - BulkTransfers - operationId: BulkTransfersGet + - Transfers + /transfers/{transferId}: + put: + description: The HTTP request `PUT /transfers/{transferId}` is used to receive notification for transfer being fulfiled when the FSP is a Payee + operationId: TransfersPut parameters: - - name: idValue - in: path + - in: path + name: transferId required: true schema: $ref: '#/components/schemas/idValue' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/fulfilNotification' + description: An incoming notification for fulfiled transfer responses: - 200: - description: Response containing details of the requested bulk transfer - content: - application/json: - schema: - $ref: '#/components/schemas/bulkTransferResponse' - 404: - description: The bulk transfer specified by the provided identifier value is not known to the server - 400: - description: Malformed or missing required headers or parameters + '200': + description: The notification was accepted + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: description: An error occured processing the request - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' + summary: Receive notification for a specific transfer + tags: + - Transfers components: schemas: - quoteRequest: - type: object - description: A request for a quote for transfer from the DFSP backend - required: - - quoteId - - transactionId - - to - - from - - amountType - - amount - - currency - - transactionType - - initiator - - initiatorType + IndividualQuote: + description: Data model for individual quote in a bulk quote request properties: - quoteId: - $ref: '#/components/schemas/quoteId' - transactionId: - $ref: '#/components/schemas/transactionId' - to: - $ref: '#/components/schemas/transferParty' - from: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/amountType' amount: $ref: '#/components/schemas/money' + amountType: + $ref: '#/components/schemas/amountType' currency: $ref: '#/components/schemas/currency' feesAmount: $ref: '#/components/schemas/money' feesCurrency: $ref: '#/components/schemas/currency' - transactionType: - $ref: '#/components/schemas/transactionType' initiator: $ref: '#/components/schemas/initiator' initiatorType: $ref: '#/components/schemas/initiatorType' - geoCode: - $ref: '#/components/schemas/geoCode' note: - type: string - minLength: 1 + description: An optional note associated with the quote maxLength: 128 - description: An optional note associated with the requested transfer - expiration: - $ref: '#/components/schemas/timestamp' - - transactionRequest: - type: object - description: A request for a pull based transfer + minLength: 1 + type: string + quoteId: + $ref: '#/components/schemas/quoteId' + to: + $ref: '#/components/schemas/transferParty' + transactionId: + $ref: '#/components/schemas/transactionId' + transactionType: + $ref: '#/components/schemas/transactionType' required: - - transactionRequestId + - quoteId + - transactionId - to - - from + - amountType - amount - currency - transactionType - initiator - initiatorType - properties: - transactionRequestId: - $ref: '#/components/schemas/transactionRequestId' - to: - $ref: '#/components/schemas/transferParty' - from: - $ref: '#/components/schemas/transferParty' - amount: - $ref: '#/components/schemas/money' - currency: - $ref: '#/components/schemas/currency' - transactionType: - $ref: '#/components/schemas/transactionType' - initiator: - $ref: '#/components/schemas/initiator' - initiatorType: - $ref: '#/components/schemas/initiatorType' - geoCode: - $ref: '#/components/schemas/geoCode' - note: - type: string - minLength: 1 - maxLength: 128 - description: An optional note associated with the requested transfer - expiration: - $ref: '#/components/schemas/timestamp' - - timestamp: - type: string - description: An ISO-8601 formatted timestamp - pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:(\.\d{3}))(?:Z|[+-][01]\d:[0-5]\d)$ - - dateOfBirth: - type: string - description: Date of birth in the form YYYY-MM-DD - pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)$ - - initiator: - type: string - enum: - - PAYER - - PAYEE - - initiatorType: - type: string - enum: - - CONSUMER - - AGENT - - BUSINESS - - DEVICE - - quoteResponse: type: object - description: A response to a request for a quote - required: - - quoteId - - transactionId - - transferAmount - - transferAmountCurrency + IndividualQuoteResultFailed: + description: Data model for failed individual quote in a bulk quote response properties: + errorResponse: + $ref: '#/components/schemas/errorResponse' quoteId: $ref: '#/components/schemas/quoteId' - transactionId: - $ref: '#/components/schemas/transactionId' - transferAmount: - $ref: '#/components/schemas/money' - transferAmountCurrency: - $ref: '#/components/schemas/currency' - payeeReceiveAmount: + required: + - quoteId + - errorResponse + type: object + IndividualQuoteResultSuccess: + description: Data model for successful individual quote in a bulk quote response + properties: + payeeFspCommissionAmount: $ref: '#/components/schemas/money' - payeeReceiveAmountCurrency: + payeeFspCommissionAmountCurrency: $ref: '#/components/schemas/currency' payeeFspFeeAmount: $ref: '#/components/schemas/money' payeeFspFeeAmountCurrency: $ref: '#/components/schemas/currency' - payeeFspCommissionAmount: + payeeReceiveAmount: $ref: '#/components/schemas/money' - payeeFspCommissionAmountCurrency: + payeeReceiveAmountCurrency: $ref: '#/components/schemas/currency' - expiration: - $ref: '#/components/schemas/timestamp' - geoCode: - $ref: '#/components/schemas/geoCode' - extensionList: - $ref: '#/components/schemas/extensionList' - - transactionRequestResponse: - type: object - description: A response to a request for a quote - required: - - transactionId - - transactionRequestState - properties: - transactionId: - $ref: '#/components/schemas/transactionId' + quoteId: + $ref: '#/components/schemas/quoteId' transferAmount: - $ref: '#/components/schemas/transactionRequestState' - - participantsResponse: - type: object - properties: - fspId: - $ref: '#/components/schemas/fspId' - - fspId: - type: string - minLength: 1 - maxLength: 32 - - payerType: - type: string - enum: - - CONSUMER - - AGENT - - BUSINESS - - DEVICE - - amountType: - type: string - enum: - - SEND - - RECEIVE - - transactionType: - type: string - enum: - - TRANSFER - - DEPOSIT - - PAYMENT - - transactionRequestState: - type: string - enum: - - RECEIVED - - PENDING - - ACCEPTED - - REJECTED - - transferRequest: - type: object + $ref: '#/components/schemas/money' + transferAmountCurrency: + $ref: '#/components/schemas/currency' required: - - transferId - - currency - - amount + - quoteId + type: object + IndividualTransfer: + description: Data model for individual transfer in a bulk transfer request properties: - transferId: - $ref: '#/components/schemas/transferId' - quote: - $ref: '#/components/schemas/quoteResponse' - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' + amount: + $ref: '#/components/schemas/money' amountType: $ref: '#/components/schemas/amountType' currency: $ref: '#/components/schemas/currency' - amount: + feesAmount: $ref: '#/components/schemas/money' - transactionType: - $ref: '#/components/schemas/transactionType' + feesCurrency: + $ref: '#/components/schemas/currency' + initiator: + $ref: '#/components/schemas/initiator' + initiatorType: + $ref: '#/components/schemas/initiatorType' note: + description: An optional note associated with the quote maxLength: 128 + minLength: 1 type: string - - otpDetails: - type: object + to: + $ref: '#/components/schemas/transferParty' + transactionType: + $ref: '#/components/schemas/transactionType' + transferId: + $ref: '#/components/schemas/transferId' required: - - otpValue + - transferId + - amount + - currency + type: object + IndividualTransferResult: + description: Data model for individual transfer in a bulk transfer response properties: - otpValue: - type: string - description: OTP value - - idType: - type: string - enum: - - MSISDN - - ACCOUNT_NO - - EMAIL - - PERSONAL_ID - - BUSINESS - - DEVICE - - ACCOUNT_ID - - IBAN - - ALIAS - - idValue: - type: string - minLength: 1 - maxLength: 128 - - subIdValue: - type: string - minLength: 1 - maxLength: 128 - - money: - pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$ - type: string - - transferResponse: - type: object + errorResponse: + $ref: '#components/schemes/errorResponse' + extensionList: + $ref: '#/components/schemas/extensionList' + transferId: + $ref: '#/components/schemas/transferId' required: - - homeTransactionId - properties: - homeTransactionId: - type: string - description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems - - currency: - maxLength: 3 - minLength: 3 - type: string - - transferId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ - type: string - description: A Mojaloop API transfer identifier (UUID) - - quoteId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ - type: string - description: A Mojaloop API quote identifier (UUID) - - transactionRequestId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + - transferId + type: object + amountType: + enum: + - SEND + - RECEIVE type: string - description: A Mojaloop API transaction request identifier (UUID) - - transactionId: + bulkQuoteId: + description: A Mojaloop API bulk quote identifier (UUID) pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ type: string - description: ID of the transaction, the ID is decided by the Payer FSP during the creation of the quote - - transferParty: - type: object - required: - - idType - - idValue - properties: - type: - $ref: '#/components/schemas/payerType' - idType: - $ref: '#/components/schemas/idType' - idValue: - type: string - description: The identifier string used to identify the sender - subIdValue: - type: string - description: The sub identifier string used to identify the sender - displayName: - type: string - description: Display name of the sender if known - firstName: - type: string - description: Party first name - middleName: - type: string - description: Party moddle name - lastName: - type: string - description: Party last name - dateOfBirth: - $ref: '#/components/schemas/dateOfBirth' - merchantClassificationCode: - type: string - description: Up to 4 digits specifying the senders merchant classification, if known and applicable - bulkQuoteRequest: - type: object description: A request for a bulk quote - required: - - bulkQuoteId - - from - - individualQuotes properties: bulkQuoteId: $ref: '#/components/schemas/bulkQuoteId' + expiration: + $ref: '#/components/schemas/timestamp' from: $ref: '#/components/schemas/transferParty' geoCode: $ref: '#/components/schemas/geoCode' - expiration: - $ref: '#/components/schemas/timestamp' individualQuotes: - type: array - minItems: 1 - maxItems: 1000 items: $ref: '#/components/schemas/IndividualQuote' - - bulkQuoteResponse: - type: object - description: A response to a request for a bulk quote + maxItems: 1000 + minItems: 1 + type: array required: - bulkQuoteId - - individualQuoteResults + - from + - individualQuotes + type: object + bulkQuoteResponse: + description: A response to a request for a bulk quote properties: bulkQuoteId: $ref: '#/components/schemas/bulkQuoteId' expiration: $ref: '#/components/schemas/timestamp' individualQuoteResults: - type: array - minItems: 1 - maxItems: 1000 + description: Fees for each individual transaction, if any of them are charged per transaction. items: oneOf: - $ref: '#/components/schemas/IndividualQuoteResultSuccess' - $ref: '#/components/schemas/IndividualQuoteResultFailed' - description: Fees for each individual transaction, if any of them are charged per - transaction. - - IndividualQuote: - type: object - description: Data model for individual quote in a bulk quote request - required: - - quoteId - - transactionId - - to - - amountType - - amount - - currency - - transactionType - - initiator - - initiatorType - properties: - quoteId: - $ref: '#/components/schemas/quoteId' - transactionId: - $ref: '#/components/schemas/transactionId' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/amountType' - amount: - $ref: '#/components/schemas/money' - currency: - $ref: '#/components/schemas/currency' - feesAmount: - $ref: '#/components/schemas/money' - feesCurrency: - $ref: '#/components/schemas/currency' - transactionType: - $ref: '#/components/schemas/transactionType' - initiator: - $ref: '#/components/schemas/initiator' - initiatorType: - $ref: '#/components/schemas/initiatorType' - note: - type: string - minLength: 1 - maxLength: 128 - description: An optional note associated with the quote - - IndividualQuoteResultSuccess: - type: object - description: Data model for successful individual quote in a bulk quote response - properties: - quoteId: - $ref: '#/components/schemas/quoteId' - transferAmount: - $ref: '#/components/schemas/money' - transferAmountCurrency: - $ref: '#/components/schemas/currency' - payeeReceiveAmount: - $ref: '#/components/schemas/money' - payeeReceiveAmountCurrency: - $ref: '#/components/schemas/currency' - payeeFspFeeAmount: - $ref: '#/components/schemas/money' - payeeFspFeeAmountCurrency: - $ref: '#/components/schemas/currency' - payeeFspCommissionAmount: - $ref: '#/components/schemas/money' - payeeFspCommissionAmountCurrency: - $ref: '#/components/schemas/currency' + maxItems: 1000 + minItems: 1 + type: array required: - - quoteId - - IndividualQuoteResultFailed: + - bulkQuoteId + - individualQuoteResults type: object - description: Data model for failed individual quote in a bulk quote response - properties: - quoteId: - $ref: '#/components/schemas/quoteId' - errorResponse: - $ref: '#/components/schemas/errorResponse' - required: - - quoteId - - errorResponse - - bulkQuoteId: + bulkTransferId: + description: A Mojaloop API transfer identifier (UUID) pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ type: string - description: A Mojaloop API bulk quote identifier (UUID) - bulkTransferRequest: - type: object - required: - - bulkTransferId - - individualTransfers properties: - bulkTransferId: - $ref: '#/components/schemas/bulkTransferId' bulkQuote: $ref: '#/components/schemas/bulkQuoteResponse' + bulkTransferId: + $ref: '#/components/schemas/bulkTransferId' from: $ref: '#/components/schemas/transferParty' individualTransfers: - type: array - minItems: 1 - maxItems: 1000 items: $ref: '#/components/schemas/IndividualTransfer' - - IndividualTransfer: - type: object - description: Data model for individual transfer in a bulk transfer request + maxItems: 1000 + minItems: 1 + type: array required: - - transferId - - amount - - currency - properties: - transferId: - $ref: '#/components/schemas/transferId' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/amountType' - amount: - $ref: '#/components/schemas/money' - currency: - $ref: '#/components/schemas/currency' - feesAmount: - $ref: '#/components/schemas/money' - feesCurrency: - $ref: '#/components/schemas/currency' - transactionType: - $ref: '#/components/schemas/transactionType' - initiator: - $ref: '#/components/schemas/initiator' - initiatorType: - $ref: '#/components/schemas/initiatorType' - note: - type: string - minLength: 1 - maxLength: 128 - description: An optional note associated with the quote - - IndividualTransferResult: + - bulkTransferId + - individualTransfers type: object - description: Data model for individual transfer in a bulk transfer response - required: - - transferId - properties: - transferId: - $ref: '#/components/schemas/transferId' - errorResponse: - $ref: '#components/schemes/errorResponse' - extensionList: - $ref: '#/components/schemas/extensionList' - - bulkTransferResponse: - type: object - required: - - homeTransactionId + bulkTransferResponse: properties: bulkTransferId: $ref: '#/components/schemas/bulkTransferId' homeTransactionId: - type: string description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems + type: string individualTransferResults: - type: array - minItems: 1 - maxItems: 1000 items: $ref: '#/components/schemas/IndividualTransferResult' - - bulkTransferId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + maxItems: 1000 + minItems: 1 + type: array + required: + - homeTransactionId + type: object + currency: + maxLength: 3 + minLength: 3 type: string - description: A Mojaloop API transfer identifier (UUID) - - geoCode: + dateOfBirth: + description: Date of birth in the form YYYY-MM-DD + pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)$ + type: string + errorResponse: + properties: + message: + description: Error message text + type: string + statusCode: + description: | + Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code. + Otherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message. + type: string + type: object + extensionItem: + properties: + key: + maxLength: 32 + minLength: 1 + type: string + value: + maxLength: 128 + minLength: 1 + type: string + type: object + extensionList: + items: + $ref: '#/components/schemas/extensionItem' + maxItems: 16 + minItems: 0 + type: array + fspId: + maxLength: 32 + minLength: 1 + type: string + fulfilNotification: + description: PUT /transfers/{transferId} object + properties: + completedTimestamp: + $ref: '#/components/schemas/timestamp' + extensionList: + $ref: '#/components/schemas/extensionList' + transferState: + $ref: '#/components/schemas/transferState' + required: + - completedTimestamp + - transferState + title: TransfersIDPatchResponse type: object + geoCode: description: Indicates the geographic location from where the transaction was initiated. properties: latitude: @@ -1130,74 +794,308 @@ components: required: - latitude - longitude - - latitude: + type: object + idType: + enum: + - MSISDN + - ACCOUNT_NO + - EMAIL + - PERSONAL_ID + - BUSINESS + - DEVICE + - ACCOUNT_ID + - IBAN + - ALIAS type: string - pattern: ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ + idValue: + maxLength: 128 + minLength: 1 + type: string + initiator: + enum: + - PAYER + - PAYEE + type: string + initiatorType: + enum: + - CONSUMER + - AGENT + - BUSINESS + - DEVICE + type: string + latitude: description: The API data type Latitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons. - - longitude: + pattern: ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ type: string - pattern: ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ + longitude: description: The API data type Longitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons. - - errorResponse: + pattern: ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ + type: string + money: + pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$ + type: string + otpDetails: + properties: + otpValue: + description: OTP value + type: string + required: + - otpValue type: object + participantsResponse: properties: - statusCode: + fspId: + $ref: '#/components/schemas/fspId' + type: object + payerType: + enum: + - CONSUMER + - AGENT + - BUSINESS + - DEVICE + type: string + quoteId: + description: A Mojaloop API quote identifier (UUID) + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + type: string + quoteRequest: + description: A request for a quote for transfer from the DFSP backend + properties: + amount: + $ref: '#/components/schemas/money' + amountType: + $ref: '#/components/schemas/amountType' + currency: + $ref: '#/components/schemas/currency' + expiration: + $ref: '#/components/schemas/timestamp' + feesAmount: + $ref: '#/components/schemas/money' + feesCurrency: + $ref: '#/components/schemas/currency' + from: + $ref: '#/components/schemas/transferParty' + geoCode: + $ref: '#/components/schemas/geoCode' + initiator: + $ref: '#/components/schemas/initiator' + initiatorType: + $ref: '#/components/schemas/initiatorType' + note: + description: An optional note associated with the requested transfer + maxLength: 128 + minLength: 1 type: string - description: | - Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code. - Otherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message. - message: + quoteId: + $ref: '#/components/schemas/quoteId' + to: + $ref: '#/components/schemas/transferParty' + transactionId: + $ref: '#/components/schemas/transactionId' + transactionType: + $ref: '#/components/schemas/transactionType' + required: + - quoteId + - transactionId + - to + - from + - amountType + - amount + - currency + - transactionType + - initiator + - initiatorType + type: object + quoteResponse: + description: A response to a request for a quote + properties: + expiration: + $ref: '#/components/schemas/timestamp' + extensionList: + $ref: '#/components/schemas/extensionList' + geoCode: + $ref: '#/components/schemas/geoCode' + payeeFspCommissionAmount: + $ref: '#/components/schemas/money' + payeeFspCommissionAmountCurrency: + $ref: '#/components/schemas/currency' + payeeFspFeeAmount: + $ref: '#/components/schemas/money' + payeeFspFeeAmountCurrency: + $ref: '#/components/schemas/currency' + payeeReceiveAmount: + $ref: '#/components/schemas/money' + payeeReceiveAmountCurrency: + $ref: '#/components/schemas/currency' + quoteId: + $ref: '#/components/schemas/quoteId' + transactionId: + $ref: '#/components/schemas/transactionId' + transferAmount: + $ref: '#/components/schemas/money' + transferAmountCurrency: + $ref: '#/components/schemas/currency' + required: + - quoteId + - transactionId + - transferAmount + - transferAmountCurrency + type: object + subIdValue: + maxLength: 128 + minLength: 1 + type: string + timestamp: + description: An ISO-8601 formatted timestamp + pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:(\.\d{3}))(?:Z|[+-][01]\d:[0-5]\d)$ + type: string + transactionId: + description: ID of the transaction, the ID is decided by the Payer FSP during the creation of the quote + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + type: string + transactionRequest: + description: A request for a pull based transfer + properties: + amount: + $ref: '#/components/schemas/money' + currency: + $ref: '#/components/schemas/currency' + expiration: + $ref: '#/components/schemas/timestamp' + from: + $ref: '#/components/schemas/transferParty' + geoCode: + $ref: '#/components/schemas/geoCode' + initiator: + $ref: '#/components/schemas/initiator' + initiatorType: + $ref: '#/components/schemas/initiatorType' + note: + description: An optional note associated with the requested transfer + maxLength: 128 + minLength: 1 type: string - description: Error message text - - extensionList: - type: array - items: - $ref: '#/components/schemas/extensionItem' - minItems: 0 - maxItems: 16 - - extensionItem: + to: + $ref: '#/components/schemas/transferParty' + transactionRequestId: + $ref: '#/components/schemas/transactionRequestId' + transactionType: + $ref: '#/components/schemas/transactionType' + required: + - transactionRequestId + - to + - from + - amount + - currency + - transactionType + - initiator + - initiatorType type: object + transactionRequestId: + description: A Mojaloop API transaction request identifier (UUID) + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + type: string + transactionRequestResponse: + description: A response to a request for a quote properties: - key: + transactionId: + $ref: '#/components/schemas/transactionId' + transferAmount: + $ref: '#/components/schemas/transactionRequestState' + required: + - transactionId + - transactionRequestState + type: object + transactionRequestState: + enum: + - RECEIVED + - PENDING + - ACCEPTED + - REJECTED + type: string + transactionType: + enum: + - TRANSFER + - DEPOSIT + - PAYMENT + type: string + transferId: + description: A Mojaloop API transfer identifier (UUID) + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + type: string + transferParty: + properties: + dateOfBirth: + $ref: '#/components/schemas/dateOfBirth' + displayName: + description: Display name of the sender if known type: string - minLength: 1 - maxLength: 32 - value: + firstName: + description: Party first name type: string - minLength: 1 + idType: + $ref: '#/components/schemas/idType' + idValue: + description: The identifier string used to identify the sender + type: string + lastName: + description: Party last name + type: string + merchantClassificationCode: + description: Up to 4 digits specifying the senders merchant classification, if known and applicable + type: string + middleName: + description: Party moddle name + type: string + subIdValue: + description: The sub identifier string used to identify the sender + type: string + type: + $ref: '#/components/schemas/payerType' + required: + - idType + - idValue + type: object + transferRequest: + properties: + amount: + $ref: '#/components/schemas/money' + amountType: + $ref: '#/components/schemas/amountType' + currency: + $ref: '#/components/schemas/currency' + from: + $ref: '#/components/schemas/transferParty' + note: maxLength: 128 - + type: string + quote: + $ref: '#/components/schemas/quoteResponse' + to: + $ref: '#/components/schemas/transferParty' + transactionType: + $ref: '#/components/schemas/transactionType' + transferId: + $ref: '#/components/schemas/transferId' + required: + - transferId + - currency + - amount + type: object + transferResponse: + properties: + homeTransactionId: + description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems + type: string + required: + - homeTransactionId + type: object transferState: - type: string + description: | + Below are the allowed values for the enumeration - RECEIVED DFSP has received the transfer. - RESERVED DFSP has reserved the transfer. - COMMITTED DFSP has successfully performed the transfer. - ABORTED DFSP has aborted the transfer due a rejection or failure to perform the transfer. enum: - RECEIVED - RESERVED - COMMITTED - ABORTED - description: > - Below are the allowed values for the enumeration - - RECEIVED DFSP has received the transfer. - - RESERVED DFSP has reserved the transfer. - - COMMITTED DFSP has successfully performed the transfer. - - ABORTED DFSP has aborted the transfer due a rejection or failure to perform the transfer. - - fulfilNotification: - title: TransfersIDPatchResponse - type: object - description: PUT /transfers/{transferId} object - properties: - completedTimestamp: - $ref: '#/components/schemas/timestamp' - transferState: - $ref: '#/components/schemas/transferState' - extensionList: - $ref: '#/components/schemas/extensionList' - required: - - completedTimestamp - - transferState - + type: string diff --git a/test/func/config/ttk-ttksim2/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml b/test/func/config/ttk-ttksim2/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml index c4ac5d25b..40bb7e9cf 100644 --- a/test/func/config/ttk-ttksim2/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml +++ b/test/func/config/ttk-ttksim2/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml @@ -10,1117 +10,781 @@ info: paths: /: get: - summary: Health check endpoint. operationId: healthCheck responses: - 200: + '200': description: Returns empty body if the service is running. - /participants/{idType}/{idValue}: - get: - summary: Asks for the FSPID of the scheme participant that can handle transfers for the specified identifier type and value - tags: - - Participants - operationId: ParticipantsGetByTypeAndID - parameters: - - name: idType - in: path - required: true - schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' + summary: Health check endpoint. + /bulkQuotes: + post: + operationId: BulkQuotesPost + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteRequest' + description: Incoming request for a bulk quotation responses: - 200: - description: Response containing details of the requested party + '200': content: application/json: schema: - $ref: '#/components/schemas/participantsResponse' - 404: - description: The party specified by the provided identifier type and value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/bulkQuoteResponse' + description: A response to the bulk quote request + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /participants/{idType}/{idValue}/{subIdValue}: - get: - summary: Asks for the FSPID of the scheme participant that can handle transfers for the specified identifier type, value and subId value + description: An error occured processing the request + summary: Requests a bulk quote tags: - - Participants - operationId: ParticipantsGetByTypeIDAndSubId + - BulkQuotes + /bulkQuotes/{idValue}: + get: + operationId: BulkQuotesGet parameters: - - name: idType - in: path - required: true - schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path + - in: path + name: idValue required: true schema: $ref: '#/components/schemas/idValue' - - name: subIdValue - in: path - required: true - schema: - $ref: '#/components/schemas/subIdValue' responses: - 200: - description: Response containing details of the requested party + '200': content: application/json: schema: - $ref: '#/components/schemas/participantsResponse' - 404: - description: The party specified by the provided identifier type and value/subId is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/bulkQuoteResponse' + description: Response containing details of the requested bulk quote + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The bulk quote specified by the provided identifier value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /parties/{idType}/{idValue}: - get: - summary: Requests information relating to a transfer party identified by the specified identifier type and value + description: An error occured processing the request + summary: Requests information relating to a bulk quote identified by the specified identifier value tags: - - Parties - operationId: PartiesGetByTypeAndID + - BulkQuotes + /bulkTransactions/{bulkTransactionId}: + put: + description: The HTTP request `PUT /bulkTransactions/{bulkTransactionId}` is used to amend information regarding a bulk transaction, i.e. when autoAcceptParty or autoAcceptQuote is false then the payer need to provide confirmation to proceed with further processing of the request. The `{bulkTransactionId}` in the URI should contain the `bulkTransactionId` that was used for the creation of the bulk transfer. + operationId: BulkTransactionsPut parameters: - - name: idType + - description: Identifier of the bulk transaction to continue as returned in the response to a `POST /bulkTransaction` request. in: path + name: bulkTransactionId required: true schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' + description: Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘). + example: b51ec534-ee48-4575-b6a9-ead2955b8069 + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + title: CorrelationId + type: string + requestBody: + content: + application/json: + schema: + properties: + bulkHomeTransactionID: + description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + type: string + individualTransferResults: + description: List of individual transfers in a bulk transfer with accept party information. + items: + description: Data model for the 'individualTransfer' while accepting party or quote. + properties: + homeTransactionId: + description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + type: string + transactionId: + description: Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘). + example: b51ec534-ee48-4575-b6a9-ead2955b8069 + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + title: CorrelationId + type: string + required: + - homeTransactionId + type: object + minItems: 1 + type: array + required: + - bulkHomeTransactionID + - individualTransferResults + type: object + description: Bulk transaction request body + required: true responses: - 200: - description: Response containing details of the requested party + '202': + description: Bulk transaction information successfully amended + '400': + description: Malformed or missing required body, headers or parameters + '500': + description: An error occurred processing the bulk transaction + summary: Callbacks for the bulk transaction request + tags: + - BulkTransactionsPut + /bulkTransfers: + post: + operationId: BulkTransfersPost + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferRequest' + description: An incoming bulk transfer request + responses: + '200': content: application/json: schema: - $ref: '#/components/schemas/transferParty' - 404: - description: The party specified by the provided identifier type and value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/bulkTransferResponse' + description: The bulk transfer was accepted + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /parties/{idType}/{idValue}/{subIdValue}: - get: - summary: Requests information relating to a transfer party identified by the specified identifier type, value and subId value + description: An error occured processing the request + summary: Execute bulk transfer of funds from an external account to internal accounts tags: - - Parties - operationId: PartiesGetByTypeIdAndSubId + - BulkTransfers + /bulkTransfers/{idValue}: + get: + operationId: BulkTransfersGet parameters: - - name: idType - in: path - required: true - schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path + - in: path + name: idValue required: true schema: $ref: '#/components/schemas/idValue' - - name: subIdValue - in: path - required: true - schema: - $ref: '#/components/schemas/subIdValue' responses: - 200: - description: Response containing details of the requested party + '200': content: application/json: schema: - $ref: '#/components/schemas/transferParty' - 404: - description: The party specified by the provided identifier type and value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/bulkTransferResponse' + description: Response containing details of the requested bulk transfer + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The bulk transfer specified by the provided identifier value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /quoterequests: - post: - summary: Requests a quote for the specified transfer + description: An error occured processing the request + summary: Requests information relating to a bulk transfer identified by the specified identifier value tags: - - Quotes - operationId: QuoteRequest - requestBody: - description: Request for a transfer quotation - content: - application/json: - schema: - $ref: '#/components/schemas/quoteRequest' + - BulkTransfers + /otp/{requestToPayId}: + get: + operationId: OtpGet + parameters: + - in: path + name: requestToPayId + required: true + schema: + $ref: '#/components/schemas/idValue' responses: - 200: - description: A response to the transfer quotation request + '200': content: application/json: schema: - $ref: '#/components/schemas/quoteResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/otpDetails' + description: Response containing details of the OTP + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /transactionrequests: - post: - summary: transaction request that supports pull based transfers + description: An error occured processing the request + summary: Requests OTP tags: - - TransactionRequest - operationId: TransactionRequest - requestBody: - description: Request for Transaction Request - content: - application/json: - schema: - $ref: '#/components/schemas/transactionRequest' + - OTP + /participants/{idType}/{idValue}: + get: + operationId: ParticipantsGetByTypeAndID + parameters: + - in: path + name: idType + required: true + schema: + $ref: '#/components/schemas/idType' + - in: path + name: idValue + required: true + schema: + $ref: '#/components/schemas/idValue' responses: - 200: - description: A response to the transfer transaction request + '200': content: application/json: schema: - $ref: '#/components/schemas/transactionRequestResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/participantsResponse' + description: Response containing details of the requested party + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /transfers: - post: - summary: Transfers funds from an external account to an internal account + description: An error occured processing the request + summary: Asks for the FSPID of the scheme participant that can handle transfers for the specified identifier type and value tags: - - Transfers - operationId: TransfersPost - requestBody: - description: An incoming transfer request - content: - application/json: - schema: - $ref: '#/components/schemas/transferRequest' + - Participants + /participants/{idType}/{idValue}/{subIdValue}: + get: + operationId: ParticipantsGetByTypeIDAndSubId + parameters: + - in: path + name: idType + required: true + schema: + $ref: '#/components/schemas/idType' + - in: path + name: idValue + required: true + schema: + $ref: '#/components/schemas/idValue' + - in: path + name: subIdValue + required: true + schema: + $ref: '#/components/schemas/subIdValue' responses: - 200: - description: The transfer was accepted + '200': content: application/json: schema: - $ref: '#/components/schemas/transferResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/participantsResponse' + description: Response containing details of the requested party + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value/subId is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /transfers/{transferId}: - put: - summary: Receive notification for a specific transfer - description: The HTTP request `PUT /transfers/{transferId}` is used to receive notification for transfer being fulfiled when the FSP is a Payee + description: An error occured processing the request + summary: Asks for the FSPID of the scheme participant that can handle transfers for the specified identifier type, value and subId value + tags: + - Participants + /parties/{idType}/{idValue}: + get: + operationId: PartiesGetByTypeAndID parameters: - - name: transferId - in: path + - in: path + name: idType + required: true + schema: + $ref: '#/components/schemas/idType' + - in: path + name: idValue required: true schema: $ref: '#/components/schemas/idValue' - tags: - - Transfers - operationId: TransfersPut - requestBody: - description: An incoming notification for fulfiled transfer - content: - application/json: - schema: - $ref: '#/components/schemas/fulfilNotification' responses: - 200: - description: The notification was accepted - 500: - description: An error occured processing the request + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/transferParty' + description: Response containing details of the requested party + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - - /otp/{requestToPayId}: - get: - summary: Requests OTP + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value is not known to the server + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + description: An error occured processing the request + summary: Requests information relating to a transfer party identified by the specified identifier type and value tags: - - OTP - operationId: OtpGet + - Parties + /parties/{idType}/{idValue}/{subIdValue}: + get: + operationId: PartiesGetByTypeIdAndSubId parameters: - - name: requestToPayId - in: path + - in: path + name: idType + required: true + schema: + $ref: '#/components/schemas/idType' + - in: path + name: idValue required: true schema: $ref: '#/components/schemas/idValue' + - in: path + name: subIdValue + required: true + schema: + $ref: '#/components/schemas/subIdValue' responses: - 200: - description: Response containing details of the OTP + '200': content: application/json: schema: - $ref: '#/components/schemas/otpDetails' - 404: - description: The party specified by the provided identifier type and value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/transferParty' + description: Response containing details of the requested party + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /bulkQuotes: - post: - summary: Requests a bulk quote + description: An error occured processing the request + summary: Requests information relating to a transfer party identified by the specified identifier type, value and subId value tags: - - BulkQuotes - operationId: BulkQuotesPost + - Parties + /quoterequests: + post: + operationId: QuoteRequest requestBody: - description: Incoming request for a bulk quotation content: application/json: schema: - $ref: '#/components/schemas/bulkQuoteRequest' + $ref: '#/components/schemas/quoteRequest' + description: Request for a transfer quotation responses: - 200: - description: A response to the bulk quote request + '200': content: application/json: schema: - $ref: '#/components/schemas/bulkQuoteResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/quoteResponse' + description: A response to the transfer quotation request + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /bulkQuotes/{idValue}: - get: - summary: Requests information relating to a bulk quote identified by the specified identifier value + description: An error occured processing the request + summary: Requests a quote for the specified transfer tags: - - BulkQuotes - operationId: BulkQuotesGet - parameters: - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' + - Quotes + /transactionrequests: + post: + operationId: TransactionRequest + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/transactionRequest' + description: Request for Transaction Request responses: - 200: - description: Response containing details of the requested bulk quote + '200': content: application/json: schema: - $ref: '#/components/schemas/bulkQuoteResponse' - 404: - description: The bulk quote specified by the provided identifier value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/transactionRequestResponse' + description: A response to the transfer transaction request + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /bulkTransactions/{bulkTransactionId}: - put: - summary: Callbacks for the bulk transaction request - operationId: BulkTransactionsPut - description: >- - The HTTP request `PUT /bulkTransactions/{bulkTransactionId}` is used to - amend information regarding a bulk transaction, i.e. when - autoAcceptParty or autoAcceptQuote is false then the payer need to - provide confirmation to proceed with further processing of the request. - The `{bulkTransactionId}` in the URI should contain the - `bulkTransactionId` that was used for the creation of the bulk transfer. + description: An error occured processing the request + summary: transaction request that supports pull based transfers tags: - - BulkTransactionsPut - parameters: - - name: bulkTransactionId - in: path - required: true - schema: - title: CorrelationId - type: string - pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ - description: >- - Identifier that correlates all messages of the same sequence. The - API data type UUID (Universally Unique Identifier) is a JSON - String in canonical format, conforming to [RFC - 4122](https://tools.ietf.org/html/rfc4122), that is restricted by - a regular expression for interoperability reasons. A UUID is - always 36 characters long, 32 hexadecimal symbols and 4 dashes - (‘-‘). - example: b51ec534-ee48-4575-b6a9-ead2955b8069 - description: >- - Identifier of the bulk transaction to continue as returned in the - response to a `POST /bulkTransaction` request. - requestBody: - description: Bulk transaction request body - content: - application/json: - schema: - type: object - required: - - bulkHomeTransactionID - - individualTransferResults - properties: - bulkHomeTransactionID: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile - transactions between the Switch and DFSP backend - systems. - individualTransferResults: - description: >- - List of individual transfers in a bulk transfer with - accept party information. - type: array - minItems: 1 - items: - type: object - description: >- - Data model for the 'individualTransfer' while - accepting party or quote. - properties: - homeTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to - reconcile transactions between the Switch and - DFSP backend systems. - transactionId: - title: CorrelationId - type: string - pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ - description: >- - Identifier that correlates all messages of the - same sequence. The API data type UUID - (Universally Unique Identifier) is a JSON - String in canonical format, conforming to [RFC - 4122](https://tools.ietf.org/html/rfc4122), - that is restricted by a regular expression for - interoperability reasons. A UUID is always 36 - characters long, 32 hexadecimal symbols and 4 - dashes (‘-‘). - example: b51ec534-ee48-4575-b6a9-ead2955b8069 - required: - - homeTransactionId - required: true - responses: - '202': - description: Bulk transaction information successfully amended - '400': - description: Malformed or missing required body, headers or parameters - '500': - description: An error occurred processing the bulk transaction - - - /bulkTransfers: + - TransactionRequest + /transfers: post: - summary: Execute bulk transfer of funds from an external account to internal accounts - tags: - - BulkTransfers - operationId: BulkTransfersPost + operationId: TransfersPost requestBody: - description: An incoming bulk transfer request content: application/json: schema: - $ref: '#/components/schemas/bulkTransferRequest' + $ref: '#/components/schemas/transferRequest' + description: An incoming transfer request responses: - 200: - description: The bulk transfer was accepted + '200': content: application/json: schema: - $ref: '#/components/schemas/bulkTransferResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/transferResponse' + description: The transfer was accepted + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /bulkTransfers/{idValue}: - get: - summary: Requests information relating to a bulk transfer identified by the specified identifier value + description: An error occured processing the request + summary: Transfers funds from an external account to an internal account tags: - - BulkTransfers - operationId: BulkTransfersGet + - Transfers + /transfers/{transferId}: + put: + description: The HTTP request `PUT /transfers/{transferId}` is used to receive notification for transfer being fulfiled when the FSP is a Payee + operationId: TransfersPut parameters: - - name: idValue - in: path + - in: path + name: transferId required: true schema: $ref: '#/components/schemas/idValue' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/fulfilNotification' + description: An incoming notification for fulfiled transfer responses: - 200: - description: Response containing details of the requested bulk transfer - content: - application/json: - schema: - $ref: '#/components/schemas/bulkTransferResponse' - 404: - description: The bulk transfer specified by the provided identifier value is not known to the server - 400: - description: Malformed or missing required headers or parameters + '200': + description: The notification was accepted + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: description: An error occured processing the request - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' + summary: Receive notification for a specific transfer + tags: + - Transfers components: schemas: - quoteRequest: - type: object - description: A request for a quote for transfer from the DFSP backend - required: - - quoteId - - transactionId - - to - - from - - amountType - - amount - - currency - - transactionType - - initiator - - initiatorType + IndividualQuote: + description: Data model for individual quote in a bulk quote request properties: - quoteId: - $ref: '#/components/schemas/quoteId' - transactionId: - $ref: '#/components/schemas/transactionId' - to: - $ref: '#/components/schemas/transferParty' - from: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/amountType' amount: $ref: '#/components/schemas/money' + amountType: + $ref: '#/components/schemas/amountType' currency: $ref: '#/components/schemas/currency' feesAmount: $ref: '#/components/schemas/money' feesCurrency: $ref: '#/components/schemas/currency' - transactionType: - $ref: '#/components/schemas/transactionType' initiator: $ref: '#/components/schemas/initiator' initiatorType: $ref: '#/components/schemas/initiatorType' - geoCode: - $ref: '#/components/schemas/geoCode' note: - type: string - minLength: 1 + description: An optional note associated with the quote maxLength: 128 - description: An optional note associated with the requested transfer - expiration: - $ref: '#/components/schemas/timestamp' - - transactionRequest: - type: object - description: A request for a pull based transfer + minLength: 1 + type: string + quoteId: + $ref: '#/components/schemas/quoteId' + to: + $ref: '#/components/schemas/transferParty' + transactionId: + $ref: '#/components/schemas/transactionId' + transactionType: + $ref: '#/components/schemas/transactionType' required: - - transactionRequestId + - quoteId + - transactionId - to - - from + - amountType - amount - currency - transactionType - initiator - initiatorType - properties: - transactionRequestId: - $ref: '#/components/schemas/transactionRequestId' - to: - $ref: '#/components/schemas/transferParty' - from: - $ref: '#/components/schemas/transferParty' - amount: - $ref: '#/components/schemas/money' - currency: - $ref: '#/components/schemas/currency' - transactionType: - $ref: '#/components/schemas/transactionType' - initiator: - $ref: '#/components/schemas/initiator' - initiatorType: - $ref: '#/components/schemas/initiatorType' - geoCode: - $ref: '#/components/schemas/geoCode' - note: - type: string - minLength: 1 - maxLength: 128 - description: An optional note associated with the requested transfer - expiration: - $ref: '#/components/schemas/timestamp' - - timestamp: - type: string - description: An ISO-8601 formatted timestamp - pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:(\.\d{3}))(?:Z|[+-][01]\d:[0-5]\d)$ - - dateOfBirth: - type: string - description: Date of birth in the form YYYY-MM-DD - pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)$ - - initiator: - type: string - enum: - - PAYER - - PAYEE - - initiatorType: - type: string - enum: - - CONSUMER - - AGENT - - BUSINESS - - DEVICE - - quoteResponse: type: object - description: A response to a request for a quote - required: - - quoteId - - transactionId - - transferAmount - - transferAmountCurrency + IndividualQuoteResultFailed: + description: Data model for failed individual quote in a bulk quote response properties: + errorResponse: + $ref: '#/components/schemas/errorResponse' quoteId: $ref: '#/components/schemas/quoteId' - transactionId: - $ref: '#/components/schemas/transactionId' - transferAmount: - $ref: '#/components/schemas/money' - transferAmountCurrency: - $ref: '#/components/schemas/currency' - payeeReceiveAmount: + required: + - quoteId + - errorResponse + type: object + IndividualQuoteResultSuccess: + description: Data model for successful individual quote in a bulk quote response + properties: + payeeFspCommissionAmount: $ref: '#/components/schemas/money' - payeeReceiveAmountCurrency: + payeeFspCommissionAmountCurrency: $ref: '#/components/schemas/currency' payeeFspFeeAmount: $ref: '#/components/schemas/money' payeeFspFeeAmountCurrency: $ref: '#/components/schemas/currency' - payeeFspCommissionAmount: + payeeReceiveAmount: $ref: '#/components/schemas/money' - payeeFspCommissionAmountCurrency: + payeeReceiveAmountCurrency: $ref: '#/components/schemas/currency' - expiration: - $ref: '#/components/schemas/timestamp' - geoCode: - $ref: '#/components/schemas/geoCode' - extensionList: - $ref: '#/components/schemas/extensionList' - - transactionRequestResponse: - type: object - description: A response to a request for a quote - required: - - transactionId - - transactionRequestState - properties: - transactionId: - $ref: '#/components/schemas/transactionId' + quoteId: + $ref: '#/components/schemas/quoteId' transferAmount: - $ref: '#/components/schemas/transactionRequestState' - - participantsResponse: - type: object - properties: - fspId: - $ref: '#/components/schemas/fspId' - - fspId: - type: string - minLength: 1 - maxLength: 32 - - payerType: - type: string - enum: - - CONSUMER - - AGENT - - BUSINESS - - DEVICE - - amountType: - type: string - enum: - - SEND - - RECEIVE - - transactionType: - type: string - enum: - - TRANSFER - - DEPOSIT - - PAYMENT - - transactionRequestState: - type: string - enum: - - RECEIVED - - PENDING - - ACCEPTED - - REJECTED - - transferRequest: - type: object + $ref: '#/components/schemas/money' + transferAmountCurrency: + $ref: '#/components/schemas/currency' required: - - transferId - - currency - - amount + - quoteId + type: object + IndividualTransfer: + description: Data model for individual transfer in a bulk transfer request properties: - transferId: - $ref: '#/components/schemas/transferId' - quote: - $ref: '#/components/schemas/quoteResponse' - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' + amount: + $ref: '#/components/schemas/money' amountType: $ref: '#/components/schemas/amountType' currency: $ref: '#/components/schemas/currency' - amount: + feesAmount: $ref: '#/components/schemas/money' - transactionType: - $ref: '#/components/schemas/transactionType' + feesCurrency: + $ref: '#/components/schemas/currency' + initiator: + $ref: '#/components/schemas/initiator' + initiatorType: + $ref: '#/components/schemas/initiatorType' note: + description: An optional note associated with the quote maxLength: 128 + minLength: 1 type: string - - otpDetails: - type: object + to: + $ref: '#/components/schemas/transferParty' + transactionType: + $ref: '#/components/schemas/transactionType' + transferId: + $ref: '#/components/schemas/transferId' required: - - otpValue + - transferId + - amount + - currency + type: object + IndividualTransferResult: + description: Data model for individual transfer in a bulk transfer response properties: - otpValue: - type: string - description: OTP value - - idType: - type: string - enum: - - MSISDN - - ACCOUNT_NO - - EMAIL - - PERSONAL_ID - - BUSINESS - - DEVICE - - ACCOUNT_ID - - IBAN - - ALIAS - - idValue: - type: string - minLength: 1 - maxLength: 128 - - subIdValue: - type: string - minLength: 1 - maxLength: 128 - - money: - pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$ - type: string - - transferResponse: - type: object + errorResponse: + $ref: '#components/schemes/errorResponse' + extensionList: + $ref: '#/components/schemas/extensionList' + transferId: + $ref: '#/components/schemas/transferId' required: - - homeTransactionId - properties: - homeTransactionId: - type: string - description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems - - currency: - maxLength: 3 - minLength: 3 - type: string - - transferId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ - type: string - description: A Mojaloop API transfer identifier (UUID) - - quoteId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ - type: string - description: A Mojaloop API quote identifier (UUID) - - transactionRequestId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + - transferId + type: object + amountType: + enum: + - SEND + - RECEIVE type: string - description: A Mojaloop API transaction request identifier (UUID) - - transactionId: + bulkQuoteId: + description: A Mojaloop API bulk quote identifier (UUID) pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ type: string - description: ID of the transaction, the ID is decided by the Payer FSP during the creation of the quote - - transferParty: - type: object - required: - - idType - - idValue - properties: - type: - $ref: '#/components/schemas/payerType' - idType: - $ref: '#/components/schemas/idType' - idValue: - type: string - description: The identifier string used to identify the sender - subIdValue: - type: string - description: The sub identifier string used to identify the sender - displayName: - type: string - description: Display name of the sender if known - firstName: - type: string - description: Party first name - middleName: - type: string - description: Party moddle name - lastName: - type: string - description: Party last name - dateOfBirth: - $ref: '#/components/schemas/dateOfBirth' - merchantClassificationCode: - type: string - description: Up to 4 digits specifying the senders merchant classification, if known and applicable - bulkQuoteRequest: - type: object description: A request for a bulk quote - required: - - bulkQuoteId - - from - - individualQuotes properties: bulkQuoteId: $ref: '#/components/schemas/bulkQuoteId' + expiration: + $ref: '#/components/schemas/timestamp' from: $ref: '#/components/schemas/transferParty' geoCode: $ref: '#/components/schemas/geoCode' - expiration: - $ref: '#/components/schemas/timestamp' individualQuotes: - type: array - minItems: 1 - maxItems: 1000 items: $ref: '#/components/schemas/IndividualQuote' - - bulkQuoteResponse: - type: object - description: A response to a request for a bulk quote + maxItems: 1000 + minItems: 1 + type: array required: - bulkQuoteId - - individualQuoteResults + - from + - individualQuotes + type: object + bulkQuoteResponse: + description: A response to a request for a bulk quote properties: bulkQuoteId: $ref: '#/components/schemas/bulkQuoteId' expiration: $ref: '#/components/schemas/timestamp' individualQuoteResults: - type: array - minItems: 1 - maxItems: 1000 + description: Fees for each individual transaction, if any of them are charged per transaction. items: oneOf: - $ref: '#/components/schemas/IndividualQuoteResultSuccess' - $ref: '#/components/schemas/IndividualQuoteResultFailed' - description: Fees for each individual transaction, if any of them are charged per - transaction. - - IndividualQuote: - type: object - description: Data model for individual quote in a bulk quote request - required: - - quoteId - - transactionId - - to - - amountType - - amount - - currency - - transactionType - - initiator - - initiatorType - properties: - quoteId: - $ref: '#/components/schemas/quoteId' - transactionId: - $ref: '#/components/schemas/transactionId' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/amountType' - amount: - $ref: '#/components/schemas/money' - currency: - $ref: '#/components/schemas/currency' - feesAmount: - $ref: '#/components/schemas/money' - feesCurrency: - $ref: '#/components/schemas/currency' - transactionType: - $ref: '#/components/schemas/transactionType' - initiator: - $ref: '#/components/schemas/initiator' - initiatorType: - $ref: '#/components/schemas/initiatorType' - note: - type: string - minLength: 1 - maxLength: 128 - description: An optional note associated with the quote - - IndividualQuoteResultSuccess: - type: object - description: Data model for successful individual quote in a bulk quote response - properties: - quoteId: - $ref: '#/components/schemas/quoteId' - transferAmount: - $ref: '#/components/schemas/money' - transferAmountCurrency: - $ref: '#/components/schemas/currency' - payeeReceiveAmount: - $ref: '#/components/schemas/money' - payeeReceiveAmountCurrency: - $ref: '#/components/schemas/currency' - payeeFspFeeAmount: - $ref: '#/components/schemas/money' - payeeFspFeeAmountCurrency: - $ref: '#/components/schemas/currency' - payeeFspCommissionAmount: - $ref: '#/components/schemas/money' - payeeFspCommissionAmountCurrency: - $ref: '#/components/schemas/currency' + maxItems: 1000 + minItems: 1 + type: array required: - - quoteId - - IndividualQuoteResultFailed: + - bulkQuoteId + - individualQuoteResults type: object - description: Data model for failed individual quote in a bulk quote response - properties: - quoteId: - $ref: '#/components/schemas/quoteId' - errorResponse: - $ref: '#/components/schemas/errorResponse' - required: - - quoteId - - errorResponse - - bulkQuoteId: + bulkTransferId: + description: A Mojaloop API transfer identifier (UUID) pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ type: string - description: A Mojaloop API bulk quote identifier (UUID) - bulkTransferRequest: - type: object - required: - - bulkTransferId - - individualTransfers properties: - bulkTransferId: - $ref: '#/components/schemas/bulkTransferId' bulkQuote: $ref: '#/components/schemas/bulkQuoteResponse' + bulkTransferId: + $ref: '#/components/schemas/bulkTransferId' from: $ref: '#/components/schemas/transferParty' individualTransfers: - type: array - minItems: 1 - maxItems: 1000 items: $ref: '#/components/schemas/IndividualTransfer' - - IndividualTransfer: - type: object - description: Data model for individual transfer in a bulk transfer request + maxItems: 1000 + minItems: 1 + type: array required: - - transferId - - amount - - currency - properties: - transferId: - $ref: '#/components/schemas/transferId' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/amountType' - amount: - $ref: '#/components/schemas/money' - currency: - $ref: '#/components/schemas/currency' - feesAmount: - $ref: '#/components/schemas/money' - feesCurrency: - $ref: '#/components/schemas/currency' - transactionType: - $ref: '#/components/schemas/transactionType' - initiator: - $ref: '#/components/schemas/initiator' - initiatorType: - $ref: '#/components/schemas/initiatorType' - note: - type: string - minLength: 1 - maxLength: 128 - description: An optional note associated with the quote - - IndividualTransferResult: + - bulkTransferId + - individualTransfers type: object - description: Data model for individual transfer in a bulk transfer response - required: - - transferId - properties: - transferId: - $ref: '#/components/schemas/transferId' - errorResponse: - $ref: '#components/schemes/errorResponse' - extensionList: - $ref: '#/components/schemas/extensionList' - - bulkTransferResponse: - type: object - required: - - homeTransactionId + bulkTransferResponse: properties: bulkTransferId: $ref: '#/components/schemas/bulkTransferId' homeTransactionId: - type: string description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems + type: string individualTransferResults: - type: array - minItems: 1 - maxItems: 1000 items: $ref: '#/components/schemas/IndividualTransferResult' - - bulkTransferId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + maxItems: 1000 + minItems: 1 + type: array + required: + - homeTransactionId + type: object + currency: + maxLength: 3 + minLength: 3 type: string - description: A Mojaloop API transfer identifier (UUID) - - geoCode: + dateOfBirth: + description: Date of birth in the form YYYY-MM-DD + pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)$ + type: string + errorResponse: + properties: + message: + description: Error message text + type: string + statusCode: + description: | + Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code. + Otherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message. + type: string + type: object + extensionItem: + properties: + key: + maxLength: 32 + minLength: 1 + type: string + value: + maxLength: 128 + minLength: 1 + type: string + type: object + extensionList: + items: + $ref: '#/components/schemas/extensionItem' + maxItems: 16 + minItems: 0 + type: array + fspId: + maxLength: 32 + minLength: 1 + type: string + fulfilNotification: + description: PUT /transfers/{transferId} object + properties: + completedTimestamp: + $ref: '#/components/schemas/timestamp' + extensionList: + $ref: '#/components/schemas/extensionList' + transferState: + $ref: '#/components/schemas/transferState' + required: + - completedTimestamp + - transferState + title: TransfersIDPatchResponse type: object + geoCode: description: Indicates the geographic location from where the transaction was initiated. properties: latitude: @@ -1130,74 +794,308 @@ components: required: - latitude - longitude - - latitude: + type: object + idType: + enum: + - MSISDN + - ACCOUNT_NO + - EMAIL + - PERSONAL_ID + - BUSINESS + - DEVICE + - ACCOUNT_ID + - IBAN + - ALIAS type: string - pattern: ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ + idValue: + maxLength: 128 + minLength: 1 + type: string + initiator: + enum: + - PAYER + - PAYEE + type: string + initiatorType: + enum: + - CONSUMER + - AGENT + - BUSINESS + - DEVICE + type: string + latitude: description: The API data type Latitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons. - - longitude: + pattern: ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ type: string - pattern: ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ + longitude: description: The API data type Longitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons. - - errorResponse: + pattern: ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ + type: string + money: + pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$ + type: string + otpDetails: + properties: + otpValue: + description: OTP value + type: string + required: + - otpValue type: object + participantsResponse: properties: - statusCode: + fspId: + $ref: '#/components/schemas/fspId' + type: object + payerType: + enum: + - CONSUMER + - AGENT + - BUSINESS + - DEVICE + type: string + quoteId: + description: A Mojaloop API quote identifier (UUID) + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + type: string + quoteRequest: + description: A request for a quote for transfer from the DFSP backend + properties: + amount: + $ref: '#/components/schemas/money' + amountType: + $ref: '#/components/schemas/amountType' + currency: + $ref: '#/components/schemas/currency' + expiration: + $ref: '#/components/schemas/timestamp' + feesAmount: + $ref: '#/components/schemas/money' + feesCurrency: + $ref: '#/components/schemas/currency' + from: + $ref: '#/components/schemas/transferParty' + geoCode: + $ref: '#/components/schemas/geoCode' + initiator: + $ref: '#/components/schemas/initiator' + initiatorType: + $ref: '#/components/schemas/initiatorType' + note: + description: An optional note associated with the requested transfer + maxLength: 128 + minLength: 1 type: string - description: | - Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code. - Otherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message. - message: + quoteId: + $ref: '#/components/schemas/quoteId' + to: + $ref: '#/components/schemas/transferParty' + transactionId: + $ref: '#/components/schemas/transactionId' + transactionType: + $ref: '#/components/schemas/transactionType' + required: + - quoteId + - transactionId + - to + - from + - amountType + - amount + - currency + - transactionType + - initiator + - initiatorType + type: object + quoteResponse: + description: A response to a request for a quote + properties: + expiration: + $ref: '#/components/schemas/timestamp' + extensionList: + $ref: '#/components/schemas/extensionList' + geoCode: + $ref: '#/components/schemas/geoCode' + payeeFspCommissionAmount: + $ref: '#/components/schemas/money' + payeeFspCommissionAmountCurrency: + $ref: '#/components/schemas/currency' + payeeFspFeeAmount: + $ref: '#/components/schemas/money' + payeeFspFeeAmountCurrency: + $ref: '#/components/schemas/currency' + payeeReceiveAmount: + $ref: '#/components/schemas/money' + payeeReceiveAmountCurrency: + $ref: '#/components/schemas/currency' + quoteId: + $ref: '#/components/schemas/quoteId' + transactionId: + $ref: '#/components/schemas/transactionId' + transferAmount: + $ref: '#/components/schemas/money' + transferAmountCurrency: + $ref: '#/components/schemas/currency' + required: + - quoteId + - transactionId + - transferAmount + - transferAmountCurrency + type: object + subIdValue: + maxLength: 128 + minLength: 1 + type: string + timestamp: + description: An ISO-8601 formatted timestamp + pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:(\.\d{3}))(?:Z|[+-][01]\d:[0-5]\d)$ + type: string + transactionId: + description: ID of the transaction, the ID is decided by the Payer FSP during the creation of the quote + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + type: string + transactionRequest: + description: A request for a pull based transfer + properties: + amount: + $ref: '#/components/schemas/money' + currency: + $ref: '#/components/schemas/currency' + expiration: + $ref: '#/components/schemas/timestamp' + from: + $ref: '#/components/schemas/transferParty' + geoCode: + $ref: '#/components/schemas/geoCode' + initiator: + $ref: '#/components/schemas/initiator' + initiatorType: + $ref: '#/components/schemas/initiatorType' + note: + description: An optional note associated with the requested transfer + maxLength: 128 + minLength: 1 type: string - description: Error message text - - extensionList: - type: array - items: - $ref: '#/components/schemas/extensionItem' - minItems: 0 - maxItems: 16 - - extensionItem: + to: + $ref: '#/components/schemas/transferParty' + transactionRequestId: + $ref: '#/components/schemas/transactionRequestId' + transactionType: + $ref: '#/components/schemas/transactionType' + required: + - transactionRequestId + - to + - from + - amount + - currency + - transactionType + - initiator + - initiatorType type: object + transactionRequestId: + description: A Mojaloop API transaction request identifier (UUID) + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + type: string + transactionRequestResponse: + description: A response to a request for a quote properties: - key: + transactionId: + $ref: '#/components/schemas/transactionId' + transferAmount: + $ref: '#/components/schemas/transactionRequestState' + required: + - transactionId + - transactionRequestState + type: object + transactionRequestState: + enum: + - RECEIVED + - PENDING + - ACCEPTED + - REJECTED + type: string + transactionType: + enum: + - TRANSFER + - DEPOSIT + - PAYMENT + type: string + transferId: + description: A Mojaloop API transfer identifier (UUID) + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + type: string + transferParty: + properties: + dateOfBirth: + $ref: '#/components/schemas/dateOfBirth' + displayName: + description: Display name of the sender if known type: string - minLength: 1 - maxLength: 32 - value: + firstName: + description: Party first name type: string - minLength: 1 + idType: + $ref: '#/components/schemas/idType' + idValue: + description: The identifier string used to identify the sender + type: string + lastName: + description: Party last name + type: string + merchantClassificationCode: + description: Up to 4 digits specifying the senders merchant classification, if known and applicable + type: string + middleName: + description: Party moddle name + type: string + subIdValue: + description: The sub identifier string used to identify the sender + type: string + type: + $ref: '#/components/schemas/payerType' + required: + - idType + - idValue + type: object + transferRequest: + properties: + amount: + $ref: '#/components/schemas/money' + amountType: + $ref: '#/components/schemas/amountType' + currency: + $ref: '#/components/schemas/currency' + from: + $ref: '#/components/schemas/transferParty' + note: maxLength: 128 - + type: string + quote: + $ref: '#/components/schemas/quoteResponse' + to: + $ref: '#/components/schemas/transferParty' + transactionType: + $ref: '#/components/schemas/transactionType' + transferId: + $ref: '#/components/schemas/transferId' + required: + - transferId + - currency + - amount + type: object + transferResponse: + properties: + homeTransactionId: + description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems + type: string + required: + - homeTransactionId + type: object transferState: - type: string + description: | + Below are the allowed values for the enumeration - RECEIVED DFSP has received the transfer. - RESERVED DFSP has reserved the transfer. - COMMITTED DFSP has successfully performed the transfer. - ABORTED DFSP has aborted the transfer due a rejection or failure to perform the transfer. enum: - RECEIVED - RESERVED - COMMITTED - ABORTED - description: > - Below are the allowed values for the enumeration - - RECEIVED DFSP has received the transfer. - - RESERVED DFSP has reserved the transfer. - - COMMITTED DFSP has successfully performed the transfer. - - ABORTED DFSP has aborted the transfer due a rejection or failure to perform the transfer. - - fulfilNotification: - title: TransfersIDPatchResponse - type: object - description: PUT /transfers/{transferId} object - properties: - completedTimestamp: - $ref: '#/components/schemas/timestamp' - transferState: - $ref: '#/components/schemas/transferState' - extensionList: - $ref: '#/components/schemas/extensionList' - required: - - completedTimestamp - - transferState - + type: string diff --git a/test/func/config/ttk-ttksim3/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml b/test/func/config/ttk-ttksim3/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml index c4ac5d25b..40bb7e9cf 100644 --- a/test/func/config/ttk-ttksim3/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml +++ b/test/func/config/ttk-ttksim3/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml @@ -10,1117 +10,781 @@ info: paths: /: get: - summary: Health check endpoint. operationId: healthCheck responses: - 200: + '200': description: Returns empty body if the service is running. - /participants/{idType}/{idValue}: - get: - summary: Asks for the FSPID of the scheme participant that can handle transfers for the specified identifier type and value - tags: - - Participants - operationId: ParticipantsGetByTypeAndID - parameters: - - name: idType - in: path - required: true - schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' + summary: Health check endpoint. + /bulkQuotes: + post: + operationId: BulkQuotesPost + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteRequest' + description: Incoming request for a bulk quotation responses: - 200: - description: Response containing details of the requested party + '200': content: application/json: schema: - $ref: '#/components/schemas/participantsResponse' - 404: - description: The party specified by the provided identifier type and value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/bulkQuoteResponse' + description: A response to the bulk quote request + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /participants/{idType}/{idValue}/{subIdValue}: - get: - summary: Asks for the FSPID of the scheme participant that can handle transfers for the specified identifier type, value and subId value + description: An error occured processing the request + summary: Requests a bulk quote tags: - - Participants - operationId: ParticipantsGetByTypeIDAndSubId + - BulkQuotes + /bulkQuotes/{idValue}: + get: + operationId: BulkQuotesGet parameters: - - name: idType - in: path - required: true - schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path + - in: path + name: idValue required: true schema: $ref: '#/components/schemas/idValue' - - name: subIdValue - in: path - required: true - schema: - $ref: '#/components/schemas/subIdValue' responses: - 200: - description: Response containing details of the requested party + '200': content: application/json: schema: - $ref: '#/components/schemas/participantsResponse' - 404: - description: The party specified by the provided identifier type and value/subId is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/bulkQuoteResponse' + description: Response containing details of the requested bulk quote + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The bulk quote specified by the provided identifier value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /parties/{idType}/{idValue}: - get: - summary: Requests information relating to a transfer party identified by the specified identifier type and value + description: An error occured processing the request + summary: Requests information relating to a bulk quote identified by the specified identifier value tags: - - Parties - operationId: PartiesGetByTypeAndID + - BulkQuotes + /bulkTransactions/{bulkTransactionId}: + put: + description: The HTTP request `PUT /bulkTransactions/{bulkTransactionId}` is used to amend information regarding a bulk transaction, i.e. when autoAcceptParty or autoAcceptQuote is false then the payer need to provide confirmation to proceed with further processing of the request. The `{bulkTransactionId}` in the URI should contain the `bulkTransactionId` that was used for the creation of the bulk transfer. + operationId: BulkTransactionsPut parameters: - - name: idType + - description: Identifier of the bulk transaction to continue as returned in the response to a `POST /bulkTransaction` request. in: path + name: bulkTransactionId required: true schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' + description: Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘). + example: b51ec534-ee48-4575-b6a9-ead2955b8069 + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + title: CorrelationId + type: string + requestBody: + content: + application/json: + schema: + properties: + bulkHomeTransactionID: + description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + type: string + individualTransferResults: + description: List of individual transfers in a bulk transfer with accept party information. + items: + description: Data model for the 'individualTransfer' while accepting party or quote. + properties: + homeTransactionId: + description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + type: string + transactionId: + description: Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘). + example: b51ec534-ee48-4575-b6a9-ead2955b8069 + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + title: CorrelationId + type: string + required: + - homeTransactionId + type: object + minItems: 1 + type: array + required: + - bulkHomeTransactionID + - individualTransferResults + type: object + description: Bulk transaction request body + required: true responses: - 200: - description: Response containing details of the requested party + '202': + description: Bulk transaction information successfully amended + '400': + description: Malformed or missing required body, headers or parameters + '500': + description: An error occurred processing the bulk transaction + summary: Callbacks for the bulk transaction request + tags: + - BulkTransactionsPut + /bulkTransfers: + post: + operationId: BulkTransfersPost + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferRequest' + description: An incoming bulk transfer request + responses: + '200': content: application/json: schema: - $ref: '#/components/schemas/transferParty' - 404: - description: The party specified by the provided identifier type and value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/bulkTransferResponse' + description: The bulk transfer was accepted + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /parties/{idType}/{idValue}/{subIdValue}: - get: - summary: Requests information relating to a transfer party identified by the specified identifier type, value and subId value + description: An error occured processing the request + summary: Execute bulk transfer of funds from an external account to internal accounts tags: - - Parties - operationId: PartiesGetByTypeIdAndSubId + - BulkTransfers + /bulkTransfers/{idValue}: + get: + operationId: BulkTransfersGet parameters: - - name: idType - in: path - required: true - schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path + - in: path + name: idValue required: true schema: $ref: '#/components/schemas/idValue' - - name: subIdValue - in: path - required: true - schema: - $ref: '#/components/schemas/subIdValue' responses: - 200: - description: Response containing details of the requested party + '200': content: application/json: schema: - $ref: '#/components/schemas/transferParty' - 404: - description: The party specified by the provided identifier type and value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/bulkTransferResponse' + description: Response containing details of the requested bulk transfer + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The bulk transfer specified by the provided identifier value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /quoterequests: - post: - summary: Requests a quote for the specified transfer + description: An error occured processing the request + summary: Requests information relating to a bulk transfer identified by the specified identifier value tags: - - Quotes - operationId: QuoteRequest - requestBody: - description: Request for a transfer quotation - content: - application/json: - schema: - $ref: '#/components/schemas/quoteRequest' + - BulkTransfers + /otp/{requestToPayId}: + get: + operationId: OtpGet + parameters: + - in: path + name: requestToPayId + required: true + schema: + $ref: '#/components/schemas/idValue' responses: - 200: - description: A response to the transfer quotation request + '200': content: application/json: schema: - $ref: '#/components/schemas/quoteResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/otpDetails' + description: Response containing details of the OTP + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /transactionrequests: - post: - summary: transaction request that supports pull based transfers + description: An error occured processing the request + summary: Requests OTP tags: - - TransactionRequest - operationId: TransactionRequest - requestBody: - description: Request for Transaction Request - content: - application/json: - schema: - $ref: '#/components/schemas/transactionRequest' + - OTP + /participants/{idType}/{idValue}: + get: + operationId: ParticipantsGetByTypeAndID + parameters: + - in: path + name: idType + required: true + schema: + $ref: '#/components/schemas/idType' + - in: path + name: idValue + required: true + schema: + $ref: '#/components/schemas/idValue' responses: - 200: - description: A response to the transfer transaction request + '200': content: application/json: schema: - $ref: '#/components/schemas/transactionRequestResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/participantsResponse' + description: Response containing details of the requested party + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /transfers: - post: - summary: Transfers funds from an external account to an internal account + description: An error occured processing the request + summary: Asks for the FSPID of the scheme participant that can handle transfers for the specified identifier type and value tags: - - Transfers - operationId: TransfersPost - requestBody: - description: An incoming transfer request - content: - application/json: - schema: - $ref: '#/components/schemas/transferRequest' + - Participants + /participants/{idType}/{idValue}/{subIdValue}: + get: + operationId: ParticipantsGetByTypeIDAndSubId + parameters: + - in: path + name: idType + required: true + schema: + $ref: '#/components/schemas/idType' + - in: path + name: idValue + required: true + schema: + $ref: '#/components/schemas/idValue' + - in: path + name: subIdValue + required: true + schema: + $ref: '#/components/schemas/subIdValue' responses: - 200: - description: The transfer was accepted + '200': content: application/json: schema: - $ref: '#/components/schemas/transferResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/participantsResponse' + description: Response containing details of the requested party + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value/subId is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /transfers/{transferId}: - put: - summary: Receive notification for a specific transfer - description: The HTTP request `PUT /transfers/{transferId}` is used to receive notification for transfer being fulfiled when the FSP is a Payee + description: An error occured processing the request + summary: Asks for the FSPID of the scheme participant that can handle transfers for the specified identifier type, value and subId value + tags: + - Participants + /parties/{idType}/{idValue}: + get: + operationId: PartiesGetByTypeAndID parameters: - - name: transferId - in: path + - in: path + name: idType + required: true + schema: + $ref: '#/components/schemas/idType' + - in: path + name: idValue required: true schema: $ref: '#/components/schemas/idValue' - tags: - - Transfers - operationId: TransfersPut - requestBody: - description: An incoming notification for fulfiled transfer - content: - application/json: - schema: - $ref: '#/components/schemas/fulfilNotification' responses: - 200: - description: The notification was accepted - 500: - description: An error occured processing the request + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/transferParty' + description: Response containing details of the requested party + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - - /otp/{requestToPayId}: - get: - summary: Requests OTP + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value is not known to the server + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + description: An error occured processing the request + summary: Requests information relating to a transfer party identified by the specified identifier type and value tags: - - OTP - operationId: OtpGet + - Parties + /parties/{idType}/{idValue}/{subIdValue}: + get: + operationId: PartiesGetByTypeIdAndSubId parameters: - - name: requestToPayId - in: path + - in: path + name: idType + required: true + schema: + $ref: '#/components/schemas/idType' + - in: path + name: idValue required: true schema: $ref: '#/components/schemas/idValue' + - in: path + name: subIdValue + required: true + schema: + $ref: '#/components/schemas/subIdValue' responses: - 200: - description: Response containing details of the OTP + '200': content: application/json: schema: - $ref: '#/components/schemas/otpDetails' - 404: - description: The party specified by the provided identifier type and value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/transferParty' + description: Response containing details of the requested party + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '404': + description: The party specified by the provided identifier type and value is not known to the server + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /bulkQuotes: - post: - summary: Requests a bulk quote + description: An error occured processing the request + summary: Requests information relating to a transfer party identified by the specified identifier type, value and subId value tags: - - BulkQuotes - operationId: BulkQuotesPost + - Parties + /quoterequests: + post: + operationId: QuoteRequest requestBody: - description: Incoming request for a bulk quotation content: application/json: schema: - $ref: '#/components/schemas/bulkQuoteRequest' + $ref: '#/components/schemas/quoteRequest' + description: Request for a transfer quotation responses: - 200: - description: A response to the bulk quote request + '200': content: application/json: schema: - $ref: '#/components/schemas/bulkQuoteResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/quoteResponse' + description: A response to the transfer quotation request + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /bulkQuotes/{idValue}: - get: - summary: Requests information relating to a bulk quote identified by the specified identifier value + description: An error occured processing the request + summary: Requests a quote for the specified transfer tags: - - BulkQuotes - operationId: BulkQuotesGet - parameters: - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' + - Quotes + /transactionrequests: + post: + operationId: TransactionRequest + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/transactionRequest' + description: Request for Transaction Request responses: - 200: - description: Response containing details of the requested bulk quote + '200': content: application/json: schema: - $ref: '#/components/schemas/bulkQuoteResponse' - 404: - description: The bulk quote specified by the provided identifier value is not known to the server - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/transactionRequestResponse' + description: A response to the transfer transaction request + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /bulkTransactions/{bulkTransactionId}: - put: - summary: Callbacks for the bulk transaction request - operationId: BulkTransactionsPut - description: >- - The HTTP request `PUT /bulkTransactions/{bulkTransactionId}` is used to - amend information regarding a bulk transaction, i.e. when - autoAcceptParty or autoAcceptQuote is false then the payer need to - provide confirmation to proceed with further processing of the request. - The `{bulkTransactionId}` in the URI should contain the - `bulkTransactionId` that was used for the creation of the bulk transfer. + description: An error occured processing the request + summary: transaction request that supports pull based transfers tags: - - BulkTransactionsPut - parameters: - - name: bulkTransactionId - in: path - required: true - schema: - title: CorrelationId - type: string - pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ - description: >- - Identifier that correlates all messages of the same sequence. The - API data type UUID (Universally Unique Identifier) is a JSON - String in canonical format, conforming to [RFC - 4122](https://tools.ietf.org/html/rfc4122), that is restricted by - a regular expression for interoperability reasons. A UUID is - always 36 characters long, 32 hexadecimal symbols and 4 dashes - (‘-‘). - example: b51ec534-ee48-4575-b6a9-ead2955b8069 - description: >- - Identifier of the bulk transaction to continue as returned in the - response to a `POST /bulkTransaction` request. - requestBody: - description: Bulk transaction request body - content: - application/json: - schema: - type: object - required: - - bulkHomeTransactionID - - individualTransferResults - properties: - bulkHomeTransactionID: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile - transactions between the Switch and DFSP backend - systems. - individualTransferResults: - description: >- - List of individual transfers in a bulk transfer with - accept party information. - type: array - minItems: 1 - items: - type: object - description: >- - Data model for the 'individualTransfer' while - accepting party or quote. - properties: - homeTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to - reconcile transactions between the Switch and - DFSP backend systems. - transactionId: - title: CorrelationId - type: string - pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ - description: >- - Identifier that correlates all messages of the - same sequence. The API data type UUID - (Universally Unique Identifier) is a JSON - String in canonical format, conforming to [RFC - 4122](https://tools.ietf.org/html/rfc4122), - that is restricted by a regular expression for - interoperability reasons. A UUID is always 36 - characters long, 32 hexadecimal symbols and 4 - dashes (‘-‘). - example: b51ec534-ee48-4575-b6a9-ead2955b8069 - required: - - homeTransactionId - required: true - responses: - '202': - description: Bulk transaction information successfully amended - '400': - description: Malformed or missing required body, headers or parameters - '500': - description: An error occurred processing the bulk transaction - - - /bulkTransfers: + - TransactionRequest + /transfers: post: - summary: Execute bulk transfer of funds from an external account to internal accounts - tags: - - BulkTransfers - operationId: BulkTransfersPost + operationId: TransfersPost requestBody: - description: An incoming bulk transfer request content: application/json: schema: - $ref: '#/components/schemas/bulkTransferRequest' + $ref: '#/components/schemas/transferRequest' + description: An incoming transfer request responses: - 200: - description: The bulk transfer was accepted + '200': content: application/json: schema: - $ref: '#/components/schemas/bulkTransferResponse' - 400: - description: Malformed or missing required headers or parameters + $ref: '#/components/schemas/transferResponse' + description: The transfer was accepted + '400': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + description: Malformed or missing required headers or parameters + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - - /bulkTransfers/{idValue}: - get: - summary: Requests information relating to a bulk transfer identified by the specified identifier value + description: An error occured processing the request + summary: Transfers funds from an external account to an internal account tags: - - BulkTransfers - operationId: BulkTransfersGet + - Transfers + /transfers/{transferId}: + put: + description: The HTTP request `PUT /transfers/{transferId}` is used to receive notification for transfer being fulfiled when the FSP is a Payee + operationId: TransfersPut parameters: - - name: idValue - in: path + - in: path + name: transferId required: true schema: $ref: '#/components/schemas/idValue' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/fulfilNotification' + description: An incoming notification for fulfiled transfer responses: - 200: - description: Response containing details of the requested bulk transfer - content: - application/json: - schema: - $ref: '#/components/schemas/bulkTransferResponse' - 404: - description: The bulk transfer specified by the provided identifier value is not known to the server - 400: - description: Malformed or missing required headers or parameters + '200': + description: The notification was accepted + '500': content: application/json: schema: $ref: '#/components/schemas/errorResponse' - 500: description: An error occured processing the request - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' + summary: Receive notification for a specific transfer + tags: + - Transfers components: schemas: - quoteRequest: - type: object - description: A request for a quote for transfer from the DFSP backend - required: - - quoteId - - transactionId - - to - - from - - amountType - - amount - - currency - - transactionType - - initiator - - initiatorType + IndividualQuote: + description: Data model for individual quote in a bulk quote request properties: - quoteId: - $ref: '#/components/schemas/quoteId' - transactionId: - $ref: '#/components/schemas/transactionId' - to: - $ref: '#/components/schemas/transferParty' - from: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/amountType' amount: $ref: '#/components/schemas/money' + amountType: + $ref: '#/components/schemas/amountType' currency: $ref: '#/components/schemas/currency' feesAmount: $ref: '#/components/schemas/money' feesCurrency: $ref: '#/components/schemas/currency' - transactionType: - $ref: '#/components/schemas/transactionType' initiator: $ref: '#/components/schemas/initiator' initiatorType: $ref: '#/components/schemas/initiatorType' - geoCode: - $ref: '#/components/schemas/geoCode' note: - type: string - minLength: 1 + description: An optional note associated with the quote maxLength: 128 - description: An optional note associated with the requested transfer - expiration: - $ref: '#/components/schemas/timestamp' - - transactionRequest: - type: object - description: A request for a pull based transfer + minLength: 1 + type: string + quoteId: + $ref: '#/components/schemas/quoteId' + to: + $ref: '#/components/schemas/transferParty' + transactionId: + $ref: '#/components/schemas/transactionId' + transactionType: + $ref: '#/components/schemas/transactionType' required: - - transactionRequestId + - quoteId + - transactionId - to - - from + - amountType - amount - currency - transactionType - initiator - initiatorType - properties: - transactionRequestId: - $ref: '#/components/schemas/transactionRequestId' - to: - $ref: '#/components/schemas/transferParty' - from: - $ref: '#/components/schemas/transferParty' - amount: - $ref: '#/components/schemas/money' - currency: - $ref: '#/components/schemas/currency' - transactionType: - $ref: '#/components/schemas/transactionType' - initiator: - $ref: '#/components/schemas/initiator' - initiatorType: - $ref: '#/components/schemas/initiatorType' - geoCode: - $ref: '#/components/schemas/geoCode' - note: - type: string - minLength: 1 - maxLength: 128 - description: An optional note associated with the requested transfer - expiration: - $ref: '#/components/schemas/timestamp' - - timestamp: - type: string - description: An ISO-8601 formatted timestamp - pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:(\.\d{3}))(?:Z|[+-][01]\d:[0-5]\d)$ - - dateOfBirth: - type: string - description: Date of birth in the form YYYY-MM-DD - pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)$ - - initiator: - type: string - enum: - - PAYER - - PAYEE - - initiatorType: - type: string - enum: - - CONSUMER - - AGENT - - BUSINESS - - DEVICE - - quoteResponse: type: object - description: A response to a request for a quote - required: - - quoteId - - transactionId - - transferAmount - - transferAmountCurrency + IndividualQuoteResultFailed: + description: Data model for failed individual quote in a bulk quote response properties: + errorResponse: + $ref: '#/components/schemas/errorResponse' quoteId: $ref: '#/components/schemas/quoteId' - transactionId: - $ref: '#/components/schemas/transactionId' - transferAmount: - $ref: '#/components/schemas/money' - transferAmountCurrency: - $ref: '#/components/schemas/currency' - payeeReceiveAmount: + required: + - quoteId + - errorResponse + type: object + IndividualQuoteResultSuccess: + description: Data model for successful individual quote in a bulk quote response + properties: + payeeFspCommissionAmount: $ref: '#/components/schemas/money' - payeeReceiveAmountCurrency: + payeeFspCommissionAmountCurrency: $ref: '#/components/schemas/currency' payeeFspFeeAmount: $ref: '#/components/schemas/money' payeeFspFeeAmountCurrency: $ref: '#/components/schemas/currency' - payeeFspCommissionAmount: + payeeReceiveAmount: $ref: '#/components/schemas/money' - payeeFspCommissionAmountCurrency: + payeeReceiveAmountCurrency: $ref: '#/components/schemas/currency' - expiration: - $ref: '#/components/schemas/timestamp' - geoCode: - $ref: '#/components/schemas/geoCode' - extensionList: - $ref: '#/components/schemas/extensionList' - - transactionRequestResponse: - type: object - description: A response to a request for a quote - required: - - transactionId - - transactionRequestState - properties: - transactionId: - $ref: '#/components/schemas/transactionId' + quoteId: + $ref: '#/components/schemas/quoteId' transferAmount: - $ref: '#/components/schemas/transactionRequestState' - - participantsResponse: - type: object - properties: - fspId: - $ref: '#/components/schemas/fspId' - - fspId: - type: string - minLength: 1 - maxLength: 32 - - payerType: - type: string - enum: - - CONSUMER - - AGENT - - BUSINESS - - DEVICE - - amountType: - type: string - enum: - - SEND - - RECEIVE - - transactionType: - type: string - enum: - - TRANSFER - - DEPOSIT - - PAYMENT - - transactionRequestState: - type: string - enum: - - RECEIVED - - PENDING - - ACCEPTED - - REJECTED - - transferRequest: - type: object + $ref: '#/components/schemas/money' + transferAmountCurrency: + $ref: '#/components/schemas/currency' required: - - transferId - - currency - - amount + - quoteId + type: object + IndividualTransfer: + description: Data model for individual transfer in a bulk transfer request properties: - transferId: - $ref: '#/components/schemas/transferId' - quote: - $ref: '#/components/schemas/quoteResponse' - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' + amount: + $ref: '#/components/schemas/money' amountType: $ref: '#/components/schemas/amountType' currency: $ref: '#/components/schemas/currency' - amount: + feesAmount: $ref: '#/components/schemas/money' - transactionType: - $ref: '#/components/schemas/transactionType' + feesCurrency: + $ref: '#/components/schemas/currency' + initiator: + $ref: '#/components/schemas/initiator' + initiatorType: + $ref: '#/components/schemas/initiatorType' note: + description: An optional note associated with the quote maxLength: 128 + minLength: 1 type: string - - otpDetails: - type: object + to: + $ref: '#/components/schemas/transferParty' + transactionType: + $ref: '#/components/schemas/transactionType' + transferId: + $ref: '#/components/schemas/transferId' required: - - otpValue + - transferId + - amount + - currency + type: object + IndividualTransferResult: + description: Data model for individual transfer in a bulk transfer response properties: - otpValue: - type: string - description: OTP value - - idType: - type: string - enum: - - MSISDN - - ACCOUNT_NO - - EMAIL - - PERSONAL_ID - - BUSINESS - - DEVICE - - ACCOUNT_ID - - IBAN - - ALIAS - - idValue: - type: string - minLength: 1 - maxLength: 128 - - subIdValue: - type: string - minLength: 1 - maxLength: 128 - - money: - pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$ - type: string - - transferResponse: - type: object + errorResponse: + $ref: '#components/schemes/errorResponse' + extensionList: + $ref: '#/components/schemas/extensionList' + transferId: + $ref: '#/components/schemas/transferId' required: - - homeTransactionId - properties: - homeTransactionId: - type: string - description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems - - currency: - maxLength: 3 - minLength: 3 - type: string - - transferId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ - type: string - description: A Mojaloop API transfer identifier (UUID) - - quoteId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ - type: string - description: A Mojaloop API quote identifier (UUID) - - transactionRequestId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + - transferId + type: object + amountType: + enum: + - SEND + - RECEIVE type: string - description: A Mojaloop API transaction request identifier (UUID) - - transactionId: + bulkQuoteId: + description: A Mojaloop API bulk quote identifier (UUID) pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ type: string - description: ID of the transaction, the ID is decided by the Payer FSP during the creation of the quote - - transferParty: - type: object - required: - - idType - - idValue - properties: - type: - $ref: '#/components/schemas/payerType' - idType: - $ref: '#/components/schemas/idType' - idValue: - type: string - description: The identifier string used to identify the sender - subIdValue: - type: string - description: The sub identifier string used to identify the sender - displayName: - type: string - description: Display name of the sender if known - firstName: - type: string - description: Party first name - middleName: - type: string - description: Party moddle name - lastName: - type: string - description: Party last name - dateOfBirth: - $ref: '#/components/schemas/dateOfBirth' - merchantClassificationCode: - type: string - description: Up to 4 digits specifying the senders merchant classification, if known and applicable - bulkQuoteRequest: - type: object description: A request for a bulk quote - required: - - bulkQuoteId - - from - - individualQuotes properties: bulkQuoteId: $ref: '#/components/schemas/bulkQuoteId' + expiration: + $ref: '#/components/schemas/timestamp' from: $ref: '#/components/schemas/transferParty' geoCode: $ref: '#/components/schemas/geoCode' - expiration: - $ref: '#/components/schemas/timestamp' individualQuotes: - type: array - minItems: 1 - maxItems: 1000 items: $ref: '#/components/schemas/IndividualQuote' - - bulkQuoteResponse: - type: object - description: A response to a request for a bulk quote + maxItems: 1000 + minItems: 1 + type: array required: - bulkQuoteId - - individualQuoteResults + - from + - individualQuotes + type: object + bulkQuoteResponse: + description: A response to a request for a bulk quote properties: bulkQuoteId: $ref: '#/components/schemas/bulkQuoteId' expiration: $ref: '#/components/schemas/timestamp' individualQuoteResults: - type: array - minItems: 1 - maxItems: 1000 + description: Fees for each individual transaction, if any of them are charged per transaction. items: oneOf: - $ref: '#/components/schemas/IndividualQuoteResultSuccess' - $ref: '#/components/schemas/IndividualQuoteResultFailed' - description: Fees for each individual transaction, if any of them are charged per - transaction. - - IndividualQuote: - type: object - description: Data model for individual quote in a bulk quote request - required: - - quoteId - - transactionId - - to - - amountType - - amount - - currency - - transactionType - - initiator - - initiatorType - properties: - quoteId: - $ref: '#/components/schemas/quoteId' - transactionId: - $ref: '#/components/schemas/transactionId' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/amountType' - amount: - $ref: '#/components/schemas/money' - currency: - $ref: '#/components/schemas/currency' - feesAmount: - $ref: '#/components/schemas/money' - feesCurrency: - $ref: '#/components/schemas/currency' - transactionType: - $ref: '#/components/schemas/transactionType' - initiator: - $ref: '#/components/schemas/initiator' - initiatorType: - $ref: '#/components/schemas/initiatorType' - note: - type: string - minLength: 1 - maxLength: 128 - description: An optional note associated with the quote - - IndividualQuoteResultSuccess: - type: object - description: Data model for successful individual quote in a bulk quote response - properties: - quoteId: - $ref: '#/components/schemas/quoteId' - transferAmount: - $ref: '#/components/schemas/money' - transferAmountCurrency: - $ref: '#/components/schemas/currency' - payeeReceiveAmount: - $ref: '#/components/schemas/money' - payeeReceiveAmountCurrency: - $ref: '#/components/schemas/currency' - payeeFspFeeAmount: - $ref: '#/components/schemas/money' - payeeFspFeeAmountCurrency: - $ref: '#/components/schemas/currency' - payeeFspCommissionAmount: - $ref: '#/components/schemas/money' - payeeFspCommissionAmountCurrency: - $ref: '#/components/schemas/currency' + maxItems: 1000 + minItems: 1 + type: array required: - - quoteId - - IndividualQuoteResultFailed: + - bulkQuoteId + - individualQuoteResults type: object - description: Data model for failed individual quote in a bulk quote response - properties: - quoteId: - $ref: '#/components/schemas/quoteId' - errorResponse: - $ref: '#/components/schemas/errorResponse' - required: - - quoteId - - errorResponse - - bulkQuoteId: + bulkTransferId: + description: A Mojaloop API transfer identifier (UUID) pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ type: string - description: A Mojaloop API bulk quote identifier (UUID) - bulkTransferRequest: - type: object - required: - - bulkTransferId - - individualTransfers properties: - bulkTransferId: - $ref: '#/components/schemas/bulkTransferId' bulkQuote: $ref: '#/components/schemas/bulkQuoteResponse' + bulkTransferId: + $ref: '#/components/schemas/bulkTransferId' from: $ref: '#/components/schemas/transferParty' individualTransfers: - type: array - minItems: 1 - maxItems: 1000 items: $ref: '#/components/schemas/IndividualTransfer' - - IndividualTransfer: - type: object - description: Data model for individual transfer in a bulk transfer request + maxItems: 1000 + minItems: 1 + type: array required: - - transferId - - amount - - currency - properties: - transferId: - $ref: '#/components/schemas/transferId' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/amountType' - amount: - $ref: '#/components/schemas/money' - currency: - $ref: '#/components/schemas/currency' - feesAmount: - $ref: '#/components/schemas/money' - feesCurrency: - $ref: '#/components/schemas/currency' - transactionType: - $ref: '#/components/schemas/transactionType' - initiator: - $ref: '#/components/schemas/initiator' - initiatorType: - $ref: '#/components/schemas/initiatorType' - note: - type: string - minLength: 1 - maxLength: 128 - description: An optional note associated with the quote - - IndividualTransferResult: + - bulkTransferId + - individualTransfers type: object - description: Data model for individual transfer in a bulk transfer response - required: - - transferId - properties: - transferId: - $ref: '#/components/schemas/transferId' - errorResponse: - $ref: '#components/schemes/errorResponse' - extensionList: - $ref: '#/components/schemas/extensionList' - - bulkTransferResponse: - type: object - required: - - homeTransactionId + bulkTransferResponse: properties: bulkTransferId: $ref: '#/components/schemas/bulkTransferId' homeTransactionId: - type: string description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems + type: string individualTransferResults: - type: array - minItems: 1 - maxItems: 1000 items: $ref: '#/components/schemas/IndividualTransferResult' - - bulkTransferId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + maxItems: 1000 + minItems: 1 + type: array + required: + - homeTransactionId + type: object + currency: + maxLength: 3 + minLength: 3 type: string - description: A Mojaloop API transfer identifier (UUID) - - geoCode: + dateOfBirth: + description: Date of birth in the form YYYY-MM-DD + pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)$ + type: string + errorResponse: + properties: + message: + description: Error message text + type: string + statusCode: + description: | + Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code. + Otherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message. + type: string + type: object + extensionItem: + properties: + key: + maxLength: 32 + minLength: 1 + type: string + value: + maxLength: 128 + minLength: 1 + type: string + type: object + extensionList: + items: + $ref: '#/components/schemas/extensionItem' + maxItems: 16 + minItems: 0 + type: array + fspId: + maxLength: 32 + minLength: 1 + type: string + fulfilNotification: + description: PUT /transfers/{transferId} object + properties: + completedTimestamp: + $ref: '#/components/schemas/timestamp' + extensionList: + $ref: '#/components/schemas/extensionList' + transferState: + $ref: '#/components/schemas/transferState' + required: + - completedTimestamp + - transferState + title: TransfersIDPatchResponse type: object + geoCode: description: Indicates the geographic location from where the transaction was initiated. properties: latitude: @@ -1130,74 +794,308 @@ components: required: - latitude - longitude - - latitude: + type: object + idType: + enum: + - MSISDN + - ACCOUNT_NO + - EMAIL + - PERSONAL_ID + - BUSINESS + - DEVICE + - ACCOUNT_ID + - IBAN + - ALIAS type: string - pattern: ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ + idValue: + maxLength: 128 + minLength: 1 + type: string + initiator: + enum: + - PAYER + - PAYEE + type: string + initiatorType: + enum: + - CONSUMER + - AGENT + - BUSINESS + - DEVICE + type: string + latitude: description: The API data type Latitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons. - - longitude: + pattern: ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ type: string - pattern: ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ + longitude: description: The API data type Longitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons. - - errorResponse: + pattern: ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ + type: string + money: + pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$ + type: string + otpDetails: + properties: + otpValue: + description: OTP value + type: string + required: + - otpValue type: object + participantsResponse: properties: - statusCode: + fspId: + $ref: '#/components/schemas/fspId' + type: object + payerType: + enum: + - CONSUMER + - AGENT + - BUSINESS + - DEVICE + type: string + quoteId: + description: A Mojaloop API quote identifier (UUID) + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + type: string + quoteRequest: + description: A request for a quote for transfer from the DFSP backend + properties: + amount: + $ref: '#/components/schemas/money' + amountType: + $ref: '#/components/schemas/amountType' + currency: + $ref: '#/components/schemas/currency' + expiration: + $ref: '#/components/schemas/timestamp' + feesAmount: + $ref: '#/components/schemas/money' + feesCurrency: + $ref: '#/components/schemas/currency' + from: + $ref: '#/components/schemas/transferParty' + geoCode: + $ref: '#/components/schemas/geoCode' + initiator: + $ref: '#/components/schemas/initiator' + initiatorType: + $ref: '#/components/schemas/initiatorType' + note: + description: An optional note associated with the requested transfer + maxLength: 128 + minLength: 1 type: string - description: | - Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code. - Otherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message. - message: + quoteId: + $ref: '#/components/schemas/quoteId' + to: + $ref: '#/components/schemas/transferParty' + transactionId: + $ref: '#/components/schemas/transactionId' + transactionType: + $ref: '#/components/schemas/transactionType' + required: + - quoteId + - transactionId + - to + - from + - amountType + - amount + - currency + - transactionType + - initiator + - initiatorType + type: object + quoteResponse: + description: A response to a request for a quote + properties: + expiration: + $ref: '#/components/schemas/timestamp' + extensionList: + $ref: '#/components/schemas/extensionList' + geoCode: + $ref: '#/components/schemas/geoCode' + payeeFspCommissionAmount: + $ref: '#/components/schemas/money' + payeeFspCommissionAmountCurrency: + $ref: '#/components/schemas/currency' + payeeFspFeeAmount: + $ref: '#/components/schemas/money' + payeeFspFeeAmountCurrency: + $ref: '#/components/schemas/currency' + payeeReceiveAmount: + $ref: '#/components/schemas/money' + payeeReceiveAmountCurrency: + $ref: '#/components/schemas/currency' + quoteId: + $ref: '#/components/schemas/quoteId' + transactionId: + $ref: '#/components/schemas/transactionId' + transferAmount: + $ref: '#/components/schemas/money' + transferAmountCurrency: + $ref: '#/components/schemas/currency' + required: + - quoteId + - transactionId + - transferAmount + - transferAmountCurrency + type: object + subIdValue: + maxLength: 128 + minLength: 1 + type: string + timestamp: + description: An ISO-8601 formatted timestamp + pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:(\.\d{3}))(?:Z|[+-][01]\d:[0-5]\d)$ + type: string + transactionId: + description: ID of the transaction, the ID is decided by the Payer FSP during the creation of the quote + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + type: string + transactionRequest: + description: A request for a pull based transfer + properties: + amount: + $ref: '#/components/schemas/money' + currency: + $ref: '#/components/schemas/currency' + expiration: + $ref: '#/components/schemas/timestamp' + from: + $ref: '#/components/schemas/transferParty' + geoCode: + $ref: '#/components/schemas/geoCode' + initiator: + $ref: '#/components/schemas/initiator' + initiatorType: + $ref: '#/components/schemas/initiatorType' + note: + description: An optional note associated with the requested transfer + maxLength: 128 + minLength: 1 type: string - description: Error message text - - extensionList: - type: array - items: - $ref: '#/components/schemas/extensionItem' - minItems: 0 - maxItems: 16 - - extensionItem: + to: + $ref: '#/components/schemas/transferParty' + transactionRequestId: + $ref: '#/components/schemas/transactionRequestId' + transactionType: + $ref: '#/components/schemas/transactionType' + required: + - transactionRequestId + - to + - from + - amount + - currency + - transactionType + - initiator + - initiatorType type: object + transactionRequestId: + description: A Mojaloop API transaction request identifier (UUID) + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + type: string + transactionRequestResponse: + description: A response to a request for a quote properties: - key: + transactionId: + $ref: '#/components/schemas/transactionId' + transferAmount: + $ref: '#/components/schemas/transactionRequestState' + required: + - transactionId + - transactionRequestState + type: object + transactionRequestState: + enum: + - RECEIVED + - PENDING + - ACCEPTED + - REJECTED + type: string + transactionType: + enum: + - TRANSFER + - DEPOSIT + - PAYMENT + type: string + transferId: + description: A Mojaloop API transfer identifier (UUID) + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + type: string + transferParty: + properties: + dateOfBirth: + $ref: '#/components/schemas/dateOfBirth' + displayName: + description: Display name of the sender if known type: string - minLength: 1 - maxLength: 32 - value: + firstName: + description: Party first name type: string - minLength: 1 + idType: + $ref: '#/components/schemas/idType' + idValue: + description: The identifier string used to identify the sender + type: string + lastName: + description: Party last name + type: string + merchantClassificationCode: + description: Up to 4 digits specifying the senders merchant classification, if known and applicable + type: string + middleName: + description: Party moddle name + type: string + subIdValue: + description: The sub identifier string used to identify the sender + type: string + type: + $ref: '#/components/schemas/payerType' + required: + - idType + - idValue + type: object + transferRequest: + properties: + amount: + $ref: '#/components/schemas/money' + amountType: + $ref: '#/components/schemas/amountType' + currency: + $ref: '#/components/schemas/currency' + from: + $ref: '#/components/schemas/transferParty' + note: maxLength: 128 - + type: string + quote: + $ref: '#/components/schemas/quoteResponse' + to: + $ref: '#/components/schemas/transferParty' + transactionType: + $ref: '#/components/schemas/transactionType' + transferId: + $ref: '#/components/schemas/transferId' + required: + - transferId + - currency + - amount + type: object + transferResponse: + properties: + homeTransactionId: + description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems + type: string + required: + - homeTransactionId + type: object transferState: - type: string + description: | + Below are the allowed values for the enumeration - RECEIVED DFSP has received the transfer. - RESERVED DFSP has reserved the transfer. - COMMITTED DFSP has successfully performed the transfer. - ABORTED DFSP has aborted the transfer due a rejection or failure to perform the transfer. enum: - RECEIVED - RESERVED - COMMITTED - ABORTED - description: > - Below are the allowed values for the enumeration - - RECEIVED DFSP has received the transfer. - - RESERVED DFSP has reserved the transfer. - - COMMITTED DFSP has successfully performed the transfer. - - ABORTED DFSP has aborted the transfer due a rejection or failure to perform the transfer. - - fulfilNotification: - title: TransfersIDPatchResponse - type: object - description: PUT /transfers/{transferId} object - properties: - completedTimestamp: - $ref: '#/components/schemas/timestamp' - transferState: - $ref: '#/components/schemas/transferState' - extensionList: - $ref: '#/components/schemas/extensionList' - required: - - completedTimestamp - - transferState - + type: string diff --git a/yarn.lock b/yarn.lock index 45421ccc6..f27451fac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -122,26 +122,26 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.20.2": - version: 7.20.2 - resolution: "@babel/core@npm:7.20.2" +"@babel/core@npm:^7.20.5": + version: 7.20.5 + resolution: "@babel/core@npm:7.20.5" dependencies: "@ampproject/remapping": ^2.1.0 "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.20.2 + "@babel/generator": ^7.20.5 "@babel/helper-compilation-targets": ^7.20.0 "@babel/helper-module-transforms": ^7.20.2 - "@babel/helpers": ^7.20.1 - "@babel/parser": ^7.20.2 + "@babel/helpers": ^7.20.5 + "@babel/parser": ^7.20.5 "@babel/template": ^7.18.10 - "@babel/traverse": ^7.20.1 - "@babel/types": ^7.20.2 + "@babel/traverse": ^7.20.5 + "@babel/types": ^7.20.5 convert-source-map: ^1.7.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.1 semver: ^6.3.0 - checksum: 98faaaef26103a276a30a141b951a93bc8418d100d1f668bf7a69d12f3e25df57958e8b6b9100d95663f720db62da85ade736f6629a5ebb1e640251a1b43c0e4 + checksum: 9547f1e6364bc58c3621e3b17ec17f0d034ff159e5a520091d9381608d40af3be4042dd27c20ad7d3e938422d75850ac56a3758d6801d65df701557af4bd244b languageName: node linkType: hard @@ -156,14 +156,14 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.20.2": - version: 7.20.3 - resolution: "@babel/generator@npm:7.20.3" +"@babel/generator@npm:^7.20.5": + version: 7.20.5 + resolution: "@babel/generator@npm:7.20.5" dependencies: - "@babel/types": ^7.20.2 + "@babel/types": ^7.20.5 "@jridgewell/gen-mapping": ^0.3.2 jsesc: ^2.5.1 - checksum: 4b72ccb6c278f90ec1fda7607f0a5cd16af6ba3110747be12fc7f8f97646e467a5c452030973e3915af83a350846f6236b206261cd0d084c9c584288bcaa2bed + checksum: 31c10d1e122f08cf755a24bd6f5d197f47eceba03f1133759687d00ab72d210e60ba4011da42f368b6e9fa85cbfda7dc4adb9889c2c20cc5c34bb2d57c1deab7 languageName: node linkType: hard @@ -449,7 +449,7 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.19.4, @babel/helpers@npm:^7.20.1": +"@babel/helpers@npm:^7.19.4": version: 7.20.1 resolution: "@babel/helpers@npm:7.20.1" dependencies: @@ -460,6 +460,17 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.20.5": + version: 7.20.6 + resolution: "@babel/helpers@npm:7.20.6" + dependencies: + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.20.5 + "@babel/types": ^7.20.5 + checksum: f03ec6eb2bf8dc7cdfe2569ee421fd9ba6c7bac6c862d90b608ccdd80281ebe858bc56ca175fc92b3ac50f63126b66bbd5ec86f9f361729289a20054518f1ac5 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.18.6": version: 7.18.6 resolution: "@babel/highlight@npm:7.18.6" @@ -480,12 +491,12 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.20.2": - version: 7.20.3 - resolution: "@babel/parser@npm:7.20.3" +"@babel/parser@npm:^7.20.5": + version: 7.20.5 + resolution: "@babel/parser@npm:7.20.5" bin: parser: ./bin/babel-parser.js - checksum: 33bcdb45de65a3cf27ed376cb34f32be3c3485a10e3252f8d0126f6a034efc3145c0d219e57fcd5a8956361552008bc30b9bae4a723823fb3633027071be8a45 + checksum: e8d514ce0aa74d56725bd102919a49fa367afef9cd8208cf52f670f54b061c4672f51b4b7980058ab1f5fe73615fe4dc90720ab47bbcebae07ad08d667eda318 languageName: node linkType: hard @@ -1427,6 +1438,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.20.5": + version: 7.20.5 + resolution: "@babel/traverse@npm:7.20.5" + dependencies: + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.20.5 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-function-name": ^7.19.0 + "@babel/helper-hoist-variables": ^7.18.6 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/parser": ^7.20.5 + "@babel/types": ^7.20.5 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: c7fed468614aab1cf762dda5df26e2cfcd2b1b448c9d3321ac44786c4ee773fb0e10357e6593c3c6a648ae2e0be6d90462d855998dc10e3abae84de99291e008 + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.10, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.19.0, @babel/types@npm:^7.19.4, @babel/types@npm:^7.20.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.20.0 resolution: "@babel/types@npm:7.20.0" @@ -1449,6 +1478,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.20.5": + version: 7.20.5 + resolution: "@babel/types@npm:7.20.5" + dependencies: + "@babel/helper-string-parser": ^7.19.4 + "@babel/helper-validator-identifier": ^7.19.1 + to-fast-properties: ^2.0.0 + checksum: 773f0a1ad9f6ca5c5beaf751d1d8d81b9130de87689d1321fc911d73c3b1167326d66f0ae086a27fb5bfc8b4ee3ffebf1339be50d3b4d8015719692468c31f2d + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -2179,10 +2219,10 @@ __metadata: languageName: node linkType: hard -"@mojaloop/platform-shared-lib-messaging-types-lib@npm:^0.2.24": - version: 0.2.24 - resolution: "@mojaloop/platform-shared-lib-messaging-types-lib@npm:0.2.24" - checksum: 21524f05948a8eac34d6de15b381f08711c6b40d9026d084728f4bbaf57090ec890947414b4a3c122cec56ba034d115bbfacc39575b7f319789e177c21e91857 +"@mojaloop/platform-shared-lib-messaging-types-lib@npm:^0.2.27": + version: 0.2.27 + resolution: "@mojaloop/platform-shared-lib-messaging-types-lib@npm:0.2.27" + checksum: bcb6aec14b6cb2652bed57f0925f6ad4f391feceb28692057c62902b3d2d2437bf707bbbb28e6e5e9975f876f1653470b86c87bba48f2d26c70129c2d79fe8bc languageName: node linkType: hard @@ -2219,7 +2259,7 @@ __metadata: version: 0.0.0-use.local resolution: "@mojaloop/sdk-scheme-adapter-api-svc@workspace:modules/api-svc" dependencies: - "@babel/core": ^7.20.2 + "@babel/core": ^7.20.5 "@babel/preset-env": ^7.20.2 "@koa/cors": ^4.0.0 "@mojaloop/api-snippets": 17.0.0 @@ -2231,17 +2271,17 @@ __metadata: "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^" "@mojaloop/sdk-standard-components": ^17.1.1 "@redocly/openapi-cli": ^1.0.0-beta.94 - "@types/jest": ^29.2.3 + "@types/jest": ^29.2.4 ajv: 8.11.2 - axios: ^1.2.0 + axios: ^1.2.1 babel-jest: ^29.3.1 co-body: ^6.1.0 dotenv: ^16.0.3 env-var: ^7.3.0 - eslint: ^8.28.0 + eslint: ^8.29.0 eslint-config-airbnb-base: ^15.0.0 eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 + eslint-plugin-jest: ^27.1.6 express: ^4.18.2 fast-json-patch: ^3.1.1 javascript-state-machine: ^3.1.0 @@ -2249,24 +2289,24 @@ __metadata: jest-junit: ^15.0.0 js-yaml: ^4.1.0 json-schema-ref-parser: ^9.0.9 - koa: ^2.13.4 + koa: ^2.14.1 koa-body: ^6.0.1 lodash: ^4.17.21 module-alias: ^2.2.2 nock: ^13.2.9 - npm-check-updates: ^16.4.3 + npm-check-updates: ^16.5.6 oauth2-server: ^4.0.0-dev.2 - openapi-jsonschema-parameters: ^12.0.2 - openapi-response-validator: ^12.0.2 + openapi-jsonschema-parameters: ^12.1.0 + openapi-response-validator: ^12.1.0 openapi-typescript: ^6.1.0 prom-client: ^14.1.0 promise-timeout: ^1.3.0 random-word-slugs: ^0.1.6 - redis: ^4.5.0 + redis: ^4.5.1 redis-mock: ^0.56.3 replace: ^1.2.2 standard-version: ^9.5.0 - supertest: ^6.3.1 + supertest: ^6.3.3 swagger-cli: ^4.0.4 uuidv4: ^6.2.13 ws: ^8.11.0 @@ -2283,31 +2323,31 @@ __metadata: "@mojaloop/logging-bc-public-types-lib": ^0.1.14 "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^" "@types/convict": ^6.1.1 - "@types/express": ^4.17.14 - "@types/jest": ^29.2.3 - "@types/node": ^18.11.9 + "@types/express": ^4.17.15 + "@types/jest": ^29.2.4 + "@types/node": ^18.11.15 "@types/node-cache": ^4.2.5 "@types/supertest": ^2.0.12 "@types/swagger-ui-express": ^4.1.3 "@types/yamljs": ^0.2.31 - "@typescript-eslint/eslint-plugin": ^5.44.0 - "@typescript-eslint/parser": ^5.44.0 + "@typescript-eslint/eslint-plugin": ^5.46.1 + "@typescript-eslint/parser": ^5.46.1 ajv: ^8.11.2 convict: ^6.2.3 copyfiles: ^2.4.1 - eslint: ^8.28.0 + eslint: ^8.29.0 express: ^4.18.2 jest: ^29.3.1 nodemon: ^2.0.20 - npm-check-updates: ^16.4.3 + npm-check-updates: ^16.5.6 openapi-backend: ^5.6.0 - redis: ^4.5.0 + redis: ^4.5.1 replace: ^1.2.2 standard-version: ^9.5.0 swagger-ui-express: ^4.6.0 ts-jest: ^29.0.3 ts-node: ^10.9.1 - typescript: ^4.9.3 + typescript: ^4.9.4 yamljs: ^0.3.0 languageName: unknown linkType: soft @@ -2321,30 +2361,30 @@ __metadata: "@mojaloop/logging-bc-public-types-lib": ^0.1.14 "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^" "@types/convict": ^6.1.1 - "@types/express": ^4.17.14 - "@types/jest": ^29.2.3 - "@types/node": ^18.11.9 + "@types/express": ^4.17.15 + "@types/jest": ^29.2.4 + "@types/node": ^18.11.15 "@types/node-cache": ^4.2.5 "@types/supertest": ^2.0.12 "@types/swagger-ui-express": ^4.1.3 "@types/yamljs": ^0.2.31 - "@typescript-eslint/eslint-plugin": ^5.44.0 - "@typescript-eslint/parser": ^5.44.0 + "@typescript-eslint/eslint-plugin": ^5.46.1 + "@typescript-eslint/parser": ^5.46.1 convict: ^6.2.3 copyfiles: ^2.4.1 - eslint: ^8.28.0 + eslint: ^8.29.0 express: ^4.18.2 jest: ^29.3.1 nodemon: ^2.0.20 - npm-check-updates: ^16.4.3 + npm-check-updates: ^16.5.6 openapi-backend: ^5.6.0 - redis: ^4.5.0 + redis: ^4.5.1 replace: ^1.2.2 standard-version: ^9.5.0 swagger-ui-express: ^4.6.0 ts-jest: ^29.0.3 ts-node: ^10.9.1 - typescript: ^4.9.3 + typescript: ^4.9.4 yamljs: ^0.3.0 languageName: unknown linkType: soft @@ -2356,18 +2396,18 @@ __metadata: "@mojaloop/api-snippets": 17.0.0 "@mojaloop/central-services-shared": ^17.3.1 "@mojaloop/logging-bc-public-types-lib": ^0.1.14 - "@mojaloop/platform-shared-lib-messaging-types-lib": ^0.2.24 + "@mojaloop/platform-shared-lib-messaging-types-lib": ^0.2.27 "@mojaloop/platform-shared-lib-nodejs-kafka-client-lib": 0.2.15 - "@types/node": ^18.11.9 + "@types/node": ^18.11.15 ajv: ^8.11.2 - eslint: ^8.28.0 + eslint: ^8.29.0 jest: ^29.3.1 - npm-check-updates: ^16.4.3 - redis: ^4.5.0 + npm-check-updates: ^16.5.6 + redis: ^4.5.1 replace: ^1.2.2 standard-version: ^9.5.0 ts-jest: ^29.0.3 - typescript: ^4.9.3 + typescript: ^4.9.4 uuid: ^9.0.0 languageName: unknown linkType: soft @@ -2376,26 +2416,26 @@ __metadata: version: 0.0.0-use.local resolution: "@mojaloop/sdk-scheme-adapter@workspace:." dependencies: - "@types/jest": ^29.2.3 - "@types/node": ^18.11.9 + "@types/jest": ^29.2.4 + "@types/node": ^18.11.15 "@types/node-cache": ^4.2.5 - "@typescript-eslint/eslint-plugin": ^5.44.0 - "@typescript-eslint/parser": ^5.44.0 - audit-ci: ^6.3.0 - eslint: ^8.28.0 + "@typescript-eslint/eslint-plugin": ^5.46.1 + "@typescript-eslint/parser": ^5.46.1 + audit-ci: ^6.4.0 + eslint: ^8.29.0 eslint-config-airbnb-typescript: ^17.0.0 eslint-plugin-import: latest husky: ^8.0.2 jest: ^29.3.1 nodemon: ^2.0.20 - npm-check-updates: ^16.4.3 - nx: 15.2.1 + npm-check-updates: ^16.5.6 + nx: 15.3.3 replace: ^1.2.2 standard-version: ^9.5.0 ts-jest: ^29.0.3 ts-node: ^10.9.1 tslib: ^2.4.1 - typescript: ^4.9.3 + typescript: ^4.9.4 yarn-audit-fix: ^9.3.7 languageName: unknown linkType: soft @@ -2527,23 +2567,23 @@ __metadata: languageName: node linkType: hard -"@nrwl/cli@npm:15.2.1": - version: 15.2.1 - resolution: "@nrwl/cli@npm:15.2.1" +"@nrwl/cli@npm:15.3.3": + version: 15.3.3 + resolution: "@nrwl/cli@npm:15.3.3" dependencies: - nx: 15.2.1 - checksum: 4639287011ca6cef30ab9ff31247625bca83c070c33e65acb186d34592621ca063617d0210588894c878f9c1d878d4dad389c4356843950f2eca371f1ee2c756 + nx: 15.3.3 + checksum: fee8d8891951c872f8d0759417f7193254932d4bc7540ba0f460b3b92491ef482cf7e4b3d214f1e7222d90b2813f654b4871ff42e5cdf514ac2efcf5880f0573 languageName: node linkType: hard -"@nrwl/tao@npm:15.2.1": - version: 15.2.1 - resolution: "@nrwl/tao@npm:15.2.1" +"@nrwl/tao@npm:15.3.3": + version: 15.3.3 + resolution: "@nrwl/tao@npm:15.3.3" dependencies: - nx: 15.2.1 + nx: 15.3.3 bin: tao: index.js - checksum: 42ebb19df2b06f28e007fe6fc8f9ff2a998092eb01b688c06575ff95f01ea5dbc9b03ddfac512d072f1af30d1be614d33f0cc3a594a13b203987ca9246b13263 + checksum: c9e808a50dd7e66f435498da3ef3b59f4b2681d047422d4601f6bd63dabbf39471fe46336585c50a7229cbacaf5890d01af31ca365caab3222406e911fcd885a languageName: node linkType: hard @@ -2659,14 +2699,14 @@ __metadata: languageName: node linkType: hard -"@redis/client@npm:1.4.0": - version: 1.4.0 - resolution: "@redis/client@npm:1.4.0" +"@redis/client@npm:1.4.2": + version: 1.4.2 + resolution: "@redis/client@npm:1.4.2" dependencies: cluster-key-slot: 1.1.1 generic-pool: 3.9.0 yallist: 4.0.0 - checksum: 1fb229ccfb960620273750551c63cd5b3ce521b03ed5ef52cd196063873f589045cc87578694ee5ffde05c62347a58e70b0aee0725c3d567a1f234861d3afad6 + checksum: a85f7ee15f6431b3b13fd7b3ebc2e274f451629ec3d9298afd70413eb4cb3dca422cc323755728ff83782ba320306d1e45298ce8c429db939b0aa8759f5a7bca languageName: node linkType: hard @@ -2957,7 +2997,7 @@ __metadata: languageName: node linkType: hard -"@types/express-serve-static-core@npm:^4.17.18": +"@types/express-serve-static-core@npm:^4.17.18, @types/express-serve-static-core@npm:^4.17.31": version: 4.17.31 resolution: "@types/express-serve-static-core@npm:4.17.31" dependencies: @@ -2968,7 +3008,7 @@ __metadata: languageName: node linkType: hard -"@types/express@npm:*, @types/express@npm:^4.17.14": +"@types/express@npm:*": version: 4.17.14 resolution: "@types/express@npm:4.17.14" dependencies: @@ -2980,6 +3020,18 @@ __metadata: languageName: node linkType: hard +"@types/express@npm:^4.17.15": + version: 4.17.15 + resolution: "@types/express@npm:4.17.15" + dependencies: + "@types/body-parser": "*" + "@types/express-serve-static-core": ^4.17.31 + "@types/qs": "*" + "@types/serve-static": "*" + checksum: b4acd8a836d4f6409cdf79b12d6e660485249b62500cccd61e7997d2f520093edf77d7f8498ca79d64a112c6434b6de5ca48039b8fde2c881679eced7e96979b + languageName: node + linkType: hard + "@types/find-cache-dir@npm:^3.2.1": version: 3.2.1 resolution: "@types/find-cache-dir@npm:3.2.1" @@ -3070,13 +3122,13 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:^29.2.3": - version: 29.2.3 - resolution: "@types/jest@npm:29.2.3" +"@types/jest@npm:^29.2.4": + version: 29.2.4 + resolution: "@types/jest@npm:29.2.4" dependencies: expect: ^29.0.0 pretty-format: ^29.0.0 - checksum: 55370906711b600a05b9e497c22aa74d80d8adcdbe4ac2f1bc9311f6f6ca0dd192862b6f38df6ac0d45e92396bcd796e377b1d8058c10bdfd584aeee580c3ce1 + checksum: 9deb4756fe1b438d41ff1aae7d6c216c9e49e5fe60f539f8edb6698ffeb530ff7b25d37e223439b03602ca3a7397c9c2e53e1a39c7bd616353472fce0cc04107 languageName: node linkType: hard @@ -3200,6 +3252,13 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^18.11.15": + version: 18.11.15 + resolution: "@types/node@npm:18.11.15" + checksum: cae8692a5cee0316f93ee0342237eb921f70c51afb37c661c711a925a4642654ae7e404c5a80899d481c0cfaff3a6891ef04bacd330a2e72734192bfc91dc2d8 + languageName: node + linkType: hard + "@types/normalize-package-data@npm:^2.4.0": version: 2.4.1 resolution: "@types/normalize-package-data@npm:2.4.1" @@ -3318,13 +3377,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.44.0": - version: 5.44.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.44.0" +"@typescript-eslint/eslint-plugin@npm:^5.46.1": + version: 5.46.1 + resolution: "@typescript-eslint/eslint-plugin@npm:5.46.1" dependencies: - "@typescript-eslint/scope-manager": 5.44.0 - "@typescript-eslint/type-utils": 5.44.0 - "@typescript-eslint/utils": 5.44.0 + "@typescript-eslint/scope-manager": 5.46.1 + "@typescript-eslint/type-utils": 5.46.1 + "@typescript-eslint/utils": 5.46.1 debug: ^4.3.4 ignore: ^5.2.0 natural-compare-lite: ^1.4.0 @@ -3337,24 +3396,24 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 88784e77e8e35ea50ca9c49d46df94cabc3447f4b332f3ca53974d3b5370cb5dcd85cc9ee0e317b91083812012369209574725dcfc3b2b4056b60371b68ca854 + checksum: 4ea4af5faa5c509113d575bf6ea1f76989f253b4839bb98bcda28450be7fc8a87788169e822b0f6d739aee67e32e824440ef00cebc294d4212ffb3fed1f0756a languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.44.0": - version: 5.44.0 - resolution: "@typescript-eslint/parser@npm:5.44.0" +"@typescript-eslint/parser@npm:^5.46.1": + version: 5.46.1 + resolution: "@typescript-eslint/parser@npm:5.46.1" dependencies: - "@typescript-eslint/scope-manager": 5.44.0 - "@typescript-eslint/types": 5.44.0 - "@typescript-eslint/typescript-estree": 5.44.0 + "@typescript-eslint/scope-manager": 5.46.1 + "@typescript-eslint/types": 5.46.1 + "@typescript-eslint/typescript-estree": 5.46.1 debug: ^4.3.4 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 2d09a1a1547a7ae3f76c9a33a54e11d79a194fbb9dbae69988e7aed3370bdf12bafde669211152769d89db822e0cdee4173affc126664fa6f17abba56daa7261 + checksum: 784fe3ae688da85784b271c10d1e0b807583f4c370e32aa7a09b2584d0f7b92316a93cccbd9458bdf08f169b220097a4b0456bc5f62a210607a13a5fae84c972 languageName: node linkType: hard @@ -3368,22 +3427,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.44.0": - version: 5.44.0 - resolution: "@typescript-eslint/scope-manager@npm:5.44.0" +"@typescript-eslint/scope-manager@npm:5.46.1": + version: 5.46.1 + resolution: "@typescript-eslint/scope-manager@npm:5.46.1" dependencies: - "@typescript-eslint/types": 5.44.0 - "@typescript-eslint/visitor-keys": 5.44.0 - checksum: 4cfe4b55eb428eda740e6b967e3a87f3e1f9c4bbd8e1d6b8d64a11666abe33ffe7a21e4e614444ccde2da6930fa85f3e0ffca43d6e339943ff7a4fbccb09c8fc + "@typescript-eslint/types": 5.46.1 + "@typescript-eslint/visitor-keys": 5.46.1 + checksum: bf934603dc9c7da71eb26f415d13018f2a96dbba193a773bc440a5c93828365f09bb3db9be55189dfbbace414c6c48d7fad246c0d9717dab4676d0d79d6d8676 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.44.0": - version: 5.44.0 - resolution: "@typescript-eslint/type-utils@npm:5.44.0" +"@typescript-eslint/type-utils@npm:5.46.1": + version: 5.46.1 + resolution: "@typescript-eslint/type-utils@npm:5.46.1" dependencies: - "@typescript-eslint/typescript-estree": 5.44.0 - "@typescript-eslint/utils": 5.44.0 + "@typescript-eslint/typescript-estree": 5.46.1 + "@typescript-eslint/utils": 5.46.1 debug: ^4.3.4 tsutils: ^3.21.0 peerDependencies: @@ -3391,7 +3450,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 4c7b594f8afa52d57d0512951a874fa390eb791dcefcd0e1efff8817872293b2e4e04eff3c54d1595c1720a34d5fd315729af4e459882033d13cb6069ae9d28f + checksum: a47f1b73ac773a7f33421a8e8f9bc6e047f55236e3257b2c9eaa04d18595ab6505129ffdab86685e9c3bef564091315a2347150cd6e61a511cc2160667458014 languageName: node linkType: hard @@ -3402,10 +3461,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:5.44.0": - version: 5.44.0 - resolution: "@typescript-eslint/types@npm:5.44.0" - checksum: ced7d32abecfc62ccb67cf27e30c0785b9c153ec7b1a05153ced58fa5a2031ab3845bc2e477b83e4cebdcc5881c5845d23053c6739c62549d41ae6208e547e85 +"@typescript-eslint/types@npm:5.46.1": + version: 5.46.1 + resolution: "@typescript-eslint/types@npm:5.46.1" + checksum: 91143d3304b8c70d69d9c8e5b7428cce3a222eacfbeb99e592d278668bcf998760731deae064a76157b9a0fc4911fe3178aa24e4ea6fe2ba68dd37113834c924 languageName: node linkType: hard @@ -3427,12 +3486,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.44.0": - version: 5.44.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.44.0" +"@typescript-eslint/typescript-estree@npm:5.46.1": + version: 5.46.1 + resolution: "@typescript-eslint/typescript-estree@npm:5.46.1" dependencies: - "@typescript-eslint/types": 5.44.0 - "@typescript-eslint/visitor-keys": 5.44.0 + "@typescript-eslint/types": 5.46.1 + "@typescript-eslint/visitor-keys": 5.46.1 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -3441,25 +3500,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 758731108497cca7ff81cf0a78d086b5a85757a983979d6bb25ad8252b7acbc738c642ecb5f5df82f925a45926b9846e431d5cf9fee5ed2613300b4d0c5d6c3f + checksum: 21499b927b4118cd51e841b2e1b7e55621135f923f461b75dc8ca8442de38a82da5a0232dce5229e0266b6fc12d70696e0e912fcf1483d4c44f02e4cad39ed98 languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.44.0": - version: 5.44.0 - resolution: "@typescript-eslint/utils@npm:5.44.0" +"@typescript-eslint/utils@npm:5.46.1": + version: 5.46.1 + resolution: "@typescript-eslint/utils@npm:5.46.1" dependencies: "@types/json-schema": ^7.0.9 "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.44.0 - "@typescript-eslint/types": 5.44.0 - "@typescript-eslint/typescript-estree": 5.44.0 + "@typescript-eslint/scope-manager": 5.46.1 + "@typescript-eslint/types": 5.46.1 + "@typescript-eslint/typescript-estree": 5.46.1 eslint-scope: ^5.1.1 eslint-utils: ^3.0.0 semver: ^7.3.7 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: bc5bb28e41898464d35b8eb47cc452103852541e3b6be56252c15a5a81c45e10aad3db4c749eb92d752b0c358df8074e23ec6f9e65f8089baadeda7f395c7e31 + checksum: db9fd1dfb2390e66041f9529d564f38ccf74042de68e0e1e3d319ba4d02d7cd969d75dc056f938b98acab53ad7c1e36c68eabb15c0b2e2296b081652fa8d3820 languageName: node linkType: hard @@ -3491,13 +3550,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.44.0": - version: 5.44.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.44.0" +"@typescript-eslint/visitor-keys@npm:5.46.1": + version: 5.46.1 + resolution: "@typescript-eslint/visitor-keys@npm:5.46.1" dependencies: - "@typescript-eslint/types": 5.44.0 + "@typescript-eslint/types": 5.46.1 eslint-visitor-keys: ^3.3.0 - checksum: a012c888209e1d6ae684b2a44fd460ae5a80f5faf07bca4bda6c9c0d8c063ad3297d4c53f7151ae86cf1a43dee09625dc3ee72183323c91089c7288fd573c6f4 + checksum: 952cf20e29a040e0820e52d6815097abf042ea8e1fd5d013c0a319284ea0e2e29e0ca9ef244717450a6eb9d32ebf7fa9ed91185675a27adc35c9ad070d561b7c languageName: node linkType: hard @@ -3967,9 +4026,9 @@ __metadata: languageName: node linkType: hard -"audit-ci@npm:^6.3.0": - version: 6.3.0 - resolution: "audit-ci@npm:6.3.0" +"audit-ci@npm:^6.4.0": + version: 6.4.0 + resolution: "audit-ci@npm:6.4.0" dependencies: JSONStream: ^1.3.5 cross-spawn: ^7.0.3 @@ -3981,7 +4040,7 @@ __metadata: yargs: ^17.0.0 bin: audit-ci: dist/bin.js - checksum: f781bc37e5a7f3b24d47759f2f85618f7aa0ad2bf4221c02ff434805ef641a90dab845a7857d088baec335c36339af162f1a807e89174cf7a7b43cbf549b9412 + checksum: 115cecfbd760a25f5423d55ecdf1de2e611a4cdb2cc12c45a0f83973ffeef68e6619907e7a9358010f8090aaeac617df98a37130ec4e308227d92f353eb1b60a languageName: node linkType: hard @@ -4006,14 +4065,14 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.2.0": - version: 1.2.0 - resolution: "axios@npm:1.2.0" +"axios@npm:^1.2.1": + version: 1.2.1 + resolution: "axios@npm:1.2.1" dependencies: follow-redirects: ^1.15.0 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: f08ce214e957dfde45b837f8d3c7861424608fb7df32faa638835e338782a9f4c0b05074e92e0e8dcca3a1e6250112fbbe1b15a6b21104da633d84745bbb79cc + checksum: c4dc4e119064c9aed09a3de309bedb797a139a6fb372223aafe3e0c10a7d4a14e4d3e9c9d309467fadb9d2b490b891ee3df96ef5b55716bb971910466ff9f0c5 languageName: node linkType: hard @@ -5728,6 +5787,16 @@ __metadata: languageName: node linkType: hard +"dezalgo@npm:^1.0.4": + version: 1.0.4 + resolution: "dezalgo@npm:1.0.4" + dependencies: + asap: ^2.0.0 + wrappy: 1 + checksum: 895389c6aead740d2ab5da4d3466d20fa30f738010a4d3f4dcccc9fc645ca31c9d10b7e1804ae489b1eb02c7986f9f1f34ba132d409b043082a86d9a4e745624 + languageName: node + linkType: hard + "diff-sequences@npm:^29.2.0": version: 29.2.0 resolution: "diff-sequences@npm:29.2.0" @@ -6265,9 +6334,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jest@npm:^27.1.5": - version: 27.1.5 - resolution: "eslint-plugin-jest@npm:27.1.5" +"eslint-plugin-jest@npm:^27.1.6": + version: 27.1.6 + resolution: "eslint-plugin-jest@npm:27.1.6" dependencies: "@typescript-eslint/utils": ^5.10.0 peerDependencies: @@ -6278,7 +6347,7 @@ __metadata: optional: true jest: optional: true - checksum: 7c9de765793f7161afa0bdcdce67f4d072944152880fa638b25d228188dcee47a4b4aada26c57db72bc10193c96a1979e17afb8a7c3e400e961d8adfbf23ddbe + checksum: 5b1640b5d575f0d5e27da8ef8cb3110a29f94ebd50ae51edc5ea34c1054f5dcf305416865b2919ac424bc02c4569848bbe7fd2c86e7e1aff23e77f1ff9ef7dfd languageName: node linkType: hard @@ -6327,9 +6396,9 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.28.0": - version: 8.28.0 - resolution: "eslint@npm:8.28.0" +"eslint@npm:^8.29.0": + version: 8.29.0 + resolution: "eslint@npm:8.29.0" dependencies: "@eslint/eslintrc": ^1.3.3 "@humanwhocodes/config-array": ^0.11.6 @@ -6372,7 +6441,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 1b793486b2ec80f0602d75fff7116f7c39a3286f523608a999eead9bec4154a06841785d2b4fb87f8292a94cf85778c1dbfaec727772a09c4d604fdb9ff0809a + checksum: e05204b05907b82d910983995cb946e0ba62ca514eb2b6791c43f623333b143564a2eee0139909d31c10935c21877d815b1f76dd674a59cb91c471064325c4ab languageName: node linkType: hard @@ -6898,6 +6967,18 @@ __metadata: languageName: node linkType: hard +"formidable@npm:^2.1.1": + version: 2.1.2 + resolution: "formidable@npm:2.1.2" + dependencies: + dezalgo: ^1.0.4 + hexoid: ^1.0.0 + once: ^1.4.0 + qs: ^6.11.0 + checksum: 81c8e5d89f5eb873e992893468f0de22c01678ca3d315db62be0560f9de1c77d4faefc9b1f4575098eb2263b3c81ba1024833a9fc3206297ddbac88a4f69b7a8 + languageName: node + linkType: hard + "forwarded@npm:0.2.0": version: 0.2.0 resolution: "forwarded@npm:0.2.0" @@ -7515,7 +7596,7 @@ __metadata: languageName: node linkType: hard -"hexoid@npm:1.0.0": +"hexoid@npm:1.0.0, hexoid@npm:^1.0.0": version: 1.0.0 resolution: "hexoid@npm:1.0.0" checksum: 27a148ca76a2358287f40445870116baaff4a0ed0acc99900bf167f0f708ffd82e044ff55e9949c71963852b580fc024146d3ac6d5d76b508b78d927fa48ae2d @@ -9275,9 +9356,9 @@ __metadata: languageName: node linkType: hard -"koa@npm:^2.13.4": - version: 2.13.4 - resolution: "koa@npm:2.13.4" +"koa@npm:^2.14.1": + version: 2.14.1 + resolution: "koa@npm:2.14.1" dependencies: accepts: ^1.3.5 cache-content-type: ^1.0.0 @@ -9302,7 +9383,7 @@ __metadata: statuses: ^1.5.0 type-is: ^1.6.16 vary: ^1.1.2 - checksum: c9a6f9c803433b2d143a0788308048c1432a71c5febcfea2af7f2e8bd732b9bfd75c2c220d553752ee9ab9a3f52490f006cfd521db97cd01d8461d67cc1ccc1f + checksum: 84cfce48d72cf434831bd9f4f06beb3815da030325a7e89b13ee684f5afd158221e16c2d450ca637b221aa0c4a0ab235edd129e4efea656dc5d8384801d3e90f languageName: node linkType: hard @@ -9944,7 +10025,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": +"minimatch@npm:^5.0.1": version: 5.1.0 resolution: "minimatch@npm:5.1.0" dependencies: @@ -9953,6 +10034,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^5.1.1": + version: 5.1.1 + resolution: "minimatch@npm:5.1.1" + dependencies: + brace-expansion: ^2.0.1 + checksum: 215edd0978320a3354188f84a537d45841f2449af4df4379f79b9b777e71aa4f5722cc9d1717eabd2a70d38ef76ab7b708d24d83ea6a6c909dfd8833de98b437 + languageName: node + linkType: hard + "minimist-options@npm:4.1.0": version: 4.1.0 resolution: "minimist-options@npm:4.1.0" @@ -10457,9 +10547,9 @@ __metadata: languageName: node linkType: hard -"npm-check-updates@npm:^16.4.3": - version: 16.4.3 - resolution: "npm-check-updates@npm:16.4.3" +"npm-check-updates@npm:^16.5.6": + version: 16.5.6 + resolution: "npm-check-updates@npm:16.5.6" dependencies: chalk: ^5.1.2 cli-table: ^0.3.11 @@ -10474,7 +10564,7 @@ __metadata: json-parse-helpfulerror: ^1.0.3 jsonlines: ^0.1.1 lodash: ^4.17.21 - minimatch: ^5.1.0 + minimatch: ^5.1.1 p-map: ^4.0.0 pacote: 15.0.6 parse-github-url: ^1.0.2 @@ -10493,7 +10583,7 @@ __metadata: bin: ncu: build/src/bin/cli.js npm-check-updates: build/src/bin/cli.js - checksum: 2688657c1766a3304e46a55ba29e14fe2421fe7b7fabf8995a4e261bfa754cab8fda30e2fe3ca4076e625d807966caea1ebd28eade2f7f6ada7e36c7bb8bd358 + checksum: 5340f0854ecdf04f4de30c61228b2d68cc0878cbbffccdc83f2319f0d6eda984035fda9b839ba4859452c575230f2eb15f644c1a4260ff4afb06d2bb74a06963 languageName: node linkType: hard @@ -10619,12 +10709,12 @@ __metadata: languageName: node linkType: hard -"nx@npm:15.2.1": - version: 15.2.1 - resolution: "nx@npm:15.2.1" +"nx@npm:15.3.3": + version: 15.3.3 + resolution: "nx@npm:15.3.3" dependencies: - "@nrwl/cli": 15.2.1 - "@nrwl/tao": 15.2.1 + "@nrwl/cli": 15.3.3 + "@nrwl/tao": 15.3.3 "@parcel/watcher": 2.0.4 "@yarnpkg/lockfile": ^1.1.0 "@yarnpkg/parsers": ^3.0.0-rc.18 @@ -10668,7 +10758,7 @@ __metadata: optional: true bin: nx: bin/nx.js - checksum: a1125b624455625f53ad256362aaab06ffbfeea9f73664cbb74e05e9f61d7cef5e18303f223e81378c78f28e9b28a1bc327d7c4971b26cf687097cd8bc612926 + checksum: e3de19ed013ae49c4b6cc545403c6b141155ac91ff03f63bf2efb0796055298ea40129f8b4d592d6ec7abbc648a63a00613ae36a52ff824ab02bf1f547c249a4 languageName: node linkType: hard @@ -10903,22 +10993,22 @@ __metadata: languageName: node linkType: hard -"openapi-jsonschema-parameters@npm:^12.0.2": - version: 12.0.2 - resolution: "openapi-jsonschema-parameters@npm:12.0.2" +"openapi-jsonschema-parameters@npm:^12.1.0": + version: 12.1.0 + resolution: "openapi-jsonschema-parameters@npm:12.1.0" dependencies: - openapi-types: ^12.0.2 - checksum: f04b3d0bb3bbb5af42874dfc06f267d77f0603eaecc0c000d841bd452c73770c84cb02336f39e2eb7097006ecd70d27437763a69c07e63e21126829e4f80fb4a + openapi-types: ^12.1.0 + checksum: 9465549e132d02ad4be67326e22c9a2e3f0cf19ffa0e3c1fe69a542a675707f11c33080836b0eebd75c02501dbcb5f4130fa446d470ede3ba67b7c52e1bc341f languageName: node linkType: hard -"openapi-response-validator@npm:^12.0.2": - version: 12.0.2 - resolution: "openapi-response-validator@npm:12.0.2" +"openapi-response-validator@npm:^12.1.0": + version: 12.1.0 + resolution: "openapi-response-validator@npm:12.1.0" dependencies: ajv: ^8.4.0 - openapi-types: ^12.0.2 - checksum: 81d38f45d7f70c84c5c2a19389c497ad22e1b059706872c9467f6e13d49d0f071bace83859e113f6930ea1728f6418a836c995c1f790f74704b8f08e1163bc54 + openapi-types: ^12.1.0 + checksum: f07036661ac846c5d508b423d01039cd5bd33d564e053fdc039046f964fad71b03a7c9254195b1d5a8a1912fcc45dce13616af97c445c6d7b040c825e1f91de1 languageName: node linkType: hard @@ -10958,6 +11048,13 @@ __metadata: languageName: node linkType: hard +"openapi-types@npm:^12.1.0": + version: 12.1.0 + resolution: "openapi-types@npm:12.1.0" + checksum: d8f3e2bae519aa6bcf2012f4a5592b7283fe928c06f3bdc182776ce637c7ed8d5f9f342724f68c95c9572aefe21ed5e89b18a0295a703da61af5f97bd2aea9a7 + languageName: node + linkType: hard + "openapi-typescript@npm:^5.4.1": version: 5.4.1 resolution: "openapi-typescript@npm:5.4.1" @@ -12023,17 +12120,17 @@ __metadata: languageName: node linkType: hard -"redis@npm:^4.5.0": - version: 4.5.0 - resolution: "redis@npm:4.5.0" +"redis@npm:^4.5.1": + version: 4.5.1 + resolution: "redis@npm:4.5.1" dependencies: "@redis/bloom": 1.1.0 - "@redis/client": 1.4.0 + "@redis/client": 1.4.2 "@redis/graph": 1.1.0 "@redis/json": 1.0.4 "@redis/search": 1.1.0 "@redis/time-series": 1.0.4 - checksum: 3c2a2fdf497acbd8847715d32d41466498908e96c53145b6a7c74187018c1cbf59f3fadae4e8d8166feef5c72fe8f1ac5d7b03eef665914c658bfc182e1216f3 + checksum: edb40d54b74d18251f553368e6dd43104d249c3cb8f1a651d169d74f81c70de8911fbbcd1e83d27f413c746bb2f5d44891f7ef20ddff1ba9d727558855143d2e languageName: node linkType: hard @@ -13162,31 +13259,31 @@ __metadata: languageName: node linkType: hard -"superagent@npm:^8.0.3": - version: 8.0.3 - resolution: "superagent@npm:8.0.3" +"superagent@npm:^8.0.5": + version: 8.0.6 + resolution: "superagent@npm:8.0.6" dependencies: component-emitter: ^1.3.0 cookiejar: ^2.1.3 debug: ^4.3.4 fast-safe-stringify: ^2.1.1 form-data: ^4.0.0 - formidable: ^2.0.1 + formidable: ^2.1.1 methods: ^1.1.2 mime: 2.6.0 qs: ^6.11.0 semver: ^7.3.8 - checksum: 5329310f3f9fe1217ccd515a2f06dd99c97d08355ae5e4c387349c9bffdd52115fe02ba6b0fb37199f05977522778e1350d0a68caef1363c8079aa49af8ce6c8 + checksum: 2dfe44b74acd37da34cb44617919927ebf689570f46f89234be3a0b8e89cae5afca8e28adae6b6be77a3cd06661f47cf5c4c872e9d98ba184e8f12fcb041a29d languageName: node linkType: hard -"supertest@npm:^6.3.1": - version: 6.3.1 - resolution: "supertest@npm:6.3.1" +"supertest@npm:^6.3.3": + version: 6.3.3 + resolution: "supertest@npm:6.3.3" dependencies: methods: ^1.1.2 - superagent: ^8.0.3 - checksum: 024d10e305bbaf926efff3d2dc68d339ae8d8650917a82ad121886c4a3a70707af92fdd1a1fd139054235d65ddab842ec54d48bb7161f6969bf98ef29eea3740 + superagent: ^8.0.5 + checksum: 38239e517f7ba62b7a139a79c5c48d55f8d67b5ff4b6e51d5b07732ca8bbc4a28ffa1b10916fbb403dd013a054dbf028edc5850057d9a43aecbff439d494673e languageName: node linkType: hard @@ -13741,23 +13838,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^4.9.3": - version: 4.9.3 - resolution: "typescript@npm:4.9.3" +"typescript@npm:^4.9.4": + version: 4.9.4 + resolution: "typescript@npm:4.9.4" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 17b8f816050b412403e38d48eef0e893deb6be522d6dc7caf105e54a72e34daf6835c447735fd2b28b66784e72bfbf87f627abb4818a8e43d1fa8106396128dc + checksum: e782fb9e0031cb258a80000f6c13530288c6d63f1177ed43f770533fdc15740d271554cdae86701c1dd2c83b082cea808b07e97fd68b38a172a83dbf9e0d0ef9 languageName: node linkType: hard -"typescript@patch:typescript@^4.9.3#~builtin": - version: 4.9.3 - resolution: "typescript@patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=bda367" +"typescript@patch:typescript@^4.9.4#~builtin": + version: 4.9.4 + resolution: "typescript@patch:typescript@npm%3A4.9.4#~builtin::version=4.9.4&hash=bda367" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: ef65c22622d864497d0a0c5db693523329b3284c15fe632e93ad9aa059e8dc38ef3bd767d6f26b1e5ecf9446f49bd0f6c4e5714a2eeaf352805dc002479843d1 + checksum: 37f6e2c3c5e2aa5934b85b0fddbf32eeac8b1bacf3a5b51d01946936d03f5377fe86255d4e5a4ae628fd0cd553386355ad362c57f13b4635064400f3e8e05b9d languageName: node linkType: hard