From a72c16610ef304813e9c1a29d35da404aa87153a Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Thu, 19 Sep 2024 13:06:47 +0000 Subject: [PATCH 01/25] feat: ulid --- .../api_definitions/fspiop_2.0/api_spec.yaml | 12 +- .../fspiop_2.0/callback_map.json | 19 +- .../transaction_request_followup.json | 2 +- .../api_spec.yaml | 3658 ++++++++--------- .../response_map.json | 14 + .../mojaloop_simulator_sim_1.4/api_spec.yaml | 3021 ++++---------- .../response_map.json | 7 - modules/api-svc/package.json | 2 +- modules/api-svc/src/InboundServer/api.yaml | 13 +- modules/api-svc/src/config.js | 2 +- .../@mojaloop/central-services-shared.js | 7 +- .../partyInfoRequest.test.js | 2 +- .../integration/lib/Outbound/quotes.test.js | 2 +- .../lib/Outbound/simpleTransfers.test.js | 2 +- modules/api-svc/test/unit/lib/cache.test.js | 2 +- .../lib/model/InboundTransfersModel.test.js | 2 +- .../test/unit/lib/model/PartiesModel.test.js | 2 +- .../test/unit/lib/model/QuotesModel.test.js | 2 +- .../unit/lib/model/TransfersModel.test.js | 2 +- .../api-svc/test/unit/lib/model/data/mocks.js | 2 +- .../test/unit/outboundApi/handlers.test.js | 2 +- .../package.json | 4 +- .../package.json | 2 +- modules/private-shared-lib/package.json | 2 +- package.json | 2 +- test/func/docker-compose.yml | 10 +- yarn.lock | 45 +- 27 files changed, 2622 insertions(+), 4220 deletions(-) diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/api_spec.yaml b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/api_spec.yaml index 35fae7695..ec71aa123 100755 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/api_spec.yaml +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/api_spec.yaml @@ -2810,14 +2810,12 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ 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 (‘-‘). + Identifier that correlates all messages of the same sequence. + The supported identifiers formats are for + lowercase [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and + uppercase [ULID](https://github.com/ulid/spec) example: b51ec534-ee48-4575-b6a9-ead2955b8069 PartyIdType: title: PartyIdType diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/callback_map.json b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/callback_map.json index 869b11b1c..9bd5ca872 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/callback_map.json +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/callback_map.json @@ -357,7 +357,7 @@ "successCallback": { "method": "put", "path": "/participants/{Type}/{ID}/{SubId}", - "pathPattern": "/participants/{$request.params.Type}/{$request.params.ID}", + "pathPattern": "/participants/{$request.params.Type}/{$request.params.ID}/{$request.params.SubId}", "headerOverride": { "FSPIOP-Source": "{$config.FSPID}", "FSPIOP-Destination": "{$request.headers.fspiop-source}", @@ -368,7 +368,7 @@ "errorCallback": { "method": "put", "path": "/participants/{Type}/{ID}/{SubId}/error", - "pathPattern": "/participants/{$request.params.Type}/{$request.params.ID}/error", + "pathPattern": "/participants/{$request.params.Type}/{$request.params.ID}/{$request.params.SubId}/error", "headerOverride": { "FSPIOP-Source": "{$config.FSPID}", "FSPIOP-Destination": "{$request.headers.fspiop-source}", @@ -382,7 +382,7 @@ "successCallback": { "method": "put", "path": "/participants/{Type}/{ID}/{SubId}", - "pathPattern": "/participants/{$request.params.Type}/{$request.params.ID}", + "pathPattern": "/participants/{$request.params.Type}/{$request.params.ID}/{$request.params.SubId}", "headerOverride": { "FSPIOP-Source": "{$config.FSPID}", "FSPIOP-Destination": "{$request.headers.fspiop-source}", @@ -393,7 +393,7 @@ "errorCallback": { "method": "put", "path": "/participants/{Type}/{ID}/{SubId}/error", - "pathPattern": "/participants/{$request.params.Type}/{$request.params.ID}/error", + "pathPattern": "/participants/{$request.params.Type}/{$request.params.ID}/{$request.params.SubId}/error", "headerOverride": { "FSPIOP-Source": "{$config.FSPID}", "FSPIOP-Destination": "{$request.headers.fspiop-source}", @@ -684,17 +684,6 @@ "Content-Type": "{$session.negotiatedContentType}", "Date": "{$request.headers.date}" } - }, - "errorCallback": { - "method": "put", - "path": "/services/FXP", - "pathPattern": "/services/FXP", - "headerOverride": { - "FSPIOP-Source": "{$request.headers.fspiop-destination}", - "FSPIOP-Destination": "{$request.headers.fspiop-source}", - "Content-Type": "{$session.negotiatedContentType}", - "Date": "{$request.headers.date}" - } } } }, diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json index 408cc6285..0c1aa45f0 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json @@ -43,7 +43,7 @@ "FSPIOP-Source": "{$inputs.TrsPayerFspId}" }, "body": { - "quoteId": "{$function.generic.generateUUID}", + "quoteId": "{$function.generic.generateULID}", "transactionId": "{$inputs.transactionId}", "payer": { "partyIdInfo": { diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml index be6f65971..88203f075 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml @@ -16,8 +16,8 @@ info: **Note on terminology:** The term "Switch" is equal to the term "Hub", and the term "FSP" is equal to the term "DFSP". license: - name: Apache License Version 2.0, January 2004 - url: https://github.com/mojaloop/documentation/blob/master/LICENSE.md + name: 'Apache License Version 2.0, January 2004' + url: 'http://www.apache.org/licenses/' version: 1.0.0 paths: /: @@ -33,135 +33,121 @@ paths: description: >- Returns empty body if the scheme adapter outbound transfers service is running. - /accounts: + /transfers: post: - summary: Create accounts on the Account Lookup Service - description: >- - The HTTP request `POST /accounts` is used to create account information - on the Account Lookup Service (ALS) regarding the provided list of - identities. + summary: Sends money from one account to another + description: > + The HTTP request `POST /transfers` is used to request the movement of + funds from payer DFSP to payee DFSP. + The underlying Mojaloop API has three stages for money transfer: - Caller DFSP is used as the account source FSP information + 1. Party lookup. This facilitates a check by the sending party that the destination party is correct before proceeding with a money movement. + 2. Quotation. This facilitates the exchange of fee information and the construction of a cryptographic "contract" between payee and payer DFSPs before funds are transferred. + 3. Transfer. The enactment of the previously agreed "contract" + + This method has several modes of operation. + + - If the configuration variables `AUTO_ACCEPT_PARTIES` is set to + `"false"` this method will terminate when the payee party has been + resolved and return the payee party details. + If the payee wishes to proceed with the transfer, then a subsequent `PUT /transfers/{transferId}` request (accepting the payee party) is required to continue the operation. + The scheme adapter will then proceed with quotation stage... + + - If the configuration variable `AUTO_ACCEPT_QUOTES` is set to `"false"` + this method will terminate and return the quotation when it has been + received from the payee DFSP. + If the payee wished to proceed with the transfer, then a subsequent `PUT /transfers/{transferId}` request (accepting the quote) is required to continue the operation. + The scheme adapter will then proceed with the transfer state. + + If the configuration variables `AUTO_ACCEPT_PARTIES` and + `AUTO_ACCEPT_QUOTES` are both set to `"true"` this method will block + until all three transfer stages are complete. Upon completion it will + return the entire set of transfer details received during the operation. + + + Combinations of settings for `AUTO_ACCEPT...` configuration variables + allow the scheme adapter user to decide which mode of operation best + suits their use cases. i.e. the scheme adapter can be configured to + "break" the three stage transfer at these points in order to execute + backend logic such as party verification, quoted fees assessments etc... tags: - - Accounts + - Transfers + operationId: TransfersPost requestBody: - description: Identities list request body + description: Transfer request body content: application/json: schema: - $ref: '#/components/schemas/accountsRequest' + $ref: '#/components/schemas/transferRequest' required: true responses: '200': - $ref: '#/components/responses/accountsCreationCompleted' + $ref: '#/components/responses/transferSuccess' '400': - $ref: '#/components/responses/accountsCreationError' + $ref: '#/components/responses/transferBadRequest' '500': - $ref: '#/components/responses/accountsCreationError' + $ref: '#/components/responses/transferServerError' '504': - $ref: '#/components/responses/accountsCreationTimeout' - /bulkQuotes: - post: - summary: Request bulk quotes for the provided financial transactions + $ref: '#/components/responses/transferTimeout' + '/transfers/{transferId}': + put: + summary: >- + Continues a transfer that has paused at the quote stage in order to + accept or reject payee party and/or quote description: > - The HTTP request `POST /bulkQuotes` is used to request a bulk quote to - fascilitate funds transfer from payer DFSP to payees' DFSP. + The HTTP request `PUT /transfers/{transferId}` is used to continue a + transfer initiated via the `POST /transfers` method that has halted + after party lookup and/or quotation stage. + + + The request body should contain either the "acceptParty" or + "acceptQuote" property set to `true` as required to continue the + transfer. + + + See the description of the `POST /transfers` HTTP method for more + information on modes of transfer. tags: - - BulkQuotes + - Transfers + operationId: TransfersPut requestBody: - description: Bulk quote request body content: application/json: schema: - $ref: '#/components/schemas/bulkQuoteRequest' - required: true + oneOf: + - $ref: '#/components/schemas/transferContinuationAcceptParty' + - $ref: '#/components/schemas/transferContinuationAcceptQuote' + parameters: + - $ref: '#/components/parameters/transferId' responses: '200': - $ref: '#/components/responses/bulkQuoteSuccess' - '400': - $ref: '#/components/responses/bulkQuoteBadRequest' + $ref: '#/components/responses/transferSuccess' '500': - $ref: '#/components/responses/bulkQuoteServerError' + $ref: '#/components/responses/transferServerError' '504': - $ref: '#/components/responses/bulkQuoteTimeout' - /bulkQuotes/{bulkQuoteId}: + $ref: '#/components/responses/transferTimeout' get: - summary: Retrieves information for a specific bulk quote + summary: Retrieves information for a specific transfer description: >- - The HTTP request `GET /bulkQuotes/{bulktQuoteId}` is used to get - information regarding a bulk quote created or requested earlier. The - `{bulkQuoteId}` in the URI should contain the `bulkQuoteId` that was - used for the creation of the bulk quote. + The HTTP request `GET /transfers/{transferId}` is used to get + information regarding a transfer created or requested earlier. The + `{transferId}` in the URI should contain the `transferId` that was used + for the creation of the transfer. tags: - - BulkQuotes + - Transfers + operationId: TransfersGet parameters: - - $ref: '#/components/parameters/bulkQuoteId' + - $ref: '#/components/parameters/transferId' responses: '200': - description: Bulk quote information successfully retrieved - content: - application/json: - schema: - $ref: '#/components/schemas/bulkQuoteStatusResponse' - '500': - description: An error occurred processing the bulk quote + description: Transfer information successfully retrieved content: application/json: schema: - $ref: '#/components/schemas/errorResponse' - /bulkTransactions: - post: - summary: Sends money from one account to multiple accounts - description: > - The HTTP request `POST /bulkTransactions` is used to request the - movement of funds from payer DFSP to payees' DFSP. - tags: - - BulkTransactions - requestBody: - description: Bulk transfer request body - content: - application/json: - schema: - $ref: '#/components/schemas/bulkTransactionRequest' - required: true - responses: - '202': - $ref: '#/components/responses/bulkTransactionAccepted' - '400': - $ref: '#/components/responses/bulkTransferBadRequest' - '500': - $ref: '#/components/responses/errorResponse' - /bulkTransactions/{bulkTransactionId}: - put: - summary: Amends the bulk transaction request - 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. - tags: - - BulkTransactions - parameters: - - $ref: '#/components/parameters/bulkTransactionId' - requestBody: - description: Bulk transaction request body - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/bulkTransactionContinuationAcceptParty' - - $ref: '#/components/schemas/bulkTransactionContinuationAcceptQuote' - required: true - responses: - '202': - description: Bulk transaction information successfully amended - '400': - $ref: '#/components/responses/bulkTransactionPutBadRequest' + $ref: '#/components/schemas/transferStatusResponse' '500': - description: An error occurred processing the bulk transaction + description: An error occurred processing the transfer content: application/json: schema: @@ -174,6 +160,7 @@ paths: of funds from payer DFSP to payees' DFSP. tags: - BulkTransfers + operationId: BulkTransfersPost requestBody: description: Bulk transfer request body content: @@ -187,17 +174,20 @@ paths: '400': $ref: '#/components/responses/bulkTransferBadRequest' '500': - $ref: '#/components/responses/errorResponse' - /bulkTransfers/{bulkTransferId}: + $ref: '#/components/responses/bulkTransferServerError' + '504': + $ref: '#/components/responses/bulkTransferTimeout' + '/bulkTransfers/{bulkTransferId}': get: summary: Retrieves information for a specific bulk transfer description: >- - The HTTP request `GET /bulkTransfers/{bulkTransferId}` is used to get + The HTTP request `GET /bulkTransfers/{bulktTransferId}` is used to get information regarding a bulk transfer created or requested earlier. The `{bulkTransferId}` in the URI should contain the `bulkTransferId` that was used for the creation of the bulk transfer. tags: - BulkTransfers + operationId: BulkTransfersGet parameters: - $ref: '#/components/parameters/bulkTransferId' responses: @@ -213,64 +203,57 @@ paths: application/json: schema: $ref: '#/components/schemas/errorResponse' - /parties/{Type}/{ID}: - parameters: - - $ref: '#/components/parameters/Type' - - $ref: '#/components/parameters/ID' - get: - description: >- - The HTTP request GET /parties// (or GET /parties///) is used to lookup - information regarding the requested Party, defined by , and optionally - (for example, GET /parties/MSISDN/123456789, or GET - /parties/BUSINESS/shoecompany/employee1). - summary: PartiesByTypeAndID - tags: - - parties - operationId: PartiesByTypeAndID - responses: - '200': - $ref: '#/components/responses/partiesByIdSuccess' - '404': - $ref: '#/components/responses/partiesByIdError404' - /parties/{Type}/{ID}/{SubId}: - parameters: - - $ref: '#/components/parameters/Type' - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/SubId' - get: - description: >- - The HTTP request GET /parties// (or GET /parties///) is used to lookup - information regarding the requested Party, defined by , and optionally - (for example, GET /parties/MSISDN/123456789, or GET - /parties/BUSINESS/shoecompany/employee1). - summary: PartiesSubIdByTypeAndID - tags: - - parties - operationId: PartiesSubIdByTypeAndID - responses: - '200': - $ref: '#/components/responses/partiesByIdSuccess' - '404': - $ref: '#/components/responses/partiesByIdError404' - /quotes: + /bulkQuotes: post: - summary: Quotes endpoint - description: is used to request quotes from other DFSP + summary: Request bulk quotes for the provided financial transactions + description: > + The HTTP request `POST /bulkQuotes` is used to request a bulk quote to + fascilitate funds transfer from payer DFSP to payees' DFSP. tags: - - quotes - operationId: QuotesPost + - BulkQuotes + operationId: BulkQuotesPost requestBody: - description: Quotes request payload + description: Bulk quote request body content: application/json: schema: - $ref: '#/components/schemas/simpleQuotesPostRequest' + $ref: '#/components/schemas/bulkQuoteRequest' required: true responses: '200': - $ref: '#/components/responses/quotesPostSuccess' + $ref: '#/components/responses/bulkQuoteSuccess' + '400': + $ref: '#/components/responses/bulkQuoteBadRequest' '500': - $ref: '#/components/responses/quotesServerError' + $ref: '#/components/responses/bulkQuoteServerError' + '504': + $ref: '#/components/responses/bulkQuoteTimeout' + '/bulkQuotes/{bulkQuoteId}': + get: + summary: Retrieves information for a specific bulk quote + description: >- + The HTTP request `GET /bulkQuotes/{bulktQuoteId}` is used to get + information regarding a bulk quote created or requested earlier. The + `{bulkQuoteId}` in the URI should contain the `bulkQuoteId` that was + used for the creation of the bulk quote. + tags: + - BulkQuotes + operationId: BulkQuotesGet + parameters: + - $ref: '#/components/parameters/bulkQuoteId' + responses: + '200': + description: Bulk quote information successfully retrieved + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteStatusResponse' + '500': + description: An error occurred processing the bulk quote + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' /requestToPay: post: summary: Receiver requesting funds from Sender @@ -284,6 +267,7 @@ paths: 2. Transaction Request. This request enables a Payee to request Payer to send electronic funds to the Payee. tags: - RequestToPay + operationId: RequestToPayPost requestBody: description: RequestToPay request body content: @@ -294,37 +278,6 @@ paths: responses: '200': $ref: '#/components/responses/requestToPaySuccess' - /requestToPay/{transactionRequestId}: - put: - summary: >- - Continues a request funds from sender that has paused at the party - resolution stage in order to accept or reject party information - description: > - The HTTP request `PUT /requestToPay/{transactionRequestId}` is used to - continue a transfer initiated via the `POST /requestToPay` method that - has halted after party lookup stage. - - The request body should contain the "acceptParty" property set to `true` - as required to continue the transfer. - - See the description of the `POST /requestToPay` HTTP method for more - information on modes of transfer. - tags: - - RequestToPay - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/transferContinuationAcceptParty' - parameters: - - $ref: '#/components/parameters/transactionRequestId' - responses: - '200': - $ref: '#/components/responses/requestToPaySuccess' - '500': - $ref: '#/components/responses/transferServerError' - '504': - $ref: '#/components/responses/transferTimeout' /requestToPayTransfer: post: summary: >- @@ -367,6 +320,7 @@ paths: backend logic such as party verification, quoted fees assessments etc... tags: - RequestToPayTransfer + operationId: RequestToPayTransferPost requestBody: description: Request To Pay Transfer request body content: @@ -383,15 +337,15 @@ paths: $ref: '#/components/responses/transferServerError' '504': $ref: '#/components/responses/transferTimeout' - /requestToPayTransfer/{transactionRequestId}: + '/requestToPayTransfer/{requestToPayTransactionId}': put: summary: >- - Continues a transfer that has paused at the Authentication stage in order to accept + Continues a transfer that has paused at the otp stage in order to accept or reject quote description: > - This request is used to continue a requestToPayTransfer initiated via - the `POST /requestToPayTransfer` method that has halted after Quotation - stage and/or Authentication stage. + The HTTP request `PUT /transfers/{transferId}` is used to continue a + transfer initiated via the `POST /transfers` method that has halted + after party lookup and/or quotation stage. The request body should contain either the "acceptOTP" or "acceptQuote" @@ -402,6 +356,7 @@ paths: more information on modes of transfer. tags: - RequestToPayTransferID + operationId: RequestToPayTransferPut requestBody: content: application/json: @@ -410,7 +365,7 @@ paths: - $ref: '#/components/schemas/transferContinuationAcceptQuote' - $ref: '#/components/schemas/transferContinuationAcceptOTP' parameters: - - $ref: '#/components/parameters/transactionRequestId' + - $ref: '#/components/parameters/requestToPayTransactionId' responses: '200': $ref: '#/components/responses/transferSuccess' @@ -418,143 +373,149 @@ paths: $ref: '#/components/responses/transferServerError' '504': $ref: '#/components/responses/transferTimeout' - /simpleTransfers: + /accounts: post: - summary: Simple Transfers endpoint - description: is used to request a transfer + summary: Create accounts on the Account Lookup Service + description: >- + The HTTP request `POST /accounts` is used to create account information + on the Account Lookup Service (ALS) regarding the provided list of + identities. + + + Caller DFSP is used as the account source FSP information tags: - - transfers - operationId: SimpleTransfersPost + - Accounts + operationId: AccountsPost requestBody: - description: Simple Transfer request payload + description: Identities list request body content: application/json: schema: - $ref: '#/components/schemas/simpleTransfersPostRequest' + $ref: '#/components/schemas/accountsRequest' required: true responses: '200': - $ref: '#/components/responses/simpleTransfersPostSuccess' + $ref: '#/components/responses/accountsCreationCompleted' + '400': + $ref: '#/components/responses/accountsCreationError' '500': - $ref: '#/components/responses/simpleTransfersServerError' - /transfers: + $ref: '#/components/responses/accountsCreationError' + '504': + $ref: '#/components/responses/accountsCreationTimeout' + '/parties/{Type}/{ID}': + parameters: + - $ref: '#/components/parameters/Type' + - $ref: '#/components/parameters/ID' + get: + description: >- + The HTTP request GET /parties// (or GET /parties///) is used to lookup + information regarding the requested Party, defined by , and optionally + (for example, GET /parties/MSISDN/123456789, or GET + /parties/BUSINESS/shoecompany/employee1). + summary: PartiesByTypeAndID + tags: + - parties + operationId: PartiesByTypeAndID + responses: + '200': + $ref: '#/components/responses/partiesByIdSuccess' + '404': + $ref: '#/components/responses/partiesByIdError404' + '/parties/{Type}/{ID}/{SubId}': + parameters: + - $ref: '#/components/parameters/Type' + - $ref: '#/components/parameters/ID' + - $ref: '#/components/parameters/SubId' + get: + description: >- + The HTTP request GET /parties// (or GET /parties///) is used to lookup + information regarding the requested Party, defined by , and optionally + (for example, GET /parties/MSISDN/123456789, or GET + /parties/BUSINESS/shoecompany/employee1). + summary: PartiesSubIdByTypeAndID + tags: + - parties + operationId: PartiesSubIdByTypeAndID + responses: + '200': + $ref: '#/components/responses/partiesByIdSuccess' + '404': + $ref: '#/components/responses/partiesByIdError404' + /quotes: post: - summary: Sends money from one account to another - description: > - The HTTP request `POST /transfers` is used to request the movement of - funds from payer DFSP to payee DFSP. - - The underlying Mojaloop API has three stages for money transfer: - - 1. Party lookup. This facilitates a check by the sending party that the destination party is correct before proceeding with a money movement. - 2. Quotation. This facilitates the exchange of fee information and the construction of a cryptographic "contract" between payee and payer DFSPs before funds are transferred. - 3. Transfer. The enactment of the previously agreed "contract" - - This method has several modes of operation. - - - If the configuration variables `AUTO_ACCEPT_PARTIES` is set to - `"false"` this method will terminate when the payee party has been - resolved and return the payee party details. - If the payee wishes to proceed with the transfer, then a subsequent `PUT /transfers/{transferId}` request (accepting the payee party) is required to continue the operation. - The scheme adapter will then proceed with quotation stage... - - - If the configuration variable `AUTO_ACCEPT_QUOTES` is set to `"false"` - this method will terminate and return the quotation when it has been - received from the payee DFSP. - If the payee wished to proceed with the transfer, then a subsequent `PUT /transfers/{transferId}` request (accepting the quote) is required to continue the operation. - The scheme adapter will then proceed with the transfer state. - - If the configuration variables `AUTO_ACCEPT_PARTIES` and - `AUTO_ACCEPT_QUOTES` are both set to `"true"` this method will block - until all three transfer stages are complete. Upon completion it will - return the entire set of transfer details received during the operation. - - - Combinations of settings for `AUTO_ACCEPT...` configuration variables - allow the scheme adapter user to decide which mode of operation best - suits their use cases. i.e. the scheme adapter can be configured to - "break" the three stage transfer at these points in order to execute - backend logic such as party verification, quoted fees assessments etc... + summary: Quotes endpoint + description: is used to request quotes from other DFSP tags: - - Transfers + - quotes + operationId: QuotesPost requestBody: - description: Transfer request body + description: Quotes request payload content: application/json: schema: - $ref: '#/components/schemas/transferRequest' + $ref: '#/components/schemas/quotesPostRequest' required: true responses: '200': - $ref: '#/components/responses/transferSuccess' - '400': - $ref: '#/components/responses/transferBadRequest' + $ref: '#/components/responses/quotesPostSuccess' '500': - $ref: '#/components/responses/transferServerError' - '504': - $ref: '#/components/responses/transferTimeout' - /transfers/{transferId}: - put: - summary: >- - Continues a transfer that has paused at the quote stage in order to - accept or reject payee party and/or quote - description: > - The HTTP request `PUT /transfers/{transferId}` is used to continue a - transfer initiated via the `POST /transfers` method that has halted - after party lookup and/or quotation stage. - - - The request body should contain either the "acceptParty" or - "acceptQuote" property set to `true` as required to continue the - transfer. - - - See the description of the `POST /transfers` HTTP method for more - information on modes of transfer. + $ref: '#/components/responses/quotesServerError' + /simpleTransfers: + post: + summary: Simple Transfers endpoint + description: is used to request a transfer tags: - - Transfers + - transfers + operationId: SimpleTransfersPost requestBody: + description: Simple Transfer request payload content: application/json: schema: - oneOf: - - $ref: '#/components/schemas/transferContinuationAcceptParty' - - $ref: '#/components/schemas/transferContinuationAcceptQuote' - parameters: - - $ref: '#/components/parameters/transferId' + $ref: '#/components/schemas/simpleTransfersPostRequest' + required: true responses: '200': - $ref: '#/components/responses/transferSuccess' + $ref: '#/components/responses/simpleTransfersPostSuccess' '500': - $ref: '#/components/responses/transferServerError' - '504': - $ref: '#/components/responses/transferTimeout' - get: - summary: Retrieves information for a specific transfer + $ref: '#/components/responses/simpleTransfersServerError' + /authorizations: + post: description: >- - The HTTP request `GET /transfers/{transferId}` is used to get - information regarding a transfer created or requested earlier. The - `{transferId}` in the URI should contain the `transferId` that was used - for the creation of the transfer. + The HTTP request `POST /authorizations` is used to request the Payer to + enter the applicable credentials in the PISP system. + summary: Authorizations endpoint + operationId: AuthorizationsPost tags: - - Transfers - parameters: - - $ref: '#/components/parameters/transferId' + - authorizations + requestBody: + description: Perform authorization + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/authorizationsPostRequest' responses: '200': - description: Transfer information successfully retrieved - content: - application/json: - schema: - $ref: '#/components/schemas/transferStatusResponse' + $ref: '#/components/responses/authorizationPostSuccess' '500': - description: An error occurred processing the transfer - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' + $ref: '#/components/responses/authorizationsServerError' components: schemas: + TransactionInitiatorType: + title: TransactionInitiatorType + type: string + enum: + - CONSUMER + - AGENT + - BUSINESS + - DEVICE + description: |- + Below are the allowed values for the enumeration. + - CONSUMER - Consumer is the initiator of the transaction. + - AGENT - Agent is the initiator of the transaction. + - BUSINESS - Business is the initiator of the transaction. + - DEVICE - Device is the initiator of the transaction. PartyIdType: title: PartyIdType type: string @@ -567,59 +528,111 @@ components: - ACCOUNT_ID - IBAN - ALIAS - description: >- + - CONSENT + - THIRD_PARTY_LINK + description: > + This is a variant based on FSPIOP `PartyIdType` specification. + + Main difference being the CONSENT and THIRD_PARTY_LINK enums. + + Below are the allowed values for the enumeration. - MSISDN - An MSISDN (Mobile Station International Subscriber Directory + Number, that is, the phone number) is used as reference to a - participant. The MSISDN identifier should be in international format - according to the [ITU-T E.164 - standard](https://www.itu.int/rec/T-REC-E.164/en). Optionally, the - MSISDN may be prefixed by a single plus sign, indicating the + participant. + + The MSISDN identifier should be in international format according to the + + [ITU-T E.164 standard](https://www.itu.int/rec/T-REC-E.164/en). + + Optionally, the MSISDN may be prefixed by a single plus sign, indicating + the + international prefix. - - EMAIL - An email is used as reference to a participant. The format of - the email should be according to the informational [RFC - 3696](https://tools.ietf.org/html/rfc3696). + - EMAIL - An email is used as reference to a + + participant. The format of the email should be according to the + informational + + [RFC 3696](https://tools.ietf.org/html/rfc3696). - PERSONAL_ID - A personal identifier is used as reference to a - participant. Examples of personal identification are passport number, - birth certificate number, and national registration number. The - identifier number is added in the PartyIdentifier element. The personal - identifier type is added in the PartySubIdOrType element. + participant. + + Examples of personal identification are passport number, birth + certificate + + number, and national registration number. The identifier number is added + in + + the PartyIdentifier element. The personal identifier type is added in + the + + PartySubIdOrType element. - BUSINESS - A specific Business (for example, an organization or a - company) is used as reference to a participant. The BUSINESS identifier - can be in any format. To make a transaction connected to a specific - username or bill number in a Business, the PartySubIdOrType element - should be used. + company) + + is used as reference to a participant. The BUSINESS identifier can be in + any + + format. To make a transaction connected to a specific username or bill + number + + in a Business, the PartySubIdOrType element should be used. - DEVICE - A specific device (for example, a POS or ATM) ID connected to - a specific business or organization is used as reference to a Party. For - referencing a specific device under a specific business or organization, + a + + specific business or organization is used as reference to a Party. + + For referencing a specific device under a specific business or + organization, + use the PartySubIdOrType element. - ACCOUNT_ID - A bank account number or FSP account ID should be used as + reference to a participant. The ACCOUNT_ID identifier can be in any - format, as formats can greatly differ depending on country and FSP. + format, + + as formats can greatly differ depending on country and FSP. - IBAN - A bank account number or FSP account ID is used as reference to - a participant. The IBAN identifier can consist of up to 34 alphanumeric + a + + participant. The IBAN identifier can consist of up to 34 alphanumeric + characters and should be entered without whitespace. - ALIAS An alias is used as reference to a participant. The alias should - be created in the FSP as an alternative reference to an account owner. - Another example of an alias is a username in the FSP system. The ALIAS - identifier can be in any format. It is also possible to use the + be + + created in the FSP as an alternative reference to an account owner. + + Another example of an alias is a username in the FSP system. + + The ALIAS identifier can be in any format. It is also possible to use + the + PartySubIdOrType element for identifying an account under an Alias - defined by the PartyIdentifier. + defined + + by the PartyIdentifier. + + - CONSENT - TBD + + - THIRD_PARTY_LINK - TBD + example: PERSONAL_ID PartyIdentifier: title: PartyIdentifier type: string minLength: 1 maxLength: 128 description: Identifier of the Party. - example: '16135551212' PartySubIdOrType: title: PartySubIdOrType type: string @@ -628,20 +641,154 @@ components: description: >- Either a sub-identifier of a PartyIdentifier, or a sub-type of the PartyIdType, normally a PersonalIdentifierType. - Currency: - title: Currency + Name: + title: Name + type: string + pattern: '^(?!\s*$)[\w .,''-]{1,128}$' description: >- - The currency codes defined in [ISO - 4217](https://www.iso.org/iso-4217-currency-codes.html) as three-letter - alphabetic codes are used as the standard naming representation for - currencies. + The API data type Name is a JSON String, restricted by a regular + expression to avoid characters which are generally not used in a name. + + + Regular Expression - The regular expression for restricting the Name + type is "^(?!\s*$)[\w .,'-]{1,128}$". The restriction does not allow a + string consisting of whitespace only, all Unicode characters are + allowed, as well as the period (.) (apostrophe (‘), dash (-), comma (,) + and space characters ( ). + + + **Note:** In some programming languages, Unicode support must be + specifically enabled. For example, if Java is used, the flag + UNICODE_CHARACTER_CLASS must be enabled to allow Unicode characters. + FirstName: + title: FirstName type: string - minLength: 3 - maxLength: 3 - enum: - - AED - - AFN - - ALL + minLength: 1 + maxLength: 128 + pattern: '^(?!\s*$)[\w .,''-]{1,128}$' + description: First name of the Party (Name Type). + MiddleName: + title: MiddleName + type: string + minLength: 1 + maxLength: 128 + pattern: '^(?!\s*$)[\w .,''-]{1,128}$' + description: Middle name of the Party (Name Type). + LastName: + title: LastName + type: string + minLength: 1 + maxLength: 128 + pattern: '^(?!\s*$)[\w .,''-]{1,128}$' + description: Last name of the Party (Name Type). + DateOfBirth: + title: DateofBirth (type Date) + type: string + 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)$ + description: Date of Birth of the Party. + MerchantClassificationCode: + title: MerchantClassificationCode + type: string + pattern: '^[\d]{1,4}$' + description: >- + A limited set of pre-defined numbers. This list would be a limited set + of numbers identifying a set of popular merchant types like School Fees, + Pubs and Restaurants, Groceries, etc. + FspId: + title: FspId + type: string + minLength: 1 + maxLength: 32 + description: FSP identifier. + ExtensionKey: + title: ExtensionKey + type: string + minLength: 1 + maxLength: 32 + description: Extension key. + ExtensionValue: + title: ExtensionValue + type: string + minLength: 1 + maxLength: 128 + description: Extension value. + Extension: + title: Extension + type: object + description: Data model for the complex type Extension. + properties: + key: + $ref: '#/components/schemas/ExtensionKey' + value: + $ref: '#/components/schemas/ExtensionValue' + required: + - key + - value + extensionListEmptiable: + type: array + items: + $ref: '#/components/schemas/Extension' + minItems: 0 + maxItems: 16 + transferParty: + type: object + required: + - idType + - idValue + properties: + type: + $ref: '#/components/schemas/TransactionInitiatorType' + idType: + $ref: '#/components/schemas/PartyIdType' + idValue: + $ref: '#/components/schemas/PartyIdentifier' + idSubValue: + $ref: '#/components/schemas/PartySubIdOrType' + displayName: + $ref: '#/components/schemas/Name' + firstName: + $ref: '#/components/schemas/FirstName' + middleName: + $ref: '#/components/schemas/MiddleName' + lastName: + $ref: '#/components/schemas/LastName' + dateOfBirth: + $ref: '#/components/schemas/DateOfBirth' + merchantClassificationCode: + $ref: '#/components/schemas/MerchantClassificationCode' + fspId: + $ref: '#/components/schemas/FspId' + extensionList: + $ref: '#/components/schemas/extensionListEmptiable' + AmountType: + title: AmountType + type: string + enum: + - SEND + - RECEIVE + description: >- + Below are the allowed values for the enumeration AmountType. + + - SEND - Amount the Payer would like to send, that is, the amount that + should be withdrawn from the Payer account including any fees. + + - RECEIVE - Amount the Payer would like the Payee to receive, that is, + the amount that should be sent to the receiver exclusive of any fees. + Currency: + title: Currency + description: >- + The currency codes defined in [ISO + 4217](https://www.iso.org/iso-4217-currency-codes.html) as three-letter + alphabetic codes are used as the standard naming representation for + currencies. + type: string + minLength: 3 + maxLength: 3 + enum: + - AED + - AFN + - ALL - AMD - ANG - AOA @@ -803,109 +950,148 @@ components: - ZAR - ZMW - ZWD - accountsRequest: - type: array - items: - type: object - required: - - idType - - idValue - - currency - properties: - idType: - $ref: '#/components/schemas/PartyIdType' - idValue: - $ref: '#/components/schemas/PartyIdentifier' - idSubValue: - $ref: '#/components/schemas/PartySubIdOrType' - currency: - $ref: '#/components/schemas/Currency' - CorrelationId: - title: CorrelationId + Amount: + title: Amount 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}$ + pattern: '^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$' 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 - errorResponse: - type: object - properties: - statusCode: - type: string - description: Error code as string. - message: - type: string - description: Error message text. - accountCreationStatus: - type: array - items: - type: object - required: - - idType - - idValue - properties: - idType: - $ref: '#/components/schemas/PartyIdType' - idValue: - $ref: '#/components/schemas/PartyIdentifier' - idSubValue: - $ref: '#/components/schemas/PartySubIdOrType' - error: - $ref: '#/components/schemas/errorResponse' - accountsCreationState: + The API data type Amount is a JSON String in a canonical format that is + restricted by a regular expression for interoperability reasons. This + pattern does not allow any trailing zeroes at all, but allows an amount + without a minor currency unit. It also only allows four digits in the + minor currency unit; a negative value is not allowed. Using more than 18 + digits in the major currency unit is not allowed. + transactionType: type: string enum: - - ERROR_OCCURRED - - COMPLETED - ErrorCode: - title: ErrorCode - type: string - pattern: ^[1-9]\d{3}$ - description: >- - The API data type ErrorCode is a JSON String of four characters, - consisting of digits only. Negative numbers are not allowed. A leading - zero is not allowed. Each error code in the API is a four-digit number, - for example, 1234, where the first number (1 in the example) represents - the high-level error category, the second number (2 in the example) - represents the low-level error category, and the last two numbers (34 in - the example) represent the specific error. - example: '5100' - ErrorDescription: - title: ErrorDescription + - TRANSFER + description: Type of transaction. + Note: + title: Note type: string minLength: 1 maxLength: 128 - description: Error description string. - ExtensionKey: - title: ExtensionKey + description: Memo assigned to transaction. + transferRequest: + type: object + required: + - homeTransactionId + - from + - to + - amountType + - currency + - amount + - transactionType + properties: + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + from: + $ref: '#/components/schemas/transferParty' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + transactionType: + $ref: '#/components/schemas/transactionType' + note: + $ref: '#/components/schemas/Note' + quoteRequestExtensions: + $ref: '#/components/schemas/extensionListEmptiable' + transferRequestExtensions: + $ref: '#/components/schemas/extensionListEmptiable' + CorrelationId: + title: CorrelationId type: string - minLength: 1 - maxLength: 32 - description: Extension key. - ExtensionValue: - title: ExtensionValue + pattern: >- + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + description: >- + Identifier that correlates all messages of the same sequence. + The supported identifiers formats are for + lowercase [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and + uppercase [ULID](https://github.com/ulid/spec) + transferStatus: type: string - minLength: 1 - maxLength: 128 - description: Extension value. - Extension: - title: Extension + enum: + - ERROR_OCCURRED + - WAITING_FOR_PARTY_ACCEPTANCE + - WAITING_FOR_QUOTE_ACCEPTANCE + - COMPLETED + Money: + title: Money type: object - description: Data model for the complex type Extension. + description: Data model for the complex type Money. properties: - key: - $ref: '#/components/schemas/ExtensionKey' - value: - $ref: '#/components/schemas/ExtensionValue' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' required: - - key - - value + - currency + - amount + DateTime: + title: DateTime + type: string + 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)$ + description: >- + The API data type DateTime is a JSON String in a lexical format that is + restricted by a regular expression for interoperability reasons. The + format is according to [ISO + 8601](https://www.iso.org/iso-8601-date-and-time-format.html), expressed + in a combined date, time and time zone format. A more readable version + of the format is yyyy-MM-ddTHH:mm:ss.SSS[-HH:MM]. Examples are + "2016-05-24T08:38:08.699-04:00", "2016-05-24T08:38:08.699Z" (where Z + indicates Zulu time zone, same as UTC). + Latitude: + title: Latitude + type: string + pattern: >- + ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ + 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: + title: Longitude + type: string + pattern: >- + ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ + description: >- + The API data type Longitude is a JSON String in a lexical format that is + restricted by a regular expression for interoperability reasons. + GeoCode: + title: GeoCode + type: object + description: >- + Data model for the complex type GeoCode. Indicates the geographic + location from where the transaction was initiated. + properties: + latitude: + $ref: '#/components/schemas/Latitude' + longitude: + $ref: '#/components/schemas/Longitude' + required: + - latitude + - longitude + IlpPacket: + title: IlpPacket + type: string + pattern: '^[A-Za-z0-9-_]+[=]{0,2}$' + minLength: 1 + maxLength: 32768 + description: Information for recipient (transport layer information). + IlpCondition: + title: IlpCondition + type: string + pattern: '^[A-Za-z0-9-_]{43}$' + maxLength: 48 + description: Condition that must be attached to the transfer by the Payer. ExtensionList: title: ExtensionList type: object @@ -922,6 +1108,92 @@ components: description: Number of Extension elements. required: - extension + QuotesIDPutResponse: + title: QuotesIDPutResponse + type: object + description: 'The object sent in the PUT /quotes/{ID} callback.' + properties: + transferAmount: + $ref: '#/components/schemas/Money' + payeeReceiveAmount: + $ref: '#/components/schemas/Money' + payeeFspFee: + $ref: '#/components/schemas/Money' + payeeFspCommission: + $ref: '#/components/schemas/Money' + expiration: + $ref: '#/components/schemas/DateTime' + geoCode: + $ref: '#/components/schemas/GeoCode' + ilpPacket: + $ref: '#/components/schemas/IlpPacket' + condition: + $ref: '#/components/schemas/IlpCondition' + extensionList: + $ref: '#/components/schemas/ExtensionList' + required: + - transferAmount + - expiration + - ilpPacket + - condition + IlpFulfilment: + title: IlpFulfilment + type: string + pattern: '^[A-Za-z0-9-_]{43}$' + maxLength: 48 + description: Fulfilment that must be attached to the transfer by the Payee. + TransferState: + title: TransferState + type: string + enum: + - RECEIVED + - RESERVED + - COMMITTED + - ABORTED + description: >- + Below are the allowed values for the enumeration. + + - RECEIVED - Next ledger has received the transfer. + + - RESERVED - Next ledger has reserved the transfer. + + - COMMITTED - Next ledger has successfully performed the transfer. + + - ABORTED - Next ledger has aborted the transfer due to a rejection or + failure to perform the transfer. + TransfersIDPutResponse: + title: TransfersIDPutResponse + type: object + description: 'The object sent in the PUT /transfers/{ID} callback.' + properties: + fulfilment: + $ref: '#/components/schemas/IlpFulfilment' + completedTimestamp: + $ref: '#/components/schemas/DateTime' + transferState: + $ref: '#/components/schemas/TransferState' + extensionList: + $ref: '#/components/schemas/ExtensionList' + required: + - transferState + ErrorCode: + title: ErrorCode + type: string + pattern: '^[1-9]\d{3}$' + description: >- + The API data type ErrorCode is a JSON String of four characters, + consisting of digits only. Negative numbers are not allowed. A leading + zero is not allowed. Each error code in the API is a four-digit number, + for example, 1234, where the first number (1 in the example) represents + the high-level error category, the second number (2 in the example) + represents the low-level error category, and the last two numbers (34 in + the example) represent the specific error. + ErrorDescription: + title: ErrorDescription + type: string + minLength: 1 + maxLength: 128 + description: Error description string. ErrorInformation: title: ErrorInformation type: object @@ -954,214 +1226,111 @@ components: actual HTTP status code returned with the response. mojaloopError: $ref: '#/components/schemas/mojaloopError' - accountsResponse: + transferResponse: type: object required: - - accounts + - homeTransactionId + - from + - to + - amountType + - currency + - amount + - transactionType properties: - modelId: + transferId: $ref: '#/components/schemas/CorrelationId' - accounts: - $ref: '#/components/schemas/accountsRequest' - response: - $ref: '#/components/schemas/accountCreationStatus' + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + from: + $ref: '#/components/schemas/transferParty' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + transactionType: + $ref: '#/components/schemas/transactionType' + note: + $ref: '#/components/schemas/Note' currentState: - $ref: '#/components/schemas/accountsCreationState' + $ref: '#/components/schemas/transferStatus' + quoteId: + $ref: '#/components/schemas/CorrelationId' + quoteResponse: + $ref: '#/components/schemas/QuotesIDPutResponse' + quoteResponseSource: + type: string + description: > + FSPID of the entity that supplied the quote response. This may not + be the same as the FSPID of the entity which owns the end user + account in the case of a FOREX transfer. i.e. it may be a FOREX + gateway. + fulfil: + $ref: '#/components/schemas/TransfersIDPutResponse' lastError: $ref: '#/components/schemas/transferError' - postAccountsResponse: - type: object - required: - - body - properties: - body: - type: object - headers: - type: object - errorAccountsResponse: + errorResponse: + type: object + properties: + statusCode: + type: string + description: Error code as string. + message: + type: string + description: Error message text. + errorTransferResponse: allOf: - $ref: '#/components/schemas/errorResponse' - type: object required: - - executionState + - transferState properties: - executionState: - $ref: '#/components/schemas/accountsResponse' - TransactionInitiatorType: - title: TransactionInitiatorType - type: string - enum: - - CONSUMER - - AGENT - - BUSINESS - - DEVICE - description: |- - Below are the allowed values for the enumeration. - - CONSUMER - Consumer is the initiator of the transaction. - - AGENT - Agent is the initiator of the transaction. - - BUSINESS - Business is the initiator of the transaction. - - DEVICE - Device is the initiator of the transaction. - example: CONSUMER - Name: - title: Name - type: string - pattern: ^(?!\s*$)[\w .,'-]{1,128}$ - description: >- - The API data type Name is a JSON String, restricted by a regular - expression to avoid characters which are generally not used in a name. - - - Regular Expression - The regular expression for restricting the Name - type is "^(?!\s*$)[\w .,'-]{1,128}$". The restriction does not allow a - string consisting of whitespace only, all Unicode characters are - allowed, as well as the period (.) (apostrophe (‘), dash (-), comma (,) - and space characters ( ). - - - **Note:** In some programming languages, Unicode support must be - specifically enabled. For example, if Java is used, the flag - UNICODE_CHARACTER_CLASS must be enabled to allow Unicode characters. - FirstName: - title: FirstName - type: string - minLength: 1 - maxLength: 128 - pattern: >- - ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} - .,''-]{1,128}$ - description: First name of the Party (Name Type). - example: Henrik - MiddleName: - title: MiddleName - type: string - minLength: 1 - maxLength: 128 - pattern: >- - ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} - .,''-]{1,128}$ - description: Middle name of the Party (Name Type). - example: Johannes - LastName: - title: LastName - type: string - minLength: 1 - maxLength: 128 - pattern: >- - ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} - .,''-]{1,128}$ - description: Last name of the Party (Name Type). - example: Karlsson - DateOfBirth: - title: DateofBirth (type Date) - type: string - 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)$ - description: Date of Birth of the Party. - example: '1966-06-16' - MerchantClassificationCode: - title: MerchantClassificationCode - type: string - pattern: ^[\d]{1,4}$ - description: >- - A limited set of pre-defined numbers. This list would be a limited set - of numbers identifying a set of popular merchant types like School Fees, - Pubs and Restaurants, Groceries, etc. - FspId: - title: FspId - type: string - minLength: 1 - maxLength: 32 - description: FSP identifier. - extensionListEmptiable: - type: array - items: - $ref: '#/components/schemas/Extension' - minItems: 0 - maxItems: 16 - transferParty: + transferState: + $ref: '#/components/schemas/transferResponse' + transferStatusResponse: type: object required: - - idType - - idValue + - transferId + - currentState + - fulfil properties: - type: - $ref: '#/components/schemas/TransactionInitiatorType' - idType: - $ref: '#/components/schemas/PartyIdType' - idValue: - $ref: '#/components/schemas/PartyIdentifier' - idSubValue: - $ref: '#/components/schemas/PartySubIdOrType' - displayName: - $ref: '#/components/schemas/Name' - firstName: - $ref: '#/components/schemas/FirstName' - middleName: - $ref: '#/components/schemas/MiddleName' - lastName: - $ref: '#/components/schemas/LastName' - dateOfBirth: - $ref: '#/components/schemas/DateOfBirth' - merchantClassificationCode: - $ref: '#/components/schemas/MerchantClassificationCode' - fspId: - $ref: '#/components/schemas/FspId' - extensionList: - $ref: '#/components/schemas/extensionListEmptiable' - AmountType: - title: AmountType - type: string - enum: - - SEND - - RECEIVE - description: >- - Below are the allowed values for the enumeration AmountType. - - - SEND - Amount the Payer would like to send, that is, the amount that - should be withdrawn from the Payer account including any fees. - - - RECEIVE - Amount the Payer would like the Payee to receive, that is, - the amount that should be sent to the receiver exclusive of any fees. - example: RECEIVE - Amount: - title: Amount - type: string - pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$ - description: >- - The API data type Amount is a JSON String in a canonical format that is - restricted by a regular expression for interoperability reasons. This - pattern does not allow any trailing zeroes at all, but allows an amount - without a minor currency unit. It also only allows four digits in the - minor currency unit; a negative value is not allowed. Using more than 18 - digits in the major currency unit is not allowed. - example: '123.45' - transferTransactionType: - title: transferTransactionType - type: string - enum: - - TRANSFER - description: Type of transaction. - TransactionSubScenario: - title: TransactionSubScenario - type: string - pattern: ^[A-Z_]{1,32}$ - description: >- - Possible sub-scenario, defined locally within the scheme (UndefinedEnum - Type). - example: LOCALLY_DEFINED_SUBSCENARIO - Note: - title: Note - type: string - minLength: 1 - maxLength: 128 - description: Memo assigned to transaction. - example: Note sent to Payee. - individualQuote: - title: IndividualQuote + transferId: + $ref: '#/components/schemas/CorrelationId' + currentState: + $ref: '#/components/schemas/transferStatus' + fulfil: + $ref: '#/components/schemas/TransfersIDPutResponse' + transferContinuationAcceptParty: type: object - description: Data model for the complex type 'individualQuote'. + required: + - acceptParty properties: - quoteId: + acceptParty: + type: boolean + enum: + - true + transferContinuationAcceptQuote: + type: object + required: + - acceptQuote + properties: + acceptQuote: + type: boolean + enum: + - true + - false + individualTransfer: + title: IndividualTransfer + type: object + description: Data model for the complex type 'individualTransfer'. + properties: + transferId: $ref: '#/components/schemas/CorrelationId' to: $ref: '#/components/schemas/transferParty' @@ -1172,124 +1341,183 @@ components: amount: $ref: '#/components/schemas/Amount' transactionType: - $ref: '#/components/schemas/transferTransactionType' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' + $ref: '#/components/schemas/transactionType' note: $ref: '#/components/schemas/Note' extensions: $ref: '#/components/schemas/ExtensionList' required: - - quoteId + - transferId - to - amountType - currency - transactionType - - amount - bulkQuoteRequest: + bulkTransferRequest: type: object required: - homeTransactionId - from - - individualQuotes + - individualTransfers properties: homeTransactionId: type: string description: >- Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. - bulkQuoteId: + bulkTransferId: $ref: '#/components/schemas/CorrelationId' from: $ref: '#/components/schemas/transferParty' - individualQuotes: - description: List of individual quotes in a bulk quote. + individualTransfers: + description: List of individual transfers in a bulk transfer. type: array minItems: 1 maxItems: 1000 items: - $ref: '#/components/schemas/individualQuote' + $ref: '#/components/schemas/individualTransfer' extensions: $ref: '#/components/schemas/ExtensionList' - DateTime: - title: DateTime - type: string - 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)$ - description: >- - The API data type DateTime is a JSON String in a lexical format that is - restricted by a regular expression for interoperability reasons. The - format is according to [ISO - 8601](https://www.iso.org/iso-8601-date-and-time-format.html), expressed - in a combined date, time and time zone format. A more readable version - of the format is yyyy-MM-ddTHH:mm:ss.SSS[-HH:MM]. Examples are - "2016-05-24T08:38:08.699-04:00", "2016-05-24T08:38:08.699Z" (where Z - indicates Zulu time zone, same as UTC). - example: '2016-05-24T08:38:08.699-04:00' - bulkTransferStatus: - type: string - enum: - - ERROR_OCCURRED - - COMPLETED - Money: - title: Money + individualTransferResult: type: object - description: Data model for the complex type Money. properties: + transferId: + $ref: '#/components/schemas/CorrelationId' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' currency: $ref: '#/components/schemas/Currency' amount: $ref: '#/components/schemas/Amount' + transactionType: + $ref: '#/components/schemas/transactionType' + note: + $ref: '#/components/schemas/Note' + quoteId: + $ref: '#/components/schemas/CorrelationId' + quoteResponse: + $ref: '#/components/schemas/QuotesIDPutResponse' + quoteResponseSource: + type: string + description: > + FSPID of the entity that supplied the quote response. This may not + be the same as the FSPID of the entity which owns the end user + account in the case of a FOREX transfer. i.e. it may be a FOREX + gateway. + fulfil: + $ref: '#/components/schemas/TransfersIDPutResponse' + lastError: + $ref: '#/components/schemas/transferError' + bulkTransferResponse: + type: object required: - - currency - - amount - Latitude: - title: Latitude - type: string - pattern: >- - ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ - description: >- - The API data type Latitude is a JSON String in a lexical format that is - restricted by a regular expression for interoperability reasons. - example: '+45.4215' - Longitude: - title: Longitude + - from + - individualTransferResults + properties: + transferId: + $ref: '#/components/schemas/CorrelationId' + from: + $ref: '#/components/schemas/transferParty' + individualTransferResults: + type: array + maxItems: 1000 + items: + $ref: '#/components/schemas/individualTransferResult' + description: List of individual transfer result in a bulk transfer response. + bulkTransferErrorResponse: + allOf: + - $ref: '#/components/schemas/errorResponse' + - type: object + required: + - bulkTansferState + properties: + bulkTransferState: + $ref: '#/components/schemas/bulkTransferResponse' + bulkTransferStatus: type: string - pattern: >- - ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ - description: >- - The API data type Longitude is a JSON String in a lexical format that is - restricted by a regular expression for interoperability reasons. - example: '+75.6972' - GeoCode: - title: GeoCode + enum: + - ERROR_OCCURRED + - COMPLETED + individualTransferFulfilment: type: object description: >- - Data model for the complex type GeoCode. Indicates the geographic - location from where the transaction was initiated. + A Mojaloop API transfer fulfilment for individual transfers in a bulk + transfer properties: - latitude: - $ref: '#/components/schemas/Latitude' - longitude: - $ref: '#/components/schemas/Longitude' + fulfilment: + $ref: '#/components/schemas/IlpFulfilment' + extensionList: + $ref: '#/components/schemas/ExtensionList' + bulkTransferStatusResponse: + type: object required: - - latitude - - longitude - IlpPacket: - title: IlpPacket - type: string - pattern: ^[A-Za-z0-9-_]+[=]{0,2}$ - minLength: 1 - maxLength: 32768 - description: Information for recipient (transport layer information). - example: >- - AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA - IlpCondition: - title: IlpCondition - type: string - pattern: ^[A-Za-z0-9-_]{43}$ - maxLength: 48 - description: Condition that must be attached to the transfer by the Payer. + - bulkTransferId + - currentState + - fulfils + properties: + bulkTransferId: + $ref: '#/components/schemas/CorrelationId' + currentState: + $ref: '#/components/schemas/bulkTransferStatus' + fulfils: + type: array + minItems: 1 + maxItems: 1000 + items: + $ref: '#/components/schemas/individualTransferFulfilment' + individualQuote: + title: IndividualQuote + type: object + description: Data model for the complex type 'individualQuote'. + properties: + quoteId: + $ref: '#/components/schemas/CorrelationId' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + transactionType: + $ref: '#/components/schemas/transactionType' + note: + $ref: '#/components/schemas/Note' + extensions: + $ref: '#/components/schemas/ExtensionList' + required: + - quoteId + - to + - amountType + - currency + - transactionType + bulkQuoteRequest: + type: object + required: + - homeTransactionId + - from + - individualQuotes + properties: + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + bulkQuoteId: + $ref: '#/components/schemas/CorrelationId' + from: + $ref: '#/components/schemas/transferParty' + individualQuotes: + description: List of individual quotes in a bulk quote. + type: array + minItems: 1 + maxItems: 1000 + items: + $ref: '#/components/schemas/individualQuote' + extensions: + $ref: '#/components/schemas/ExtensionList' quoteError: type: object description: >- @@ -1308,47 +1536,35 @@ components: properties: quoteId: $ref: '#/components/schemas/CorrelationId' - transferAmount: - $ref: '#/components/schemas/Money' - payeeReceiveAmount: - $ref: '#/components/schemas/Money' - payeeFspFee: - $ref: '#/components/schemas/Money' - payeeFspCommission: - $ref: '#/components/schemas/Money' - geoCode: - $ref: '#/components/schemas/GeoCode' - ilpPacket: - $ref: '#/components/schemas/IlpPacket' - condition: - $ref: '#/components/schemas/IlpCondition' - extensionList: - $ref: '#/components/schemas/ExtensionList' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + transactionType: + $ref: '#/components/schemas/transactionType' + note: + $ref: '#/components/schemas/Note' lastError: $ref: '#/components/schemas/quoteError' - required: - - quoteId bulkQuoteResponse: type: object required: - - bulkQuoteId + - from - individualQuoteResults - - currentState - - expiration properties: - bulkQuoteId: + quoteId: $ref: '#/components/schemas/CorrelationId' homeTransactionId: type: string description: >- Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. - expiration: - $ref: '#/components/schemas/DateTime' - extensionList: - $ref: '#/components/schemas/ExtensionList' - currentState: - $ref: '#/components/schemas/bulkTransferStatus' + from: + $ref: '#/components/schemas/transferParty' individualQuoteResults: type: array maxItems: 1000 @@ -1360,7 +1576,7 @@ components: - $ref: '#/components/schemas/errorResponse' - type: object required: - - bulkQuoteState + - bulkTansferState properties: bulkQuoteState: $ref: '#/components/schemas/bulkQuoteResponse' @@ -1386,85 +1602,404 @@ components: maxItems: 1000 items: $ref: '#/components/schemas/individualQuote' - autoAcceptPartyOption: + TransactionScenario: + title: TransactionScenario + type: string + enum: + - DEPOSIT + - WITHDRAWAL + - TRANSFER + - PAYMENT + - REFUND + description: >- + Below are the allowed values for the enumeration. + + - DEPOSIT - Used for performing a Cash-In (deposit) transaction. In a + normal scenario, electronic funds are transferred from a Business + account to a Consumer account, and physical cash is given from the + Consumer to the Business User. + + - WITHDRAWAL - Used for performing a Cash-Out (withdrawal) transaction. + In a normal scenario, electronic funds are transferred from a Consumer’s + account to a Business account, and physical cash is given from the + Business User to the Consumer. + + - TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to + Consumer) transaction. + + - PAYMENT - Usually used for performing a transaction from a Consumer to + a Merchant or Organization, but could also be for a B2B (Business to + Business) payment. The transaction could be online for a purchase in an + Internet store, in a physical store where both the Consumer and Business + User are present, a bill payment, a donation, and so on. + + - REFUND - Used for performing a refund of transaction. + TransactionSubScenario: + title: TransactionSubScenario + type: string + pattern: '^[A-Z_]{1,32}$' + description: >- + Possible sub-scenario, defined locally within the scheme (UndefinedEnum + Type). + TransactionInitiator: + title: TransactionInitiator + type: string + enum: + - PAYER + - PAYEE + description: >- + Below are the allowed values for the enumeration. + + - PAYER - Sender of funds is initiating the transaction. The account to + send from is either owned by the Payer or is connected to the Payer in + some way. + + - PAYEE - Recipient of the funds is initiating the transaction by + sending a transaction request. The Payer must approve the transaction, + either automatically by a pre-generated OTP or by pre-approval of the + Payee, or by manually approving in his or her own Device. + RefundReason: + title: RefundReason + type: string + minLength: 1 + maxLength: 128 + description: Reason for the refund. + Refund: + title: Refund type: object + description: Data model for the complex type Refund. + properties: + originalTransactionId: + $ref: '#/components/schemas/CorrelationId' + refundReason: + $ref: '#/components/schemas/RefundReason' required: - - enabled + - originalTransactionId + BalanceOfPayments: + title: BalanceOfPayments + type: string + pattern: '^[1-9]\d{2}$' + description: >- + (BopCode) The API data type + [BopCode](https://www.imf.org/external/np/sta/bopcode/) is a JSON String + of 3 characters, consisting of digits only. Negative numbers are not + allowed. A leading zero is not allowed. + TransactionType: + title: TransactionType + type: object + description: Data model for the complex type TransactionType. properties: - enabled: - type: boolean - enum: - - false - - true - bulkPerTransferFeeLimit: + scenario: + $ref: '#/components/schemas/TransactionScenario' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + initiator: + $ref: '#/components/schemas/TransactionInitiator' + initiatorType: + $ref: '#/components/schemas/TransactionInitiatorType' + refundInfo: + $ref: '#/components/schemas/Refund' + balanceOfPayments: + $ref: '#/components/schemas/BalanceOfPayments' + required: + - scenario + - initiator + - initiatorType + requestToPayRequest: type: object required: + - homeTransactionId + - from + - to + - amountType - currency - amount + - scenario + - initiator + - initiatorType properties: + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + from: + $ref: '#/components/schemas/transferParty' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' currency: $ref: '#/components/schemas/Currency' amount: $ref: '#/components/schemas/Amount' - autoAcceptQuote: - type: object - required: - - enabled - properties: - enabled: - type: boolean - enum: - - true - - false - perTransferFeeLimits: - type: array - minItems: 0 - items: - $ref: '#/components/schemas/bulkPerTransferFeeLimit' - bulkTransactionOptions: + scenario: + $ref: '#/components/schemas/TransactionType' + initiator: + $ref: '#/components/schemas/TransactionInitiator' + initiatorType: + $ref: '#/components/schemas/TransactionInitiatorType' + AuthenticationType: + title: AuthenticationType + type: string + enum: + - OTP + - QRCODE + - U2F + description: |- + Below are the allowed values for the enumeration AuthenticationType. + - OTP - One-time password generated by the Payer FSP. + - QRCODE - QR code used as One Time Password. + - U2F - U2F is a new addition isolated to Thirdparty stream. + TransactionRequestState: + title: TransactionRequestState + type: string + enum: + - RECEIVED + - PENDING + - ACCEPTED + - REJECTED + description: |- + Below are the allowed values for the enumeration. + - RECEIVED - Payer FSP has received the transaction from the Payee FSP. + - PENDING - Payer FSP has sent the transaction request to the Payer. + - ACCEPTED - Payer has approved the transaction. + - REJECTED - Payer has rejected the transaction. + requestToPayResponse: type: object required: - - autoAcceptParty - - autoAcceptQuote - - bulkExpiration + - transactionRequestId + - from + - to + - amountType + - currency + - amount + - transactionType + - requestToPayState properties: - onlyValidateParty: - description: >- - Set to true if only party validation is required. This means the - quotes and transfers will not run. This is useful for only party - resolution. - type: boolean - autoAcceptParty: - $ref: '#/components/schemas/autoAcceptPartyOption' - autoAcceptQuote: - description: >- - Set to true if the quote response is accepted without confirmation - from the payer. The fees applied by the payee will be acceptable to - the payer abiding by the limits set by optional - 'perTransferFeeLimits' array. - type: object - oneOf: - - $ref: '#/components/schemas/autoAcceptQuote' - skipPartyLookup: + transactionRequestId: + $ref: '#/components/schemas/CorrelationId' + from: + $ref: '#/components/schemas/transferParty' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + scenario: + $ref: '#/components/schemas/TransactionType' + initiator: + $ref: '#/components/schemas/TransactionInitiator' + initiatorType: + $ref: '#/components/schemas/TransactionInitiatorType' + authenticationType: + $ref: '#/components/schemas/AuthenticationType' + requestToPayState: + $ref: '#/components/schemas/TransactionRequestState' + requestToPayTransferRequest: + type: object + required: + - requestToPayTransactionId + - from + - to + - amountType + - currency + - amount + - scenario + - initiator + - initiatorType + properties: + requestToPayTransactionId: + type: string description: >- - Set to true if supplying an FSPID for the payee party and no party - resolution is needed. This may be useful if a previous party - resolution has been performed. - type: boolean - synchronous: + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + from: + $ref: '#/components/schemas/transferParty' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + scenario: + $ref: '#/components/schemas/TransactionType' + initiator: + $ref: '#/components/schemas/TransactionInitiator' + initiatorType: + $ref: '#/components/schemas/TransactionInitiatorType' + note: + $ref: '#/components/schemas/Note' + requestToPayTransferResponse: + type: object + required: + - requestToPayTransactionId + - from + - to + - amountType + - currency + - amount + - transactionType + properties: + transferId: + $ref: '#/components/schemas/CorrelationId' + requestToPayTransactionId: + type: string description: >- - Set to true if the bulkTransfer requests need be handled - synchronous. Otherwise the requests will be handled asynchronously, - meaning there will be callbacks whenever the processing is done + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + from: + $ref: '#/components/schemas/transferParty' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + transactionType: + $ref: '#/components/schemas/transactionType' + note: + $ref: '#/components/schemas/Note' + currentState: + $ref: '#/components/schemas/transferStatus' + quoteId: + $ref: '#/components/schemas/CorrelationId' + quoteResponse: + $ref: '#/components/schemas/QuotesIDPutResponse' + quoteResponseSource: + type: string + description: > + FSPID of the entity that supplied the quote response. This may not + be the same as the FSPID of the entity which owns the end user + account in the case of a FOREX transfer. i.e. it may be a FOREX + gateway. + fulfil: + $ref: '#/components/schemas/TransfersIDPutResponse' + lastError: + $ref: '#/components/schemas/transferError' + transferContinuationAcceptOTP: + type: object + required: + - acceptOTP + properties: + acceptOTP: type: boolean - bulkExpiration: - $ref: '#/components/schemas/DateTime' + enum: + - true + - false + accountsRequest: + type: array + items: + type: object + required: + - idType + - idValue + - currency + properties: + idType: + $ref: '#/components/schemas/PartyIdType' + idValue: + $ref: '#/components/schemas/PartyIdentifier' + idSubValue: + $ref: '#/components/schemas/PartySubIdOrType' + currency: + $ref: '#/components/schemas/Currency' + accountCreationStatus: + type: array + items: + type: object + required: + - idType + - idValue + properties: + idType: + $ref: '#/components/schemas/PartyIdType' + idValue: + $ref: '#/components/schemas/PartyIdentifier' + idSubValue: + $ref: '#/components/schemas/PartySubIdOrType' + error: + $ref: '#/components/schemas/errorResponse' + accountsCreationState: + type: string + enum: + - ERROR_OCCURRED + - COMPLETED + accountsResponse: + type: object + required: + - accounts + properties: + modelId: + $ref: '#/components/schemas/CorrelationId' + accounts: + $ref: '#/components/schemas/accountsRequest' + response: + $ref: '#/components/schemas/accountCreationStatus' + currentState: + $ref: '#/components/schemas/accountsCreationState' + lastError: + $ref: '#/components/schemas/transferError' + errorAccountsResponse: + allOf: + - $ref: '#/components/schemas/errorResponse' + - type: object + required: + - executionState + properties: + executionState: + $ref: '#/components/schemas/accountsResponse' + AccountAddress: + title: AccountAddress + type: string + description: > + A long-lived unique account identifier provided by the DFSP. This MUST + NOT + + be Bank Account Number or anything that may expose a User's private bank + + account information. + pattern: '^([0-9A-Za-z_~\-\.]+[0-9A-Za-z_~\-])$' + minLength: 1 + maxLength: 1023 + Account: + title: Account + type: object + description: Data model for the complex type Account. + properties: + address: + $ref: '#/components/schemas/AccountAddress' + currency: + $ref: '#/components/schemas/Currency' + description: + $ref: '#/components/schemas/Name' + required: + - currency + AccountList: + title: AccountList + type: object + description: Data model for the complex type AccountList. + properties: + account: + type: array + items: + $ref: '#/components/schemas/Account' + minItems: 1 + maxItems: 32 + description: Accounts associated with the Party. + required: + - account PartyIdInfo: title: PartyIdInfo type: object - description: >- - Data model for the complex type PartyIdInfo. An ExtensionList element - has been added to this reqeust in version v1.1 + description: Data model for the complex type PartyIdInfo. properties: partyIdType: $ref: '#/components/schemas/PartyIdType' @@ -1510,6 +2045,8 @@ components: type: object description: Data model for the complex type Party. properties: + accounts: + $ref: '#/components/schemas/AccountList' partyIdInfo: $ref: '#/components/schemas/PartyIdInfo' merchantClassificationCode: @@ -1520,1065 +2057,119 @@ components: $ref: '#/components/schemas/PartyPersonalInfo' required: - partyIdInfo - bulkTransactionIndividualTransfer: - title: BulkTransactionIndividualTransfer + async2SyncCurrentState: + type: string + enum: + - WAITING_FOR_ACTION + - COMPLETED + - ERROR_OCCURRED + partiesByIdResponse: + title: partiesByIdResponse type: object - description: Data model for the complex type 'bulkTransactionIndividualTransfer'. + description: 'GET /parties/{Type}/{ID} response object' properties: - homeTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - to: + party: $ref: '#/components/schemas/Party' - reference: - description: Payer Loan reference - type: string - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - note: - $ref: '#/components/schemas/Note' - quoteExtensions: - $ref: '#/components/schemas/ExtensionList' - transferExtensions: - $ref: '#/components/schemas/ExtensionList' - lastError: - $ref: '#/components/schemas/transferError' - required: - - homeTransactionId - - to - - amountType - - currency - - amount - bulkTransactionRequest: - type: object - required: - - bulkTransactionId - - bulkHomeTransactionID - - options - - from - - individualTransfers - properties: - bulkHomeTransactionID: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - bulkTransactionId: - $ref: '#/components/schemas/CorrelationId' - options: - $ref: '#/components/schemas/bulkTransactionOptions' - from: - $ref: '#/components/schemas/Party' - individualTransfers: - description: List of individual transfers in a bulk transfer. - type: array - minItems: 1 - items: - $ref: '#/components/schemas/bulkTransactionIndividualTransfer' - extensions: - $ref: '#/components/schemas/ExtensionList' - TransferState: - title: TransferState - type: string - enum: - - RECEIVED - - RESERVED - - COMMITTED - - ABORTED - description: >- - Below are the allowed values for the enumeration. - - - RECEIVED - Next ledger has received the transfer. - - - RESERVED - Next ledger has reserved the transfer. - - - COMMITTED - Next ledger has successfully performed the transfer. - - - ABORTED - Next ledger has aborted the transfer due to a rejection or - failure to perform the transfer. - example: RESERVED - IlpFulfilment: - title: IlpFulfilment - type: string - pattern: ^[A-Za-z0-9-_]{43}$ - maxLength: 48 - description: Fulfilment that must be attached to the transfer by the Payee. - example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8 - individualTransferResult: - type: object - required: - - transferId - properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - fulfilment: - $ref: '#/components/schemas/IlpFulfilment' - extensionList: - $ref: '#/components/schemas/ExtensionList' - transferState: - $ref: '#/components/schemas/TransferState' - lastError: - $ref: '#/components/schemas/transferError' - bulkTransferResponse: - type: object - required: - - bulkTransferId - - individualTransferResults - - currentState - properties: - bulkTransferId: - $ref: '#/components/schemas/CorrelationId' - bulkQuoteId: - $ref: '#/components/schemas/CorrelationId' - homeTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - bulkTransferState: - $ref: '#/components/schemas/TransferState' - completedTimestamp: - $ref: '#/components/schemas/DateTime' - extensionList: - $ref: '#/components/schemas/ExtensionList' - currentState: - $ref: '#/components/schemas/bulkTransferStatus' - individualTransferResults: - type: array - maxItems: 1000 - items: - $ref: '#/components/schemas/individualTransferResult' - description: List of individual transfer result in a bulk transfer response. - bulkTransferErrorResponse: - allOf: - - $ref: '#/components/schemas/errorResponse' - - type: object - required: - - bulkTransferState - properties: - bulkTransferState: - $ref: '#/components/schemas/bulkTransferResponse' - bulkTransactionIndividualTransferAccept: - type: object - description: Data model for the 'individualTransfer' while accepting party or quote. - properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - required: - - transferId - transferContinuationAcceptParty: - type: object - required: - - acceptParty - properties: - acceptParty: - type: boolean - enum: - - true - - false - bulkTransactionContinuationAcceptParty: - description: >- - The object sent back as confirmation of payee parties when - autoAcceptParty is false. - type: object - required: - - individualTransfers - properties: - individualTransfers: - description: >- - List of individual transfers in a bulk transfer with accept party - information. - type: array - minItems: 1 - items: - allOf: - - $ref: '#/components/schemas/bulkTransactionIndividualTransferAccept' - - $ref: '#/components/schemas/transferContinuationAcceptParty' - transferContinuationAcceptQuote: - type: object - required: - - acceptQuote - properties: - acceptQuote: - type: boolean - enum: - - true - - false - bulkTransactionContinuationAcceptQuote: - description: >- - The object sent back as confirmation of quotes when autoAcceptQuotes is - false. - type: object - required: - - individualTransfers - properties: - individualTransfers: - description: List of individual transfers in a bulk transfer. - type: array - minItems: 1 - items: - allOf: - - $ref: '#/components/schemas/bulkTransactionIndividualTransferAccept' - - $ref: '#/components/schemas/transferContinuationAcceptQuote' - partyError: - type: object - description: >- - This object represents a Mojaloop API error received at any time during - the party discovery process - properties: - httpStatusCode: - type: integer - description: >- - The HTTP status code returned to the caller. This is the same as the - actual HTTP status code returned with the response. - mojaloopError: - $ref: '#/components/schemas/mojaloopError' - bulkTransactionAcceptPartyErrorResponse: - allOf: - - $ref: '#/components/schemas/errorResponse' - - type: object - required: - - bulkTransferState - properties: - bulkTransferState: - allOf: - - $ref: '#/components/schemas/bulkTransactionContinuationAcceptParty' - - $ref: '#/components/schemas/partyError' - bulkTransactionAcceptQuoteErrorResponse: - allOf: - - $ref: '#/components/schemas/errorResponse' - - type: object - required: - - bulkTansferState - properties: - bulkTransferState: - allOf: - - $ref: '#/components/schemas/bulkTransactionContinuationAcceptQuote' - - $ref: '#/components/schemas/quoteError' - individualTransfer: - title: IndividualTransfer - type: object - description: Data model for the complex type 'individualTransfer'. - properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - transactionType: - $ref: '#/components/schemas/transferTransactionType' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - ilpPacket: - $ref: '#/components/schemas/IlpPacket' - condition: - $ref: '#/components/schemas/IlpCondition' - note: - $ref: '#/components/schemas/Note' - extensions: - $ref: '#/components/schemas/ExtensionList' - required: - - transferId - - to - - amountType - - currency - - amount - - ilpPacket - - condition - bulkTransferRequest: - type: object - required: - - bulkTransferId - - homeTransactionId - - bulkQuoteId - - from - - individualTransfers - properties: - homeTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - bulkTransferId: - $ref: '#/components/schemas/CorrelationId' - bulkQuoteId: - $ref: '#/components/schemas/CorrelationId' - from: - $ref: '#/components/schemas/transferParty' - individualTransfers: - description: List of individual transfers in a bulk transfer. - type: array - minItems: 1 - maxItems: 1000 - items: - $ref: '#/components/schemas/individualTransfer' - extensions: - $ref: '#/components/schemas/ExtensionList' - individualTransferFulfilment: - type: object - description: >- - A Mojaloop API transfer fulfilment for individual transfers in a bulk - transfer - properties: - fulfilment: - $ref: '#/components/schemas/IlpFulfilment' - extensionList: - $ref: '#/components/schemas/ExtensionList' - bulkTransferStatusResponse: - type: object - required: - - bulkTransferId - - currentState - - fulfils - properties: - bulkTransferId: - $ref: '#/components/schemas/CorrelationId' - currentState: - $ref: '#/components/schemas/bulkTransferStatus' - fulfils: - type: array - minItems: 1 - maxItems: 1000 - items: - $ref: '#/components/schemas/individualTransferFulfilment' - async2SyncCurrentState: - type: string - enum: - - WAITING_FOR_ACTION - - COMPLETED - - ERROR_OCCURRED - partiesByIdResponse: - title: partiesByIdResponse - type: object - description: GET /parties/{Type}/{ID} response object - properties: - party: - properties: - body: - $ref: '#/components/schemas/Party' - description: Information regarding the requested Party. - headers: - type: object - required: - - body - - headers - currentState: - $ref: '#/components/schemas/async2SyncCurrentState' - required: - - party - - currentState - TransactionScenario: - title: TransactionScenario - type: string - enum: - - DEPOSIT - - WITHDRAWAL - - TRANSFER - - PAYMENT - - REFUND - description: >- - Below are the allowed values for the enumeration. - - - DEPOSIT - Used for performing a Cash-In (deposit) transaction. In a - normal scenario, electronic funds are transferred from a Business - account to a Consumer account, and physical cash is given from the - Consumer to the Business User. - - - WITHDRAWAL - Used for performing a Cash-Out (withdrawal) transaction. - In a normal scenario, electronic funds are transferred from a Consumer’s - account to a Business account, and physical cash is given from the - Business User to the Consumer. - - - TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to - Consumer) transaction. - - - PAYMENT - Usually used for performing a transaction from a Consumer to - a Merchant or Organization, but could also be for a B2B (Business to - Business) payment. The transaction could be online for a purchase in an - Internet store, in a physical store where both the Consumer and Business - User are present, a bill payment, a donation, and so on. - - - REFUND - Used for performing a refund of transaction. - example: DEPOSIT - TransactionInitiator: - title: TransactionInitiator - type: string - enum: - - PAYER - - PAYEE - description: >- - Below are the allowed values for the enumeration. - - - PAYER - Sender of funds is initiating the transaction. The account to - send from is either owned by the Payer or is connected to the Payer in - some way. - - - PAYEE - Recipient of the funds is initiating the transaction by - sending a transaction request. The Payer must approve the transaction, - either automatically by a pre-generated OTP or by pre-approval of the - Payee, or by manually approving in his or her own Device. - example: PAYEE - RefundReason: - title: RefundReason - type: string - minLength: 1 - maxLength: 128 - description: Reason for the refund. - example: Free text indicating reason for the refund. - Refund: - title: Refund - type: object - description: Data model for the complex type Refund. - properties: - originalTransactionId: - $ref: '#/components/schemas/CorrelationId' - refundReason: - $ref: '#/components/schemas/RefundReason' - required: - - originalTransactionId - BalanceOfPayments: - title: BalanceOfPayments - type: string - pattern: ^[1-9]\d{2}$ - description: >- - (BopCode) The API data type - [BopCode](https://www.imf.org/external/np/sta/bopcode/) is a JSON String - of 3 characters, consisting of digits only. Negative numbers are not - allowed. A leading zero is not allowed. - example: '123' - TransactionType: - title: TransactionType - type: object - description: Data model for the complex type TransactionType. - properties: - scenario: - $ref: '#/components/schemas/TransactionScenario' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - initiator: - $ref: '#/components/schemas/TransactionInitiator' - initiatorType: - $ref: '#/components/schemas/TransactionInitiatorType' - refundInfo: - $ref: '#/components/schemas/Refund' - balanceOfPayments: - $ref: '#/components/schemas/BalanceOfPayments' - required: - - scenario - - initiator - - initiatorType - QuotesPostRequest: - title: QuotesPostRequest - type: object - description: The object sent in the POST /quotes request. - properties: - quoteId: - $ref: '#/components/schemas/CorrelationId' - transactionId: - $ref: '#/components/schemas/CorrelationId' - transactionRequestId: - $ref: '#/components/schemas/CorrelationId' - payee: - $ref: '#/components/schemas/Party' - payer: - $ref: '#/components/schemas/Party' - amountType: - $ref: '#/components/schemas/AmountType' - amount: - $ref: '#/components/schemas/Money' - fees: - $ref: '#/components/schemas/Money' - transactionType: - $ref: '#/components/schemas/TransactionType' - geoCode: - $ref: '#/components/schemas/GeoCode' - note: - $ref: '#/components/schemas/Note' - expiration: - $ref: '#/components/schemas/DateTime' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - quoteId - - transactionId - - payee - - payer - - amountType - - amount - - transactionType - simpleQuotesPostRequest: - title: simpleQuotesPostRequest - type: object - properties: - fspId: - title: destination DFSP requested to calculate the quote - $ref: '#/components/schemas/FspId' - quotesPostRequest: - $ref: '#/components/schemas/QuotesPostRequest' - required: - - fspId - - quotesPostRequest - quotesPostResponse: - title: QuotesPostResponse - type: object - properties: - quotes: - title: QuotesIDPutResponse - type: object - description: The object sent in the PUT /quotes/{ID} callback. - properties: - body: - type: object - properties: - transferAmount: - $ref: '#/components/schemas/Money' - payeeReceiveAmount: - $ref: '#/components/schemas/Money' - payeeFspFee: - $ref: '#/components/schemas/Money' - payeeFspCommission: - $ref: '#/components/schemas/Money' - expiration: - type: string - description: >- - Date and time until when the quotation is valid and can be - honored when used in the subsequent transaction. - example: '2016-05-24T08:38:08.699-04:00' - geoCode: - $ref: '#/components/schemas/GeoCode' - ilpPacket: - $ref: '#/components/schemas/IlpPacket' - condition: - $ref: '#/components/schemas/IlpCondition' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - transferAmount - - expiration - - ilpPacket - - condition - headers: - type: object - required: - - body - - headers - currentState: - $ref: '#/components/schemas/async2SyncCurrentState' - required: - - quotes - - currentState - errorQuotesResponse: - allOf: - - $ref: '#/components/schemas/errorResponse' - - type: object - AuthenticationType: - title: AuthenticationType - type: string - enum: - - OTP - - QRCODE - - U2F - description: |- - Below are the allowed values for the enumeration AuthenticationType. - - OTP - One-time password generated by the Payer FSP. - - QRCODE - QR code used as One Time Password. - - U2F - U2F is a new addition isolated to Thirdparty stream. - example: OTP - requestToPayRequest: - type: object - required: - - homeR2PTransactionId - - from - - to - - amountType - - currency - - amount - - transactionType - properties: - homeR2PTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - transactionType: - $ref: '#/components/schemas/TransactionScenario' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - authenticationType: - $ref: '#/components/schemas/AuthenticationType' - requestToPayStatus: - type: string - enum: - - ERROR_OCCURRED - - WAITING_FOR_PARTY_ACCEPTANCE - - COMPLETED - getPartiesResponse: - title: getPartiesResponse - type: object - description: The object sent in the GET /parties/{Type}/{ID} callback. - properties: - body: - $ref: '#/components/schemas/Party' - description: Information regarding the requested Party. - headers: - type: object - required: - - body - - headers - TransactionRequestState: - title: TransactionRequestState - type: string - enum: - - RECEIVED - - PENDING - - ACCEPTED - - REJECTED - description: |- - Below are the allowed values for the enumeration. - - RECEIVED - Payer FSP has received the transaction from the Payee FSP. - - PENDING - Payer FSP has sent the transaction request to the Payer. - - ACCEPTED - Payer has approved the transaction. - - REJECTED - Payer has rejected the transaction. - example: RECEIVED - TransactionRequestResponse: - title: TransactionRequestResponse - type: object - description: The object sent in the PUT /transactionRequests/{ID} callback. - properties: - body: - type: object - properties: - transactionId: - $ref: '#/components/schemas/CorrelationId' - transactionRequestState: - $ref: '#/components/schemas/TransactionRequestState' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - transactionRequestState - headers: - type: object - required: - - body - - headers - requestToPayResponse: - type: object - required: - - transactionRequestId - - from - - to - - amountType - - currency - - amount - - transactionType - - currentState - properties: - transactionRequestId: - $ref: '#/components/schemas/CorrelationId' - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - transactionType: - $ref: '#/components/schemas/TransactionScenario' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - currentState: - $ref: '#/components/schemas/requestToPayStatus' - getPartiesResponse: - $ref: '#/components/schemas/getPartiesResponse' - transactionRequestResponse: - $ref: '#/components/schemas/TransactionRequestResponse' - lastError: - description: > - Object representing the last error to occur during a transfer - process. This may be a Mojaloop API error returned from another - entity in the scheme or an object representing other types of error - e.g. exceptions that may occur inside the scheme adapter. - $ref: '#/components/schemas/transferError' - transferStatus: - type: string - enum: - - ERROR_OCCURRED - - WAITING_FOR_PARTY_ACCEPTANCE - - WAITING_FOR_QUOTE_ACCEPTANCE - - COMPLETED - QuotesIDPutResponse: - title: QuotesIDPutResponse - type: object - description: The object sent in the PUT /quotes/{ID} callback. - properties: - transferAmount: - $ref: '#/components/schemas/Money' - payeeReceiveAmount: - $ref: '#/components/schemas/Money' - payeeFspFee: - $ref: '#/components/schemas/Money' - payeeFspCommission: - $ref: '#/components/schemas/Money' - expiration: - $ref: '#/components/schemas/DateTime' - geoCode: - $ref: '#/components/schemas/GeoCode' - ilpPacket: - $ref: '#/components/schemas/IlpPacket' - condition: - $ref: '#/components/schemas/IlpCondition' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - transferAmount - - expiration - - ilpPacket - - condition - TransfersIDPutResponse: - title: TransfersIDPutResponse - type: object - description: The object sent in the PUT /transfers/{ID} callback. - properties: - fulfilment: - $ref: '#/components/schemas/IlpFulfilment' - completedTimestamp: - $ref: '#/components/schemas/DateTime' - transferState: - $ref: '#/components/schemas/TransferState' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - transferState - transferResponse: - type: object - required: - - homeTransactionId - - from - - to - - amountType - - currency - - amount - - transactionType - properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - homeTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - transactionType: - $ref: '#/components/schemas/transferTransactionType' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - note: - $ref: '#/components/schemas/Note' - currentState: - $ref: '#/components/schemas/transferStatus' - quoteId: - $ref: '#/components/schemas/CorrelationId' - getPartiesResponse: - type: object - required: - - body - properties: - body: - type: object - headers: - type: object - quoteResponse: - type: object - required: - - body - properties: - body: - $ref: '#/components/schemas/QuotesIDPutResponse' - headers: - type: object - quoteResponseSource: - type: string - description: > - FSPID of the entity that supplied the quote response. This may not - be the same as the FSPID of the entity which owns the end user - account in the case of a FOREX transfer. i.e. it may be a FOREX - gateway. - fulfil: - type: object - required: - - body - properties: - body: - $ref: '#/components/schemas/TransfersIDPutResponse' - headers: - type: object - lastError: - description: > - Object representing the last error to occur during a transfer - process. This may be a Mojaloop API error returned from another - entity in the scheme or an object representing other types of error - e.g. exceptions that may occur inside the scheme adapter. - $ref: '#/components/schemas/transferError' - skipPartyLookup: - description: >- - Set to true if supplying an FSPID for the payee party and no party - resolution is needed. This may be useful is a previous party - resolution has been performed. - type: boolean - errorTransferResponse: - allOf: - - $ref: '#/components/schemas/errorResponse' - - type: object - required: - - transferState - properties: - transferState: - $ref: '#/components/schemas/transferResponse' - requestToPayTransferRequest: - type: object + currentState: + $ref: '#/components/schemas/async2SyncCurrentState' required: - - homeR2PTransactionId - - transactionRequestId - - from - - to - - amountType - - currency - - amount - - scenario - - initiator - - initiatorType + - party + - currentState + QuotesPostRequest: + title: QuotesPostRequest + type: object + description: The object sent in the POST /quotes request. properties: - homeR2PTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. + quoteId: + $ref: '#/components/schemas/CorrelationId' + transactionId: + $ref: '#/components/schemas/CorrelationId' transactionRequestId: $ref: '#/components/schemas/CorrelationId' - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' + payee: + $ref: '#/components/schemas/Party' + payer: + $ref: '#/components/schemas/Party' amountType: $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' amount: - $ref: '#/components/schemas/Amount' - scenario: - $ref: '#/components/schemas/TransactionScenario' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - initiator: - $ref: '#/components/schemas/TransactionInitiator' - initiatorType: - $ref: '#/components/schemas/TransactionInitiatorType' + $ref: '#/components/schemas/Money' + fees: + $ref: '#/components/schemas/Money' + transactionType: + $ref: '#/components/schemas/TransactionType' + geoCode: + $ref: '#/components/schemas/GeoCode' note: $ref: '#/components/schemas/Note' - authenticationType: - $ref: '#/components/schemas/AuthenticationType' - AuthenticationValue: - title: AuthenticationValue - anyOf: - - title: OtpValue - type: string - pattern: ^\d{3,10}$ - description: >- - The API data type OtpValue is a JSON String of 3 to 10 characters, - consisting of digits only. Negative numbers are not allowed. One or - more leading zeros are allowed. - - title: QRCODE - type: string - minLength: 1 - maxLength: 64 - description: QR code used as a One Time Password. - - title: U2FPinValue - type: object - description: > - U2F challenge-response, where payer FSP verifies if the response - provided by end-user device matches the previously registered key. - properties: - pinValue: - type: string - pattern: ^\S{1,64}$ - minLength: 1 - maxLength: 64 - description: > - U2F challenge-response, where payer FSP verifies if the response - provided by end-user device matches the previously registered - key. - counter: - title: Integer - type: string - pattern: ^[1-9]\d*$ - description: >- - Sequential counter used for cloning detection. Present only for - U2F authentication. - required: - - pinValue - - counter - pattern: ^\d{3,10}$|^\S{1,64}$ - description: >- - Contains the authentication value. The format depends on the - authentication type used in the AuthenticationInfo complex type. - AuthenticationInfo: - title: AuthenticationInfo - type: object - description: Data model for the complex type AuthenticationInfo. - properties: - authentication: - $ref: '#/components/schemas/AuthenticationType' - authenticationValue: - $ref: '#/components/schemas/AuthenticationValue' + expiration: + $ref: '#/components/schemas/DateTime' + extensionList: + $ref: '#/components/schemas/ExtensionList' required: - - authentication - - authenticationValue - AuthorizationResponseType: - title: AuthorizationResponseType - type: string - enum: - - ENTERED - - REJECTED - - RESEND - description: |- - Below are the allowed values for the enumeration. - - ENTERED - Consumer entered the authentication value. - - REJECTED - Consumer rejected the transaction. - - RESEND - Consumer requested to resend the authentication value. - example: ENTERED - AuthorizationIDPutResponse: - title: AuthorizationIDPutResponse + - quoteId + - transactionId + - payee + - payer + - amountType + - amount + - transactionType + quotesPostRequest: + title: QuotesPostRequest type: object - description: The object sent in the PUT /authorizations/{ID} callback. properties: - authenticationInfo: - $ref: '#/components/schemas/AuthenticationInfo' - responseType: - $ref: '#/components/schemas/AuthorizationResponseType' + fspId: + $ref: '#/components/schemas/FspId' + quotesPostRequest: + $ref: '#/components/schemas/QuotesPostRequest' required: - - responseType - requestToPayTransferResponse: + - fspId + - quotesPostRequest + quotesPostResponse: + title: QuotesPostResponse type: object - required: - - transactionRequestId - - from - - to - - amountType - - currency - - amount - - transactionType properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - homeR2PTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - transactionRequestId: - $ref: '#/components/schemas/CorrelationId' - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - transactionType: - $ref: '#/components/schemas/transferTransactionType' - note: - $ref: '#/components/schemas/Note' - currentState: - $ref: '#/components/schemas/transferStatus' - quoteId: - $ref: '#/components/schemas/CorrelationId' - quoteResponse: - type: object - required: - - body - properties: - body: - $ref: '#/components/schemas/QuotesIDPutResponse' - headers: - type: object - quoteResponseSource: - type: string - description: > - FSPID of the entity that supplied the quote response. This may not - be the same as the FSPID of the entity which owns the end user - account in the case of a FOREX transfer. i.e. it may be a FOREX - gateway. - authorizationResponse: + quotes: + title: QuotesIDPutResponse type: object - required: - - body + description: 'The object sent in the PUT /quotes/{ID} callback.' properties: - body: - $ref: '#/components/schemas/AuthorizationIDPutResponse' - headers: - type: object - fulfil: - type: object + transferAmount: + $ref: '#/components/schemas/Money' + payeeReceiveAmount: + $ref: '#/components/schemas/Money' + payeeFspFee: + $ref: '#/components/schemas/Money' + payeeFspCommission: + $ref: '#/components/schemas/Money' + expiration: + type: string + description: >- + Date and time until when the quotation is valid and can be + honored when used in the subsequent transaction. + example: '2016-05-24T08:38:08.699-04:00' + geoCode: + $ref: '#/components/schemas/GeoCode' + ilpPacket: + $ref: '#/components/schemas/IlpPacket' + condition: + $ref: '#/components/schemas/IlpCondition' + extensionList: + $ref: '#/components/schemas/ExtensionList' required: - - body - properties: - body: - $ref: '#/components/schemas/TransfersIDPutResponse' - headers: - type: object - lastError: - description: > - Object representing the last error to occur during a transfer - process. This may be a Mojaloop API error returned from another - entity in the scheme or an object representing other types of error - e.g. exceptions that may occur inside the scheme adapter. - $ref: '#/components/schemas/transferError' - transferContinuationAcceptOTP: - type: object + - transferAmount + - expiration + - ilpPacket + - condition + currentState: + $ref: '#/components/schemas/async2SyncCurrentState' required: - - acceptOTP - properties: - acceptOTP: - type: boolean - enum: - - true - - false + - quotes + - currentState + errorQuotesResponse: + allOf: + - $ref: '#/components/schemas/errorResponse' + - type: object TransfersPostRequest: title: TransfersPostRequest type: object @@ -2601,127 +2192,253 @@ components: extensionList: $ref: '#/components/schemas/ExtensionList' required: - - transferId - - payeeFsp - - payerFsp + - transferId + - payeeFsp + - payerFsp + - amount + - ilpPacket + - condition + - expiration + simpleTransfersPostRequest: + title: SimpleTransfersPostRequest + type: object + properties: + fspId: + $ref: '#/components/schemas/FspId' + transfersPostRequest: + $ref: '#/components/schemas/TransfersPostRequest' + required: + - fspId + - transfersPostRequest + simpleTransfersPostResponse: + title: SimpleTransfersPostResponse + type: object + properties: + transfer: + $ref: '#/components/schemas/TransfersIDPutResponse' + currentState: + $ref: '#/components/schemas/async2SyncCurrentState' + required: + - transfer + - currentState + errorSimpleTransfersResponse: + allOf: + - $ref: '#/components/schemas/errorResponse' + - type: object + AuthorizationChannelType: + title: AuthorizationChannelType + type: string + enum: + - OTP + - QRCODE + - U2F + description: > + Below are the allowed values for the enumeration + AuthorizationChannelType. + + - OTP - One-time password generated by the Payer FSP. + + - QRCODE - QR code used as One Time Password. + + - U2F - U2F is a new addition isolated to Thirdparty stream. + + + This is based on FSPIOP `AuthenticationType` with U2F added. + example: U2F + Integer: + title: Integer + type: string + pattern: '^[1-9]\d*$' + description: >- + The API data type Integer is a JSON String consisting of digits only. + Negative numbers and leading zeroes are not allowed. The data type is + always limited to a specific number of digits. + AuthorizationsPostRequest: + title: AuthorizationsPostRequest + description: POST /authorizations request object. + type: object + properties: + authenticationType: + $ref: '#/components/schemas/AuthorizationChannelType' + retriesLeft: + $ref: '#/components/schemas/Integer' + amount: + $ref: '#/components/schemas/Money' + transactionId: + $ref: '#/components/schemas/CorrelationId' + transactionRequestId: + $ref: '#/components/schemas/CorrelationId' + quote: + $ref: '#/components/schemas/QuotesIDPutResponse' + required: + - authenticationType + - retriesLeft - amount - - ilpPacket - - condition - - expiration - simpleTransfersPostRequest: - title: SimpleTransfersPostRequest + - transactionId + - transactionRequestId + - quote + additionalProperties: false + authorizationsPostRequest: + title: AuthorizationsPostRequest + description: POST /authorizations Request object type: object properties: fspId: $ref: '#/components/schemas/FspId' - transfersPostRequest: - $ref: '#/components/schemas/TransfersPostRequest' + authorizationsPostRequest: + $ref: '#/components/schemas/AuthorizationsPostRequest' required: - fspId - - transfersPostRequest - simpleTransfersPostResponse: - title: SimpleTransfersPostResponse + - authorizationsPostRequest + OtpValue: + title: OtpValue + type: string + pattern: '^\d{3,10}$' + description: >- + The API data type OtpValue is a JSON String of 3 to 10 characters, + consisting of digits only. Negative numbers are not allowed. One or more + leading zeros are allowed. + QRCODE: + title: QRCODE + type: string + minLength: 1 + maxLength: 64 + description: QR code used as a One Time Password. + U2FPIN: + title: U2FPIN + type: string + pattern: '^\S{1,64}$' + minLength: 1 + maxLength: 64 + description: > + U2F challenge-response, where payer FSP verifies if the response + provided by end-user device matches the previously registered key. + U2FPinValue: + title: U2FPinValue type: object + description: > + U2F challenge-response, where payer FSP verifies if the response + provided by end-user device matches the previously registered key. properties: - transfer: + pinValue: + allOf: + - $ref: '#/components/schemas/U2FPIN' + description: U2F challenge-response. + counter: + allOf: + - $ref: '#/components/schemas/Integer' + description: >- + Sequential counter used for cloning detection. Present only for U2F + authentication. + required: + - pinValue + - counter + AuthenticationValue: + title: AuthenticationValue + anyOf: + - $ref: '#/components/schemas/OtpValue' + - $ref: '#/components/schemas/QRCODE' + - $ref: '#/components/schemas/U2FPinValue' + pattern: '^\d{3,10}$|^\S{1,64}$' + description: >- + Contains the authentication value. The format depends on the + authentication type used in the AuthenticationInfo complex type. + AuthenticationInfo: + title: AuthenticationInfo + type: object + description: Data model for the complex type AuthenticationInfo. + properties: + authentication: + $ref: '#/components/schemas/AuthenticationType' + authenticationValue: + $ref: '#/components/schemas/AuthenticationValue' + required: + - authentication + - authenticationValue + AuthorizationResponseType: + title: AuthorizationResponseType + description: | + Enum containing response information; if the customer entered the + authentication value, rejected the transaction, or requested a + resend of the authentication value. + type: string + enum: + - ENTERED + - REJECTED + - RESEND + authorizationsPostResponse: + title: AuthorizationsPostResponse + description: POST /authorizations response object + type: object + properties: + authorizations: + type: object properties: - body: - $ref: '#/components/schemas/TransfersIDPutResponse' - headers: - type: object + authenticationInfo: + $ref: '#/components/schemas/AuthenticationInfo' + responseType: + $ref: '#/components/schemas/AuthorizationResponseType' required: - - body - - headers + - responseType currentState: $ref: '#/components/schemas/async2SyncCurrentState' required: - - transfer + - authorizations - currentState - errorSimpleTransfersResponse: + additionalProperties: false + errorAuthorizationsResponse: allOf: - $ref: '#/components/schemas/errorResponse' - type: object - transferRequest: - type: object - required: - - homeTransactionId - - from - - to - - amountType - - currency - - amount - - transactionType - properties: - homeTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - transactionType: - $ref: '#/components/schemas/transferTransactionType' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - note: - $ref: '#/components/schemas/Note' - quoteRequestExtensions: - $ref: '#/components/schemas/extensionListEmptiable' - transferRequestExtensions: - $ref: '#/components/schemas/extensionListEmptiable' - skipPartyLookup: - description: >- - Set to true if supplying an FSPID for the payee party and no party - resolution is needed. This may be useful is a previous party - resolution has been performed. - type: boolean - transferStatusResponse: - type: object - required: - - transferId - - currentState - - fulfil - properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - currentState: - $ref: '#/components/schemas/transferStatus' - fulfil: - type: object - required: - - body - properties: - body: - $ref: '#/components/schemas/TransfersIDPutResponse' - headers: - type: object responses: - accountsCreationCompleted: - description: Accounts creation completed + transferSuccess: + description: Transfer completed successfully content: application/json: schema: - $ref: '#/components/schemas/accountsResponse' - accountsCreationError: - description: An error occurred creating accounts + $ref: '#/components/schemas/transferResponse' + transferBadRequest: + description: 'Malformed or missing required body, headers or parameters' content: application/json: schema: - $ref: '#/components/schemas/errorAccountsResponse' - accountsCreationTimeout: - description: Timeout occurred creating accounts + $ref: '#/components/schemas/errorTransferResponse' + transferServerError: + description: An error occurred processing the transfer content: application/json: schema: - $ref: '#/components/schemas/errorAccountsResponse' + $ref: '#/components/schemas/errorTransferResponse' + transferTimeout: + description: Timeout occurred processing the transfer + content: + application/json: + schema: + $ref: '#/components/schemas/errorTransferResponse' + bulkTransferSuccess: + description: Bulk transfer completed successfully + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferResponse' + bulkTransferBadRequest: + description: 'Malformed or missing required body, headers or parameters' + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferErrorResponse' + bulkTransferServerError: + description: An error occurred processing the bulk transfer + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferErrorResponse' + bulkTransferTimeout: + description: Timeout occurred processing the bulk transfer + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferErrorResponse' bulkQuoteSuccess: description: Bulk quote completed successfully content: @@ -2729,7 +2446,7 @@ components: schema: $ref: '#/components/schemas/bulkQuoteResponse' bulkQuoteBadRequest: - description: Malformed or missing required body, headers or parameters + description: 'Malformed or missing required body, headers or parameters' content: application/json: schema: @@ -2746,34 +2463,42 @@ components: application/json: schema: $ref: '#/components/schemas/bulkQuoteErrorResponse' - bulkTransactionAccepted: - description: Bulk transfer accepted successfully - bulkTransferBadRequest: - description: Malformed or missing required body, headers or parameters + requestToPaySuccess: + description: Request to Pay completed successfully content: application/json: schema: - $ref: '#/components/schemas/bulkTransferErrorResponse' - errorResponse: - description: Internal Server Error + $ref: '#/components/schemas/requestToPayResponse' + requestToPayTransferSuccess: + description: Transfer completed successfully content: application/json: schema: - $ref: '#/components/schemas/errorResponse' - bulkTransactionPutBadRequest: - description: Malformed or missing required body, headers or parameters + $ref: '#/components/schemas/requestToPayTransferResponse' + requestToPayTransferBadRequest: + description: 'Malformed or missing required body, headers or parameters' content: application/json: schema: - oneOf: - - $ref: '#/components/schemas/bulkTransactionAcceptPartyErrorResponse' - - $ref: '#/components/schemas/bulkTransactionAcceptQuoteErrorResponse' - bulkTransferSuccess: - description: Bulk transfer completed successfully + $ref: '#/components/schemas/errorTransferResponse' + accountsCreationCompleted: + description: Accounts creation completed content: application/json: schema: - $ref: '#/components/schemas/bulkTransferResponse' + $ref: '#/components/schemas/accountsResponse' + accountsCreationError: + description: An error occurred creating accounts + content: + application/json: + schema: + $ref: '#/components/schemas/errorAccountsResponse' + accountsCreationTimeout: + description: Timeout occurred creating accounts + content: + application/json: + schema: + $ref: '#/components/schemas/errorAccountsResponse' partiesByIdSuccess: description: PartiesByIdSuccess content: @@ -2801,42 +2526,6 @@ components: application/json: schema: $ref: '#/components/schemas/errorQuotesResponse' - requestToPaySuccess: - description: Request to Pay completed successfully - content: - application/json: - schema: - $ref: '#/components/schemas/requestToPayResponse' - transferServerError: - description: An error occurred processing the transfer - content: - application/json: - schema: - $ref: '#/components/schemas/errorTransferResponse' - transferTimeout: - description: Timeout occurred processing the transfer - content: - application/json: - schema: - $ref: '#/components/schemas/errorTransferResponse' - requestToPayTransferSuccess: - description: Transfer completed successfully - content: - application/json: - schema: - $ref: '#/components/schemas/requestToPayTransferResponse' - requestToPayTransferBadRequest: - description: Malformed or missing required body, headers or parameters - content: - application/json: - schema: - $ref: '#/components/schemas/errorTransferResponse' - transferSuccess: - description: Transfer completed successfully - content: - application/json: - schema: - $ref: '#/components/schemas/transferResponse' simpleTransfersPostSuccess: description: sync response from POST /simpleTransfers content: @@ -2849,33 +2538,39 @@ components: application/json: schema: $ref: '#/components/schemas/errorSimpleTransfersResponse' - transferBadRequest: - description: Malformed or missing required body, headers or parameters + authorizationPostSuccess: + description: Sync response from POST /authorizations content: application/json: schema: - $ref: '#/components/schemas/errorTransferResponse' + $ref: '#/components/schemas/authorizationsPostResponse' + authorizationsServerError: + description: An error occurred processing the authorizations request + content: + application/json: + schema: + $ref: '#/components/schemas/errorAuthorizationsResponse' parameters: - bulkQuoteId: - name: bulkQuoteId + transferId: + name: transferId in: path required: true schema: $ref: '#/components/schemas/CorrelationId' description: >- - Identifier of the bulk transfer to continue as returned in the response - to a `POST /bulkTransfers` request. - bulkTransactionId: - name: bulkTransactionId + Identifier of the transfer to continue as returned in the response to a + `POST /transfers` request. + bulkTransferId: + name: bulkTransferId in: path required: true schema: $ref: '#/components/schemas/CorrelationId' description: >- - Identifier of the bulk transaction to continue as returned in the - response to a `POST /bulkTransaction` request. - bulkTransferId: - name: bulkTransferId + Identifier of the bulk transfer to continue as returned in the response + to a `POST /bulkTransfers` request. + bulkQuoteId: + name: bulkQuoteId in: path required: true schema: @@ -2883,13 +2578,22 @@ components: description: >- Identifier of the bulk transfer to continue as returned in the response to a `POST /bulkTransfers` request. + requestToPayTransactionId: + name: requestToPayTransactionId + in: path + required: true + schema: + $ref: '#/components/schemas/CorrelationId' + description: >- + Identifier of the merchant request to pay transfer to continue as + returned in the response to a `POST /requestToPayTransfer` request. Type: name: Type in: path required: true schema: type: string - description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`. + description: 'The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`.' ID: name: ID in: path @@ -2906,21 +2610,3 @@ components: description: >- A sub-identifier of the party identifier, or a sub-type of the party identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`. - transactionRequestId: - name: transactionRequestId - in: path - required: true - schema: - $ref: '#/components/schemas/CorrelationId' - description: >- - Identifier of the merchant request to pay to continue as returned in the - response to a `POST /requestToPay` request. - transferId: - name: transferId - in: path - required: true - schema: - $ref: '#/components/schemas/CorrelationId' - description: >- - Identifier of the transfer to continue as returned in the response to a - `POST /transfers` request. diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/response_map.json b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/response_map.json index 1ad829f38..d1847b9ef 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/response_map.json +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/response_map.json @@ -17,5 +17,19 @@ } } } + }, + "/transfers": { + "post": { + "response": { + "bodyOverride": {} + } + } + }, + "/transfers/{transferId}": { + "put": { + "response": { + "bodyOverride": {} + } + } } } \ No newline at end of file diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml index 0cbbade3a..368bd4339 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml @@ -1,2380 +1,1087 @@ openapi: 3.0.1 info: - title: Mojaloop SDK Backend API - description: > - API specification for the SDK Backend API. - - - To be implemented by the Digital Financial Service Provider (DFSP) to work - in tandem with the Mojaloop SDK (`mojaloop/sdk-scheme-adapter`). - - - This API is not to be confused with the Mojaloop SDK's Inbound or Outbound - API. - - - TODO: More explanation and links about the SDK adapter's Inbound and - Outbound API. - - - **Note on terminology:** The term "Switch" is equal to the term "Hub", and - the term "FSP" is equal to the term "DFSP". + title: Mojaloop SDK Inbound Scheme Adapter API + description: Mojaloop SDK Inbound Scheme Adapter API - To be implemented by DFSP backend license: - name: Apache License Version 2.0, January 2004 - url: http://www.apache.org/licenses/ - version: 1.1.0 + name: Open API for FSP Interoperability (FSPIOP) + url: http://www.majaloop.io + version: 1.0.0 + paths: /: get: - operationId: BackendHealthCheck - responses: - '200': - description: Returns empty body if the service is running. summary: Health check endpoint. - /bulkQuotes: - post: - operationId: BackendBulkQuotesPost - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/bulkQuoteRequest' - description: Incoming request for a bulk quotation. + operationId: healthCheck responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/bulkQuoteResponse' - description: A response to the bulk quote request. - '400': - $ref: '#/components/responses/400' - '500': - $ref: '#/components/responses/500' - summary: Requests a bulk quote. - tags: - - BulkQuotes - /bulkQuotes/{idValue}: + 200: + description: Returns empty body if the service is running. + /participants/{idType}/{idValue}: get: - operationId: BackendBulkQuotesGet + 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: - - $ref: '#/components/parameters/idValue' + - name: idType + in: path + required: true + schema: + $ref: '#/components/schemas/idType' + - name: idValue + in: path + required: true + schema: + $ref: '#/components/schemas/idValue' responses: - '200': + 200: + description: Response containing details of the requested party content: application/json: schema: - $ref: '#/components/schemas/bulkQuoteResponse' - description: Response containing details of the requested bulk quote. - '400': - $ref: '#/components/responses/400' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - summary: >- - Requests information relating to a bulk quote identified by the - specified identifier value. - tags: - - 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: BackendBulkTransactionsPut - parameters: - - $ref: '#/components/parameters/bulkTransactionId' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/bulkTransactionResponse' - responses: - '202': - description: Bulk transaction information successfully amended. - '400': - $ref: '#/components/responses/400' - '500': - $ref: '#/components/responses/500' - summary: Callbacks for the bulk transaction request. - tags: - - BulkTransactionsPut - /requestToPay/{transactionRequestId}: - put: - description: >- - It is used to notify the DFSP backend about the status of the - requestToPayTransfer. - operationId: RequestToPayPut - parameters: - - $ref: '#/components/parameters/transactionRequestId' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/requestToPayCallback' - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/400' - '500': - $ref: '#/components/responses/500' - summary: Callback for the requestToPay request. - tags: - - RequestToPayPut - /bulkTransfers: - post: - operationId: BackendBulkTransfersPost - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/bulkTransferRequest' - description: An incoming bulk transfer request. - responses: - '200': + $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 content: application/json: schema: - $ref: '#/components/schemas/bulkTransferResponse' - description: The bulk transfer was accepted. - '400': - $ref: '#/components/responses/400' - '500': - $ref: '#/components/responses/500' - summary: >- - Execute bulk transfer of funds from an external account to internal - accounts. - tags: - - BulkTransfers - /bulkTransfers/{idValue}: - get: - operationId: BackendBulkTransfersGet - parameters: - - $ref: '#/components/parameters/idValue' - responses: - '200': + $ref: '#/components/schemas/errorResponse' + 500: + description: An error occured processing the request content: application/json: schema: - $ref: '#/components/schemas/bulkTransferResponse' - description: Response containing details of the requested bulk transfer. - '400': - $ref: '#/components/responses/400' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - summary: >- - Requests information relating to a bulk transfer identified by the - specified identifier value. - tags: - - BulkTransfers - /otp/{transactionRequestId}: + $ref: '#/components/schemas/errorResponse' + + /participants/{idType}/{idValue}/{subIdValue}: get: - operationId: BackendOtpGet + summary: Asks for the FSPID of the scheme participant that can handle transfers for the specified identifier type, value and subId value + tags: + - Participants + operationId: ParticipantsGetByTypeIDAndSubId parameters: - - $ref: '#/components/parameters/transactionRequestId' + - name: idType + in: path + required: true + schema: + $ref: '#/components/schemas/idType' + - name: idValue + in: path + required: true + schema: + $ref: '#/components/schemas/idValue' + - name: subIdValue + in: path + required: true + schema: + $ref: '#/components/schemas/subIdValue' responses: - '200': + 200: + description: Response containing details of the requested party content: application/json: schema: - $ref: '#/components/schemas/otpDetails' - description: Response containing details of the OTP. - '400': - $ref: '#/components/responses/400' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - summary: Requests OTP. - tags: - - OTP - /participants/{idType}/{idValue}: - get: - description: >- - The HTTP request `GET /participants/{idType}/{idValue}` is used to find - out in which FSP the requested party, defined by `{idType}` and - `{idValue}`, is located. - operationId: BackendParticipantsGetByTypeAndID - parameters: - - $ref: '#/components/parameters/idType' - - $ref: '#/components/parameters/idValue' - responses: - '200': + $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 content: application/json: schema: - $ref: '#/components/schemas/participantsResponse' - description: Response containing details of the requested party. - '400': - $ref: '#/components/responses/400' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - summary: >- - Asks for the identifier (fspId) of the scheme participant (FSP) that can - handle transfers for the specified identifier type and value. - tags: - - Participants - /participants/{idType}/{idValue}/{idSubValue}: - get: - description: >- - The HTTP request `GET /participants/{idType}/{idValue}/{idSubValue}` is - used to find out in which FSP the requested party, defined by - `{idType}`, `{idValue}` and `{idSubValue}` is located. - operationId: BackendParticipantsGetByTypeIDAndSubId - parameters: - - $ref: '#/components/parameters/idType' - - $ref: '#/components/parameters/idValue' - - $ref: '#/components/parameters/idSubValue' - responses: - '200': + $ref: '#/components/schemas/errorResponse' + 500: + description: An error occured processing the request content: application/json: schema: - $ref: '#/components/schemas/participantsResponse' - description: Response containing details of the requested party. - '400': - $ref: '#/components/responses/400' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - summary: >- - Asks for the identifier (fspId) of the scheme participant (FSP) that can - handle transfers for the specified identifier type and value. - tags: - - Participants + $ref: '#/components/schemas/errorResponse' + /parties/{idType}/{idValue}: get: - description: >- - The HTTP request `GET /parties/{idType}/{idValue}` is used to look up - information regarding the requested transfer party, identified by - `{idType}` and `{idValue}`. - operationId: BackendPartiesGetByTypeAndID + summary: Requests information relating to a transfer party identified by the specified identifier type and value + tags: + - Parties + operationId: PartiesGetByTypeAndID parameters: - - $ref: '#/components/parameters/idType' - - $ref: '#/components/parameters/idValue' + - name: idType + in: path + required: true + schema: + $ref: '#/components/schemas/idType' + - name: idValue + in: path + required: true + schema: + $ref: '#/components/schemas/idValue' responses: - '200': + 200: + description: Response containing details of the requested party content: application/json: schema: $ref: '#/components/schemas/transferParty' - description: Response containing details of the requested party. - '400': - $ref: '#/components/responses/400' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - summary: >- - Requests information relating to a transfer party identified by the - specified identifier type and value. + 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 + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + 500: + description: An error occured processing the request + 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 tags: - Parties - /parties/{idType}/{idValue}/{idSubValue}: - get: - description: >- - The HTTP request `GET /parties/{idType}/{idValue}/{idSubValue}` is used - to look up information regarding the requested transfer party, - identified by `{idType}`, `{idValue}` and `{idSubValue}`. - operationId: BackendPartiesGetByTypeIdAndSubId + operationId: PartiesGetByTypeIdAndSubId parameters: - - $ref: '#/components/parameters/idType' - - $ref: '#/components/parameters/idValue' - - $ref: '#/components/parameters/idSubValue' + - name: idType + in: path + required: true + schema: + $ref: '#/components/schemas/idType' + - name: idValue + in: path + required: true + schema: + $ref: '#/components/schemas/idValue' + - name: subIdValue + in: path + required: true + schema: + $ref: '#/components/schemas/subIdValue' responses: - '200': + 200: + description: Response containing details of the requested party content: application/json: schema: $ref: '#/components/schemas/transferParty' - description: Response containing details of the requested party. - '400': - $ref: '#/components/responses/400' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - summary: >- - Requests information relating to a transfer party identified by the - specified identifier type, value and subId value. - tags: - - Parties + 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 + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + 500: + description: An error occured processing the request + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + /quoterequests: post: - description: >- - The HTTP request `POST /quoterequests` is used to request the creation - of a quote for the provided financial transaction. - operationId: BackendQuoteRequest + summary: Requests a quote for the specified transfer + tags: + - Quotes + operationId: QuoteRequest requestBody: + description: Request for a transfer quotation content: application/json: schema: $ref: '#/components/schemas/quoteRequest' - description: Request for a transfer quotation. responses: - '200': + 200: + description: A response to the transfer quotation request content: application/json: schema: $ref: '#/components/schemas/quoteResponse' - description: A response to the transfer quotation request. - '400': - $ref: '#/components/responses/400' - '500': - $ref: '#/components/responses/500' - summary: Requests a quote for the specified transfer. - tags: - - Quotes + 400: + description: Malformed or missing required headers or parameters + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + 500: + description: An error occured processing the request + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + /transactionrequests: post: - operationId: BackendTransactionRequest + summary: transaction request that supports pull based transfers + tags: + - TransactionRequest + operationId: TransactionRequest requestBody: + description: Request for Transaction Request content: application/json: schema: $ref: '#/components/schemas/transactionRequest' - description: Request for Transaction Request. responses: - '200': + 200: + description: A response to the transfer transaction request content: application/json: schema: $ref: '#/components/schemas/transactionRequestResponse' - description: A response to the transfer transaction request. - '400': - $ref: '#/components/responses/400' - '500': - $ref: '#/components/responses/500' - summary: Transaction request that supports pull based transfers. - tags: - - TransactionRequest + 400: + description: Malformed or missing required headers or parameters + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + 500: + description: An error occured processing the request + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + /transfers: post: - description: >- - The HTTP request `POST /transfers` is used to request the creation of a - transfer for the transfer party. - operationId: BackendTransfersPost + summary: Transfers funds from an external account to an internal account + tags: + - Transfers + operationId: TransfersPost requestBody: + description: An incoming transfer request content: application/json: schema: $ref: '#/components/schemas/transferRequest' - description: An incoming transfer request. responses: - '200': + 200: + description: The transfer was accepted content: application/json: schema: $ref: '#/components/schemas/transferResponse' - description: The transfer was accepted. - '400': - $ref: '#/components/responses/400' - '500': - $ref: '#/components/responses/500' - summary: Transfers funds from an external account to an internal account. + 400: + description: Malformed or missing required headers or parameters + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + 500: + description: An error occured processing the request + 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 + parameters: + - name: transferId + in: path + required: true + schema: + $ref: '#/components/schemas/idValue' tags: - Transfers - /transfers/{transferId}: + 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 + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + + + /otp/{requestToPayId}: get: - description: >- - The HTTP request `GET /transfers/{transferId}` is used to get - information regarding a transfer created or requested earlier. The - `{transferId}` in the URI should contain the `transferId` that was used - for the creation of the transfer. - operationId: BackendTransfersGet + summary: Requests OTP + tags: + - OTP + operationId: OtpGet parameters: - - $ref: '#/components/parameters/transferId' + - name: requestToPayId + in: path + required: true + schema: + $ref: '#/components/schemas/idValue' responses: - '200': + 200: + description: Response containing details of the OTP content: application/json: schema: - $ref: '#/components/schemas/transferDetailsResponse' - description: The transfer was accepted. - '500': - $ref: '#/components/responses/500' - summary: Retrieves information for a specific transfer. + $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 + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + 500: + description: An error occured processing the request + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + + /bulkQuotes: + post: + summary: Requests a bulk quote tags: - - Transfers - put: - description: >- - The HTTP request `PUT /transfers/{transferId}` is used to receive - notification for transfer being fulfiled when the FSP is a Payee. - operationId: BackendTransfersPut - parameters: - - $ref: '#/components/parameters/transferId' + - BulkQuotes + operationId: BulkQuotesPost requestBody: + description: Incoming request for a bulk quotation content: application/json: schema: - $ref: '#/components/schemas/fulfilNotification' - description: An incoming notification for fulfiled transfer. + $ref: '#/components/schemas/bulkQuoteRequest' responses: - '200': - description: The notification was accepted. - '500': - $ref: '#/components/responses/500' - summary: Receive notification for a specific transfer. + 200: + description: A response to the bulk quote request + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteResponse' + 400: + description: Malformed or missing required headers or parameters + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + 500: + description: An error occured processing the request + 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 tags: - - Transfers -components: - parameters: - idSubValue: - description: >- - A sub-identifier of the party identifier, or a sub-type of the party - identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`. - in: path - name: idSubValue - required: true - schema: - type: string - idType: - description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`. - in: path - name: idType - required: true - schema: - type: string - idValue: - description: The identifier value. - in: path - name: idValue - required: true - schema: - type: string - transactionRequestId: - in: path - name: transactionRequestId - required: true - schema: - $ref: '#/components/schemas/transactionRequestId' - transferId: - in: path - name: transferId - required: true - schema: - type: string - bulkTransactionId: - name: bulkTransactionId - in: path - required: true - schema: - $ref: '#/components/schemas/CorrelationId' - description: >- - Identifier of the bulk transaction to continue as returned in the - response to a `POST /bulkTransaction` request. - responses: - '400': - content: - application/json: + - BulkQuotes + operationId: BulkQuotesGet + parameters: + - name: idValue + in: path + required: true schema: - $ref: '#/components/schemas/errorResponse' - 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: + $ref: '#/components/schemas/idValue' + responses: + 200: + description: Response containing details of the requested bulk quote + 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 + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + 500: + description: An error occured processing the request + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + + /bulkTransfers: + post: + summary: Execute bulk transfer of funds from an external account to internal accounts + tags: + - BulkTransfers + operationId: BulkTransfersPost + requestBody: + description: An incoming bulk transfer request + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferRequest' + responses: + 200: + description: The bulk transfer was accepted + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferResponse' + 400: + description: Malformed or missing required headers or parameters + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + 500: + description: An error occured processing the request + 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 + tags: + - BulkTransfers + operationId: BulkTransfersGet + parameters: + - name: idValue + in: path + required: true schema: - $ref: '#/components/schemas/errorResponse' - description: An error occurred processing the request. + $ref: '#/components/schemas/idValue' + 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 + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + 500: + description: An error occured processing the request + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + +components: schemas: - DateOfBirth: - title: DateofBirth (type Date) - type: string - 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)$ - description: Date of Birth of the Party. - example: '1966-06-16' - FirstName: - title: FirstName - type: string - minLength: 1 - maxLength: 128 - pattern: >- - ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} - .,''-]{1,128}$ - description: First name of the Party (Name Type). - example: Henrik - FspId: - title: FspId - type: string - minLength: 1 - maxLength: 32 - description: FSP identifier. - IndividualQuote: - description: Data model for individual quote in a bulk quote request. + 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 properties: - amount: - $ref: '#/components/schemas/money' + 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' 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: - description: An optional note associated with the quote. - maxLength: 128 - minLength: 1 type: string - quoteId: - $ref: '#/components/schemas/quoteId' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - to: - $ref: '#/components/schemas/transferParty' - transactionId: - $ref: '#/components/schemas/transactionId' - transactionType: - $ref: '#/components/schemas/transactionType' + minLength: 1 + 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 required: - - quoteId - - transactionId + - transactionRequestId - to - - amountType + - from - amount - currency - transactionType - initiator - initiatorType - type: object - IndividualQuoteResultFailed: - description: Data model for failed individual quote in a bulk quote response. properties: - errorResponse: - $ref: '#/components/schemas/errorResponse' - quoteId: - $ref: '#/components/schemas/quoteId' + 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 - - errorResponse - type: object - IndividualQuoteResultSuccess: - description: Data model for successful individual quote in a bulk quote response. + - transactionId + - transferAmount + - transferAmountCurrency properties: - payeeFspCommissionAmount: - $ref: '#/components/schemas/money' - payeeFspCommissionAmountCurrency: - $ref: '#/components/schemas/currency' - payeeFspFeeAmount: + quoteId: + $ref: '#/components/schemas/quoteId' + transactionId: + $ref: '#/components/schemas/transactionId' + transferAmount: $ref: '#/components/schemas/money' - payeeFspFeeAmountCurrency: + transferAmountCurrency: $ref: '#/components/schemas/currency' payeeReceiveAmount: $ref: '#/components/schemas/money' payeeReceiveAmountCurrency: $ref: '#/components/schemas/currency' - quoteId: - $ref: '#/components/schemas/quoteId' - transferAmount: + payeeFspFeeAmount: $ref: '#/components/schemas/money' - transferAmountCurrency: + payeeFspFeeAmountCurrency: + $ref: '#/components/schemas/currency' + payeeFspCommissionAmount: + $ref: '#/components/schemas/money' + payeeFspCommissionAmountCurrency: $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: - - quoteId + - transactionId + - transactionRequestState + properties: + transactionId: + $ref: '#/components/schemas/transactionId' + transferAmount: + $ref: '#/components/schemas/transactionRequestState' + + participantsResponse: type: object - IndividualTransfer: - description: Data model for individual transfer in a bulk transfer request. properties: - amount: - $ref: '#/components/schemas/money' + 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 + required: + - transferId + - currency + - amount + properties: + transferId: + $ref: '#/components/schemas/transferId' + quote: + $ref: '#/components/schemas/quoteResponse' + from: + $ref: '#/components/schemas/transferParty' + to: + $ref: '#/components/schemas/transferParty' amountType: $ref: '#/components/schemas/amountType' currency: $ref: '#/components/schemas/currency' - feesAmount: + amount: $ref: '#/components/schemas/money' - feesCurrency: - $ref: '#/components/schemas/currency' - initiator: - $ref: '#/components/schemas/initiator' - initiatorType: - $ref: '#/components/schemas/initiatorType' + transactionType: + $ref: '#/components/schemas/transactionType' note: - description: An optional note associated with the quote. maxLength: 128 - minLength: 1 type: string - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - to: - $ref: '#/components/schemas/transferParty' - transactionType: - $ref: '#/components/schemas/transactionType' - transferId: - $ref: '#/components/schemas/transferId' - required: - - transferId - - amount - - currency + + otpDetails: type: object - IndividualTransferResult: - description: Data model for individual transfer in a bulk transfer response. - properties: - errorResponse: - $ref: '#/components/schemas/errorResponse' - extensionList: - $ref: '#/components/schemas/extensionList' - transferId: - $ref: '#/components/schemas/transferId' required: - - transferId - type: object - LastName: - title: LastName + - otpValue + 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 - pattern: >- - ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} - .,''-]{1,128}$ - description: Last name of the Party (Name Type). - example: Karlsson - MerchantClassificationCode: - title: MerchantClassificationCode - type: string - pattern: ^[\d]{1,4}$ - description: >- - A limited set of pre-defined numbers. This list would be a limited set - of numbers identifying a set of popular merchant types like School Fees, - Pubs and Restaurants, Groceries, etc. - MiddleName: - title: MiddleName + + subIdValue: type: string minLength: 1 maxLength: 128 - pattern: >- - ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} - .,''-]{1,128}$ - description: Middle name of the Party (Name Type). - example: Johannes - amountCurrency: - description: Object containing Amount and Currency of the transfer. - properties: - amount: - $ref: '#/components/schemas/money' - currency: - $ref: '#/components/schemas/currency' - required: - - amount - - currency - type: object - amountType: - enum: - - SEND - - RECEIVE - type: string - 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}$ + + money: + pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$ type: string - bulkQuoteRequest: - description: A request for a bulk quote. + + transferResponse: + type: object + 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-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + type: string + description: A Mojaloop API transfer identifier (UUID/ULID) + + quoteId: + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + type: string + description: A Mojaloop API quote identifier (UUID/ULID) + + transactionRequestId: + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + type: string + description: A Mojaloop API transaction request identifier (UUID/ULID) + + transactionId: + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + 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' - maxItems: 1000 - minItems: 1 - type: array + + bulkQuoteResponse: + type: object + description: A response to a request for a bulk quote required: - bulkQuoteId - - from - - individualQuotes - type: object - bulkQuoteResponse: - description: A response to a request for a bulk quote. + - individualQuoteResults properties: bulkQuoteId: $ref: '#/components/schemas/bulkQuoteId' expiration: $ref: '#/components/schemas/timestamp' individualQuoteResults: - description: >- - Fees for each individual transaction, if any of them are charged per - transaction. - items: - oneOf: - - $ref: '#/components/schemas/IndividualQuoteResultSuccess' - - $ref: '#/components/schemas/IndividualQuoteResultFailed' - maxItems: 1000 - minItems: 1 type: array + minItems: 1 + maxItems: 1000 + items: + $ref: '#/components/schemas/IndividualQuoteResult' + 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: - - bulkQuoteId - - individualQuoteResults + - 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 + + IndividualQuoteResult: type: object - 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}$ + description: Data model for 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' + + bulkQuoteId: + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string + description: A Mojaloop API bulk quote identifier (UUID/ULID) + bulkTransferRequest: + type: object + required: + - bulkTransferId + - individualTransfers properties: - bulkQuote: - $ref: '#/components/schemas/bulkQuoteResponse' bulkTransferId: $ref: '#/components/schemas/bulkTransferId' + bulkQuote: + $ref: '#/components/schemas/bulkQuoteResponse' from: $ref: '#/components/schemas/transferParty' individualTransfers: + type: array + minItems: 1 + maxItems: 1000 items: $ref: '#/components/schemas/IndividualTransfer' - maxItems: 1000 - minItems: 1 - type: array + + IndividualTransfer: + type: object + description: Data model for individual transfer in a bulk transfer request required: - - bulkTransferId - - individualTransfers + - 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: type: object + description: Data model for individual transfer in a bulk transfer response + required: + - transferId + properties: + transferId: + $ref: '#/components/schemas/transferId' + extensionList: + $ref: '#/components/schemas/extensionList' + bulkTransferResponse: + type: object + required: + - homeTransactionId properties: bulkTransferId: $ref: '#/components/schemas/bulkTransferId' homeTransactionId: - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the switch and DFSP backend systems. type: string + description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems individualTransferResults: + type: array + minItems: 1 + maxItems: 1000 items: $ref: '#/components/schemas/IndividualTransferResult' - maxItems: 1000 - minItems: 1 - type: array - required: - - homeTransactionId - type: object - currency: - enum: - - AED - - AFN - - ALL - - AMD - - ANG - - AOA - - ARS - - AUD - - AWG - - AZN - - BAM - - BBD - - BDT - - BGN - - BHD - - BIF - - BMD - - BND - - BOB - - BRL - - BSD - - BTN - - BWP - - BYN - - BZD - - CAD - - CDF - - CHF - - CLP - - CNY - - COP - - CRC - - CUC - - CUP - - CVE - - CZK - - DJF - - DKK - - DOP - - DZD - - EGP - - ERN - - ETB - - EUR - - FJD - - FKP - - GBP - - GEL - - GGP - - GHS - - GIP - - GMD - - GNF - - GTQ - - GYD - - HKD - - HNL - - HRK - - HTG - - HUF - - IDR - - ILS - - IMP - - INR - - IQD - - IRR - - ISK - - JEP - - JMD - - JOD - - JPY - - KES - - KGS - - KHR - - KMF - - KPW - - KRW - - KWD - - KYD - - KZT - - LAK - - LBP - - LKR - - LRD - - LSL - - LYD - - MAD - - MDL - - MGA - - MKD - - MMK - - MNT - - MOP - - MRO - - MUR - - MVR - - MWK - - MXN - - MYR - - MZN - - NAD - - NGN - - NIO - - NOK - - NPR - - NZD - - OMR - - PAB - - PEN - - PGK - - PHP - - PKR - - PLN - - PYG - - QAR - - RON - - RSD - - RUB - - RWF - - SAR - - SBD - - SCR - - SDG - - SEK - - SGD - - SHP - - SLL - - SOS - - SPL - - SRD - - STD - - SVC - - SYP - - SZL - - THB - - TJS - - TMT - - TND - - TOP - - TRY - - TTD - - TVD - - TWD - - TZS - - UAH - - UGX - - USD - - UYU - - UZS - - VEF - - VND - - VUV - - WST - - XAF - - XCD - - XDR - - XOF - - XPF - - XTS - - XXX - - YER - - ZAR - - ZMW - - ZWD - maxLength: 3 - minLength: 3 - type: string - 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 - errorCode: - description: > - The API data type errorCode is a JSON String of four characters, - consisting of digits only. Negative numbers are not allowed. A leading - zero is not allowed. Each error code in the API is a four-digit number, - for example, 1234, where the first number (1 in the example) represents - the high-level error category, the second number (2 in the example) - represents the low-level error category, and the last two numbers (34 in - the example) represents the specific error. - pattern: ^[1-9]\d{3}$ - title: ErrorCode - type: string - errorDescription: - description: Error description string. - maxLength: 128 - minLength: 1 - title: ErrorDescription + + bulkTransferId: + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string - errorInformation: - description: A Mojaloop API error information construct. + description: A Mojaloop API transfer identifier (UUID/ULID) + + geoCode: + type: object + description: Indicates the geographic location from where the transaction was initiated. properties: - errorCode: - $ref: '#/components/schemas/errorCode' - errorDescription: - $ref: '#/components/schemas/errorDescription' - extensionList: - $ref: '#/components/schemas/extensionListComplex' + latitude: + $ref: '#/components/schemas/latitude' + longitude: + $ref: '#/components/schemas/longitude' required: - - errorCode - - errorDescription - title: ErrorInformation - type: object + - latitude + - longitude + + latitude: + type: string + pattern: ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ + 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: + type: string + pattern: ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ + 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: + type: object properties: + statusCode: + type: string + description: Error code as string 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. + description: Error message text - 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 - extensionListComplex: - description: Data model for the complex type ExtensionList. - properties: - extension: - description: Number of Extension elements. - items: - $ref: '#/components/schemas/extensionItem' - maxItems: 16 - minItems: 1 - type: array - required: - - extension - type: object - fspId: - description: FSP identifier. - maxLength: 32 - minLength: 1 - type: string - fulfilNotification: - description: PUT /transfers/{transferId} object. - properties: - currentState: - $ref: '#/components/schemas/transferStatus' - direction: - enum: - - INBOUND - type: string - finalNotification: - properties: - completedTimestamp: - $ref: '#/components/schemas/timestamp' - extensionList: - $ref: '#/components/schemas/extensionList' - transferState: - $ref: '#/components/schemas/transferState' - required: - - completedTimestamp - - transferState - type: object - fulfil: - properties: - body: - type: object - headers: - type: object - type: object - initiatedTimestamp: - $ref: '#/components/schemas/timestamp' - lastError: - $ref: '#/components/schemas/transferError' - prepare: - properties: - body: - type: object - headers: - type: object - type: object - quote: - properties: - fulfilment: - type: string - internalRequest: - type: object - mojaloopResponse: - type: object - request: - type: object - response: - type: object - type: object - quoteRequest: - properties: - body: - type: object - headers: - type: object - type: object - quoteResponse: - properties: - body: - type: object - headers: - type: object - type: object - transferId: - $ref: '#/components/schemas/transferId' - title: TransfersIDPatchResponse - type: object - generalError: - description: >- - This object may represent a number of different error object types and - so its properties may vary significantly. - type: object - geoCode: - description: >- - Indicates the geographic location from where the transaction was - initiated. - properties: - latitude: - $ref: '#/components/schemas/latitude' - longitude: - $ref: '#/components/schemas/longitude' - required: - - latitude - - longitude - type: object - idSubValue: - maxLength: 128 - minLength: 1 - type: string - idType: - enum: - - MSISDN - - ACCOUNT_NO - - EMAIL - - PERSONAL_ID - - BUSINESS - - DEVICE - - ACCOUNT_ID - - IBAN - - ALIAS - type: string - idValue: - description: Identifier of the party. - maxLength: 128 - minLength: 1 - type: string - ilpPacketData: - description: Object containing transfer object. - properties: - amount: - $ref: '#/components/schemas/amountCurrency' - payee: - $ref: '#/components/schemas/Party' - payer: - $ref: '#/components/schemas/Party' - quoteId: - $ref: '#/components/schemas/quoteId' - transactionId: - $ref: '#/components/schemas/transactionId' - transactionType: - $ref: '#/components/schemas/transactionTypeObject' - required: - - quoteId - - transactionId - - payer - - payee - - amount - - transactionType - type: object - 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. - pattern: >- - ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ - type: string - 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. - 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: - 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: - homeR2PTransactionId: - type: string - description: >- - Linked homeR2PTransactionId which was generated as part of POST - /requestToPay to SDK incase of requestToPay transfer. - amount: - $ref: '#/components/schemas/money' - amountType: - $ref: '#/components/schemas/amountType' - currency: - $ref: '#/components/schemas/currency' - expiration: - $ref: '#/components/schemas/timestamp' - extensionList: - $ref: '#/components/schemas/extensionList' - 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 - quoteId: - $ref: '#/components/schemas/quoteId' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - to: - $ref: '#/components/schemas/transferParty' - transactionId: - $ref: '#/components/schemas/transactionId' - transactionType: - $ref: '#/components/schemas/transactionType' - transactionRequestId: - $ref: '#/components/schemas/transactionRequestId' - 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 - scenario: - enum: - - TRANSFER - 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 - to: - $ref: '#/components/schemas/transferParty' - transactionRequestId: - $ref: '#/components/schemas/transactionRequestId' - transactionType: - $ref: '#/components/schemas/transactionType' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - authenticationType: - $ref: '#/components/schemas/AuthenticationType' - 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: - homeR2PTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - transactionId: - $ref: '#/components/schemas/transactionId' - transactionRequestState: - $ref: '#/components/schemas/transactionRequestState' - required: - - transactionId - - transactionRequestState - type: object - transactionRequestState: - enum: - - RECEIVED - - PENDING - - ACCEPTED - - REJECTED - type: string - transactionSubScenario: - description: >- - Possible sub-scenario, defined locally within the scheme (UndefinedEnum - Type). Based on FSPIOP TransactionSubScenario. - example: LOCALLY_DEFINED_SUBSCENARIO - pattern: ^[A-Z_]{1,32}$ - title: transactionSubScenario - type: string - transactionType: - enum: - - TRANSFER - - DEPOSIT - - PAYMENT - type: string - transactionTypeObject: - description: Object containing transfer object. - properties: - initiator: - $ref: '#/components/schemas/initiator' - initiatorType: - $ref: '#/components/schemas/initiatorType' - scenario: - $ref: '#/components/schemas/scenario' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - required: - - scenario - - initiator - - initiatorType - type: object - transferDetailsResponse: - properties: - amount: - $ref: '#/components/schemas/money' - amountType: - $ref: '#/components/schemas/amountType' - currency: - $ref: '#/components/schemas/currency' - extensions: - $ref: '#/components/schemas/extensionList' - from: - $ref: '#/components/schemas/transferParty' - homeTransactionId: - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - type: string - note: - maxLength: 128 - type: string - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - timestamp: - $ref: '#/components/schemas/timestamp' - to: - $ref: '#/components/schemas/transferParty' - transactionType: - $ref: '#/components/schemas/transactionType' - transferState: - $ref: '#/components/schemas/transferState' - required: - - homeTransactionId - - from - - to - - amountType - - currency - - amount - - transferState - - transactionType - - timestamp - type: object - 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 - extensionList: - $ref: '#/components/schemas/extensionList' - firstName: - description: Party first name. - type: string - fspId: - description: Mojaloop scheme FSPID of the DFSP which owns the party account. - type: string - idSubValue: - $ref: '#/components/schemas/idSubValue' - 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 sender's merchant classification, if - known and applicable. - type: string - middleName: - description: Party middle name. - type: string - type: - $ref: '#/components/schemas/payerType' - required: - - idType - - idValue - type: object - transferRequest: - properties: - homeR2PTransactionId: - type: string - description: >- - Linked homeR2PTransactionId which was generated as part of POST - /requestToPay to SDK incase of requestToPay transfer. - amount: - $ref: '#/components/schemas/money' - amountType: - $ref: '#/components/schemas/amountType' - currency: - $ref: '#/components/schemas/currency' - from: - $ref: '#/components/schemas/transferParty' - ilpPacket: - properties: - data: - $ref: '#/components/schemas/ilpPacketData' - required: - - data - type: object - note: - maxLength: 128 - type: string - quote: - $ref: '#/components/schemas/quoteResponse' - quoteRequestExtensions: - $ref: '#/components/schemas/extensionList' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - to: - $ref: '#/components/schemas/transferParty' - transactionType: - $ref: '#/components/schemas/transactionType' - transferId: - $ref: '#/components/schemas/transferId' - transactionRequestId: - $ref: '#/components/schemas/transactionRequestId' - required: - - transferId - - quote - - from - - to - - amountType - - currency - - amount - - transactionType - - ilpPacket - type: object - transferResponse: - properties: - completedTimestamp: - $ref: '#/components/schemas/timestamp' - fulfilment: - $ref: '#/components/schemas/IlpFulfilment' - homeTransactionId: - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - type: string - transferState: - $ref: '#/components/schemas/transferState' - required: - - homeTransactionId - type: object - transferState: - 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 - type: string - transferStatus: - enum: - - ERROR_OCCURRED - - WAITING_FOR_PARTY_ACCEPTANCE - - WAITING_FOR_QUOTE_ACCEPTANCE - - COMPLETED - type: string - requestToPayCallback: - description: Callback for requestToPay. - properties: - homeR2PTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - transactionRequestState: - $ref: '#/components/schemas/transactionRequestState' - required: - - transactionRequestState - TransactionSubScenario: - title: TransactionSubScenario - type: string - pattern: ^[A-Z_]{1,32}$ - description: >- - Possible sub-scenario, defined locally within the scheme (UndefinedEnum - Type). - example: LOCALLY_DEFINED_SUBSCENARIO - CorrelationId: - 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 - bulkTransactionStatus: - type: string - enum: - - ERROR_OCCURRED - - WAITING_FOR_PARTY_ACCEPTANCE - - WAITING_FOR_QUOTE_ACCEPTANCE - - COMPLETED - autoAcceptPartyOption: - type: object - required: - - enabled - properties: - enabled: - type: boolean - enum: - - false - - true - Currency: - title: Currency - description: >- - The currency codes defined in [ISO - 4217](https://www.iso.org/iso-4217-currency-codes.html) as three-letter - alphabetic codes are used as the standard naming representation for - currencies. - type: string - minLength: 3 - maxLength: 3 - enum: - - AED - - AFN - - ALL - - AMD - - ANG - - AOA - - ARS - - AUD - - AWG - - AZN - - BAM - - BBD - - BDT - - BGN - - BHD - - BIF - - BMD - - BND - - BOB - - BRL - - BSD - - BTN - - BWP - - BYN - - BZD - - CAD - - CDF - - CHF - - CLP - - CNY - - COP - - CRC - - CUC - - CUP - - CVE - - CZK - - DJF - - DKK - - DOP - - DZD - - EGP - - ERN - - ETB - - EUR - - FJD - - FKP - - GBP - - GEL - - GGP - - GHS - - GIP - - GMD - - GNF - - GTQ - - GYD - - HKD - - HNL - - HRK - - HTG - - HUF - - IDR - - ILS - - IMP - - INR - - IQD - - IRR - - ISK - - JEP - - JMD - - JOD - - JPY - - KES - - KGS - - KHR - - KMF - - KPW - - KRW - - KWD - - KYD - - KZT - - LAK - - LBP - - LKR - - LRD - - LSL - - LYD - - MAD - - MDL - - MGA - - MKD - - MMK - - MNT - - MOP - - MRO - - MUR - - MVR - - MWK - - MXN - - MYR - - MZN - - NAD - - NGN - - NIO - - NOK - - NPR - - NZD - - OMR - - PAB - - PEN - - PGK - - PHP - - PKR - - PLN - - PYG - - QAR - - RON - - RSD - - RUB - - RWF - - SAR - - SBD - - SCR - - SDG - - SEK - - SGD - - SHP - - SLL - - SOS - - SPL - - SRD - - STD - - SVC - - SYP - - SZL - - THB - - TJS - - TMT - - TND - - TOP - - TRY - - TTD - - TVD - - TWD - - TZS - - UAH - - UGX - - USD - - UYU - - UZS - - VEF - - VND - - VUV - - WST - - XAF - - XCD - - XDR - - XOF - - XPF - - XTS - - XXX - - YER - - ZAR - - ZMW - - ZWD - Amount: - title: Amount - type: string - pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$ - description: >- - The API data type Amount is a JSON String in a canonical format that is - restricted by a regular expression for interoperability reasons. This - pattern does not allow any trailing zeroes at all, but allows an amount - without a minor currency unit. It also only allows four digits in the - minor currency unit; a negative value is not allowed. Using more than 18 - digits in the major currency unit is not allowed. - example: '123.45' - bulkPerTransferFeeLimit: - type: object - required: - - currency - - amount - properties: - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - autoAcceptQuote: - type: object - required: - - enabled - properties: - enabled: - type: boolean - enum: - - true - - false - perTransferFeeLimits: - type: array - minItems: 0 - items: - $ref: '#/components/schemas/bulkPerTransferFeeLimit' - DateTime: - title: DateTime - type: string - 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)$ - description: >- - The API data type DateTime is a JSON String in a lexical format that is - restricted by a regular expression for interoperability reasons. The - format is according to [ISO - 8601](https://www.iso.org/iso-8601-date-and-time-format.html), expressed - in a combined date, time and time zone format. A more readable version - of the format is yyyy-MM-ddTHH:mm:ss.SSS[-HH:MM]. Examples are - "2016-05-24T08:38:08.699-04:00", "2016-05-24T08:38:08.699Z" (where Z - indicates Zulu time zone, same as UTC). - example: '2016-05-24T08:38:08.699-04:00' - bulkTransactionOptions: - type: object - required: - - autoAcceptParty - - autoAcceptQuote - - bulkExpiration - properties: - onlyValidateParty: - description: >- - Set to true if only party validation is required. This means the - quotes and transfers will not run. This is useful for only party - resolution. - type: boolean - autoAcceptParty: - $ref: '#/components/schemas/autoAcceptPartyOption' - autoAcceptQuote: - description: >- - Set to true if the quote response is accepted without confirmation - from the payer. The fees applied by the payee will be acceptable to - the payer abiding by the limits set by optional - 'perTransferFeeLimits' array. - type: object - oneOf: - - $ref: '#/components/schemas/autoAcceptQuote' - skipPartyLookup: - description: >- - Set to true if supplying an FSPID for the payee party and no party - resolution is needed. This may be useful if a previous party - resolution has been performed. - type: boolean - synchronous: - description: >- - Set to true if the bulkTransfer requests need be handled - synchronous. Otherwise the requests will be handled asynchronously, - meaning there will be callbacks whenever the processing is done - type: boolean - bulkExpiration: - $ref: '#/components/schemas/DateTime' - PartyIdType: - title: PartyIdType - type: string - enum: - - MSISDN - - EMAIL - - PERSONAL_ID - - BUSINESS - - DEVICE - - ACCOUNT_ID - - IBAN - - ALIAS - description: >- - Below are the allowed values for the enumeration. - - - MSISDN - An MSISDN (Mobile Station International Subscriber Directory - Number, that is, the phone number) is used as reference to a - participant. The MSISDN identifier should be in international format - according to the [ITU-T E.164 - standard](https://www.itu.int/rec/T-REC-E.164/en). Optionally, the - MSISDN may be prefixed by a single plus sign, indicating the - international prefix. - - - EMAIL - An email is used as reference to a participant. The format of - the email should be according to the informational [RFC - 3696](https://tools.ietf.org/html/rfc3696). - - - PERSONAL_ID - A personal identifier is used as reference to a - participant. Examples of personal identification are passport number, - birth certificate number, and national registration number. The - identifier number is added in the PartyIdentifier element. The personal - identifier type is added in the PartySubIdOrType element. - - - BUSINESS - A specific Business (for example, an organization or a - company) is used as reference to a participant. The BUSINESS identifier - can be in any format. To make a transaction connected to a specific - username or bill number in a Business, the PartySubIdOrType element - should be used. - - - DEVICE - A specific device (for example, a POS or ATM) ID connected to - a specific business or organization is used as reference to a Party. For - referencing a specific device under a specific business or organization, - use the PartySubIdOrType element. - - - ACCOUNT_ID - A bank account number or FSP account ID should be used as - reference to a participant. The ACCOUNT_ID identifier can be in any - format, as formats can greatly differ depending on country and FSP. - - - IBAN - A bank account number or FSP account ID is used as reference to - a participant. The IBAN identifier can consist of up to 34 alphanumeric - characters and should be entered without whitespace. + extensionList: + type: array + items: + $ref: '#/components/schemas/extensionItem' + minItems: 0 + maxItems: 16 - - ALIAS An alias is used as reference to a participant. The alias should - be created in the FSP as an alternative reference to an account owner. - Another example of an alias is a username in the FSP system. The ALIAS - identifier can be in any format. It is also possible to use the - PartySubIdOrType element for identifying an account under an Alias - defined by the PartyIdentifier. - PartyIdentifier: - title: PartyIdentifier - type: string - minLength: 1 - maxLength: 128 - description: Identifier of the Party. - example: '16135551212' - PartySubIdOrType: - title: PartySubIdOrType - type: string - minLength: 1 - maxLength: 128 - description: >- - Either a sub-identifier of a PartyIdentifier, or a sub-type of the - PartyIdType, normally a PersonalIdentifierType. - ExtensionKey: - title: ExtensionKey - type: string - minLength: 1 - maxLength: 32 - description: Extension key. - ExtensionValue: - title: ExtensionValue - type: string - minLength: 1 - maxLength: 128 - description: Extension value. - Extension: - title: Extension + extensionItem: type: object - description: Data model for the complex type Extension. properties: key: - $ref: '#/components/schemas/ExtensionKey' + type: string + minLength: 1 + maxLength: 32 value: - $ref: '#/components/schemas/ExtensionValue' - required: - - key - - value - ExtensionList: - title: ExtensionList - type: object - description: >- - Data model for the complex type ExtensionList. An optional list of - extensions, specific to deployment. - properties: - extension: - type: array - items: - $ref: '#/components/schemas/Extension' - minItems: 1 - maxItems: 16 - description: Number of Extension elements. - required: - - extension - PartyIdInfo: - title: PartyIdInfo - type: object - description: >- - Data model for the complex type PartyIdInfo. An ExtensionList element - has been added to this reqeust in version v1.1 - properties: - partyIdType: - $ref: '#/components/schemas/PartyIdType' - partyIdentifier: - $ref: '#/components/schemas/PartyIdentifier' - partySubIdOrType: - $ref: '#/components/schemas/PartySubIdOrType' - fspId: - $ref: '#/components/schemas/FspId' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - partyIdType - - partyIdentifier - PartyName: - title: PartyName - type: string - minLength: 1 - maxLength: 128 - description: Name of the Party. Could be a real name or a nickname. - PartyComplexName: - title: PartyComplexName - type: object - description: Data model for the complex type PartyComplexName. - properties: - firstName: - $ref: '#/components/schemas/FirstName' - middleName: - $ref: '#/components/schemas/MiddleName' - lastName: - $ref: '#/components/schemas/LastName' - PartyPersonalInfo: - title: PartyPersonalInfo - type: object - description: Data model for the complex type PartyPersonalInfo. - properties: - complexName: - $ref: '#/components/schemas/PartyComplexName' - dateOfBirth: - $ref: '#/components/schemas/DateOfBirth' - Party: - title: Party - type: object - description: Data model for the complex type Party. - properties: - partyIdInfo: - $ref: '#/components/schemas/PartyIdInfo' - merchantClassificationCode: - $ref: '#/components/schemas/MerchantClassificationCode' - name: - $ref: '#/components/schemas/PartyName' - personalInfo: - $ref: '#/components/schemas/PartyPersonalInfo' - required: - - partyIdInfo - AmountType: - title: AmountType - type: string - enum: - - SEND - - RECEIVE - description: >- - Below are the allowed values for the enumeration AmountType. - - - SEND - Amount the Payer would like to send, that is, the amount that - should be withdrawn from the Payer account including any fees. + type: string + minLength: 1 + maxLength: 128 - - RECEIVE - Amount the Payer would like the Payee to receive, that is, - the amount that should be sent to the receiver exclusive of any fees. - example: RECEIVE - Note: - title: Note - type: string - minLength: 1 - maxLength: 128 - description: Memo assigned to transaction. - example: Note sent to Payee. - Money: - title: Money - type: object - description: Data model for the complex type Money. - properties: - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - required: - - currency - - amount - Latitude: - title: Latitude - type: string - pattern: >- - ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ - description: >- - The API data type Latitude is a JSON String in a lexical format that is - restricted by a regular expression for interoperability reasons. - example: '+45.4215' - Longitude: - title: Longitude - type: string - pattern: >- - ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ - description: >- - The API data type Longitude is a JSON String in a lexical format that is - restricted by a regular expression for interoperability reasons. - example: '+75.6972' - GeoCode: - title: GeoCode - type: object - description: >- - Data model for the complex type GeoCode. Indicates the geographic - location from where the transaction was initiated. - properties: - latitude: - $ref: '#/components/schemas/Latitude' - longitude: - $ref: '#/components/schemas/Longitude' - required: - - latitude - - longitude - IlpPacket: - title: IlpPacket - type: string - pattern: ^[A-Za-z0-9-_]+[=]{0,2}$ - minLength: 1 - maxLength: 32768 - description: Information for recipient (transport layer information). - example: >- - AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA - IlpCondition: - title: IlpCondition - type: string - pattern: ^[A-Za-z0-9-_]{43}$ - maxLength: 48 - description: Condition that must be attached to the transfer by the Payer. - ErrorCode: - title: ErrorCode - type: string - pattern: ^[1-9]\d{3}$ - description: >- - The API data type ErrorCode is a JSON String of four characters, - consisting of digits only. Negative numbers are not allowed. A leading - zero is not allowed. Each error code in the API is a four-digit number, - for example, 1234, where the first number (1 in the example) represents - the high-level error category, the second number (2 in the example) - represents the low-level error category, and the last two numbers (34 in - the example) represent the specific error. - example: '5100' - ErrorDescription: - title: ErrorDescription - type: string - minLength: 1 - maxLength: 128 - description: Error description string. - ErrorInformation: - title: ErrorInformation - type: object - description: Data model for the complex type ErrorInformation. - properties: - errorCode: - $ref: '#/components/schemas/ErrorCode' - errorDescription: - $ref: '#/components/schemas/ErrorDescription' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - errorCode - - errorDescription - mojaloopError: - type: object - properties: - errorInformation: - $ref: '#/components/schemas/ErrorInformation' - quoteError: - type: object - description: >- - This object represents a Mojaloop API error received at any time during - the quote process - properties: - httpStatusCode: - type: integer - description: >- - The HTTP status code returned to the caller. This is the same as the - actual HTTP status code returned with the response. - mojaloopError: - $ref: '#/components/schemas/mojaloopError' - individualQuoteResult: - type: object - properties: - quoteId: - $ref: '#/components/schemas/CorrelationId' - transferAmount: - $ref: '#/components/schemas/Money' - payeeReceiveAmount: - $ref: '#/components/schemas/Money' - payeeFspFee: - $ref: '#/components/schemas/Money' - payeeFspCommission: - $ref: '#/components/schemas/Money' - geoCode: - $ref: '#/components/schemas/GeoCode' - ilpPacket: - $ref: '#/components/schemas/IlpPacket' - condition: - $ref: '#/components/schemas/IlpCondition' - extensionList: - $ref: '#/components/schemas/ExtensionList' - lastError: - $ref: '#/components/schemas/quoteError' - required: - - quoteId - IlpFulfilment: - title: IlpFulfilment - type: string - pattern: ^[A-Za-z0-9-_]{43}$ - maxLength: 48 - description: Fulfilment that must be attached to the transfer by the Payee. - example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8 - TransferState: - title: TransferState + transferState: type: string enum: - RECEIVED - RESERVED - COMMITTED - ABORTED - description: >- - Below are the allowed values for the enumeration. - - - RECEIVED - Next ledger has received the transfer. - - - RESERVED - Next ledger has reserved the transfer. - - - COMMITTED - Next ledger has successfully performed the transfer. + 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. - - ABORTED - Next ledger has aborted the transfer due to a rejection or - failure to perform the transfer. - example: RESERVED - transferError: - type: object - description: >- - This object represents a Mojaloop API error received at any time during - the transfer process - properties: - httpStatusCode: - type: integer - description: >- - The HTTP status code returned to the caller. This is the same as the - actual HTTP status code returned with the response. - mojaloopError: - $ref: '#/components/schemas/mojaloopError' - individualTransferResult: + fulfilNotification: + title: TransfersIDPatchResponse type: object - required: - - transferId + description: PUT /transfers/{transferId} object properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - fulfilment: - $ref: '#/components/schemas/IlpFulfilment' - extensionList: - $ref: '#/components/schemas/ExtensionList' + completedTimestamp: + $ref: '#/components/schemas/timestamp' transferState: - $ref: '#/components/schemas/TransferState' - lastError: - $ref: '#/components/schemas/transferError' - bulkTransactionIndividualTransferResult: - type: object - required: - - homeTransactionId - properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - homeTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - transactionId: - $ref: '#/components/schemas/CorrelationId' - to: - $ref: '#/components/schemas/Party' - reference: - description: Payer Loan reference - type: string - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - note: - $ref: '#/components/schemas/Note' - quoteId: - $ref: '#/components/schemas/CorrelationId' - quoteResponse: - $ref: '#/components/schemas/individualQuoteResult' - fulfil: - $ref: '#/components/schemas/individualTransferResult' - quoteExtensions: - $ref: '#/components/schemas/ExtensionList' - transferExtensions: - $ref: '#/components/schemas/ExtensionList' - lastError: - $ref: '#/components/schemas/transferError' - bulkTransactionResponse: - title: BulkTransactionResponse - type: object + $ref: '#/components/schemas/transferState' + extensionList: + $ref: '#/components/schemas/extensionList' required: - - bulkHomeTransactionID - - bulkTransactionId - - currentState - - individualTransferResults - properties: - bulkHomeTransactionID: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - bulkTransactionId: - $ref: '#/components/schemas/CorrelationId' - currentState: - $ref: '#/components/schemas/bulkTransactionStatus' - options: - $ref: '#/components/schemas/bulkTransactionOptions' - individualTransferResults: - description: List of individual transfer result in a bulk transfer response. - type: array - minItems: 1 - items: - $ref: '#/components/schemas/bulkTransactionIndividualTransferResult' - extensions: - $ref: '#/components/schemas/ExtensionList' - AuthenticationType: - title: AuthenticationType - type: string - enum: - - OTP - - QRCODE - - U2F - description: |- - Below are the allowed values for the enumeration AuthenticationType. - - OTP - One-time password generated by the Payer FSP. - - QRCODE - QR code used as One Time Password. - - U2F - U2F is a new addition isolated to Thirdparty stream. - example: OTP + - completedTimestamp + - transferState + diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/response_map.json b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/response_map.json index 336e6a576..4a22ca3ca 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/response_map.json +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/response_map.json @@ -51,12 +51,5 @@ } } } - }, - "/transactionrequests": { - "post": { - "response": { - "bodyOverride": {} - } - } } } \ No newline at end of file diff --git a/modules/api-svc/package.json b/modules/api-svc/package.json index 76edeb549..9c44c3698 100644 --- a/modules/api-svc/package.json +++ b/modules/api-svc/package.json @@ -67,7 +67,7 @@ "@mojaloop/central-services-error-handling": "^13.0.1", "@mojaloop/central-services-logger": "^11.5.1", "@mojaloop/central-services-metrics": "^12.0.8", - "@mojaloop/central-services-shared": "18.8.0", + "@mojaloop/central-services-shared": "18.9.0", "@mojaloop/event-sdk": "^14.1.1", "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^", "@mojaloop/sdk-standard-components": "18.4.1", diff --git a/modules/api-svc/src/InboundServer/api.yaml b/modules/api-svc/src/InboundServer/api.yaml index b604d83d6..8f2679885 100644 --- a/modules/api-svc/src/InboundServer/api.yaml +++ b/modules/api-svc/src/InboundServer/api.yaml @@ -2810,15 +2810,12 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ 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 + Identifier that correlates all messages of the same sequence. + The supported identifiers formats are for + lowercase [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and + uppercase [ULID](https://github.com/ulid/spec) PartyIdType: title: PartyIdType type: string diff --git a/modules/api-svc/src/config.js b/modules/api-svc/src/config.js index 9996c85e4..bf7f3d80b 100644 --- a/modules/api-svc/src/config.js +++ b/modules/api-svc/src/config.js @@ -62,7 +62,7 @@ module.exports = { mgmtAPIWsUrl: env.get('MGMT_API_WS_URL').default('127.0.0.1').asString(), mgmtAPIWsPort: env.get('MGMT_API_WS_PORT').default('4005').asPortNumber() }, - idGenerator: env.get('ID_GENERATOR').default('{"type":"uuid","version":4}').asJsonObject(), + idGenerator: env.get('ID_GENERATOR').default('{"type":"ulid"}').asJsonObject(), logLevel: env.get('LOG_LEVEL').default('info').asEnum(['trace', 'debug', 'info', 'warn', 'error', 'fatal']), inbound: { port: env.get('INBOUND_LISTEN_PORT').default('4000').asPortNumber(), diff --git a/modules/api-svc/test/__mocks__/@mojaloop/central-services-shared.js b/modules/api-svc/test/__mocks__/@mojaloop/central-services-shared.js index 391837d6e..f258ae98a 100644 --- a/modules/api-svc/test/__mocks__/@mojaloop/central-services-shared.js +++ b/modules/api-svc/test/__mocks__/@mojaloop/central-services-shared.js @@ -1,8 +1,9 @@ const components = jest.requireActual('@mojaloop/central-services-shared'); +const { Util: {id: idGenerator} } = require('@mojaloop/central-services-shared'); -let id = 0; +let id = idGenerator({ type: 'ulid' }); -components.Util.id = () => () => `00000000-0000-1000-8000-${(++id).toString().padStart(12, '0')}`; -components.Util.id.__reset = () => { id = 0; }; +components.Util.id = () => () => id(1); +components.Util.id.__reset = () => { idGenerator({ type: 'ulid' }); }; module.exports = components; diff --git a/modules/api-svc/test/integration-pm4ml/FSPIOPEventHandler/partyInfoRequest.test.js b/modules/api-svc/test/integration-pm4ml/FSPIOPEventHandler/partyInfoRequest.test.js index c52fa6a76..2f8c6e3af 100644 --- a/modules/api-svc/test/integration-pm4ml/FSPIOPEventHandler/partyInfoRequest.test.js +++ b/modules/api-svc/test/integration-pm4ml/FSPIOPEventHandler/partyInfoRequest.test.js @@ -39,7 +39,7 @@ jest.unmock('@mojaloop/central-services-shared'); jest.unmock('javascript-state-machine'); // Tests can timeout in a CI pipeline so giving it leeway jest.setTimeout(50000); -const randomUUID = require('@mojaloop/central-services-shared').Util.id({version: 4}); +const randomUUID = require('@mojaloop/central-services-shared').Util.id({type: 'ulid'}); const MANAGEMENT_MOCK_SERVER_URL = 'http://localhost:5005'; const fs = require('fs'); diff --git a/modules/api-svc/test/integration/lib/Outbound/quotes.test.js b/modules/api-svc/test/integration/lib/Outbound/quotes.test.js index 2e1f8758c..e50012e49 100644 --- a/modules/api-svc/test/integration/lib/Outbound/quotes.test.js +++ b/modules/api-svc/test/integration/lib/Outbound/quotes.test.js @@ -1,7 +1,7 @@ 'use strict'; const axios = require('axios'); -const uuid = require('@mojaloop/central-services-shared').Util.id({version: 4}); +const uuid = require('@mojaloop/central-services-shared').Util.id({type: 'ulid'}); const env = require('../../testEnv'); const quotesPostRequest = require('./data/quotesPostRequest.json'); const { SDKStateEnum } = require('../../../../src/lib/model/common'); diff --git a/modules/api-svc/test/integration/lib/Outbound/simpleTransfers.test.js b/modules/api-svc/test/integration/lib/Outbound/simpleTransfers.test.js index f09ba34c1..23a0debf2 100644 --- a/modules/api-svc/test/integration/lib/Outbound/simpleTransfers.test.js +++ b/modules/api-svc/test/integration/lib/Outbound/simpleTransfers.test.js @@ -1,7 +1,7 @@ 'use strict'; const axios = require('axios'); -const uuid = require('@mojaloop/central-services-shared').Util.id({version: 4}); +const uuid = require('@mojaloop/central-services-shared').Util.id({type: 'ulid'}); const env = require('../../testEnv'); const transfersPostRequest = require('./data/transfersPostRequest.json'); const { SDKStateEnum } = require('../../../../src/lib/model/common'); diff --git a/modules/api-svc/test/unit/lib/cache.test.js b/modules/api-svc/test/unit/lib/cache.test.js index 6dac5987a..164e5af77 100644 --- a/modules/api-svc/test/unit/lib/cache.test.js +++ b/modules/api-svc/test/unit/lib/cache.test.js @@ -12,7 +12,7 @@ jest.mock('redis'); -const randomUUID = require('@mojaloop/central-services-shared').Util.id(); +const randomUUID = require('@mojaloop/central-services-shared').Util.id({ type: 'ulid' }); const { Logger } = require('@mojaloop/sdk-standard-components'); const Cache = require('~/lib/cache'); diff --git a/modules/api-svc/test/unit/lib/model/InboundTransfersModel.test.js b/modules/api-svc/test/unit/lib/model/InboundTransfersModel.test.js index 8936bb07e..fb12ce0cb 100644 --- a/modules/api-svc/test/unit/lib/model/InboundTransfersModel.test.js +++ b/modules/api-svc/test/unit/lib/model/InboundTransfersModel.test.js @@ -20,7 +20,7 @@ jest.mock('@mojaloop/sdk-standard-components'); jest.mock('redis'); jest.mock('~/lib/model/lib/requests',() => require('./mockedLibRequests')); -const randomUUID = require('@mojaloop/central-services-shared').Util.id({version: 4}); +const randomUUID = require('@mojaloop/central-services-shared').Util.id({type: 'ulid'}); const defaultConfig = require('./data/defaultConfig'); const Model = require('~/lib/model').InboundTransfersModel; const mocks = require('./data/mocks'); diff --git a/modules/api-svc/test/unit/lib/model/PartiesModel.test.js b/modules/api-svc/test/unit/lib/model/PartiesModel.test.js index f7aa3918e..3ebac69ee 100644 --- a/modules/api-svc/test/unit/lib/model/PartiesModel.test.js +++ b/modules/api-svc/test/unit/lib/model/PartiesModel.test.js @@ -19,7 +19,7 @@ process.env.SUPPORTED_CURRENCIES='USD'; // we use a mock standard components lib to intercept and mock certain funcs jest.mock('@mojaloop/sdk-standard-components'); -const uuid = require('@mojaloop/central-services-shared').Util.id(); +const uuid = require('@mojaloop/central-services-shared').Util.id({ type: 'ulid' }); const Model = require('~/lib/model').PartiesModel; const PSM = require('~/lib/model/common').PersistentStateMachine; const { SDKStateEnum } = require('~/lib/model/common'); diff --git a/modules/api-svc/test/unit/lib/model/QuotesModel.test.js b/modules/api-svc/test/unit/lib/model/QuotesModel.test.js index e98f78fbb..7a9d8d41a 100644 --- a/modules/api-svc/test/unit/lib/model/QuotesModel.test.js +++ b/modules/api-svc/test/unit/lib/model/QuotesModel.test.js @@ -19,7 +19,7 @@ process.env.SUPPORTED_CURRENCIES='USD'; // we use a mock standard components lib to intercept and mock certain funcs jest.mock('@mojaloop/sdk-standard-components'); -const uuid = require('@mojaloop/central-services-shared').Util.id(); +const uuid = require('@mojaloop/central-services-shared').Util.id({ type: 'ulid' }); const Model = require('~/lib/model').QuotesModel; const PSM = require('~/lib/model/common').PersistentStateMachine; const { SDKStateEnum } = require('~/lib/model/common'); diff --git a/modules/api-svc/test/unit/lib/model/TransfersModel.test.js b/modules/api-svc/test/unit/lib/model/TransfersModel.test.js index 81f1b1f04..d1ff06197 100644 --- a/modules/api-svc/test/unit/lib/model/TransfersModel.test.js +++ b/modules/api-svc/test/unit/lib/model/TransfersModel.test.js @@ -19,7 +19,7 @@ process.env.SUPPORTED_CURRENCIES='USD'; // we use a mock standard components lib to intercept and mock certain funcs jest.mock('@mojaloop/sdk-standard-components'); -const uuid = require('@mojaloop/central-services-shared').Util.id(); +const uuid = require('@mojaloop/central-services-shared').Util.id({type: 'ulid'}); const Model = require('~/lib/model').TransfersModel; const PSM = require('~/lib/model/common').PersistentStateMachine; const { SDKStateEnum } = require('~/lib/model/common'); diff --git a/modules/api-svc/test/unit/lib/model/data/mocks.js b/modules/api-svc/test/unit/lib/model/data/mocks.js index 55a98ee77..019b8cdd7 100644 --- a/modules/api-svc/test/unit/lib/model/data/mocks.js +++ b/modules/api-svc/test/unit/lib/model/data/mocks.js @@ -1,5 +1,5 @@ /*eslint quote-props: ["error", "as-needed"]*/ -const randomUUID = require('@mojaloop/central-services-shared').Util.id(); +const randomUUID = require('@mojaloop/central-services-shared').Util.id({type: 'ulid'}); const DEFAULT_ID_VALUE = '2551234567890'; diff --git a/modules/api-svc/test/unit/outboundApi/handlers.test.js b/modules/api-svc/test/unit/outboundApi/handlers.test.js index b2ea57e9e..a80a7d7cd 100644 --- a/modules/api-svc/test/unit/outboundApi/handlers.test.js +++ b/modules/api-svc/test/unit/outboundApi/handlers.test.js @@ -29,7 +29,7 @@ const bulkQuoteRequest = require('./data/bulkQuoteRequest'); const requestToPayPayload = require('./data/requestToPay'); const requestToPayTransferRequest = require('./data/requestToPayTransferRequest'); const mockLogger = require('../mockLogger'); -const uuid = require('@mojaloop/central-services-shared').Util.id(); +const uuid = require('@mojaloop/central-services-shared').Util.id({type: 'ulid'}); jest.mock('~/lib/model'); diff --git a/modules/outbound-command-event-handler/package.json b/modules/outbound-command-event-handler/package.json index c5eee7f0c..c2eccc936 100644 --- a/modules/outbound-command-event-handler/package.json +++ b/modules/outbound-command-event-handler/package.json @@ -42,7 +42,7 @@ }, "dependencies": { "@mojaloop/api-snippets": "17.6.1", - "@mojaloop/central-services-shared": "^18.8.0", + "@mojaloop/central-services-shared": "^18.9.0", "@mojaloop/logging-bc-client-lib": "^0.1.17", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^", @@ -68,7 +68,7 @@ "copyfiles": "^2.4.1", "eslint": "^8.57.0", "jest": "^29.7.0", - "nodemon": "^3.1.5", + "nodemon": "^3.1.6", "npm-check-updates": "^16.7.10", "replace": "^1.2.2", "standard-version": "^9.5.0", diff --git a/modules/outbound-domain-event-handler/package.json b/modules/outbound-domain-event-handler/package.json index 75b6b0bfe..b42858e26 100644 --- a/modules/outbound-domain-event-handler/package.json +++ b/modules/outbound-domain-event-handler/package.json @@ -66,7 +66,7 @@ "copyfiles": "^2.4.1", "eslint": "^8.57.0", "jest": "^29.7.0", - "nodemon": "^3.1.5", + "nodemon": "^3.1.6", "npm-check-updates": "^16.7.10", "replace": "^1.2.2", "standard-version": "^9.5.0", diff --git a/modules/private-shared-lib/package.json b/modules/private-shared-lib/package.json index bfa00da4e..9c65f15c8 100644 --- a/modules/private-shared-lib/package.json +++ b/modules/private-shared-lib/package.json @@ -28,7 +28,7 @@ }, "dependencies": { "@mojaloop/api-snippets": "17.6.1", - "@mojaloop/central-services-shared": "^18.8.0", + "@mojaloop/central-services-shared": "^18.9.0", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", "@mojaloop/platform-shared-lib-messaging-types-lib": "^0.7.1", "@mojaloop/platform-shared-lib-nodejs-kafka-client-lib": "0.2.15", diff --git a/package.json b/package.json index cff8ee56e..6730f4733 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "eslint-plugin-import": "latest", "husky": "^9.1.6", "jest": "^29.7.0", - "nodemon": "^3.1.5", + "nodemon": "^3.1.6", "npm-check-updates": "^16.7.10", "replace": "^1.2.2", "standard-version": "^9.5.0", diff --git a/test/func/docker-compose.yml b/test/func/docker-compose.yml index 96a394d7a..c67cce608 100644 --- a/test/func/docker-compose.yml +++ b/test/func/docker-compose.yml @@ -123,7 +123,7 @@ services: ttk-ttksim1: networks: - mojaloop-net - image: mojaloop/ml-testing-toolkit:v17.2.2 + image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.0 container_name: ttk-ttksim1 user: root volumes: @@ -159,7 +159,7 @@ services: ttk-ttksim2: networks: - mojaloop-net - image: mojaloop/ml-testing-toolkit:v17.2.2 + image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.0 container_name: ttk-ttksim2 user: root volumes: @@ -189,7 +189,7 @@ services: ttk-ttksim3: networks: - mojaloop-net - image: mojaloop/ml-testing-toolkit:v17.2.2 + image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.0 container_name: ttk-ttksim3 user: root volumes: @@ -220,7 +220,7 @@ services: ttk-ttkfxp: networks: - mojaloop-net - image: mojaloop/ml-testing-toolkit:v17.2.2 + image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.0 container_name: ttk-ttkfxp user: root volumes: @@ -250,7 +250,7 @@ services: ttk-hub: networks: - mojaloop-net - image: mojaloop/ml-testing-toolkit:v17.2.2 + image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.0 container_name: ttk-hub user: root volumes: diff --git a/yarn.lock b/yarn.lock index 056db7c56..95d30b1c8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2093,9 +2093,9 @@ __metadata: languageName: node linkType: hard -"@mojaloop/central-services-shared@npm:18.8.0, @mojaloop/central-services-shared@npm:^18.8.0": - version: 18.8.0 - resolution: "@mojaloop/central-services-shared@npm:18.8.0" +"@mojaloop/central-services-shared@npm:18.9.0, @mojaloop/central-services-shared@npm:^18.9.0": + version: 18.9.0 + resolution: "@mojaloop/central-services-shared@npm:18.9.0" dependencies: "@hapi/catbox": 12.1.1 "@hapi/catbox-memory": 5.0.1 @@ -2113,6 +2113,7 @@ __metadata: raw-body: 3.0.0 rc: 1.2.8 shins: 2.6.0 + ulidx: 2.4.1 uuid4: 2.0.3 widdershins: ^4.0.1 yaml: 2.5.1 @@ -2136,7 +2137,7 @@ __metadata: optional: false ajv-keyboards: optional: false - checksum: e8ea3bd2ae4e593d4ebb0759dd4f42cffc91fc94f9bddb1a997b61e9b1995aa948447f38e929379cf070ed07dbf5c61b0e74d30d57fa18dd86ca479e06c3527f + checksum: ea99362a37e61077718900fad618ab600b74edd363e4c4ea9adda70ca0ae39b9b79ec51120d1e6a92f0089df1d81349ac581ddd2019d0f4854bd44e60c08ddbb languageName: node linkType: hard @@ -2255,7 +2256,7 @@ __metadata: "@mojaloop/central-services-error-handling": ^13.0.1 "@mojaloop/central-services-logger": ^11.5.1 "@mojaloop/central-services-metrics": ^12.0.8 - "@mojaloop/central-services-shared": 18.8.0 + "@mojaloop/central-services-shared": 18.9.0 "@mojaloop/event-sdk": ^14.1.1 "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^" "@mojaloop/sdk-standard-components": 18.4.1 @@ -2307,7 +2308,7 @@ __metadata: resolution: "@mojaloop/sdk-scheme-adapter-outbound-command-event-handler@workspace:modules/outbound-command-event-handler" dependencies: "@mojaloop/api-snippets": 17.6.1 - "@mojaloop/central-services-shared": ^18.8.0 + "@mojaloop/central-services-shared": ^18.9.0 "@mojaloop/logging-bc-client-lib": ^0.1.17 "@mojaloop/logging-bc-public-types-lib": ^0.5.4 "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^" @@ -2327,7 +2328,7 @@ __metadata: eslint: ^8.57.0 express: ^4.21.0 jest: ^29.7.0 - nodemon: ^3.1.5 + nodemon: ^3.1.6 npm-check-updates: ^16.7.10 openapi-backend: ^5.11.0 redis: ^4.7.0 @@ -2364,7 +2365,7 @@ __metadata: eslint: ^8.57.0 express: ^4.21.0 jest: ^29.7.0 - nodemon: ^3.1.5 + nodemon: ^3.1.6 npm-check-updates: ^16.7.10 openapi-backend: ^5.11.0 redis: ^4.7.0 @@ -2383,7 +2384,7 @@ __metadata: resolution: "@mojaloop/sdk-scheme-adapter-private-shared-lib@workspace:modules/private-shared-lib" dependencies: "@mojaloop/api-snippets": 17.6.1 - "@mojaloop/central-services-shared": ^18.8.0 + "@mojaloop/central-services-shared": ^18.9.0 "@mojaloop/logging-bc-public-types-lib": ^0.5.4 "@mojaloop/platform-shared-lib-messaging-types-lib": ^0.7.1 "@mojaloop/platform-shared-lib-nodejs-kafka-client-lib": 0.2.15 @@ -2417,7 +2418,7 @@ __metadata: eslint-plugin-import: latest husky: ^9.1.6 jest: ^29.7.0 - nodemon: ^3.1.5 + nodemon: ^3.1.6 npm-check-updates: ^16.7.10 nx: 16.5.0 replace: ^1.2.2 @@ -9648,6 +9649,13 @@ __metadata: languageName: node linkType: hard +"layerr@npm:^3.0.0": + version: 3.0.0 + resolution: "layerr@npm:3.0.0" + checksum: 5b9518795ef5d447f2b4c66ebab223b0a4fb37505ba27013920f71691726211298e630750d5fa8b03ddb5ce191d24e26d49fa40e0042193ecd680f15d89311f9 + languageName: node + linkType: hard + "lazy-cache@npm:^1.0.3": version: 1.0.4 resolution: "lazy-cache@npm:1.0.4" @@ -10756,9 +10764,9 @@ __metadata: languageName: node linkType: hard -"nodemon@npm:^3.1.5": - version: 3.1.5 - resolution: "nodemon@npm:3.1.5" +"nodemon@npm:^3.1.6": + version: 3.1.6 + resolution: "nodemon@npm:3.1.6" dependencies: chokidar: ^3.5.2 debug: ^4 @@ -10772,7 +10780,7 @@ __metadata: undefsafe: ^2.0.5 bin: nodemon: bin/nodemon.js - checksum: 56a41473b4990efebe8341f1da360af49d3b9e62c164d76ef6ec7f81efeca56c990dd4f275f03ddd1afde83d27c1ed3abe9c73d712fbebe08406c459b9f030ab + checksum: efa0e5cd34db4d38e6abdb54b468b968bdfa6ea366abb08707e8f4335894730d4f57b826daab995141f4b952aa110b6b3084c25d71a0560c363df3b95d51374d languageName: node linkType: hard @@ -14324,6 +14332,15 @@ __metadata: languageName: node linkType: hard +"ulidx@npm:2.4.1": + version: 2.4.1 + resolution: "ulidx@npm:2.4.1" + dependencies: + layerr: ^3.0.0 + checksum: 76f3c3fe05c9df59aabe513f77b4ecb931ab8801cc8a37e0a8dbfc147f12d3062b2420e221f51b3bf174f0d62cce2faf13262faee6ce85fb5b6ba824fd8679c2 + languageName: node + linkType: hard + "unbox-primitive@npm:^1.0.2": version: 1.0.2 resolution: "unbox-primitive@npm:1.0.2" From 12e864d24d00f4653061e4280c6c33ccfb79d5c3 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Fri, 20 Sep 2024 07:10:14 +0000 Subject: [PATCH 02/25] test: fix unit and functional tests --- .../test/__mocks__/@mojaloop/central-services-shared.js | 9 +++------ .../accounts/data/postAccountsErrorMojaloopResponse.json | 2 +- .../accounts/data/postAccountsErrorTimeoutResponse.json | 4 ++-- .../api/accounts/data/postAccountsSuccessResponse.json | 2 +- .../data/postAccountsSuccessResponseWithError1.json | 2 +- .../data/postAccountsSuccessResponseWithError2.json | 2 +- .../transfers/data/getTransfersCommittedResponse.json | 2 +- .../api/transfers/data/getTransfersErrorNotFound.json | 2 +- .../test/unit/api/transfers/data/postQuotesBody.json | 4 ++-- .../test/unit/api/transfers/data/postTransfersBody.json | 2 +- .../data/postTransfersErrorMojaloopResponse.json | 2 +- .../data/postTransfersErrorTimeoutResponse.json | 4 ++-- .../api/transfers/data/postTransfersSuccessResponse.json | 4 ++-- modules/api-svc/test/unit/api/transfers/utils.js | 2 +- modules/api-svc/test/unit/data/postQuotesBody.json | 4 ++-- .../trigger_templates/transaction_request_followup.json | 2 +- .../trigger_templates/transaction_request_followup.json | 2 +- .../ttk-ttksim1/spec_files/rules_response/default.json | 2 +- .../ttk-ttksim2/spec_files/rules_response/default.json | 2 +- 19 files changed, 26 insertions(+), 29 deletions(-) diff --git a/modules/api-svc/test/__mocks__/@mojaloop/central-services-shared.js b/modules/api-svc/test/__mocks__/@mojaloop/central-services-shared.js index f258ae98a..f0c3aab22 100644 --- a/modules/api-svc/test/__mocks__/@mojaloop/central-services-shared.js +++ b/modules/api-svc/test/__mocks__/@mojaloop/central-services-shared.js @@ -1,9 +1,6 @@ const components = jest.requireActual('@mojaloop/central-services-shared'); -const { Util: {id: idGenerator} } = require('@mojaloop/central-services-shared'); -let id = idGenerator({ type: 'ulid' }); +let id = 0; -components.Util.id = () => () => id(1); -components.Util.id.__reset = () => { idGenerator({ type: 'ulid' }); }; - -module.exports = components; +components.Util.id = () => () => (++id).toString().padStart(26, '0'); +components.Util.id.__reset = () => { id = 0; }; diff --git a/modules/api-svc/test/unit/api/accounts/data/postAccountsErrorMojaloopResponse.json b/modules/api-svc/test/unit/api/accounts/data/postAccountsErrorMojaloopResponse.json index 295c83a3e..b936cf0bb 100644 --- a/modules/api-svc/test/unit/api/accounts/data/postAccountsErrorMojaloopResponse.json +++ b/modules/api-svc/test/unit/api/accounts/data/postAccountsErrorMojaloopResponse.json @@ -27,7 +27,7 @@ } } }, - "modelId": "00000000-0000-1000-8000-000000000001", + "modelId": "00000000000000000000000001", "response": [] } } diff --git a/modules/api-svc/test/unit/api/accounts/data/postAccountsErrorTimeoutResponse.json b/modules/api-svc/test/unit/api/accounts/data/postAccountsErrorTimeoutResponse.json index c8b51da30..795c3e42c 100644 --- a/modules/api-svc/test/unit/api/accounts/data/postAccountsErrorTimeoutResponse.json +++ b/modules/api-svc/test/unit/api/accounts/data/postAccountsErrorTimeoutResponse.json @@ -11,9 +11,9 @@ "lastError": { "httpStatusCode": 504 }, - "modelId": "00000000-0000-1000-8000-000000000001", + "modelId": "00000000000000000000000001", "response": [] }, - "message": "Timeout waiting for response to account creation request 00000000-0000-1000-8000-000000000002", + "message": "Timeout waiting for response to account creation request 00000000000000000000000002", "statusCode": "504" } diff --git a/modules/api-svc/test/unit/api/accounts/data/postAccountsSuccessResponse.json b/modules/api-svc/test/unit/api/accounts/data/postAccountsSuccessResponse.json index f5627fd10..65261c967 100644 --- a/modules/api-svc/test/unit/api/accounts/data/postAccountsSuccessResponse.json +++ b/modules/api-svc/test/unit/api/accounts/data/postAccountsSuccessResponse.json @@ -7,7 +7,7 @@ } ], "currentState": "COMPLETED", - "modelId": "00000000-0000-1000-8000-000000000001", + "modelId": "00000000000000000000000001", "postAccountsResponse": { "body": { "currency": "USD", diff --git a/modules/api-svc/test/unit/api/accounts/data/postAccountsSuccessResponseWithError1.json b/modules/api-svc/test/unit/api/accounts/data/postAccountsSuccessResponseWithError1.json index 291336f18..179796347 100644 --- a/modules/api-svc/test/unit/api/accounts/data/postAccountsSuccessResponseWithError1.json +++ b/modules/api-svc/test/unit/api/accounts/data/postAccountsSuccessResponseWithError1.json @@ -7,7 +7,7 @@ } ], "currentState": "COMPLETED", - "modelId": "00000000-0000-1000-8000-000000000001", + "modelId": "00000000000000000000000001", "postAccountsResponse": { "body": { "partyList": [ diff --git a/modules/api-svc/test/unit/api/accounts/data/postAccountsSuccessResponseWithError2.json b/modules/api-svc/test/unit/api/accounts/data/postAccountsSuccessResponseWithError2.json index cf94037a4..44c4ff969 100644 --- a/modules/api-svc/test/unit/api/accounts/data/postAccountsSuccessResponseWithError2.json +++ b/modules/api-svc/test/unit/api/accounts/data/postAccountsSuccessResponseWithError2.json @@ -7,7 +7,7 @@ } ], "currentState": "COMPLETED", - "modelId": "00000000-0000-1000-8000-000000000001", + "modelId": "00000000000000000000000001", "postAccountsResponse": { "body": { "currency": "USD", diff --git a/modules/api-svc/test/unit/api/transfers/data/getTransfersCommittedResponse.json b/modules/api-svc/test/unit/api/transfers/data/getTransfersCommittedResponse.json index fc2d298ce..159aac9a9 100644 --- a/modules/api-svc/test/unit/api/transfers/data/getTransfersCommittedResponse.json +++ b/modules/api-svc/test/unit/api/transfers/data/getTransfersCommittedResponse.json @@ -20,5 +20,5 @@ "transferState": "COMMITTED" } }, - "transferId": "00000000-0000-1000-8000-000000000001" + "transferId": "00000000000000000000000001" } diff --git a/modules/api-svc/test/unit/api/transfers/data/getTransfersErrorNotFound.json b/modules/api-svc/test/unit/api/transfers/data/getTransfersErrorNotFound.json index 0f88913ec..219867951 100644 --- a/modules/api-svc/test/unit/api/transfers/data/getTransfersErrorNotFound.json +++ b/modules/api-svc/test/unit/api/transfers/data/getTransfersErrorNotFound.json @@ -13,6 +13,6 @@ } } }, - "transferId": "00000000-0000-1000-8000-000000000001" + "transferId": "00000000000000000000000001" } } diff --git a/modules/api-svc/test/unit/api/transfers/data/postQuotesBody.json b/modules/api-svc/test/unit/api/transfers/data/postQuotesBody.json index 2f60f0acd..abdd24c7f 100644 --- a/modules/api-svc/test/unit/api/transfers/data/postQuotesBody.json +++ b/modules/api-svc/test/unit/api/transfers/data/postQuotesBody.json @@ -42,8 +42,8 @@ "partyIdentifier": "123456789" } }, - "quoteId": "00000000-0000-1000-8000-000000000002", - "transactionId": "00000000-0000-1000-8000-000000000001", + "quoteId": "0000000001R5H8CJPJ5DRHD558", + "transactionId": "0000000001R5H8CJPJ5DRHD557", "transactionType": { "initiator": "PAYER", "initiatorType": "CONSUMER", diff --git a/modules/api-svc/test/unit/api/transfers/data/postTransfersBody.json b/modules/api-svc/test/unit/api/transfers/data/postTransfersBody.json index 4c26035fa..76bdc6ab0 100644 --- a/modules/api-svc/test/unit/api/transfers/data/postTransfersBody.json +++ b/modules/api-svc/test/unit/api/transfers/data/postTransfersBody.json @@ -20,5 +20,5 @@ "ilpPacket": "AQAAAAAAACasIWcuc2UubW9iaWxlbW9uZXkubXNpc2RuLjEyMzQ1Njc4OYIEIXsNCiAgICAidHJhbnNhY3Rpb25JZCI6ICI4NWZlYWMyZi0zOWIyLTQ5MWItODE3ZS00YTAzMjAzZDRmMTQiLA0KICAgICJxdW90ZUlkIjogIjdjMjNlODBjLWQwNzgtNDA3Ny04MjYzLTJjMDQ3ODc2ZmNmNiIsDQogICAgInBheWVlIjogew0KICAgICAgICAicGFydHlJZEluZm8iOiB7DQogICAgICAgICAgICAicGFydHlJZFR5cGUiOiAiTVNJU0ROIiwNCiAgICAgICAgICAgICJwYXJ0eUlkZW50aWZpZXIiOiAiMTIzNDU2Nzg5IiwNCiAgICAgICAgICAgICJmc3BJZCI6ICJNb2JpbGVNb25leSINCiAgICAgICAgfSwNCiAgICAgICAgInBlcnNvbmFsSW5mbyI6IHsNCiAgICAgICAgICAgICJjb21wbGV4TmFtZSI6IHsNCiAgICAgICAgICAgICAgICAiZmlyc3ROYW1lIjogIkhlbnJpayIsDQogICAgICAgICAgICAgICAgImxhc3ROYW1lIjogIkthcmxzc29uIg0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfSwNCiAgICAicGF5ZXIiOiB7DQogICAgICAgICJwZXJzb25hbEluZm8iOiB7DQogICAgICAgICAgICAiY29tcGxleE5hbWUiOiB7DQogICAgICAgICAgICAgICAgImZpcnN0TmFtZSI6ICJNYXRzIiwNCiAgICAgICAgICAgICAgICAibGFzdE5hbWUiOiAiSGFnbWFuIg0KICAgICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicGFydHlJZEluZm8iOiB7DQogICAgICAgICAgICAicGFydHlJZFR5cGUiOiAiSUJBTiIsDQogICAgICAgICAgICAicGFydHlJZGVudGlmaWVyIjogIlNFNDU1MDAwMDAwMDA1ODM5ODI1NzQ2NiIsDQogICAgICAgICAgICAiZnNwSWQiOiAiQmFua05yT25lIg0KICAgICAgICB9DQogICAgfSwNCiAgICAiYW1vdW50Ijogew0KICAgICAgICAiYW1vdW50IjogIjEwMCIsDQogICAgICAgICJjdXJyZW5jeSI6ICJVU0QiDQogICAgfSwNCiAgICAidHJhbnNhY3Rpb25UeXBlIjogew0KICAgICAgICAic2NlbmFyaW8iOiAiVFJBTlNGRVIiLA0KICAgICAgICAiaW5pdGlhdG9yIjogIlBBWUVSIiwNCiAgICAgICAgImluaXRpYXRvclR5cGUiOiAiQ09OU1VNRVIiDQogICAgfSwNCiAgICAibm90ZSI6ICJGcm9tIE1hdHMiDQp9DQo==", "payeeFsp": "sim", "payerFsp": "mojaloop-sdk", - "transferId": "00000000-0000-1000-8000-000000000001" + "transferId": "0000000001R5H8CJPJ5DRHD557" } diff --git a/modules/api-svc/test/unit/api/transfers/data/postTransfersErrorMojaloopResponse.json b/modules/api-svc/test/unit/api/transfers/data/postTransfersErrorMojaloopResponse.json index 1f15a8710..76095e94c 100644 --- a/modules/api-svc/test/unit/api/transfers/data/postTransfersErrorMojaloopResponse.json +++ b/modules/api-svc/test/unit/api/transfers/data/postTransfersErrorMojaloopResponse.json @@ -48,7 +48,7 @@ }, "transactionType": "TRANSFER", "subScenario": "SUBSCENARIO", - "transferId": "00000000-0000-1000-8000-000000000001", + "transferId": "00000000000000000000000001", "transferRequestExtensions": [ { "key": "treqkey1", diff --git a/modules/api-svc/test/unit/api/transfers/data/postTransfersErrorTimeoutResponse.json b/modules/api-svc/test/unit/api/transfers/data/postTransfersErrorTimeoutResponse.json index 1d348f880..99c447b35 100644 --- a/modules/api-svc/test/unit/api/transfers/data/postTransfersErrorTimeoutResponse.json +++ b/modules/api-svc/test/unit/api/transfers/data/postTransfersErrorTimeoutResponse.json @@ -1,5 +1,5 @@ { - "message": "Timeout resolving payee for transfer 00000000-0000-1000-8000-000000000001", + "message": "Timeout resolving payee for transfer 00000000000000000000000001", "statusCode": "504", "transferState": { "amount": "100", @@ -34,7 +34,7 @@ }, "transactionType": "TRANSFER", "subScenario": "SUBSCENARIO", - "transferId": "00000000-0000-1000-8000-000000000001", + "transferId": "00000000000000000000000001", "transferRequestExtensions": [ { "key": "treqkey1", diff --git a/modules/api-svc/test/unit/api/transfers/data/postTransfersSuccessResponse.json b/modules/api-svc/test/unit/api/transfers/data/postTransfersSuccessResponse.json index 316b46aa8..4cd6ab9e2 100644 --- a/modules/api-svc/test/unit/api/transfers/data/postTransfersSuccessResponse.json +++ b/modules/api-svc/test/unit/api/transfers/data/postTransfersSuccessResponse.json @@ -52,7 +52,7 @@ }, "homeTransactionId": "123ABC", "note": "test payment", - "quoteId": "00000000-0000-1000-8000-000000000002", + "quoteId": "00000000000000000000000002", "quoteRequestExtensions": [ { "key": "qreqkey1", @@ -115,7 +115,7 @@ }, "transactionType": "TRANSFER", "subScenario": "SUBSCENARIO", - "transferId": "00000000-0000-1000-8000-000000000001", + "transferId": "00000000000000000000000001", "transferRequestExtensions": [ { "key": "treqkey1", diff --git a/modules/api-svc/test/unit/api/transfers/utils.js b/modules/api-svc/test/unit/api/transfers/utils.js index fba2df9be..1d5537913 100644 --- a/modules/api-svc/test/unit/api/transfers/utils.js +++ b/modules/api-svc/test/unit/api/transfers/utils.js @@ -22,7 +22,7 @@ function createGetTransfersTester({ reqInbound, reqOutbound, apiSpecsOutbound }) * @return {Promise} */ return async (putBodyFn, responseCode, responseBody) => { - const TRANSFER_ID = '00000000-0000-1000-8000-000000000001'; + const TRANSFER_ID = '00000000000000000000000001'; const endpoint = new URL(`http://${defaultConfig.peerEndpoint}`).host; const switchEndpoint = `http://${endpoint}`; diff --git a/modules/api-svc/test/unit/data/postQuotesBody.json b/modules/api-svc/test/unit/data/postQuotesBody.json index 2f60f0acd..6b6ea4975 100644 --- a/modules/api-svc/test/unit/data/postQuotesBody.json +++ b/modules/api-svc/test/unit/data/postQuotesBody.json @@ -42,8 +42,8 @@ "partyIdentifier": "123456789" } }, - "quoteId": "00000000-0000-1000-8000-000000000002", - "transactionId": "00000000-0000-1000-8000-000000000001", + "quoteId": "00000000000000000000000002", + "transactionId": "00000000000000000000000001", "transactionType": { "initiator": "PAYER", "initiatorType": "CONSUMER", diff --git a/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json b/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json index 408cc6285..0c1aa45f0 100644 --- a/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json +++ b/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json @@ -43,7 +43,7 @@ "FSPIOP-Source": "{$inputs.TrsPayerFspId}" }, "body": { - "quoteId": "{$function.generic.generateUUID}", + "quoteId": "{$function.generic.generateULID}", "transactionId": "{$inputs.transactionId}", "payer": { "partyIdInfo": { diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json b/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json index 408cc6285..0c1aa45f0 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json @@ -43,7 +43,7 @@ "FSPIOP-Source": "{$inputs.TrsPayerFspId}" }, "body": { - "quoteId": "{$function.generic.generateUUID}", + "quoteId": "{$function.generic.generateULID}", "transactionId": "{$inputs.transactionId}", "payer": { "partyIdInfo": { diff --git a/test/func/config/ttk-ttksim1/spec_files/rules_response/default.json b/test/func/config/ttk-ttksim1/spec_files/rules_response/default.json index b22a91281..d5dd9230a 100644 --- a/test/func/config/ttk-ttksim1/spec_files/rules_response/default.json +++ b/test/func/config/ttk-ttksim1/spec_files/rules_response/default.json @@ -1272,7 +1272,7 @@ "params": { "body": { "homeR2PTransactionId": "cba321", - "transactionId": "{$function.generic.generateUUID}", + "transactionId": "{$function.generic.generateULID}", "transactionRequestState": "RECEIVED" }, "statusCode": "200", diff --git a/test/func/config/ttk-ttksim2/spec_files/rules_response/default.json b/test/func/config/ttk-ttksim2/spec_files/rules_response/default.json index a28ab54ca..7b17075a7 100644 --- a/test/func/config/ttk-ttksim2/spec_files/rules_response/default.json +++ b/test/func/config/ttk-ttksim2/spec_files/rules_response/default.json @@ -1332,7 +1332,7 @@ "params": { "body": { "homeR2PTransactionId": "cba321", - "transactionId": "{$function.generic.generateUUID}", + "transactionId": "{$function.generic.generateULID}", "transactionRequestState": "RECEIVED" }, "statusCode": "200", From b9f2a16900154daf383118d70261b943853dd20c Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Fri, 20 Sep 2024 07:57:37 +0000 Subject: [PATCH 03/25] test: fix unit and functional tests --- .../api-svc/test/__mocks__/@mojaloop/central-services-shared.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/api-svc/test/__mocks__/@mojaloop/central-services-shared.js b/modules/api-svc/test/__mocks__/@mojaloop/central-services-shared.js index f0c3aab22..bfae8f341 100644 --- a/modules/api-svc/test/__mocks__/@mojaloop/central-services-shared.js +++ b/modules/api-svc/test/__mocks__/@mojaloop/central-services-shared.js @@ -4,3 +4,5 @@ let id = 0; components.Util.id = () => () => (++id).toString().padStart(26, '0'); components.Util.id.__reset = () => { id = 0; }; + +module.exports = components; From 101087524253470a18ded01300e1553e8f4ee111 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Fri, 20 Sep 2024 09:52:08 +0000 Subject: [PATCH 04/25] test: fix unit and functional tests --- modules/api-svc/package.json | 2 +- .../api/transfers/data/postQuotesBody.json | 4 ++-- .../api/transfers/data/postTransfersBody.json | 2 +- modules/api-svc/test/unit/api/utils.js | 2 +- yarn.lock | 19 ++++++++++++++++++- 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/modules/api-svc/package.json b/modules/api-svc/package.json index 9c44c3698..078b5675e 100644 --- a/modules/api-svc/package.json +++ b/modules/api-svc/package.json @@ -63,7 +63,7 @@ }, "dependencies": { "@koa/cors": "^5.0.0", - "@mojaloop/api-snippets": "17.6.1", + "@mojaloop/api-snippets": "17.7.0-snapshot.1", "@mojaloop/central-services-error-handling": "^13.0.1", "@mojaloop/central-services-logger": "^11.5.1", "@mojaloop/central-services-metrics": "^12.0.8", diff --git a/modules/api-svc/test/unit/api/transfers/data/postQuotesBody.json b/modules/api-svc/test/unit/api/transfers/data/postQuotesBody.json index abdd24c7f..6b6ea4975 100644 --- a/modules/api-svc/test/unit/api/transfers/data/postQuotesBody.json +++ b/modules/api-svc/test/unit/api/transfers/data/postQuotesBody.json @@ -42,8 +42,8 @@ "partyIdentifier": "123456789" } }, - "quoteId": "0000000001R5H8CJPJ5DRHD558", - "transactionId": "0000000001R5H8CJPJ5DRHD557", + "quoteId": "00000000000000000000000002", + "transactionId": "00000000000000000000000001", "transactionType": { "initiator": "PAYER", "initiatorType": "CONSUMER", diff --git a/modules/api-svc/test/unit/api/transfers/data/postTransfersBody.json b/modules/api-svc/test/unit/api/transfers/data/postTransfersBody.json index 76bdc6ab0..0199c65bd 100644 --- a/modules/api-svc/test/unit/api/transfers/data/postTransfersBody.json +++ b/modules/api-svc/test/unit/api/transfers/data/postTransfersBody.json @@ -20,5 +20,5 @@ "ilpPacket": "AQAAAAAAACasIWcuc2UubW9iaWxlbW9uZXkubXNpc2RuLjEyMzQ1Njc4OYIEIXsNCiAgICAidHJhbnNhY3Rpb25JZCI6ICI4NWZlYWMyZi0zOWIyLTQ5MWItODE3ZS00YTAzMjAzZDRmMTQiLA0KICAgICJxdW90ZUlkIjogIjdjMjNlODBjLWQwNzgtNDA3Ny04MjYzLTJjMDQ3ODc2ZmNmNiIsDQogICAgInBheWVlIjogew0KICAgICAgICAicGFydHlJZEluZm8iOiB7DQogICAgICAgICAgICAicGFydHlJZFR5cGUiOiAiTVNJU0ROIiwNCiAgICAgICAgICAgICJwYXJ0eUlkZW50aWZpZXIiOiAiMTIzNDU2Nzg5IiwNCiAgICAgICAgICAgICJmc3BJZCI6ICJNb2JpbGVNb25leSINCiAgICAgICAgfSwNCiAgICAgICAgInBlcnNvbmFsSW5mbyI6IHsNCiAgICAgICAgICAgICJjb21wbGV4TmFtZSI6IHsNCiAgICAgICAgICAgICAgICAiZmlyc3ROYW1lIjogIkhlbnJpayIsDQogICAgICAgICAgICAgICAgImxhc3ROYW1lIjogIkthcmxzc29uIg0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfSwNCiAgICAicGF5ZXIiOiB7DQogICAgICAgICJwZXJzb25hbEluZm8iOiB7DQogICAgICAgICAgICAiY29tcGxleE5hbWUiOiB7DQogICAgICAgICAgICAgICAgImZpcnN0TmFtZSI6ICJNYXRzIiwNCiAgICAgICAgICAgICAgICAibGFzdE5hbWUiOiAiSGFnbWFuIg0KICAgICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicGFydHlJZEluZm8iOiB7DQogICAgICAgICAgICAicGFydHlJZFR5cGUiOiAiSUJBTiIsDQogICAgICAgICAgICAicGFydHlJZGVudGlmaWVyIjogIlNFNDU1MDAwMDAwMDA1ODM5ODI1NzQ2NiIsDQogICAgICAgICAgICAiZnNwSWQiOiAiQmFua05yT25lIg0KICAgICAgICB9DQogICAgfSwNCiAgICAiYW1vdW50Ijogew0KICAgICAgICAiYW1vdW50IjogIjEwMCIsDQogICAgICAgICJjdXJyZW5jeSI6ICJVU0QiDQogICAgfSwNCiAgICAidHJhbnNhY3Rpb25UeXBlIjogew0KICAgICAgICAic2NlbmFyaW8iOiAiVFJBTlNGRVIiLA0KICAgICAgICAiaW5pdGlhdG9yIjogIlBBWUVSIiwNCiAgICAgICAgImluaXRpYXRvclR5cGUiOiAiQ09OU1VNRVIiDQogICAgfSwNCiAgICAibm90ZSI6ICJGcm9tIE1hdHMiDQp9DQo==", "payeeFsp": "sim", "payerFsp": "mojaloop-sdk", - "transferId": "0000000001R5H8CJPJ5DRHD557" + "transferId": "00000000000000000000000001" } diff --git a/modules/api-svc/test/unit/api/utils.js b/modules/api-svc/test/unit/api/utils.js index a65d7ac4f..fbd8190c5 100644 --- a/modules/api-svc/test/unit/api/utils.js +++ b/modules/api-svc/test/unit/api/utils.js @@ -23,7 +23,7 @@ const ServerType = { const readApiInfo = async (serverType) => { let specPath; if (serverType === ServerType.Outbound) { - specPath = path.join(path.dirname(require.resolve('@mojaloop/api-snippets')), '../docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml'); + specPath = path.join(path.dirname(require.resolve('@mojaloop/api-snippets')), '../docs/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets.yaml'); } else if (serverType === ServerType.Inbound) { specPath = path.join(__dirname, '../../../src/InboundServer/api.yaml'); } diff --git a/yarn.lock b/yarn.lock index 95d30b1c8..1a96b34d9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2058,6 +2058,23 @@ __metadata: languageName: node linkType: hard +"@mojaloop/api-snippets@npm:17.7.0-snapshot.1": + version: 17.7.0-snapshot.1 + resolution: "@mojaloop/api-snippets@npm:17.7.0-snapshot.1" + dependencies: + "@apidevtools/json-schema-ref-parser": ^9.1.2 + "@redocly/openapi-core": ^1.5.0 + commander: ^12.1.0 + jest-ts-auto-mock: ^2.1.0 + js-yaml: ^4.1.0 + json-refs: ^3.0.15 + openapi-types: ^12.1.3 + openapi-typescript: ^7.4.0 + ts-auto-mock: ^3.7.4 + checksum: e3373246dc16629fddd2867dbf39d581bfd2881787752e19ea68623258bc6a891aa12c66edfa977ad2de99e2b3c5a7c8574299ad0377d892bd1af2c266540ede + languageName: node + linkType: hard + "@mojaloop/central-services-error-handling@npm:^13.0.1": version: 13.0.1 resolution: "@mojaloop/central-services-error-handling@npm:13.0.1" @@ -2252,7 +2269,7 @@ __metadata: "@babel/core": ^7.25.2 "@babel/preset-env": ^7.25.4 "@koa/cors": ^5.0.0 - "@mojaloop/api-snippets": 17.6.1 + "@mojaloop/api-snippets": 17.7.0-snapshot.1 "@mojaloop/central-services-error-handling": ^13.0.1 "@mojaloop/central-services-logger": ^11.5.1 "@mojaloop/central-services-metrics": ^12.0.8 From fb0f45149fe532f068b4c2f986ef6451df12cd74 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Fri, 20 Sep 2024 10:39:17 +0000 Subject: [PATCH 05/25] test: fix unit and functional tests --- .../api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 0cbbade3a..8c3cc0ba8 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 @@ -1369,9 +1369,9 @@ components: - initiatorType type: object transactionRequestId: - description: A Mojaloop API transaction request identifier (UUID). + description: A Mojaloop API transaction request identifier (UUID/ULID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. From 74bffc6dfc7deb51645857768ac3960aee0964a0 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Fri, 20 Sep 2024 11:02:28 +0000 Subject: [PATCH 06/25] test: fix unit and functional tests --- .../api_definitions/fspiop_2.0/api_spec.yaml | 2 +- .../api_spec.yaml | 2 +- .../mojaloop_simulator_sim_1.4/api_spec.yaml | 12 ++++++------ .../api_spec.yaml | 14 +++++++------- .../api_spec.yaml | 2 +- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/api_spec.yaml b/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/api_spec.yaml index b1a0a6cca..5675aa94b 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/api_spec.yaml +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/api_spec.yaml @@ -2918,7 +2918,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml b/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml index be6f65971..dcdbe7c13 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml @@ -824,7 +824,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in 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 8c3cc0ba8..dadb7c0d9 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 @@ -687,7 +687,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -736,7 +736,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1214,7 +1214,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1324,7 +1324,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1470,7 +1470,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1621,7 +1621,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index 6b457e70f..3a8a7e7cb 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -747,7 +747,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -796,7 +796,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1259,7 +1259,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1389,7 +1389,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1436,7 +1436,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1535,7 +1535,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1746,7 +1746,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index 24c97043f..7d15ee3c6 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -919,7 +919,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in From 210f1d28bed8594b8f19ea3bd53ea340ea06c23f Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Fri, 20 Sep 2024 11:40:08 +0000 Subject: [PATCH 07/25] test: fix unit and functional tests --- .../api_definitions/fspiop_2.0/api_spec.yaml | 2 +- .../api_spec.yaml | 14 +++++++------- .../api_spec.yaml | 14 +++++++------- .../api_spec.yaml | 14 +++++++------- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/api_spec.yaml b/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/api_spec.yaml index b1a0a6cca..5675aa94b 100644 --- a/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/api_spec.yaml +++ b/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/api_spec.yaml @@ -2918,7 +2918,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttkfxp/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttkfxp/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index 6b457e70f..3a8a7e7cb 100644 --- a/test/func/config/ttk-ttkfxp/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttkfxp/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -747,7 +747,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -796,7 +796,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1259,7 +1259,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1389,7 +1389,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1436,7 +1436,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1535,7 +1535,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1746,7 +1746,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim2/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttksim2/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index 6b457e70f..3a8a7e7cb 100644 --- a/test/func/config/ttk-ttksim2/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttksim2/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -747,7 +747,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -796,7 +796,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1259,7 +1259,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1389,7 +1389,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1436,7 +1436,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1535,7 +1535,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1746,7 +1746,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim3/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttksim3/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index 6b457e70f..3a8a7e7cb 100644 --- a/test/func/config/ttk-ttksim3/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttksim3/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -747,7 +747,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -796,7 +796,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1259,7 +1259,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1389,7 +1389,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1436,7 +1436,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1535,7 +1535,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1746,7 +1746,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in From 32588d929f6deb3e4410b7c34bc140f896bb1753 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Fri, 20 Sep 2024 12:02:00 +0000 Subject: [PATCH 08/25] test: fix unit and functional tests --- .../api_spec.yaml | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/test/func/config/ttk-hub/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml b/test/func/config/ttk-hub/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml index edb6d69ec..58e27fc87 100644 --- a/test/func/config/ttk-hub/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +++ b/test/func/config/ttk-hub/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml @@ -560,7 +560,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -648,7 +648,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -1063,7 +1063,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -1119,7 +1119,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -1183,7 +1183,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -1612,7 +1612,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally @@ -1628,7 +1628,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally @@ -1710,7 +1710,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID @@ -1778,7 +1778,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -1821,7 +1821,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID @@ -1978,7 +1978,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -1992,7 +1992,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2020,7 +2020,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2166,7 +2166,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -2195,7 +2195,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2271,7 +2271,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2299,7 +2299,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2409,7 +2409,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2463,7 +2463,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2595,7 +2595,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -2624,7 +2624,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2834,7 +2834,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2920,7 +2920,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3226,7 +3226,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3310,7 +3310,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3402,7 +3402,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -3549,7 +3549,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3837,7 +3837,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3852,7 +3852,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3867,7 +3867,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -4118,7 +4118,7 @@ paths: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -4470,7 +4470,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in From 94df1be4782f6b77b4f01240156992bd1b8b5f06 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Fri, 20 Sep 2024 20:51:54 +0000 Subject: [PATCH 09/25] test: functional tests --- modules/api-svc/package.json | 2 +- modules/outbound-command-event-handler/package.json | 2 +- modules/outbound-domain-event-handler/package.json | 2 +- package.json | 2 +- .../config/ttk-hub/spec_files/system_config.json | 12 ------------ 5 files changed, 4 insertions(+), 16 deletions(-) diff --git a/modules/api-svc/package.json b/modules/api-svc/package.json index 078b5675e..ed3f71e98 100644 --- a/modules/api-svc/package.json +++ b/modules/api-svc/package.json @@ -109,7 +109,7 @@ "nock": "^13.5.5", "npm-check-updates": "^16.7.10", "openapi-response-validator": "^12.1.3", - "openapi-typescript": "^7.4.0", + "openapi-typescript": "^7.4.1", "redis-mock": "^0.56.3", "replace": "^1.2.2", "standard-version": "^9.5.0", diff --git a/modules/outbound-command-event-handler/package.json b/modules/outbound-command-event-handler/package.json index c2eccc936..ed3d66232 100644 --- a/modules/outbound-command-event-handler/package.json +++ b/modules/outbound-command-event-handler/package.json @@ -68,7 +68,7 @@ "copyfiles": "^2.4.1", "eslint": "^8.57.0", "jest": "^29.7.0", - "nodemon": "^3.1.6", + "nodemon": "^3.1.7", "npm-check-updates": "^16.7.10", "replace": "^1.2.2", "standard-version": "^9.5.0", diff --git a/modules/outbound-domain-event-handler/package.json b/modules/outbound-domain-event-handler/package.json index b42858e26..e05b8c04f 100644 --- a/modules/outbound-domain-event-handler/package.json +++ b/modules/outbound-domain-event-handler/package.json @@ -66,7 +66,7 @@ "copyfiles": "^2.4.1", "eslint": "^8.57.0", "jest": "^29.7.0", - "nodemon": "^3.1.6", + "nodemon": "^3.1.7", "npm-check-updates": "^16.7.10", "replace": "^1.2.2", "standard-version": "^9.5.0", diff --git a/package.json b/package.json index 6730f4733..6752b6d0c 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "eslint-plugin-import": "latest", "husky": "^9.1.6", "jest": "^29.7.0", - "nodemon": "^3.1.6", + "nodemon": "^3.1.7", "npm-check-updates": "^16.7.10", "replace": "^1.2.2", "standard-version": "^9.5.0", diff --git a/test/func/config/ttk-hub/spec_files/system_config.json b/test/func/config/ttk-hub/spec_files/system_config.json index fb66bfe41..055aa9099 100644 --- a/test/func/config/ttk-hub/spec_files/system_config.json +++ b/test/func/config/ttk-hub/spec_files/system_config.json @@ -64,18 +64,6 @@ "objectStore": {} }, "API_DEFINITIONS": [ - { - "type": "fspiop 1.0", - "version": "1.0", - "folderPath": "fspiop_1.0", - "asynchronous": true - }, - { - "type": "fspiop 1.1", - "version": "1.1", - "folderPath": "fspiop_1.1", - "asynchronous": true - }, { "type": "settlements", "version": "1.0", From 579c10e919a01175308f95b42b3e178623a906a7 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Fri, 20 Sep 2024 20:56:47 +0000 Subject: [PATCH 10/25] test: functional tests --- yarn.lock | 79 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 71 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1a96b34d9..2f8bdf147 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2306,7 +2306,7 @@ __metadata: oauth2-server: ^4.0.0-dev.2 openapi-jsonschema-parameters: ^12.1.3 openapi-response-validator: ^12.1.3 - openapi-typescript: ^7.4.0 + openapi-typescript: ^7.4.1 prom-client: ^15.1.3 promise-timeout: ^1.3.0 random-word-slugs: ^0.1.7 @@ -2345,7 +2345,7 @@ __metadata: eslint: ^8.57.0 express: ^4.21.0 jest: ^29.7.0 - nodemon: ^3.1.6 + nodemon: ^3.1.7 npm-check-updates: ^16.7.10 openapi-backend: ^5.11.0 redis: ^4.7.0 @@ -2382,7 +2382,7 @@ __metadata: eslint: ^8.57.0 express: ^4.21.0 jest: ^29.7.0 - nodemon: ^3.1.6 + nodemon: ^3.1.7 npm-check-updates: ^16.7.10 openapi-backend: ^5.11.0 redis: ^4.7.0 @@ -2435,7 +2435,7 @@ __metadata: eslint-plugin-import: latest husky: ^9.1.6 jest: ^29.7.0 - nodemon: ^3.1.6 + nodemon: ^3.1.7 npm-check-updates: ^16.7.10 nx: 16.5.0 replace: ^1.2.2 @@ -2861,6 +2861,18 @@ __metadata: languageName: node linkType: hard +"@redocly/ajv@npm:^8.11.2": + version: 8.11.2 + resolution: "@redocly/ajv@npm:8.11.2" + dependencies: + fast-deep-equal: ^3.1.1 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + uri-js-replace: ^1.0.1 + checksum: be3a48afe88166fa4e958bbd2dbfc31d9f67d538e902ee07c745b3fba31c13cff2b680311db7add61851f850bf6c55536645b300007ce148b3bee4660239dd19 + languageName: node + linkType: hard + "@redocly/config@npm:^0.10.1": version: 0.10.1 resolution: "@redocly/config@npm:0.10.1" @@ -2868,6 +2880,13 @@ __metadata: languageName: node linkType: hard +"@redocly/config@npm:^0.11.0": + version: 0.11.0 + resolution: "@redocly/config@npm:0.11.0" + checksum: 6eaaed0aa5c68d30005ca0f6c6f07428f6996720a139bbdf6fa699d83e3a0e5f99a7ba61b11ed6aabb5c8382da6beace7836e2e647a2d215d9e3238c53760822 + languageName: node + linkType: hard + "@redocly/openapi-cli@npm:^1.0.0-beta.94": version: 1.0.0-beta.94 resolution: "@redocly/openapi-cli@npm:1.0.0-beta.94" @@ -2926,6 +2945,25 @@ __metadata: languageName: node linkType: hard +"@redocly/openapi-core@npm:^1.25.3": + version: 1.25.3 + resolution: "@redocly/openapi-core@npm:1.25.3" + dependencies: + "@redocly/ajv": ^8.11.2 + "@redocly/config": ^0.11.0 + colorette: ^1.2.0 + https-proxy-agent: ^7.0.4 + js-levenshtein: ^1.1.6 + js-yaml: ^4.1.0 + lodash.isequal: ^4.5.0 + minimatch: ^5.0.1 + node-fetch: ^2.6.1 + pluralize: ^8.0.0 + yaml-ast-parser: 0.0.43 + checksum: 5128c904624a71f518017db7062d9689e0f91e335d4fd2381f8753303625533cb991c1ef4a3cbd857a6cb949bb5e54d6868fb38906991065320c8d54d488fee5 + languageName: node + linkType: hard + "@rtsao/scc@npm:^1.1.0": version: 1.1.0 resolution: "@rtsao/scc@npm:1.1.0" @@ -10781,9 +10819,9 @@ __metadata: languageName: node linkType: hard -"nodemon@npm:^3.1.6": - version: 3.1.6 - resolution: "nodemon@npm:3.1.6" +"nodemon@npm:^3.1.7": + version: 3.1.7 + resolution: "nodemon@npm:3.1.7" dependencies: chokidar: ^3.5.2 debug: ^4 @@ -10797,7 +10835,7 @@ __metadata: undefsafe: ^2.0.5 bin: nodemon: bin/nodemon.js - checksum: efa0e5cd34db4d38e6abdb54b468b968bdfa6ea366abb08707e8f4335894730d4f57b826daab995141f4b952aa110b6b3084c25d71a0560c363df3b95d51374d + checksum: c500ac2feb278ddb187049ac8ede6423c1fb074cc3dabf74882568d5e93401293c10039e184a9d1bfc617c983ddb432437d396b421926914d04ebba671a7d8b8 languageName: node linkType: hard @@ -11424,6 +11462,24 @@ __metadata: languageName: node linkType: hard +"openapi-typescript@npm:^7.4.1": + version: 7.4.1 + resolution: "openapi-typescript@npm:7.4.1" + dependencies: + "@redocly/openapi-core": ^1.25.3 + ansi-colors: ^4.1.3 + change-case: ^5.4.4 + parse-json: ^8.1.0 + supports-color: ^9.4.0 + yargs-parser: ^21.1.1 + peerDependencies: + typescript: ^5.x + bin: + openapi-typescript: bin/cli.js + checksum: cdce25069e636d2b6a664fb374cd60e60c7079bb1c09441f5858fc897d0ad1f9d716a3271bacb07452533a2e7e4e36b2c287b96a44a4c41e05e7a1eeb49f62b5 + languageName: node + linkType: hard + "opn@npm:^5.2.0": version: 5.5.0 resolution: "opn@npm:5.5.0" @@ -14524,6 +14580,13 @@ __metadata: languageName: node linkType: hard +"uri-js-replace@npm:^1.0.1": + version: 1.0.1 + resolution: "uri-js-replace@npm:1.0.1" + checksum: 9c6761023a66eea5c7ff75127e3ea733a64362e4fd232203f627ace86d5f170dc69eda80449e3457448591b8a11e566e29cc0746da6392c9f8de4d5911f57e51 + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" From 2f2e2b4d8bd814a6065a15fafe9651a251960d3b Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Sat, 21 Sep 2024 07:21:04 +0000 Subject: [PATCH 11/25] chore: restore api --- .../fspiop_2.0/callback_map.json | 11 + .../api_spec.yaml | 3612 +++++++++-------- .../response_map.json | 14 - .../mojaloop_simulator_sim_1.4/api_spec.yaml | 3015 ++++++++++---- .../response_map.json | 7 + 5 files changed, 4135 insertions(+), 2524 deletions(-) diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/callback_map.json b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/callback_map.json index 9bd5ca872..77ad5feb7 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/callback_map.json +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/callback_map.json @@ -684,6 +684,17 @@ "Content-Type": "{$session.negotiatedContentType}", "Date": "{$request.headers.date}" } + }, + "errorCallback": { + "method": "put", + "path": "/services/FXP", + "pathPattern": "/services/FXP", + "headerOverride": { + "FSPIOP-Source": "{$request.headers.fspiop-destination}", + "FSPIOP-Destination": "{$request.headers.fspiop-source}", + "Content-Type": "{$session.negotiatedContentType}", + "Date": "{$request.headers.date}" + } } } }, diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml index 88203f075..be6f65971 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml @@ -16,8 +16,8 @@ info: **Note on terminology:** The term "Switch" is equal to the term "Hub", and the term "FSP" is equal to the term "DFSP". license: - name: 'Apache License Version 2.0, January 2004' - url: 'http://www.apache.org/licenses/' + name: Apache License Version 2.0, January 2004 + url: https://github.com/mojaloop/documentation/blob/master/LICENSE.md version: 1.0.0 paths: /: @@ -33,121 +33,135 @@ paths: description: >- Returns empty body if the scheme adapter outbound transfers service is running. - /transfers: + /accounts: post: - summary: Sends money from one account to another - description: > - The HTTP request `POST /transfers` is used to request the movement of - funds from payer DFSP to payee DFSP. - - The underlying Mojaloop API has three stages for money transfer: - - 1. Party lookup. This facilitates a check by the sending party that the destination party is correct before proceeding with a money movement. - 2. Quotation. This facilitates the exchange of fee information and the construction of a cryptographic "contract" between payee and payer DFSPs before funds are transferred. - 3. Transfer. The enactment of the previously agreed "contract" - - This method has several modes of operation. - - - If the configuration variables `AUTO_ACCEPT_PARTIES` is set to - `"false"` this method will terminate when the payee party has been - resolved and return the payee party details. - If the payee wishes to proceed with the transfer, then a subsequent `PUT /transfers/{transferId}` request (accepting the payee party) is required to continue the operation. - The scheme adapter will then proceed with quotation stage... - - - If the configuration variable `AUTO_ACCEPT_QUOTES` is set to `"false"` - this method will terminate and return the quotation when it has been - received from the payee DFSP. - If the payee wished to proceed with the transfer, then a subsequent `PUT /transfers/{transferId}` request (accepting the quote) is required to continue the operation. - The scheme adapter will then proceed with the transfer state. - - If the configuration variables `AUTO_ACCEPT_PARTIES` and - `AUTO_ACCEPT_QUOTES` are both set to `"true"` this method will block - until all three transfer stages are complete. Upon completion it will - return the entire set of transfer details received during the operation. + summary: Create accounts on the Account Lookup Service + description: >- + The HTTP request `POST /accounts` is used to create account information + on the Account Lookup Service (ALS) regarding the provided list of + identities. - Combinations of settings for `AUTO_ACCEPT...` configuration variables - allow the scheme adapter user to decide which mode of operation best - suits their use cases. i.e. the scheme adapter can be configured to - "break" the three stage transfer at these points in order to execute - backend logic such as party verification, quoted fees assessments etc... + Caller DFSP is used as the account source FSP information tags: - - Transfers - operationId: TransfersPost + - Accounts requestBody: - description: Transfer request body + description: Identities list request body content: application/json: schema: - $ref: '#/components/schemas/transferRequest' + $ref: '#/components/schemas/accountsRequest' required: true responses: '200': - $ref: '#/components/responses/transferSuccess' + $ref: '#/components/responses/accountsCreationCompleted' '400': - $ref: '#/components/responses/transferBadRequest' + $ref: '#/components/responses/accountsCreationError' '500': - $ref: '#/components/responses/transferServerError' + $ref: '#/components/responses/accountsCreationError' '504': - $ref: '#/components/responses/transferTimeout' - '/transfers/{transferId}': - put: - summary: >- - Continues a transfer that has paused at the quote stage in order to - accept or reject payee party and/or quote + $ref: '#/components/responses/accountsCreationTimeout' + /bulkQuotes: + post: + summary: Request bulk quotes for the provided financial transactions description: > - The HTTP request `PUT /transfers/{transferId}` is used to continue a - transfer initiated via the `POST /transfers` method that has halted - after party lookup and/or quotation stage. - - - The request body should contain either the "acceptParty" or - "acceptQuote" property set to `true` as required to continue the - transfer. - - - See the description of the `POST /transfers` HTTP method for more - information on modes of transfer. + The HTTP request `POST /bulkQuotes` is used to request a bulk quote to + fascilitate funds transfer from payer DFSP to payees' DFSP. tags: - - Transfers - operationId: TransfersPut + - BulkQuotes requestBody: + description: Bulk quote request body content: application/json: schema: - oneOf: - - $ref: '#/components/schemas/transferContinuationAcceptParty' - - $ref: '#/components/schemas/transferContinuationAcceptQuote' - parameters: - - $ref: '#/components/parameters/transferId' + $ref: '#/components/schemas/bulkQuoteRequest' + required: true responses: '200': - $ref: '#/components/responses/transferSuccess' + $ref: '#/components/responses/bulkQuoteSuccess' + '400': + $ref: '#/components/responses/bulkQuoteBadRequest' '500': - $ref: '#/components/responses/transferServerError' + $ref: '#/components/responses/bulkQuoteServerError' '504': - $ref: '#/components/responses/transferTimeout' + $ref: '#/components/responses/bulkQuoteTimeout' + /bulkQuotes/{bulkQuoteId}: get: - summary: Retrieves information for a specific transfer + summary: Retrieves information for a specific bulk quote description: >- - The HTTP request `GET /transfers/{transferId}` is used to get - information regarding a transfer created or requested earlier. The - `{transferId}` in the URI should contain the `transferId` that was used - for the creation of the transfer. + The HTTP request `GET /bulkQuotes/{bulktQuoteId}` is used to get + information regarding a bulk quote created or requested earlier. The + `{bulkQuoteId}` in the URI should contain the `bulkQuoteId` that was + used for the creation of the bulk quote. tags: - - Transfers - operationId: TransfersGet + - BulkQuotes parameters: - - $ref: '#/components/parameters/transferId' + - $ref: '#/components/parameters/bulkQuoteId' responses: '200': - description: Transfer information successfully retrieved + description: Bulk quote information successfully retrieved content: application/json: schema: - $ref: '#/components/schemas/transferStatusResponse' + $ref: '#/components/schemas/bulkQuoteStatusResponse' '500': - description: An error occurred processing the transfer + description: An error occurred processing the bulk quote + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + /bulkTransactions: + post: + summary: Sends money from one account to multiple accounts + description: > + The HTTP request `POST /bulkTransactions` is used to request the + movement of funds from payer DFSP to payees' DFSP. + tags: + - BulkTransactions + requestBody: + description: Bulk transfer request body + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransactionRequest' + required: true + responses: + '202': + $ref: '#/components/responses/bulkTransactionAccepted' + '400': + $ref: '#/components/responses/bulkTransferBadRequest' + '500': + $ref: '#/components/responses/errorResponse' + /bulkTransactions/{bulkTransactionId}: + put: + summary: Amends the bulk transaction request + 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. + tags: + - BulkTransactions + parameters: + - $ref: '#/components/parameters/bulkTransactionId' + requestBody: + description: Bulk transaction request body + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/bulkTransactionContinuationAcceptParty' + - $ref: '#/components/schemas/bulkTransactionContinuationAcceptQuote' + required: true + responses: + '202': + description: Bulk transaction information successfully amended + '400': + $ref: '#/components/responses/bulkTransactionPutBadRequest' + '500': + description: An error occurred processing the bulk transaction content: application/json: schema: @@ -160,7 +174,6 @@ paths: of funds from payer DFSP to payees' DFSP. tags: - BulkTransfers - operationId: BulkTransfersPost requestBody: description: Bulk transfer request body content: @@ -174,20 +187,17 @@ paths: '400': $ref: '#/components/responses/bulkTransferBadRequest' '500': - $ref: '#/components/responses/bulkTransferServerError' - '504': - $ref: '#/components/responses/bulkTransferTimeout' - '/bulkTransfers/{bulkTransferId}': + $ref: '#/components/responses/errorResponse' + /bulkTransfers/{bulkTransferId}: get: summary: Retrieves information for a specific bulk transfer description: >- - The HTTP request `GET /bulkTransfers/{bulktTransferId}` is used to get + The HTTP request `GET /bulkTransfers/{bulkTransferId}` is used to get information regarding a bulk transfer created or requested earlier. The `{bulkTransferId}` in the URI should contain the `bulkTransferId` that was used for the creation of the bulk transfer. tags: - BulkTransfers - operationId: BulkTransfersGet parameters: - $ref: '#/components/parameters/bulkTransferId' responses: @@ -203,57 +213,64 @@ paths: application/json: schema: $ref: '#/components/schemas/errorResponse' - /bulkQuotes: + /parties/{Type}/{ID}: + parameters: + - $ref: '#/components/parameters/Type' + - $ref: '#/components/parameters/ID' + get: + description: >- + The HTTP request GET /parties// (or GET /parties///) is used to lookup + information regarding the requested Party, defined by , and optionally + (for example, GET /parties/MSISDN/123456789, or GET + /parties/BUSINESS/shoecompany/employee1). + summary: PartiesByTypeAndID + tags: + - parties + operationId: PartiesByTypeAndID + responses: + '200': + $ref: '#/components/responses/partiesByIdSuccess' + '404': + $ref: '#/components/responses/partiesByIdError404' + /parties/{Type}/{ID}/{SubId}: + parameters: + - $ref: '#/components/parameters/Type' + - $ref: '#/components/parameters/ID' + - $ref: '#/components/parameters/SubId' + get: + description: >- + The HTTP request GET /parties// (or GET /parties///) is used to lookup + information regarding the requested Party, defined by , and optionally + (for example, GET /parties/MSISDN/123456789, or GET + /parties/BUSINESS/shoecompany/employee1). + summary: PartiesSubIdByTypeAndID + tags: + - parties + operationId: PartiesSubIdByTypeAndID + responses: + '200': + $ref: '#/components/responses/partiesByIdSuccess' + '404': + $ref: '#/components/responses/partiesByIdError404' + /quotes: post: - summary: Request bulk quotes for the provided financial transactions - description: > - The HTTP request `POST /bulkQuotes` is used to request a bulk quote to - fascilitate funds transfer from payer DFSP to payees' DFSP. + summary: Quotes endpoint + description: is used to request quotes from other DFSP tags: - - BulkQuotes - operationId: BulkQuotesPost + - quotes + operationId: QuotesPost requestBody: - description: Bulk quote request body + description: Quotes request payload content: application/json: schema: - $ref: '#/components/schemas/bulkQuoteRequest' + $ref: '#/components/schemas/simpleQuotesPostRequest' required: true responses: '200': - $ref: '#/components/responses/bulkQuoteSuccess' - '400': - $ref: '#/components/responses/bulkQuoteBadRequest' - '500': - $ref: '#/components/responses/bulkQuoteServerError' - '504': - $ref: '#/components/responses/bulkQuoteTimeout' - '/bulkQuotes/{bulkQuoteId}': - get: - summary: Retrieves information for a specific bulk quote - description: >- - The HTTP request `GET /bulkQuotes/{bulktQuoteId}` is used to get - information regarding a bulk quote created or requested earlier. The - `{bulkQuoteId}` in the URI should contain the `bulkQuoteId` that was - used for the creation of the bulk quote. - tags: - - BulkQuotes - operationId: BulkQuotesGet - parameters: - - $ref: '#/components/parameters/bulkQuoteId' - responses: - '200': - description: Bulk quote information successfully retrieved - content: - application/json: - schema: - $ref: '#/components/schemas/bulkQuoteStatusResponse' + $ref: '#/components/responses/quotesPostSuccess' '500': - description: An error occurred processing the bulk quote - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' + $ref: '#/components/responses/quotesServerError' /requestToPay: post: summary: Receiver requesting funds from Sender @@ -267,7 +284,6 @@ paths: 2. Transaction Request. This request enables a Payee to request Payer to send electronic funds to the Payee. tags: - RequestToPay - operationId: RequestToPayPost requestBody: description: RequestToPay request body content: @@ -278,6 +294,37 @@ paths: responses: '200': $ref: '#/components/responses/requestToPaySuccess' + /requestToPay/{transactionRequestId}: + put: + summary: >- + Continues a request funds from sender that has paused at the party + resolution stage in order to accept or reject party information + description: > + The HTTP request `PUT /requestToPay/{transactionRequestId}` is used to + continue a transfer initiated via the `POST /requestToPay` method that + has halted after party lookup stage. + + The request body should contain the "acceptParty" property set to `true` + as required to continue the transfer. + + See the description of the `POST /requestToPay` HTTP method for more + information on modes of transfer. + tags: + - RequestToPay + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/transferContinuationAcceptParty' + parameters: + - $ref: '#/components/parameters/transactionRequestId' + responses: + '200': + $ref: '#/components/responses/requestToPaySuccess' + '500': + $ref: '#/components/responses/transferServerError' + '504': + $ref: '#/components/responses/transferTimeout' /requestToPayTransfer: post: summary: >- @@ -320,7 +367,6 @@ paths: backend logic such as party verification, quoted fees assessments etc... tags: - RequestToPayTransfer - operationId: RequestToPayTransferPost requestBody: description: Request To Pay Transfer request body content: @@ -337,15 +383,15 @@ paths: $ref: '#/components/responses/transferServerError' '504': $ref: '#/components/responses/transferTimeout' - '/requestToPayTransfer/{requestToPayTransactionId}': + /requestToPayTransfer/{transactionRequestId}: put: summary: >- - Continues a transfer that has paused at the otp stage in order to accept + Continues a transfer that has paused at the Authentication stage in order to accept or reject quote description: > - The HTTP request `PUT /transfers/{transferId}` is used to continue a - transfer initiated via the `POST /transfers` method that has halted - after party lookup and/or quotation stage. + This request is used to continue a requestToPayTransfer initiated via + the `POST /requestToPayTransfer` method that has halted after Quotation + stage and/or Authentication stage. The request body should contain either the "acceptOTP" or "acceptQuote" @@ -356,7 +402,6 @@ paths: more information on modes of transfer. tags: - RequestToPayTransferID - operationId: RequestToPayTransferPut requestBody: content: application/json: @@ -365,7 +410,7 @@ paths: - $ref: '#/components/schemas/transferContinuationAcceptQuote' - $ref: '#/components/schemas/transferContinuationAcceptOTP' parameters: - - $ref: '#/components/parameters/requestToPayTransactionId' + - $ref: '#/components/parameters/transactionRequestId' responses: '200': $ref: '#/components/responses/transferSuccess' @@ -373,149 +418,143 @@ paths: $ref: '#/components/responses/transferServerError' '504': $ref: '#/components/responses/transferTimeout' - /accounts: + /simpleTransfers: post: - summary: Create accounts on the Account Lookup Service - description: >- - The HTTP request `POST /accounts` is used to create account information - on the Account Lookup Service (ALS) regarding the provided list of - identities. - - - Caller DFSP is used as the account source FSP information + summary: Simple Transfers endpoint + description: is used to request a transfer tags: - - Accounts - operationId: AccountsPost + - transfers + operationId: SimpleTransfersPost requestBody: - description: Identities list request body + description: Simple Transfer request payload content: application/json: schema: - $ref: '#/components/schemas/accountsRequest' + $ref: '#/components/schemas/simpleTransfersPostRequest' required: true responses: '200': - $ref: '#/components/responses/accountsCreationCompleted' - '400': - $ref: '#/components/responses/accountsCreationError' + $ref: '#/components/responses/simpleTransfersPostSuccess' '500': - $ref: '#/components/responses/accountsCreationError' - '504': - $ref: '#/components/responses/accountsCreationTimeout' - '/parties/{Type}/{ID}': - parameters: - - $ref: '#/components/parameters/Type' - - $ref: '#/components/parameters/ID' - get: - description: >- - The HTTP request GET /parties// (or GET /parties///) is used to lookup - information regarding the requested Party, defined by , and optionally - (for example, GET /parties/MSISDN/123456789, or GET - /parties/BUSINESS/shoecompany/employee1). - summary: PartiesByTypeAndID - tags: - - parties - operationId: PartiesByTypeAndID - responses: - '200': - $ref: '#/components/responses/partiesByIdSuccess' - '404': - $ref: '#/components/responses/partiesByIdError404' - '/parties/{Type}/{ID}/{SubId}': - parameters: - - $ref: '#/components/parameters/Type' - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/SubId' - get: - description: >- - The HTTP request GET /parties// (or GET /parties///) is used to lookup - information regarding the requested Party, defined by , and optionally - (for example, GET /parties/MSISDN/123456789, or GET - /parties/BUSINESS/shoecompany/employee1). - summary: PartiesSubIdByTypeAndID - tags: - - parties - operationId: PartiesSubIdByTypeAndID - responses: - '200': - $ref: '#/components/responses/partiesByIdSuccess' - '404': - $ref: '#/components/responses/partiesByIdError404' - /quotes: + $ref: '#/components/responses/simpleTransfersServerError' + /transfers: post: - summary: Quotes endpoint - description: is used to request quotes from other DFSP + summary: Sends money from one account to another + description: > + The HTTP request `POST /transfers` is used to request the movement of + funds from payer DFSP to payee DFSP. + + The underlying Mojaloop API has three stages for money transfer: + + 1. Party lookup. This facilitates a check by the sending party that the destination party is correct before proceeding with a money movement. + 2. Quotation. This facilitates the exchange of fee information and the construction of a cryptographic "contract" between payee and payer DFSPs before funds are transferred. + 3. Transfer. The enactment of the previously agreed "contract" + + This method has several modes of operation. + + - If the configuration variables `AUTO_ACCEPT_PARTIES` is set to + `"false"` this method will terminate when the payee party has been + resolved and return the payee party details. + If the payee wishes to proceed with the transfer, then a subsequent `PUT /transfers/{transferId}` request (accepting the payee party) is required to continue the operation. + The scheme adapter will then proceed with quotation stage... + + - If the configuration variable `AUTO_ACCEPT_QUOTES` is set to `"false"` + this method will terminate and return the quotation when it has been + received from the payee DFSP. + If the payee wished to proceed with the transfer, then a subsequent `PUT /transfers/{transferId}` request (accepting the quote) is required to continue the operation. + The scheme adapter will then proceed with the transfer state. + + If the configuration variables `AUTO_ACCEPT_PARTIES` and + `AUTO_ACCEPT_QUOTES` are both set to `"true"` this method will block + until all three transfer stages are complete. Upon completion it will + return the entire set of transfer details received during the operation. + + + Combinations of settings for `AUTO_ACCEPT...` configuration variables + allow the scheme adapter user to decide which mode of operation best + suits their use cases. i.e. the scheme adapter can be configured to + "break" the three stage transfer at these points in order to execute + backend logic such as party verification, quoted fees assessments etc... tags: - - quotes - operationId: QuotesPost + - Transfers requestBody: - description: Quotes request payload + description: Transfer request body content: application/json: schema: - $ref: '#/components/schemas/quotesPostRequest' + $ref: '#/components/schemas/transferRequest' required: true responses: '200': - $ref: '#/components/responses/quotesPostSuccess' + $ref: '#/components/responses/transferSuccess' + '400': + $ref: '#/components/responses/transferBadRequest' '500': - $ref: '#/components/responses/quotesServerError' - /simpleTransfers: - post: - summary: Simple Transfers endpoint - description: is used to request a transfer + $ref: '#/components/responses/transferServerError' + '504': + $ref: '#/components/responses/transferTimeout' + /transfers/{transferId}: + put: + summary: >- + Continues a transfer that has paused at the quote stage in order to + accept or reject payee party and/or quote + description: > + The HTTP request `PUT /transfers/{transferId}` is used to continue a + transfer initiated via the `POST /transfers` method that has halted + after party lookup and/or quotation stage. + + + The request body should contain either the "acceptParty" or + "acceptQuote" property set to `true` as required to continue the + transfer. + + + See the description of the `POST /transfers` HTTP method for more + information on modes of transfer. tags: - - transfers - operationId: SimpleTransfersPost + - Transfers requestBody: - description: Simple Transfer request payload content: application/json: schema: - $ref: '#/components/schemas/simpleTransfersPostRequest' - required: true + oneOf: + - $ref: '#/components/schemas/transferContinuationAcceptParty' + - $ref: '#/components/schemas/transferContinuationAcceptQuote' + parameters: + - $ref: '#/components/parameters/transferId' responses: '200': - $ref: '#/components/responses/simpleTransfersPostSuccess' + $ref: '#/components/responses/transferSuccess' '500': - $ref: '#/components/responses/simpleTransfersServerError' - /authorizations: - post: + $ref: '#/components/responses/transferServerError' + '504': + $ref: '#/components/responses/transferTimeout' + get: + summary: Retrieves information for a specific transfer description: >- - The HTTP request `POST /authorizations` is used to request the Payer to - enter the applicable credentials in the PISP system. - summary: Authorizations endpoint - operationId: AuthorizationsPost + The HTTP request `GET /transfers/{transferId}` is used to get + information regarding a transfer created or requested earlier. The + `{transferId}` in the URI should contain the `transferId` that was used + for the creation of the transfer. tags: - - authorizations - requestBody: - description: Perform authorization - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/authorizationsPostRequest' + - Transfers + parameters: + - $ref: '#/components/parameters/transferId' responses: '200': - $ref: '#/components/responses/authorizationPostSuccess' + description: Transfer information successfully retrieved + content: + application/json: + schema: + $ref: '#/components/schemas/transferStatusResponse' '500': - $ref: '#/components/responses/authorizationsServerError' + description: An error occurred processing the transfer + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' components: schemas: - TransactionInitiatorType: - title: TransactionInitiatorType - type: string - enum: - - CONSUMER - - AGENT - - BUSINESS - - DEVICE - description: |- - Below are the allowed values for the enumeration. - - CONSUMER - Consumer is the initiator of the transaction. - - AGENT - Agent is the initiator of the transaction. - - BUSINESS - Business is the initiator of the transaction. - - DEVICE - Device is the initiator of the transaction. PartyIdType: title: PartyIdType type: string @@ -528,111 +567,59 @@ components: - ACCOUNT_ID - IBAN - ALIAS - - CONSENT - - THIRD_PARTY_LINK - description: > - This is a variant based on FSPIOP `PartyIdType` specification. - - Main difference being the CONSENT and THIRD_PARTY_LINK enums. - - + description: >- Below are the allowed values for the enumeration. - MSISDN - An MSISDN (Mobile Station International Subscriber Directory - Number, that is, the phone number) is used as reference to a - participant. - - The MSISDN identifier should be in international format according to the - - [ITU-T E.164 standard](https://www.itu.int/rec/T-REC-E.164/en). - - Optionally, the MSISDN may be prefixed by a single plus sign, indicating - the - + participant. The MSISDN identifier should be in international format + according to the [ITU-T E.164 + standard](https://www.itu.int/rec/T-REC-E.164/en). Optionally, the + MSISDN may be prefixed by a single plus sign, indicating the international prefix. - - EMAIL - An email is used as reference to a - - participant. The format of the email should be according to the - informational - - [RFC 3696](https://tools.ietf.org/html/rfc3696). + - EMAIL - An email is used as reference to a participant. The format of + the email should be according to the informational [RFC + 3696](https://tools.ietf.org/html/rfc3696). - PERSONAL_ID - A personal identifier is used as reference to a - participant. - - Examples of personal identification are passport number, birth - certificate - - number, and national registration number. The identifier number is added - in - - the PartyIdentifier element. The personal identifier type is added in - the - - PartySubIdOrType element. + participant. Examples of personal identification are passport number, + birth certificate number, and national registration number. The + identifier number is added in the PartyIdentifier element. The personal + identifier type is added in the PartySubIdOrType element. - BUSINESS - A specific Business (for example, an organization or a - company) - - is used as reference to a participant. The BUSINESS identifier can be in - any - - format. To make a transaction connected to a specific username or bill - number - - in a Business, the PartySubIdOrType element should be used. + company) is used as reference to a participant. The BUSINESS identifier + can be in any format. To make a transaction connected to a specific + username or bill number in a Business, the PartySubIdOrType element + should be used. - DEVICE - A specific device (for example, a POS or ATM) ID connected to - a - - specific business or organization is used as reference to a Party. - - For referencing a specific device under a specific business or - organization, - + a specific business or organization is used as reference to a Party. For + referencing a specific device under a specific business or organization, use the PartySubIdOrType element. - ACCOUNT_ID - A bank account number or FSP account ID should be used as - reference to a participant. The ACCOUNT_ID identifier can be in any - format, - - as formats can greatly differ depending on country and FSP. + format, as formats can greatly differ depending on country and FSP. - IBAN - A bank account number or FSP account ID is used as reference to - a - - participant. The IBAN identifier can consist of up to 34 alphanumeric - + a participant. The IBAN identifier can consist of up to 34 alphanumeric characters and should be entered without whitespace. - ALIAS An alias is used as reference to a participant. The alias should - be - - created in the FSP as an alternative reference to an account owner. - - Another example of an alias is a username in the FSP system. - - The ALIAS identifier can be in any format. It is also possible to use - the - + be created in the FSP as an alternative reference to an account owner. + Another example of an alias is a username in the FSP system. The ALIAS + identifier can be in any format. It is also possible to use the PartySubIdOrType element for identifying an account under an Alias - defined - - by the PartyIdentifier. - - - CONSENT - TBD - - - THIRD_PARTY_LINK - TBD - example: PERSONAL_ID + defined by the PartyIdentifier. PartyIdentifier: title: PartyIdentifier type: string minLength: 1 maxLength: 128 description: Identifier of the Party. + example: '16135551212' PartySubIdOrType: title: PartySubIdOrType type: string @@ -641,147 +628,13 @@ components: description: >- Either a sub-identifier of a PartyIdentifier, or a sub-type of the PartyIdType, normally a PersonalIdentifierType. - Name: - title: Name - type: string - pattern: '^(?!\s*$)[\w .,''-]{1,128}$' + Currency: + title: Currency description: >- - The API data type Name is a JSON String, restricted by a regular - expression to avoid characters which are generally not used in a name. - - - Regular Expression - The regular expression for restricting the Name - type is "^(?!\s*$)[\w .,'-]{1,128}$". The restriction does not allow a - string consisting of whitespace only, all Unicode characters are - allowed, as well as the period (.) (apostrophe (‘), dash (-), comma (,) - and space characters ( ). - - - **Note:** In some programming languages, Unicode support must be - specifically enabled. For example, if Java is used, the flag - UNICODE_CHARACTER_CLASS must be enabled to allow Unicode characters. - FirstName: - title: FirstName - type: string - minLength: 1 - maxLength: 128 - pattern: '^(?!\s*$)[\w .,''-]{1,128}$' - description: First name of the Party (Name Type). - MiddleName: - title: MiddleName - type: string - minLength: 1 - maxLength: 128 - pattern: '^(?!\s*$)[\w .,''-]{1,128}$' - description: Middle name of the Party (Name Type). - LastName: - title: LastName - type: string - minLength: 1 - maxLength: 128 - pattern: '^(?!\s*$)[\w .,''-]{1,128}$' - description: Last name of the Party (Name Type). - DateOfBirth: - title: DateofBirth (type Date) - type: string - 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)$ - description: Date of Birth of the Party. - MerchantClassificationCode: - title: MerchantClassificationCode - type: string - pattern: '^[\d]{1,4}$' - description: >- - A limited set of pre-defined numbers. This list would be a limited set - of numbers identifying a set of popular merchant types like School Fees, - Pubs and Restaurants, Groceries, etc. - FspId: - title: FspId - type: string - minLength: 1 - maxLength: 32 - description: FSP identifier. - ExtensionKey: - title: ExtensionKey - type: string - minLength: 1 - maxLength: 32 - description: Extension key. - ExtensionValue: - title: ExtensionValue - type: string - minLength: 1 - maxLength: 128 - description: Extension value. - Extension: - title: Extension - type: object - description: Data model for the complex type Extension. - properties: - key: - $ref: '#/components/schemas/ExtensionKey' - value: - $ref: '#/components/schemas/ExtensionValue' - required: - - key - - value - extensionListEmptiable: - type: array - items: - $ref: '#/components/schemas/Extension' - minItems: 0 - maxItems: 16 - transferParty: - type: object - required: - - idType - - idValue - properties: - type: - $ref: '#/components/schemas/TransactionInitiatorType' - idType: - $ref: '#/components/schemas/PartyIdType' - idValue: - $ref: '#/components/schemas/PartyIdentifier' - idSubValue: - $ref: '#/components/schemas/PartySubIdOrType' - displayName: - $ref: '#/components/schemas/Name' - firstName: - $ref: '#/components/schemas/FirstName' - middleName: - $ref: '#/components/schemas/MiddleName' - lastName: - $ref: '#/components/schemas/LastName' - dateOfBirth: - $ref: '#/components/schemas/DateOfBirth' - merchantClassificationCode: - $ref: '#/components/schemas/MerchantClassificationCode' - fspId: - $ref: '#/components/schemas/FspId' - extensionList: - $ref: '#/components/schemas/extensionListEmptiable' - AmountType: - title: AmountType - type: string - enum: - - SEND - - RECEIVE - description: >- - Below are the allowed values for the enumeration AmountType. - - - SEND - Amount the Payer would like to send, that is, the amount that - should be withdrawn from the Payer account including any fees. - - - RECEIVE - Amount the Payer would like the Payee to receive, that is, - the amount that should be sent to the receiver exclusive of any fees. - Currency: - title: Currency - description: >- - The currency codes defined in [ISO - 4217](https://www.iso.org/iso-4217-currency-codes.html) as three-letter - alphabetic codes are used as the standard naming representation for - currencies. + The currency codes defined in [ISO + 4217](https://www.iso.org/iso-4217-currency-codes.html) as three-letter + alphabetic codes are used as the standard naming representation for + currencies. type: string minLength: 3 maxLength: 3 @@ -950,148 +803,109 @@ components: - ZAR - ZMW - ZWD - Amount: - title: Amount - type: string - pattern: '^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$' - description: >- - The API data type Amount is a JSON String in a canonical format that is - restricted by a regular expression for interoperability reasons. This - pattern does not allow any trailing zeroes at all, but allows an amount - without a minor currency unit. It also only allows four digits in the - minor currency unit; a negative value is not allowed. Using more than 18 - digits in the major currency unit is not allowed. - transactionType: - type: string - enum: - - TRANSFER - description: Type of transaction. - Note: - title: Note - type: string - minLength: 1 - maxLength: 128 - description: Memo assigned to transaction. - transferRequest: - type: object - required: - - homeTransactionId - - from - - to - - amountType - - currency - - amount - - transactionType - properties: - homeTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - transactionType: - $ref: '#/components/schemas/transactionType' - note: - $ref: '#/components/schemas/Note' - quoteRequestExtensions: - $ref: '#/components/schemas/extensionListEmptiable' - transferRequestExtensions: - $ref: '#/components/schemas/extensionListEmptiable' + accountsRequest: + type: array + items: + type: object + required: + - idType + - idValue + - currency + properties: + idType: + $ref: '#/components/schemas/PartyIdType' + idValue: + $ref: '#/components/schemas/PartyIdentifier' + idSubValue: + $ref: '#/components/schemas/PartySubIdOrType' + currency: + $ref: '#/components/schemas/Currency' CorrelationId: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[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 supported identifiers formats are for - lowercase [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and - uppercase [ULID](https://github.com/ulid/spec) - transferStatus: + 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 + errorResponse: + type: object + properties: + statusCode: + type: string + description: Error code as string. + message: + type: string + description: Error message text. + accountCreationStatus: + type: array + items: + type: object + required: + - idType + - idValue + properties: + idType: + $ref: '#/components/schemas/PartyIdType' + idValue: + $ref: '#/components/schemas/PartyIdentifier' + idSubValue: + $ref: '#/components/schemas/PartySubIdOrType' + error: + $ref: '#/components/schemas/errorResponse' + accountsCreationState: type: string enum: - ERROR_OCCURRED - - WAITING_FOR_PARTY_ACCEPTANCE - - WAITING_FOR_QUOTE_ACCEPTANCE - COMPLETED - Money: - title: Money - type: object - description: Data model for the complex type Money. - properties: - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - required: - - currency - - amount - DateTime: - title: DateTime - type: string - 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)$ - description: >- - The API data type DateTime is a JSON String in a lexical format that is - restricted by a regular expression for interoperability reasons. The - format is according to [ISO - 8601](https://www.iso.org/iso-8601-date-and-time-format.html), expressed - in a combined date, time and time zone format. A more readable version - of the format is yyyy-MM-ddTHH:mm:ss.SSS[-HH:MM]. Examples are - "2016-05-24T08:38:08.699-04:00", "2016-05-24T08:38:08.699Z" (where Z - indicates Zulu time zone, same as UTC). - Latitude: - title: Latitude + ErrorCode: + title: ErrorCode type: string - pattern: >- - ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ + pattern: ^[1-9]\d{3}$ 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: - title: Longitude + The API data type ErrorCode is a JSON String of four characters, + consisting of digits only. Negative numbers are not allowed. A leading + zero is not allowed. Each error code in the API is a four-digit number, + for example, 1234, where the first number (1 in the example) represents + the high-level error category, the second number (2 in the example) + represents the low-level error category, and the last two numbers (34 in + the example) represent the specific error. + example: '5100' + ErrorDescription: + title: ErrorDescription type: string - pattern: >- - ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ - description: >- - The API data type Longitude is a JSON String in a lexical format that is - restricted by a regular expression for interoperability reasons. - GeoCode: - title: GeoCode - type: object - description: >- - Data model for the complex type GeoCode. Indicates the geographic - location from where the transaction was initiated. - properties: - latitude: - $ref: '#/components/schemas/Latitude' - longitude: - $ref: '#/components/schemas/Longitude' - required: - - latitude - - longitude - IlpPacket: - title: IlpPacket + minLength: 1 + maxLength: 128 + description: Error description string. + ExtensionKey: + title: ExtensionKey type: string - pattern: '^[A-Za-z0-9-_]+[=]{0,2}$' minLength: 1 - maxLength: 32768 - description: Information for recipient (transport layer information). - IlpCondition: - title: IlpCondition + maxLength: 32 + description: Extension key. + ExtensionValue: + title: ExtensionValue type: string - pattern: '^[A-Za-z0-9-_]{43}$' - maxLength: 48 - description: Condition that must be attached to the transfer by the Payer. + minLength: 1 + maxLength: 128 + description: Extension value. + Extension: + title: Extension + type: object + description: Data model for the complex type Extension. + properties: + key: + $ref: '#/components/schemas/ExtensionKey' + value: + $ref: '#/components/schemas/ExtensionValue' + required: + - key + - value ExtensionList: title: ExtensionList type: object @@ -1108,92 +922,6 @@ components: description: Number of Extension elements. required: - extension - QuotesIDPutResponse: - title: QuotesIDPutResponse - type: object - description: 'The object sent in the PUT /quotes/{ID} callback.' - properties: - transferAmount: - $ref: '#/components/schemas/Money' - payeeReceiveAmount: - $ref: '#/components/schemas/Money' - payeeFspFee: - $ref: '#/components/schemas/Money' - payeeFspCommission: - $ref: '#/components/schemas/Money' - expiration: - $ref: '#/components/schemas/DateTime' - geoCode: - $ref: '#/components/schemas/GeoCode' - ilpPacket: - $ref: '#/components/schemas/IlpPacket' - condition: - $ref: '#/components/schemas/IlpCondition' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - transferAmount - - expiration - - ilpPacket - - condition - IlpFulfilment: - title: IlpFulfilment - type: string - pattern: '^[A-Za-z0-9-_]{43}$' - maxLength: 48 - description: Fulfilment that must be attached to the transfer by the Payee. - TransferState: - title: TransferState - type: string - enum: - - RECEIVED - - RESERVED - - COMMITTED - - ABORTED - description: >- - Below are the allowed values for the enumeration. - - - RECEIVED - Next ledger has received the transfer. - - - RESERVED - Next ledger has reserved the transfer. - - - COMMITTED - Next ledger has successfully performed the transfer. - - - ABORTED - Next ledger has aborted the transfer due to a rejection or - failure to perform the transfer. - TransfersIDPutResponse: - title: TransfersIDPutResponse - type: object - description: 'The object sent in the PUT /transfers/{ID} callback.' - properties: - fulfilment: - $ref: '#/components/schemas/IlpFulfilment' - completedTimestamp: - $ref: '#/components/schemas/DateTime' - transferState: - $ref: '#/components/schemas/TransferState' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - transferState - ErrorCode: - title: ErrorCode - type: string - pattern: '^[1-9]\d{3}$' - description: >- - The API data type ErrorCode is a JSON String of four characters, - consisting of digits only. Negative numbers are not allowed. A leading - zero is not allowed. Each error code in the API is a four-digit number, - for example, 1234, where the first number (1 in the example) represents - the high-level error category, the second number (2 in the example) - represents the low-level error category, and the last two numbers (34 in - the example) represent the specific error. - ErrorDescription: - title: ErrorDescription - type: string - minLength: 1 - maxLength: 128 - description: Error description string. ErrorInformation: title: ErrorInformation type: object @@ -1226,246 +954,208 @@ components: actual HTTP status code returned with the response. mojaloopError: $ref: '#/components/schemas/mojaloopError' - transferResponse: + accountsResponse: type: object required: - - homeTransactionId - - from - - to - - amountType - - currency - - amount - - transactionType + - accounts properties: - transferId: + modelId: $ref: '#/components/schemas/CorrelationId' - homeTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - transactionType: - $ref: '#/components/schemas/transactionType' - note: - $ref: '#/components/schemas/Note' + accounts: + $ref: '#/components/schemas/accountsRequest' + response: + $ref: '#/components/schemas/accountCreationStatus' currentState: - $ref: '#/components/schemas/transferStatus' - quoteId: - $ref: '#/components/schemas/CorrelationId' - quoteResponse: - $ref: '#/components/schemas/QuotesIDPutResponse' - quoteResponseSource: - type: string - description: > - FSPID of the entity that supplied the quote response. This may not - be the same as the FSPID of the entity which owns the end user - account in the case of a FOREX transfer. i.e. it may be a FOREX - gateway. - fulfil: - $ref: '#/components/schemas/TransfersIDPutResponse' + $ref: '#/components/schemas/accountsCreationState' lastError: $ref: '#/components/schemas/transferError' - errorResponse: - type: object - properties: - statusCode: - type: string - description: Error code as string. - message: - type: string - description: Error message text. - errorTransferResponse: + postAccountsResponse: + type: object + required: + - body + properties: + body: + type: object + headers: + type: object + errorAccountsResponse: allOf: - $ref: '#/components/schemas/errorResponse' - type: object required: - - transferState + - executionState properties: - transferState: - $ref: '#/components/schemas/transferResponse' - transferStatusResponse: - type: object - required: - - transferId - - currentState - - fulfil - properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - currentState: - $ref: '#/components/schemas/transferStatus' - fulfil: - $ref: '#/components/schemas/TransfersIDPutResponse' - transferContinuationAcceptParty: - type: object - required: - - acceptParty - properties: - acceptParty: - type: boolean - enum: - - true - transferContinuationAcceptQuote: - type: object - required: - - acceptQuote - properties: - acceptQuote: - type: boolean - enum: - - true - - false - individualTransfer: - title: IndividualTransfer - type: object - description: Data model for the complex type 'individualTransfer'. - properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - transactionType: - $ref: '#/components/schemas/transactionType' - note: - $ref: '#/components/schemas/Note' - extensions: - $ref: '#/components/schemas/ExtensionList' - required: - - transferId - - to - - amountType - - currency - - transactionType - bulkTransferRequest: - type: object - required: - - homeTransactionId - - from - - individualTransfers - properties: - homeTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - bulkTransferId: - $ref: '#/components/schemas/CorrelationId' - from: - $ref: '#/components/schemas/transferParty' - individualTransfers: - description: List of individual transfers in a bulk transfer. - type: array - minItems: 1 - maxItems: 1000 - items: - $ref: '#/components/schemas/individualTransfer' - extensions: - $ref: '#/components/schemas/ExtensionList' - individualTransferResult: - type: object - properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - transactionType: - $ref: '#/components/schemas/transactionType' - note: - $ref: '#/components/schemas/Note' - quoteId: - $ref: '#/components/schemas/CorrelationId' - quoteResponse: - $ref: '#/components/schemas/QuotesIDPutResponse' - quoteResponseSource: - type: string - description: > - FSPID of the entity that supplied the quote response. This may not - be the same as the FSPID of the entity which owns the end user - account in the case of a FOREX transfer. i.e. it may be a FOREX - gateway. - fulfil: - $ref: '#/components/schemas/TransfersIDPutResponse' - lastError: - $ref: '#/components/schemas/transferError' - bulkTransferResponse: - type: object - required: - - from - - individualTransferResults - properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - from: - $ref: '#/components/schemas/transferParty' - individualTransferResults: - type: array - maxItems: 1000 - items: - $ref: '#/components/schemas/individualTransferResult' - description: List of individual transfer result in a bulk transfer response. - bulkTransferErrorResponse: - allOf: - - $ref: '#/components/schemas/errorResponse' - - type: object - required: - - bulkTansferState - properties: - bulkTransferState: - $ref: '#/components/schemas/bulkTransferResponse' - bulkTransferStatus: + executionState: + $ref: '#/components/schemas/accountsResponse' + TransactionInitiatorType: + title: TransactionInitiatorType type: string enum: - - ERROR_OCCURRED - - COMPLETED - individualTransferFulfilment: - type: object + - CONSUMER + - AGENT + - BUSINESS + - DEVICE + description: |- + Below are the allowed values for the enumeration. + - CONSUMER - Consumer is the initiator of the transaction. + - AGENT - Agent is the initiator of the transaction. + - BUSINESS - Business is the initiator of the transaction. + - DEVICE - Device is the initiator of the transaction. + example: CONSUMER + Name: + title: Name + type: string + pattern: ^(?!\s*$)[\w .,'-]{1,128}$ description: >- - A Mojaloop API transfer fulfilment for individual transfers in a bulk - transfer - properties: - fulfilment: - $ref: '#/components/schemas/IlpFulfilment' - extensionList: - $ref: '#/components/schemas/ExtensionList' - bulkTransferStatusResponse: + The API data type Name is a JSON String, restricted by a regular + expression to avoid characters which are generally not used in a name. + + + Regular Expression - The regular expression for restricting the Name + type is "^(?!\s*$)[\w .,'-]{1,128}$". The restriction does not allow a + string consisting of whitespace only, all Unicode characters are + allowed, as well as the period (.) (apostrophe (‘), dash (-), comma (,) + and space characters ( ). + + + **Note:** In some programming languages, Unicode support must be + specifically enabled. For example, if Java is used, the flag + UNICODE_CHARACTER_CLASS must be enabled to allow Unicode characters. + FirstName: + title: FirstName + type: string + minLength: 1 + maxLength: 128 + pattern: >- + ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} + .,''-]{1,128}$ + description: First name of the Party (Name Type). + example: Henrik + MiddleName: + title: MiddleName + type: string + minLength: 1 + maxLength: 128 + pattern: >- + ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} + .,''-]{1,128}$ + description: Middle name of the Party (Name Type). + example: Johannes + LastName: + title: LastName + type: string + minLength: 1 + maxLength: 128 + pattern: >- + ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} + .,''-]{1,128}$ + description: Last name of the Party (Name Type). + example: Karlsson + DateOfBirth: + title: DateofBirth (type Date) + type: string + 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)$ + description: Date of Birth of the Party. + example: '1966-06-16' + MerchantClassificationCode: + title: MerchantClassificationCode + type: string + pattern: ^[\d]{1,4}$ + description: >- + A limited set of pre-defined numbers. This list would be a limited set + of numbers identifying a set of popular merchant types like School Fees, + Pubs and Restaurants, Groceries, etc. + FspId: + title: FspId + type: string + minLength: 1 + maxLength: 32 + description: FSP identifier. + extensionListEmptiable: + type: array + items: + $ref: '#/components/schemas/Extension' + minItems: 0 + maxItems: 16 + transferParty: type: object required: - - bulkTransferId - - currentState - - fulfils + - idType + - idValue properties: - bulkTransferId: - $ref: '#/components/schemas/CorrelationId' - currentState: - $ref: '#/components/schemas/bulkTransferStatus' - fulfils: - type: array - minItems: 1 - maxItems: 1000 - items: - $ref: '#/components/schemas/individualTransferFulfilment' + type: + $ref: '#/components/schemas/TransactionInitiatorType' + idType: + $ref: '#/components/schemas/PartyIdType' + idValue: + $ref: '#/components/schemas/PartyIdentifier' + idSubValue: + $ref: '#/components/schemas/PartySubIdOrType' + displayName: + $ref: '#/components/schemas/Name' + firstName: + $ref: '#/components/schemas/FirstName' + middleName: + $ref: '#/components/schemas/MiddleName' + lastName: + $ref: '#/components/schemas/LastName' + dateOfBirth: + $ref: '#/components/schemas/DateOfBirth' + merchantClassificationCode: + $ref: '#/components/schemas/MerchantClassificationCode' + fspId: + $ref: '#/components/schemas/FspId' + extensionList: + $ref: '#/components/schemas/extensionListEmptiable' + AmountType: + title: AmountType + type: string + enum: + - SEND + - RECEIVE + description: >- + Below are the allowed values for the enumeration AmountType. + + - SEND - Amount the Payer would like to send, that is, the amount that + should be withdrawn from the Payer account including any fees. + + - RECEIVE - Amount the Payer would like the Payee to receive, that is, + the amount that should be sent to the receiver exclusive of any fees. + example: RECEIVE + Amount: + title: Amount + type: string + pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$ + description: >- + The API data type Amount is a JSON String in a canonical format that is + restricted by a regular expression for interoperability reasons. This + pattern does not allow any trailing zeroes at all, but allows an amount + without a minor currency unit. It also only allows four digits in the + minor currency unit; a negative value is not allowed. Using more than 18 + digits in the major currency unit is not allowed. + example: '123.45' + transferTransactionType: + title: transferTransactionType + type: string + enum: + - TRANSFER + description: Type of transaction. + TransactionSubScenario: + title: TransactionSubScenario + type: string + pattern: ^[A-Z_]{1,32}$ + description: >- + Possible sub-scenario, defined locally within the scheme (UndefinedEnum + Type). + example: LOCALLY_DEFINED_SUBSCENARIO + Note: + title: Note + type: string + minLength: 1 + maxLength: 128 + description: Memo assigned to transaction. + example: Note sent to Payee. individualQuote: title: IndividualQuote type: object @@ -1482,7 +1172,9 @@ components: amount: $ref: '#/components/schemas/Amount' transactionType: - $ref: '#/components/schemas/transactionType' + $ref: '#/components/schemas/transferTransactionType' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' note: $ref: '#/components/schemas/Note' extensions: @@ -1493,6 +1185,7 @@ components: - amountType - currency - transactionType + - amount bulkQuoteRequest: type: object required: @@ -1518,8 +1211,87 @@ components: $ref: '#/components/schemas/individualQuote' extensions: $ref: '#/components/schemas/ExtensionList' - quoteError: - type: object + DateTime: + title: DateTime + type: string + 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)$ + description: >- + The API data type DateTime is a JSON String in a lexical format that is + restricted by a regular expression for interoperability reasons. The + format is according to [ISO + 8601](https://www.iso.org/iso-8601-date-and-time-format.html), expressed + in a combined date, time and time zone format. A more readable version + of the format is yyyy-MM-ddTHH:mm:ss.SSS[-HH:MM]. Examples are + "2016-05-24T08:38:08.699-04:00", "2016-05-24T08:38:08.699Z" (where Z + indicates Zulu time zone, same as UTC). + example: '2016-05-24T08:38:08.699-04:00' + bulkTransferStatus: + type: string + enum: + - ERROR_OCCURRED + - COMPLETED + Money: + title: Money + type: object + description: Data model for the complex type Money. + properties: + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + required: + - currency + - amount + Latitude: + title: Latitude + type: string + pattern: >- + ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ + description: >- + The API data type Latitude is a JSON String in a lexical format that is + restricted by a regular expression for interoperability reasons. + example: '+45.4215' + Longitude: + title: Longitude + type: string + pattern: >- + ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ + description: >- + The API data type Longitude is a JSON String in a lexical format that is + restricted by a regular expression for interoperability reasons. + example: '+75.6972' + GeoCode: + title: GeoCode + type: object + description: >- + Data model for the complex type GeoCode. Indicates the geographic + location from where the transaction was initiated. + properties: + latitude: + $ref: '#/components/schemas/Latitude' + longitude: + $ref: '#/components/schemas/Longitude' + required: + - latitude + - longitude + IlpPacket: + title: IlpPacket + type: string + pattern: ^[A-Za-z0-9-_]+[=]{0,2}$ + minLength: 1 + maxLength: 32768 + description: Information for recipient (transport layer information). + example: >- + AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA + IlpCondition: + title: IlpCondition + type: string + pattern: ^[A-Za-z0-9-_]{43}$ + maxLength: 48 + description: Condition that must be attached to the transfer by the Payer. + quoteError: + type: object description: >- This object represents a Mojaloop API error received at any time during the quote process @@ -1536,35 +1308,47 @@ components: properties: quoteId: $ref: '#/components/schemas/CorrelationId' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - transactionType: - $ref: '#/components/schemas/transactionType' - note: - $ref: '#/components/schemas/Note' + transferAmount: + $ref: '#/components/schemas/Money' + payeeReceiveAmount: + $ref: '#/components/schemas/Money' + payeeFspFee: + $ref: '#/components/schemas/Money' + payeeFspCommission: + $ref: '#/components/schemas/Money' + geoCode: + $ref: '#/components/schemas/GeoCode' + ilpPacket: + $ref: '#/components/schemas/IlpPacket' + condition: + $ref: '#/components/schemas/IlpCondition' + extensionList: + $ref: '#/components/schemas/ExtensionList' lastError: $ref: '#/components/schemas/quoteError' + required: + - quoteId bulkQuoteResponse: type: object required: - - from + - bulkQuoteId - individualQuoteResults + - currentState + - expiration properties: - quoteId: + bulkQuoteId: $ref: '#/components/schemas/CorrelationId' homeTransactionId: type: string description: >- Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. - from: - $ref: '#/components/schemas/transferParty' + expiration: + $ref: '#/components/schemas/DateTime' + extensionList: + $ref: '#/components/schemas/ExtensionList' + currentState: + $ref: '#/components/schemas/bulkTransferStatus' individualQuoteResults: type: array maxItems: 1000 @@ -1576,7 +1360,7 @@ components: - $ref: '#/components/schemas/errorResponse' - type: object required: - - bulkTansferState + - bulkQuoteState properties: bulkQuoteState: $ref: '#/components/schemas/bulkQuoteResponse' @@ -1602,404 +1386,85 @@ components: maxItems: 1000 items: $ref: '#/components/schemas/individualQuote' - TransactionScenario: - title: TransactionScenario - type: string - enum: - - DEPOSIT - - WITHDRAWAL - - TRANSFER - - PAYMENT - - REFUND - description: >- - Below are the allowed values for the enumeration. - - - DEPOSIT - Used for performing a Cash-In (deposit) transaction. In a - normal scenario, electronic funds are transferred from a Business - account to a Consumer account, and physical cash is given from the - Consumer to the Business User. - - - WITHDRAWAL - Used for performing a Cash-Out (withdrawal) transaction. - In a normal scenario, electronic funds are transferred from a Consumer’s - account to a Business account, and physical cash is given from the - Business User to the Consumer. - - - TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to - Consumer) transaction. - - - PAYMENT - Usually used for performing a transaction from a Consumer to - a Merchant or Organization, but could also be for a B2B (Business to - Business) payment. The transaction could be online for a purchase in an - Internet store, in a physical store where both the Consumer and Business - User are present, a bill payment, a donation, and so on. - - - REFUND - Used for performing a refund of transaction. - TransactionSubScenario: - title: TransactionSubScenario - type: string - pattern: '^[A-Z_]{1,32}$' - description: >- - Possible sub-scenario, defined locally within the scheme (UndefinedEnum - Type). - TransactionInitiator: - title: TransactionInitiator - type: string - enum: - - PAYER - - PAYEE - description: >- - Below are the allowed values for the enumeration. - - - PAYER - Sender of funds is initiating the transaction. The account to - send from is either owned by the Payer or is connected to the Payer in - some way. - - - PAYEE - Recipient of the funds is initiating the transaction by - sending a transaction request. The Payer must approve the transaction, - either automatically by a pre-generated OTP or by pre-approval of the - Payee, or by manually approving in his or her own Device. - RefundReason: - title: RefundReason - type: string - minLength: 1 - maxLength: 128 - description: Reason for the refund. - Refund: - title: Refund + autoAcceptPartyOption: type: object - description: Data model for the complex type Refund. - properties: - originalTransactionId: - $ref: '#/components/schemas/CorrelationId' - refundReason: - $ref: '#/components/schemas/RefundReason' required: - - originalTransactionId - BalanceOfPayments: - title: BalanceOfPayments - type: string - pattern: '^[1-9]\d{2}$' - description: >- - (BopCode) The API data type - [BopCode](https://www.imf.org/external/np/sta/bopcode/) is a JSON String - of 3 characters, consisting of digits only. Negative numbers are not - allowed. A leading zero is not allowed. - TransactionType: - title: TransactionType - type: object - description: Data model for the complex type TransactionType. + - enabled properties: - scenario: - $ref: '#/components/schemas/TransactionScenario' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - initiator: - $ref: '#/components/schemas/TransactionInitiator' - initiatorType: - $ref: '#/components/schemas/TransactionInitiatorType' - refundInfo: - $ref: '#/components/schemas/Refund' - balanceOfPayments: - $ref: '#/components/schemas/BalanceOfPayments' - required: - - scenario - - initiator - - initiatorType - requestToPayRequest: + enabled: + type: boolean + enum: + - false + - true + bulkPerTransferFeeLimit: type: object required: - - homeTransactionId - - from - - to - - amountType - currency - amount - - scenario - - initiator - - initiatorType properties: - homeTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' currency: $ref: '#/components/schemas/Currency' amount: $ref: '#/components/schemas/Amount' - scenario: - $ref: '#/components/schemas/TransactionType' - initiator: - $ref: '#/components/schemas/TransactionInitiator' - initiatorType: - $ref: '#/components/schemas/TransactionInitiatorType' - AuthenticationType: - title: AuthenticationType - type: string - enum: - - OTP - - QRCODE - - U2F - description: |- - Below are the allowed values for the enumeration AuthenticationType. - - OTP - One-time password generated by the Payer FSP. - - QRCODE - QR code used as One Time Password. - - U2F - U2F is a new addition isolated to Thirdparty stream. - TransactionRequestState: - title: TransactionRequestState - type: string - enum: - - RECEIVED - - PENDING - - ACCEPTED - - REJECTED - description: |- - Below are the allowed values for the enumeration. - - RECEIVED - Payer FSP has received the transaction from the Payee FSP. - - PENDING - Payer FSP has sent the transaction request to the Payer. - - ACCEPTED - Payer has approved the transaction. - - REJECTED - Payer has rejected the transaction. - requestToPayResponse: - type: object - required: - - transactionRequestId - - from - - to - - amountType - - currency - - amount - - transactionType - - requestToPayState - properties: - transactionRequestId: - $ref: '#/components/schemas/CorrelationId' - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - scenario: - $ref: '#/components/schemas/TransactionType' - initiator: - $ref: '#/components/schemas/TransactionInitiator' - initiatorType: - $ref: '#/components/schemas/TransactionInitiatorType' - authenticationType: - $ref: '#/components/schemas/AuthenticationType' - requestToPayState: - $ref: '#/components/schemas/TransactionRequestState' - requestToPayTransferRequest: - type: object - required: - - requestToPayTransactionId - - from - - to - - amountType - - currency - - amount - - scenario - - initiator - - initiatorType - properties: - requestToPayTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - scenario: - $ref: '#/components/schemas/TransactionType' - initiator: - $ref: '#/components/schemas/TransactionInitiator' - initiatorType: - $ref: '#/components/schemas/TransactionInitiatorType' - note: - $ref: '#/components/schemas/Note' - requestToPayTransferResponse: - type: object - required: - - requestToPayTransactionId - - from - - to - - amountType - - currency - - amount - - transactionType - properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - requestToPayTransactionId: - type: string - description: >- - Transaction ID from the DFSP backend, used to reconcile transactions - between the Switch and DFSP backend systems. - from: - $ref: '#/components/schemas/transferParty' - to: - $ref: '#/components/schemas/transferParty' - amountType: - $ref: '#/components/schemas/AmountType' - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - transactionType: - $ref: '#/components/schemas/transactionType' - note: - $ref: '#/components/schemas/Note' - currentState: - $ref: '#/components/schemas/transferStatus' - quoteId: - $ref: '#/components/schemas/CorrelationId' - quoteResponse: - $ref: '#/components/schemas/QuotesIDPutResponse' - quoteResponseSource: - type: string - description: > - FSPID of the entity that supplied the quote response. This may not - be the same as the FSPID of the entity which owns the end user - account in the case of a FOREX transfer. i.e. it may be a FOREX - gateway. - fulfil: - $ref: '#/components/schemas/TransfersIDPutResponse' - lastError: - $ref: '#/components/schemas/transferError' - transferContinuationAcceptOTP: + autoAcceptQuote: type: object required: - - acceptOTP + - enabled properties: - acceptOTP: + enabled: type: boolean enum: - true - false - accountsRequest: - type: array - items: - type: object - required: - - idType - - idValue - - currency - properties: - idType: - $ref: '#/components/schemas/PartyIdType' - idValue: - $ref: '#/components/schemas/PartyIdentifier' - idSubValue: - $ref: '#/components/schemas/PartySubIdOrType' - currency: - $ref: '#/components/schemas/Currency' - accountCreationStatus: - type: array - items: - type: object - required: - - idType - - idValue - properties: - idType: - $ref: '#/components/schemas/PartyIdType' - idValue: - $ref: '#/components/schemas/PartyIdentifier' - idSubValue: - $ref: '#/components/schemas/PartySubIdOrType' - error: - $ref: '#/components/schemas/errorResponse' - accountsCreationState: - type: string - enum: - - ERROR_OCCURRED - - COMPLETED - accountsResponse: - type: object - required: - - accounts - properties: - modelId: - $ref: '#/components/schemas/CorrelationId' - accounts: - $ref: '#/components/schemas/accountsRequest' - response: - $ref: '#/components/schemas/accountCreationStatus' - currentState: - $ref: '#/components/schemas/accountsCreationState' - lastError: - $ref: '#/components/schemas/transferError' - errorAccountsResponse: - allOf: - - $ref: '#/components/schemas/errorResponse' - - type: object - required: - - executionState - properties: - executionState: - $ref: '#/components/schemas/accountsResponse' - AccountAddress: - title: AccountAddress - type: string - description: > - A long-lived unique account identifier provided by the DFSP. This MUST - NOT - - be Bank Account Number or anything that may expose a User's private bank - - account information. - pattern: '^([0-9A-Za-z_~\-\.]+[0-9A-Za-z_~\-])$' - minLength: 1 - maxLength: 1023 - Account: - title: Account - type: object - description: Data model for the complex type Account. - properties: - address: - $ref: '#/components/schemas/AccountAddress' - currency: - $ref: '#/components/schemas/Currency' - description: - $ref: '#/components/schemas/Name' - required: - - currency - AccountList: - title: AccountList - type: object - description: Data model for the complex type AccountList. - properties: - account: + perTransferFeeLimits: type: array + minItems: 0 items: - $ref: '#/components/schemas/Account' - minItems: 1 - maxItems: 32 - description: Accounts associated with the Party. + $ref: '#/components/schemas/bulkPerTransferFeeLimit' + bulkTransactionOptions: + type: object required: - - account + - autoAcceptParty + - autoAcceptQuote + - bulkExpiration + properties: + onlyValidateParty: + description: >- + Set to true if only party validation is required. This means the + quotes and transfers will not run. This is useful for only party + resolution. + type: boolean + autoAcceptParty: + $ref: '#/components/schemas/autoAcceptPartyOption' + autoAcceptQuote: + description: >- + Set to true if the quote response is accepted without confirmation + from the payer. The fees applied by the payee will be acceptable to + the payer abiding by the limits set by optional + 'perTransferFeeLimits' array. + type: object + oneOf: + - $ref: '#/components/schemas/autoAcceptQuote' + skipPartyLookup: + description: >- + Set to true if supplying an FSPID for the payee party and no party + resolution is needed. This may be useful if a previous party + resolution has been performed. + type: boolean + synchronous: + description: >- + Set to true if the bulkTransfer requests need be handled + synchronous. Otherwise the requests will be handled asynchronously, + meaning there will be callbacks whenever the processing is done + type: boolean + bulkExpiration: + $ref: '#/components/schemas/DateTime' PartyIdInfo: title: PartyIdInfo type: object - description: Data model for the complex type PartyIdInfo. + description: >- + Data model for the complex type PartyIdInfo. An ExtensionList element + has been added to this reqeust in version v1.1 properties: partyIdType: $ref: '#/components/schemas/PartyIdType' @@ -2045,8 +1510,6 @@ components: type: object description: Data model for the complex type Party. properties: - accounts: - $ref: '#/components/schemas/AccountList' partyIdInfo: $ref: '#/components/schemas/PartyIdInfo' merchantClassificationCode: @@ -2057,388 +1520,1208 @@ components: $ref: '#/components/schemas/PartyPersonalInfo' required: - partyIdInfo - async2SyncCurrentState: - type: string - enum: - - WAITING_FOR_ACTION - - COMPLETED - - ERROR_OCCURRED - partiesByIdResponse: - title: partiesByIdResponse - type: object - description: 'GET /parties/{Type}/{ID} response object' - properties: - party: - $ref: '#/components/schemas/Party' - currentState: - $ref: '#/components/schemas/async2SyncCurrentState' - required: - - party - - currentState - QuotesPostRequest: - title: QuotesPostRequest + bulkTransactionIndividualTransfer: + title: BulkTransactionIndividualTransfer type: object - description: The object sent in the POST /quotes request. + description: Data model for the complex type 'bulkTransactionIndividualTransfer'. properties: - quoteId: - $ref: '#/components/schemas/CorrelationId' - transactionId: - $ref: '#/components/schemas/CorrelationId' - transactionRequestId: - $ref: '#/components/schemas/CorrelationId' - payee: - $ref: '#/components/schemas/Party' - payer: + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + to: $ref: '#/components/schemas/Party' + reference: + description: Payer Loan reference + type: string amountType: $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' amount: - $ref: '#/components/schemas/Money' - fees: - $ref: '#/components/schemas/Money' - transactionType: - $ref: '#/components/schemas/TransactionType' - geoCode: - $ref: '#/components/schemas/GeoCode' + $ref: '#/components/schemas/Amount' note: $ref: '#/components/schemas/Note' - expiration: - $ref: '#/components/schemas/DateTime' - extensionList: + quoteExtensions: + $ref: '#/components/schemas/ExtensionList' + transferExtensions: $ref: '#/components/schemas/ExtensionList' + lastError: + $ref: '#/components/schemas/transferError' required: - - quoteId - - transactionId - - payee - - payer + - homeTransactionId + - to - amountType + - currency - amount - - transactionType - quotesPostRequest: - title: QuotesPostRequest + bulkTransactionRequest: type: object + required: + - bulkTransactionId + - bulkHomeTransactionID + - options + - from + - individualTransfers properties: - fspId: - $ref: '#/components/schemas/FspId' - quotesPostRequest: - $ref: '#/components/schemas/QuotesPostRequest' + bulkHomeTransactionID: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + bulkTransactionId: + $ref: '#/components/schemas/CorrelationId' + options: + $ref: '#/components/schemas/bulkTransactionOptions' + from: + $ref: '#/components/schemas/Party' + individualTransfers: + description: List of individual transfers in a bulk transfer. + type: array + minItems: 1 + items: + $ref: '#/components/schemas/bulkTransactionIndividualTransfer' + extensions: + $ref: '#/components/schemas/ExtensionList' + TransferState: + title: TransferState + type: string + enum: + - RECEIVED + - RESERVED + - COMMITTED + - ABORTED + description: >- + Below are the allowed values for the enumeration. + + - RECEIVED - Next ledger has received the transfer. + + - RESERVED - Next ledger has reserved the transfer. + + - COMMITTED - Next ledger has successfully performed the transfer. + + - ABORTED - Next ledger has aborted the transfer due to a rejection or + failure to perform the transfer. + example: RESERVED + IlpFulfilment: + title: IlpFulfilment + type: string + pattern: ^[A-Za-z0-9-_]{43}$ + maxLength: 48 + description: Fulfilment that must be attached to the transfer by the Payee. + example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8 + individualTransferResult: + type: object required: - - fspId - - quotesPostRequest - quotesPostResponse: - title: QuotesPostResponse + - transferId + properties: + transferId: + $ref: '#/components/schemas/CorrelationId' + fulfilment: + $ref: '#/components/schemas/IlpFulfilment' + extensionList: + $ref: '#/components/schemas/ExtensionList' + transferState: + $ref: '#/components/schemas/TransferState' + lastError: + $ref: '#/components/schemas/transferError' + bulkTransferResponse: type: object + required: + - bulkTransferId + - individualTransferResults + - currentState properties: - quotes: - title: QuotesIDPutResponse - type: object - description: 'The object sent in the PUT /quotes/{ID} callback.' - properties: - transferAmount: - $ref: '#/components/schemas/Money' - payeeReceiveAmount: - $ref: '#/components/schemas/Money' - payeeFspFee: - $ref: '#/components/schemas/Money' - payeeFspCommission: - $ref: '#/components/schemas/Money' - expiration: - type: string - description: >- - Date and time until when the quotation is valid and can be - honored when used in the subsequent transaction. - example: '2016-05-24T08:38:08.699-04:00' - geoCode: - $ref: '#/components/schemas/GeoCode' - ilpPacket: - $ref: '#/components/schemas/IlpPacket' - condition: - $ref: '#/components/schemas/IlpCondition' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - transferAmount - - expiration - - ilpPacket - - condition + bulkTransferId: + $ref: '#/components/schemas/CorrelationId' + bulkQuoteId: + $ref: '#/components/schemas/CorrelationId' + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + bulkTransferState: + $ref: '#/components/schemas/TransferState' + completedTimestamp: + $ref: '#/components/schemas/DateTime' + extensionList: + $ref: '#/components/schemas/ExtensionList' currentState: - $ref: '#/components/schemas/async2SyncCurrentState' + $ref: '#/components/schemas/bulkTransferStatus' + individualTransferResults: + type: array + maxItems: 1000 + items: + $ref: '#/components/schemas/individualTransferResult' + description: List of individual transfer result in a bulk transfer response. + bulkTransferErrorResponse: + allOf: + - $ref: '#/components/schemas/errorResponse' + - type: object + required: + - bulkTransferState + properties: + bulkTransferState: + $ref: '#/components/schemas/bulkTransferResponse' + bulkTransactionIndividualTransferAccept: + type: object + description: Data model for the 'individualTransfer' while accepting party or quote. + properties: + transferId: + $ref: '#/components/schemas/CorrelationId' required: - - quotes - - currentState - errorQuotesResponse: + - transferId + transferContinuationAcceptParty: + type: object + required: + - acceptParty + properties: + acceptParty: + type: boolean + enum: + - true + - false + bulkTransactionContinuationAcceptParty: + description: >- + The object sent back as confirmation of payee parties when + autoAcceptParty is false. + type: object + required: + - individualTransfers + properties: + individualTransfers: + description: >- + List of individual transfers in a bulk transfer with accept party + information. + type: array + minItems: 1 + items: + allOf: + - $ref: '#/components/schemas/bulkTransactionIndividualTransferAccept' + - $ref: '#/components/schemas/transferContinuationAcceptParty' + transferContinuationAcceptQuote: + type: object + required: + - acceptQuote + properties: + acceptQuote: + type: boolean + enum: + - true + - false + bulkTransactionContinuationAcceptQuote: + description: >- + The object sent back as confirmation of quotes when autoAcceptQuotes is + false. + type: object + required: + - individualTransfers + properties: + individualTransfers: + description: List of individual transfers in a bulk transfer. + type: array + minItems: 1 + items: + allOf: + - $ref: '#/components/schemas/bulkTransactionIndividualTransferAccept' + - $ref: '#/components/schemas/transferContinuationAcceptQuote' + partyError: + type: object + description: >- + This object represents a Mojaloop API error received at any time during + the party discovery process + properties: + httpStatusCode: + type: integer + description: >- + The HTTP status code returned to the caller. This is the same as the + actual HTTP status code returned with the response. + mojaloopError: + $ref: '#/components/schemas/mojaloopError' + bulkTransactionAcceptPartyErrorResponse: allOf: - $ref: '#/components/schemas/errorResponse' - type: object - TransfersPostRequest: - title: TransfersPostRequest + required: + - bulkTransferState + properties: + bulkTransferState: + allOf: + - $ref: '#/components/schemas/bulkTransactionContinuationAcceptParty' + - $ref: '#/components/schemas/partyError' + bulkTransactionAcceptQuoteErrorResponse: + allOf: + - $ref: '#/components/schemas/errorResponse' + - type: object + required: + - bulkTansferState + properties: + bulkTransferState: + allOf: + - $ref: '#/components/schemas/bulkTransactionContinuationAcceptQuote' + - $ref: '#/components/schemas/quoteError' + individualTransfer: + title: IndividualTransfer type: object - description: The object sent in the POST /transfers request. + description: Data model for the complex type 'individualTransfer'. properties: transferId: $ref: '#/components/schemas/CorrelationId' - payeeFsp: - $ref: '#/components/schemas/FspId' - payerFsp: - $ref: '#/components/schemas/FspId' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' amount: - $ref: '#/components/schemas/Money' + $ref: '#/components/schemas/Amount' + transactionType: + $ref: '#/components/schemas/transferTransactionType' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' ilpPacket: $ref: '#/components/schemas/IlpPacket' condition: $ref: '#/components/schemas/IlpCondition' - expiration: - $ref: '#/components/schemas/DateTime' - extensionList: + note: + $ref: '#/components/schemas/Note' + extensions: $ref: '#/components/schemas/ExtensionList' required: - transferId - - payeeFsp - - payerFsp + - to + - amountType + - currency - amount - ilpPacket - condition - - expiration - simpleTransfersPostRequest: - title: SimpleTransfersPostRequest + bulkTransferRequest: type: object - properties: - fspId: - $ref: '#/components/schemas/FspId' - transfersPostRequest: - $ref: '#/components/schemas/TransfersPostRequest' required: - - fspId - - transfersPostRequest - simpleTransfersPostResponse: - title: SimpleTransfersPostResponse - type: object + - bulkTransferId + - homeTransactionId + - bulkQuoteId + - from + - individualTransfers properties: - transfer: - $ref: '#/components/schemas/TransfersIDPutResponse' - currentState: - $ref: '#/components/schemas/async2SyncCurrentState' - required: - - transfer - - currentState - errorSimpleTransfersResponse: - allOf: - - $ref: '#/components/schemas/errorResponse' - - type: object - AuthorizationChannelType: - title: AuthorizationChannelType - type: string - enum: - - OTP - - QRCODE - - U2F - description: > - Below are the allowed values for the enumeration - AuthorizationChannelType. + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + bulkTransferId: + $ref: '#/components/schemas/CorrelationId' + bulkQuoteId: + $ref: '#/components/schemas/CorrelationId' + from: + $ref: '#/components/schemas/transferParty' + individualTransfers: + description: List of individual transfers in a bulk transfer. + type: array + minItems: 1 + maxItems: 1000 + items: + $ref: '#/components/schemas/individualTransfer' + extensions: + $ref: '#/components/schemas/ExtensionList' + individualTransferFulfilment: + type: object + description: >- + A Mojaloop API transfer fulfilment for individual transfers in a bulk + transfer + properties: + fulfilment: + $ref: '#/components/schemas/IlpFulfilment' + extensionList: + $ref: '#/components/schemas/ExtensionList' + bulkTransferStatusResponse: + type: object + required: + - bulkTransferId + - currentState + - fulfils + properties: + bulkTransferId: + $ref: '#/components/schemas/CorrelationId' + currentState: + $ref: '#/components/schemas/bulkTransferStatus' + fulfils: + type: array + minItems: 1 + maxItems: 1000 + items: + $ref: '#/components/schemas/individualTransferFulfilment' + async2SyncCurrentState: + type: string + enum: + - WAITING_FOR_ACTION + - COMPLETED + - ERROR_OCCURRED + partiesByIdResponse: + title: partiesByIdResponse + type: object + description: GET /parties/{Type}/{ID} response object + properties: + party: + properties: + body: + $ref: '#/components/schemas/Party' + description: Information regarding the requested Party. + headers: + type: object + required: + - body + - headers + currentState: + $ref: '#/components/schemas/async2SyncCurrentState' + required: + - party + - currentState + TransactionScenario: + title: TransactionScenario + type: string + enum: + - DEPOSIT + - WITHDRAWAL + - TRANSFER + - PAYMENT + - REFUND + description: >- + Below are the allowed values for the enumeration. - - OTP - One-time password generated by the Payer FSP. + - DEPOSIT - Used for performing a Cash-In (deposit) transaction. In a + normal scenario, electronic funds are transferred from a Business + account to a Consumer account, and physical cash is given from the + Consumer to the Business User. - - QRCODE - QR code used as One Time Password. + - WITHDRAWAL - Used for performing a Cash-Out (withdrawal) transaction. + In a normal scenario, electronic funds are transferred from a Consumer’s + account to a Business account, and physical cash is given from the + Business User to the Consumer. - - U2F - U2F is a new addition isolated to Thirdparty stream. + - TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to + Consumer) transaction. + - PAYMENT - Usually used for performing a transaction from a Consumer to + a Merchant or Organization, but could also be for a B2B (Business to + Business) payment. The transaction could be online for a purchase in an + Internet store, in a physical store where both the Consumer and Business + User are present, a bill payment, a donation, and so on. - This is based on FSPIOP `AuthenticationType` with U2F added. - example: U2F - Integer: - title: Integer + - REFUND - Used for performing a refund of transaction. + example: DEPOSIT + TransactionInitiator: + title: TransactionInitiator type: string - pattern: '^[1-9]\d*$' + enum: + - PAYER + - PAYEE description: >- - The API data type Integer is a JSON String consisting of digits only. - Negative numbers and leading zeroes are not allowed. The data type is - always limited to a specific number of digits. - AuthorizationsPostRequest: - title: AuthorizationsPostRequest - description: POST /authorizations request object. + Below are the allowed values for the enumeration. + + - PAYER - Sender of funds is initiating the transaction. The account to + send from is either owned by the Payer or is connected to the Payer in + some way. + + - PAYEE - Recipient of the funds is initiating the transaction by + sending a transaction request. The Payer must approve the transaction, + either automatically by a pre-generated OTP or by pre-approval of the + Payee, or by manually approving in his or her own Device. + example: PAYEE + RefundReason: + title: RefundReason + type: string + minLength: 1 + maxLength: 128 + description: Reason for the refund. + example: Free text indicating reason for the refund. + Refund: + title: Refund type: object + description: Data model for the complex type Refund. properties: - authenticationType: - $ref: '#/components/schemas/AuthorizationChannelType' - retriesLeft: - $ref: '#/components/schemas/Integer' - amount: - $ref: '#/components/schemas/Money' + originalTransactionId: + $ref: '#/components/schemas/CorrelationId' + refundReason: + $ref: '#/components/schemas/RefundReason' + required: + - originalTransactionId + BalanceOfPayments: + title: BalanceOfPayments + type: string + pattern: ^[1-9]\d{2}$ + description: >- + (BopCode) The API data type + [BopCode](https://www.imf.org/external/np/sta/bopcode/) is a JSON String + of 3 characters, consisting of digits only. Negative numbers are not + allowed. A leading zero is not allowed. + example: '123' + TransactionType: + title: TransactionType + type: object + description: Data model for the complex type TransactionType. + properties: + scenario: + $ref: '#/components/schemas/TransactionScenario' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + initiator: + $ref: '#/components/schemas/TransactionInitiator' + initiatorType: + $ref: '#/components/schemas/TransactionInitiatorType' + refundInfo: + $ref: '#/components/schemas/Refund' + balanceOfPayments: + $ref: '#/components/schemas/BalanceOfPayments' + required: + - scenario + - initiator + - initiatorType + QuotesPostRequest: + title: QuotesPostRequest + type: object + description: The object sent in the POST /quotes request. + properties: + quoteId: + $ref: '#/components/schemas/CorrelationId' transactionId: $ref: '#/components/schemas/CorrelationId' transactionRequestId: $ref: '#/components/schemas/CorrelationId' - quote: - $ref: '#/components/schemas/QuotesIDPutResponse' + payee: + $ref: '#/components/schemas/Party' + payer: + $ref: '#/components/schemas/Party' + amountType: + $ref: '#/components/schemas/AmountType' + amount: + $ref: '#/components/schemas/Money' + fees: + $ref: '#/components/schemas/Money' + transactionType: + $ref: '#/components/schemas/TransactionType' + geoCode: + $ref: '#/components/schemas/GeoCode' + note: + $ref: '#/components/schemas/Note' + expiration: + $ref: '#/components/schemas/DateTime' + extensionList: + $ref: '#/components/schemas/ExtensionList' + required: + - quoteId + - transactionId + - payee + - payer + - amountType + - amount + - transactionType + simpleQuotesPostRequest: + title: simpleQuotesPostRequest + type: object + properties: + fspId: + title: destination DFSP requested to calculate the quote + $ref: '#/components/schemas/FspId' + quotesPostRequest: + $ref: '#/components/schemas/QuotesPostRequest' + required: + - fspId + - quotesPostRequest + quotesPostResponse: + title: QuotesPostResponse + type: object + properties: + quotes: + title: QuotesIDPutResponse + type: object + description: The object sent in the PUT /quotes/{ID} callback. + properties: + body: + type: object + properties: + transferAmount: + $ref: '#/components/schemas/Money' + payeeReceiveAmount: + $ref: '#/components/schemas/Money' + payeeFspFee: + $ref: '#/components/schemas/Money' + payeeFspCommission: + $ref: '#/components/schemas/Money' + expiration: + type: string + description: >- + Date and time until when the quotation is valid and can be + honored when used in the subsequent transaction. + example: '2016-05-24T08:38:08.699-04:00' + geoCode: + $ref: '#/components/schemas/GeoCode' + ilpPacket: + $ref: '#/components/schemas/IlpPacket' + condition: + $ref: '#/components/schemas/IlpCondition' + extensionList: + $ref: '#/components/schemas/ExtensionList' + required: + - transferAmount + - expiration + - ilpPacket + - condition + headers: + type: object + required: + - body + - headers + currentState: + $ref: '#/components/schemas/async2SyncCurrentState' + required: + - quotes + - currentState + errorQuotesResponse: + allOf: + - $ref: '#/components/schemas/errorResponse' + - type: object + AuthenticationType: + title: AuthenticationType + type: string + enum: + - OTP + - QRCODE + - U2F + description: |- + Below are the allowed values for the enumeration AuthenticationType. + - OTP - One-time password generated by the Payer FSP. + - QRCODE - QR code used as One Time Password. + - U2F - U2F is a new addition isolated to Thirdparty stream. + example: OTP + requestToPayRequest: + type: object + required: + - homeR2PTransactionId + - from + - to + - amountType + - currency + - amount + - transactionType + properties: + homeR2PTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + from: + $ref: '#/components/schemas/transferParty' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + transactionType: + $ref: '#/components/schemas/TransactionScenario' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + authenticationType: + $ref: '#/components/schemas/AuthenticationType' + requestToPayStatus: + type: string + enum: + - ERROR_OCCURRED + - WAITING_FOR_PARTY_ACCEPTANCE + - COMPLETED + getPartiesResponse: + title: getPartiesResponse + type: object + description: The object sent in the GET /parties/{Type}/{ID} callback. + properties: + body: + $ref: '#/components/schemas/Party' + description: Information regarding the requested Party. + headers: + type: object + required: + - body + - headers + TransactionRequestState: + title: TransactionRequestState + type: string + enum: + - RECEIVED + - PENDING + - ACCEPTED + - REJECTED + description: |- + Below are the allowed values for the enumeration. + - RECEIVED - Payer FSP has received the transaction from the Payee FSP. + - PENDING - Payer FSP has sent the transaction request to the Payer. + - ACCEPTED - Payer has approved the transaction. + - REJECTED - Payer has rejected the transaction. + example: RECEIVED + TransactionRequestResponse: + title: TransactionRequestResponse + type: object + description: The object sent in the PUT /transactionRequests/{ID} callback. + properties: + body: + type: object + properties: + transactionId: + $ref: '#/components/schemas/CorrelationId' + transactionRequestState: + $ref: '#/components/schemas/TransactionRequestState' + extensionList: + $ref: '#/components/schemas/ExtensionList' + required: + - transactionRequestState + headers: + type: object + required: + - body + - headers + requestToPayResponse: + type: object + required: + - transactionRequestId + - from + - to + - amountType + - currency + - amount + - transactionType + - currentState + properties: + transactionRequestId: + $ref: '#/components/schemas/CorrelationId' + from: + $ref: '#/components/schemas/transferParty' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + transactionType: + $ref: '#/components/schemas/TransactionScenario' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + currentState: + $ref: '#/components/schemas/requestToPayStatus' + getPartiesResponse: + $ref: '#/components/schemas/getPartiesResponse' + transactionRequestResponse: + $ref: '#/components/schemas/TransactionRequestResponse' + lastError: + description: > + Object representing the last error to occur during a transfer + process. This may be a Mojaloop API error returned from another + entity in the scheme or an object representing other types of error + e.g. exceptions that may occur inside the scheme adapter. + $ref: '#/components/schemas/transferError' + transferStatus: + type: string + enum: + - ERROR_OCCURRED + - WAITING_FOR_PARTY_ACCEPTANCE + - WAITING_FOR_QUOTE_ACCEPTANCE + - COMPLETED + QuotesIDPutResponse: + title: QuotesIDPutResponse + type: object + description: The object sent in the PUT /quotes/{ID} callback. + properties: + transferAmount: + $ref: '#/components/schemas/Money' + payeeReceiveAmount: + $ref: '#/components/schemas/Money' + payeeFspFee: + $ref: '#/components/schemas/Money' + payeeFspCommission: + $ref: '#/components/schemas/Money' + expiration: + $ref: '#/components/schemas/DateTime' + geoCode: + $ref: '#/components/schemas/GeoCode' + ilpPacket: + $ref: '#/components/schemas/IlpPacket' + condition: + $ref: '#/components/schemas/IlpCondition' + extensionList: + $ref: '#/components/schemas/ExtensionList' + required: + - transferAmount + - expiration + - ilpPacket + - condition + TransfersIDPutResponse: + title: TransfersIDPutResponse + type: object + description: The object sent in the PUT /transfers/{ID} callback. + properties: + fulfilment: + $ref: '#/components/schemas/IlpFulfilment' + completedTimestamp: + $ref: '#/components/schemas/DateTime' + transferState: + $ref: '#/components/schemas/TransferState' + extensionList: + $ref: '#/components/schemas/ExtensionList' + required: + - transferState + transferResponse: + type: object + required: + - homeTransactionId + - from + - to + - amountType + - currency + - amount + - transactionType + properties: + transferId: + $ref: '#/components/schemas/CorrelationId' + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + from: + $ref: '#/components/schemas/transferParty' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + transactionType: + $ref: '#/components/schemas/transferTransactionType' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + note: + $ref: '#/components/schemas/Note' + currentState: + $ref: '#/components/schemas/transferStatus' + quoteId: + $ref: '#/components/schemas/CorrelationId' + getPartiesResponse: + type: object + required: + - body + properties: + body: + type: object + headers: + type: object + quoteResponse: + type: object + required: + - body + properties: + body: + $ref: '#/components/schemas/QuotesIDPutResponse' + headers: + type: object + quoteResponseSource: + type: string + description: > + FSPID of the entity that supplied the quote response. This may not + be the same as the FSPID of the entity which owns the end user + account in the case of a FOREX transfer. i.e. it may be a FOREX + gateway. + fulfil: + type: object + required: + - body + properties: + body: + $ref: '#/components/schemas/TransfersIDPutResponse' + headers: + type: object + lastError: + description: > + Object representing the last error to occur during a transfer + process. This may be a Mojaloop API error returned from another + entity in the scheme or an object representing other types of error + e.g. exceptions that may occur inside the scheme adapter. + $ref: '#/components/schemas/transferError' + skipPartyLookup: + description: >- + Set to true if supplying an FSPID for the payee party and no party + resolution is needed. This may be useful is a previous party + resolution has been performed. + type: boolean + errorTransferResponse: + allOf: + - $ref: '#/components/schemas/errorResponse' + - type: object + required: + - transferState + properties: + transferState: + $ref: '#/components/schemas/transferResponse' + requestToPayTransferRequest: + type: object + required: + - homeR2PTransactionId + - transactionRequestId + - from + - to + - amountType + - currency + - amount + - scenario + - initiator + - initiatorType + properties: + homeR2PTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + transactionRequestId: + $ref: '#/components/schemas/CorrelationId' + from: + $ref: '#/components/schemas/transferParty' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + scenario: + $ref: '#/components/schemas/TransactionScenario' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + initiator: + $ref: '#/components/schemas/TransactionInitiator' + initiatorType: + $ref: '#/components/schemas/TransactionInitiatorType' + note: + $ref: '#/components/schemas/Note' + authenticationType: + $ref: '#/components/schemas/AuthenticationType' + AuthenticationValue: + title: AuthenticationValue + anyOf: + - title: OtpValue + type: string + pattern: ^\d{3,10}$ + description: >- + The API data type OtpValue is a JSON String of 3 to 10 characters, + consisting of digits only. Negative numbers are not allowed. One or + more leading zeros are allowed. + - title: QRCODE + type: string + minLength: 1 + maxLength: 64 + description: QR code used as a One Time Password. + - title: U2FPinValue + type: object + description: > + U2F challenge-response, where payer FSP verifies if the response + provided by end-user device matches the previously registered key. + properties: + pinValue: + type: string + pattern: ^\S{1,64}$ + minLength: 1 + maxLength: 64 + description: > + U2F challenge-response, where payer FSP verifies if the response + provided by end-user device matches the previously registered + key. + counter: + title: Integer + type: string + pattern: ^[1-9]\d*$ + description: >- + Sequential counter used for cloning detection. Present only for + U2F authentication. + required: + - pinValue + - counter + pattern: ^\d{3,10}$|^\S{1,64}$ + description: >- + Contains the authentication value. The format depends on the + authentication type used in the AuthenticationInfo complex type. + AuthenticationInfo: + title: AuthenticationInfo + type: object + description: Data model for the complex type AuthenticationInfo. + properties: + authentication: + $ref: '#/components/schemas/AuthenticationType' + authenticationValue: + $ref: '#/components/schemas/AuthenticationValue' + required: + - authentication + - authenticationValue + AuthorizationResponseType: + title: AuthorizationResponseType + type: string + enum: + - ENTERED + - REJECTED + - RESEND + description: |- + Below are the allowed values for the enumeration. + - ENTERED - Consumer entered the authentication value. + - REJECTED - Consumer rejected the transaction. + - RESEND - Consumer requested to resend the authentication value. + example: ENTERED + AuthorizationIDPutResponse: + title: AuthorizationIDPutResponse + type: object + description: The object sent in the PUT /authorizations/{ID} callback. + properties: + authenticationInfo: + $ref: '#/components/schemas/AuthenticationInfo' + responseType: + $ref: '#/components/schemas/AuthorizationResponseType' + required: + - responseType + requestToPayTransferResponse: + type: object + required: + - transactionRequestId + - from + - to + - amountType + - currency + - amount + - transactionType + properties: + transferId: + $ref: '#/components/schemas/CorrelationId' + homeR2PTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + transactionRequestId: + $ref: '#/components/schemas/CorrelationId' + from: + $ref: '#/components/schemas/transferParty' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + transactionType: + $ref: '#/components/schemas/transferTransactionType' + note: + $ref: '#/components/schemas/Note' + currentState: + $ref: '#/components/schemas/transferStatus' + quoteId: + $ref: '#/components/schemas/CorrelationId' + quoteResponse: + type: object + required: + - body + properties: + body: + $ref: '#/components/schemas/QuotesIDPutResponse' + headers: + type: object + quoteResponseSource: + type: string + description: > + FSPID of the entity that supplied the quote response. This may not + be the same as the FSPID of the entity which owns the end user + account in the case of a FOREX transfer. i.e. it may be a FOREX + gateway. + authorizationResponse: + type: object + required: + - body + properties: + body: + $ref: '#/components/schemas/AuthorizationIDPutResponse' + headers: + type: object + fulfil: + type: object + required: + - body + properties: + body: + $ref: '#/components/schemas/TransfersIDPutResponse' + headers: + type: object + lastError: + description: > + Object representing the last error to occur during a transfer + process. This may be a Mojaloop API error returned from another + entity in the scheme or an object representing other types of error + e.g. exceptions that may occur inside the scheme adapter. + $ref: '#/components/schemas/transferError' + transferContinuationAcceptOTP: + type: object + required: + - acceptOTP + properties: + acceptOTP: + type: boolean + enum: + - true + - false + TransfersPostRequest: + title: TransfersPostRequest + type: object + description: The object sent in the POST /transfers request. + properties: + transferId: + $ref: '#/components/schemas/CorrelationId' + payeeFsp: + $ref: '#/components/schemas/FspId' + payerFsp: + $ref: '#/components/schemas/FspId' + amount: + $ref: '#/components/schemas/Money' + ilpPacket: + $ref: '#/components/schemas/IlpPacket' + condition: + $ref: '#/components/schemas/IlpCondition' + expiration: + $ref: '#/components/schemas/DateTime' + extensionList: + $ref: '#/components/schemas/ExtensionList' required: - - authenticationType - - retriesLeft + - transferId + - payeeFsp + - payerFsp - amount - - transactionId - - transactionRequestId - - quote - additionalProperties: false - authorizationsPostRequest: - title: AuthorizationsPostRequest - description: POST /authorizations Request object + - ilpPacket + - condition + - expiration + simpleTransfersPostRequest: + title: SimpleTransfersPostRequest type: object properties: fspId: $ref: '#/components/schemas/FspId' - authorizationsPostRequest: - $ref: '#/components/schemas/AuthorizationsPostRequest' + transfersPostRequest: + $ref: '#/components/schemas/TransfersPostRequest' required: - fspId - - authorizationsPostRequest - OtpValue: - title: OtpValue - type: string - pattern: '^\d{3,10}$' - description: >- - The API data type OtpValue is a JSON String of 3 to 10 characters, - consisting of digits only. Negative numbers are not allowed. One or more - leading zeros are allowed. - QRCODE: - title: QRCODE - type: string - minLength: 1 - maxLength: 64 - description: QR code used as a One Time Password. - U2FPIN: - title: U2FPIN - type: string - pattern: '^\S{1,64}$' - minLength: 1 - maxLength: 64 - description: > - U2F challenge-response, where payer FSP verifies if the response - provided by end-user device matches the previously registered key. - U2FPinValue: - title: U2FPinValue - type: object - description: > - U2F challenge-response, where payer FSP verifies if the response - provided by end-user device matches the previously registered key. - properties: - pinValue: - allOf: - - $ref: '#/components/schemas/U2FPIN' - description: U2F challenge-response. - counter: - allOf: - - $ref: '#/components/schemas/Integer' - description: >- - Sequential counter used for cloning detection. Present only for U2F - authentication. - required: - - pinValue - - counter - AuthenticationValue: - title: AuthenticationValue - anyOf: - - $ref: '#/components/schemas/OtpValue' - - $ref: '#/components/schemas/QRCODE' - - $ref: '#/components/schemas/U2FPinValue' - pattern: '^\d{3,10}$|^\S{1,64}$' - description: >- - Contains the authentication value. The format depends on the - authentication type used in the AuthenticationInfo complex type. - AuthenticationInfo: - title: AuthenticationInfo - type: object - description: Data model for the complex type AuthenticationInfo. - properties: - authentication: - $ref: '#/components/schemas/AuthenticationType' - authenticationValue: - $ref: '#/components/schemas/AuthenticationValue' - required: - - authentication - - authenticationValue - AuthorizationResponseType: - title: AuthorizationResponseType - description: | - Enum containing response information; if the customer entered the - authentication value, rejected the transaction, or requested a - resend of the authentication value. - type: string - enum: - - ENTERED - - REJECTED - - RESEND - authorizationsPostResponse: - title: AuthorizationsPostResponse - description: POST /authorizations response object + - transfersPostRequest + simpleTransfersPostResponse: + title: SimpleTransfersPostResponse type: object properties: - authorizations: - type: object + transfer: properties: - authenticationInfo: - $ref: '#/components/schemas/AuthenticationInfo' - responseType: - $ref: '#/components/schemas/AuthorizationResponseType' + body: + $ref: '#/components/schemas/TransfersIDPutResponse' + headers: + type: object required: - - responseType + - body + - headers currentState: $ref: '#/components/schemas/async2SyncCurrentState' required: - - authorizations + - transfer - currentState - additionalProperties: false - errorAuthorizationsResponse: + errorSimpleTransfersResponse: allOf: - $ref: '#/components/schemas/errorResponse' - type: object + transferRequest: + type: object + required: + - homeTransactionId + - from + - to + - amountType + - currency + - amount + - transactionType + properties: + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + from: + $ref: '#/components/schemas/transferParty' + to: + $ref: '#/components/schemas/transferParty' + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + transactionType: + $ref: '#/components/schemas/transferTransactionType' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + note: + $ref: '#/components/schemas/Note' + quoteRequestExtensions: + $ref: '#/components/schemas/extensionListEmptiable' + transferRequestExtensions: + $ref: '#/components/schemas/extensionListEmptiable' + skipPartyLookup: + description: >- + Set to true if supplying an FSPID for the payee party and no party + resolution is needed. This may be useful is a previous party + resolution has been performed. + type: boolean + transferStatusResponse: + type: object + required: + - transferId + - currentState + - fulfil + properties: + transferId: + $ref: '#/components/schemas/CorrelationId' + currentState: + $ref: '#/components/schemas/transferStatus' + fulfil: + type: object + required: + - body + properties: + body: + $ref: '#/components/schemas/TransfersIDPutResponse' + headers: + type: object responses: - transferSuccess: - description: Transfer completed successfully - content: - application/json: - schema: - $ref: '#/components/schemas/transferResponse' - transferBadRequest: - description: 'Malformed or missing required body, headers or parameters' - content: - application/json: - schema: - $ref: '#/components/schemas/errorTransferResponse' - transferServerError: - description: An error occurred processing the transfer - content: - application/json: - schema: - $ref: '#/components/schemas/errorTransferResponse' - transferTimeout: - description: Timeout occurred processing the transfer - content: - application/json: - schema: - $ref: '#/components/schemas/errorTransferResponse' - bulkTransferSuccess: - description: Bulk transfer completed successfully - content: - application/json: - schema: - $ref: '#/components/schemas/bulkTransferResponse' - bulkTransferBadRequest: - description: 'Malformed or missing required body, headers or parameters' + accountsCreationCompleted: + description: Accounts creation completed content: application/json: schema: - $ref: '#/components/schemas/bulkTransferErrorResponse' - bulkTransferServerError: - description: An error occurred processing the bulk transfer + $ref: '#/components/schemas/accountsResponse' + accountsCreationError: + description: An error occurred creating accounts content: application/json: schema: - $ref: '#/components/schemas/bulkTransferErrorResponse' - bulkTransferTimeout: - description: Timeout occurred processing the bulk transfer + $ref: '#/components/schemas/errorAccountsResponse' + accountsCreationTimeout: + description: Timeout occurred creating accounts content: application/json: schema: - $ref: '#/components/schemas/bulkTransferErrorResponse' + $ref: '#/components/schemas/errorAccountsResponse' bulkQuoteSuccess: description: Bulk quote completed successfully content: @@ -2446,7 +2729,7 @@ components: schema: $ref: '#/components/schemas/bulkQuoteResponse' bulkQuoteBadRequest: - description: 'Malformed or missing required body, headers or parameters' + description: Malformed or missing required body, headers or parameters content: application/json: schema: @@ -2463,42 +2746,34 @@ components: application/json: schema: $ref: '#/components/schemas/bulkQuoteErrorResponse' - requestToPaySuccess: - description: Request to Pay completed successfully - content: - application/json: - schema: - $ref: '#/components/schemas/requestToPayResponse' - requestToPayTransferSuccess: - description: Transfer completed successfully - content: - application/json: - schema: - $ref: '#/components/schemas/requestToPayTransferResponse' - requestToPayTransferBadRequest: - description: 'Malformed or missing required body, headers or parameters' + bulkTransactionAccepted: + description: Bulk transfer accepted successfully + bulkTransferBadRequest: + description: Malformed or missing required body, headers or parameters content: application/json: schema: - $ref: '#/components/schemas/errorTransferResponse' - accountsCreationCompleted: - description: Accounts creation completed + $ref: '#/components/schemas/bulkTransferErrorResponse' + errorResponse: + description: Internal Server Error content: application/json: schema: - $ref: '#/components/schemas/accountsResponse' - accountsCreationError: - description: An error occurred creating accounts + $ref: '#/components/schemas/errorResponse' + bulkTransactionPutBadRequest: + description: Malformed or missing required body, headers or parameters content: application/json: schema: - $ref: '#/components/schemas/errorAccountsResponse' - accountsCreationTimeout: - description: Timeout occurred creating accounts + oneOf: + - $ref: '#/components/schemas/bulkTransactionAcceptPartyErrorResponse' + - $ref: '#/components/schemas/bulkTransactionAcceptQuoteErrorResponse' + bulkTransferSuccess: + description: Bulk transfer completed successfully content: application/json: schema: - $ref: '#/components/schemas/errorAccountsResponse' + $ref: '#/components/schemas/bulkTransferResponse' partiesByIdSuccess: description: PartiesByIdSuccess content: @@ -2526,6 +2801,42 @@ components: application/json: schema: $ref: '#/components/schemas/errorQuotesResponse' + requestToPaySuccess: + description: Request to Pay completed successfully + content: + application/json: + schema: + $ref: '#/components/schemas/requestToPayResponse' + transferServerError: + description: An error occurred processing the transfer + content: + application/json: + schema: + $ref: '#/components/schemas/errorTransferResponse' + transferTimeout: + description: Timeout occurred processing the transfer + content: + application/json: + schema: + $ref: '#/components/schemas/errorTransferResponse' + requestToPayTransferSuccess: + description: Transfer completed successfully + content: + application/json: + schema: + $ref: '#/components/schemas/requestToPayTransferResponse' + requestToPayTransferBadRequest: + description: Malformed or missing required body, headers or parameters + content: + application/json: + schema: + $ref: '#/components/schemas/errorTransferResponse' + transferSuccess: + description: Transfer completed successfully + content: + application/json: + schema: + $ref: '#/components/schemas/transferResponse' simpleTransfersPostSuccess: description: sync response from POST /simpleTransfers content: @@ -2538,30 +2849,15 @@ components: application/json: schema: $ref: '#/components/schemas/errorSimpleTransfersResponse' - authorizationPostSuccess: - description: Sync response from POST /authorizations - content: - application/json: - schema: - $ref: '#/components/schemas/authorizationsPostResponse' - authorizationsServerError: - description: An error occurred processing the authorizations request + transferBadRequest: + description: Malformed or missing required body, headers or parameters content: application/json: schema: - $ref: '#/components/schemas/errorAuthorizationsResponse' + $ref: '#/components/schemas/errorTransferResponse' parameters: - transferId: - name: transferId - in: path - required: true - schema: - $ref: '#/components/schemas/CorrelationId' - description: >- - Identifier of the transfer to continue as returned in the response to a - `POST /transfers` request. - bulkTransferId: - name: bulkTransferId + bulkQuoteId: + name: bulkQuoteId in: path required: true schema: @@ -2569,31 +2865,31 @@ components: description: >- Identifier of the bulk transfer to continue as returned in the response to a `POST /bulkTransfers` request. - bulkQuoteId: - name: bulkQuoteId + bulkTransactionId: + name: bulkTransactionId in: path required: true schema: $ref: '#/components/schemas/CorrelationId' description: >- - Identifier of the bulk transfer to continue as returned in the response - to a `POST /bulkTransfers` request. - requestToPayTransactionId: - name: requestToPayTransactionId + Identifier of the bulk transaction to continue as returned in the + response to a `POST /bulkTransaction` request. + bulkTransferId: + name: bulkTransferId in: path required: true schema: $ref: '#/components/schemas/CorrelationId' description: >- - Identifier of the merchant request to pay transfer to continue as - returned in the response to a `POST /requestToPayTransfer` request. + Identifier of the bulk transfer to continue as returned in the response + to a `POST /bulkTransfers` request. Type: name: Type in: path required: true schema: type: string - description: 'The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`.' + description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`. ID: name: ID in: path @@ -2610,3 +2906,21 @@ components: description: >- A sub-identifier of the party identifier, or a sub-type of the party identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`. + transactionRequestId: + name: transactionRequestId + in: path + required: true + schema: + $ref: '#/components/schemas/CorrelationId' + description: >- + Identifier of the merchant request to pay to continue as returned in the + response to a `POST /requestToPay` request. + transferId: + name: transferId + in: path + required: true + schema: + $ref: '#/components/schemas/CorrelationId' + description: >- + Identifier of the transfer to continue as returned in the response to a + `POST /transfers` request. diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/response_map.json b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/response_map.json index d1847b9ef..1ad829f38 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/response_map.json +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/response_map.json @@ -17,19 +17,5 @@ } } } - }, - "/transfers": { - "post": { - "response": { - "bodyOverride": {} - } - } - }, - "/transfers/{transferId}": { - "put": { - "response": { - "bodyOverride": {} - } - } } } \ No newline at end of file diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml index 368bd4339..0cbbade3a 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml @@ -1,1087 +1,2380 @@ openapi: 3.0.1 info: - title: Mojaloop SDK Inbound Scheme Adapter API - description: Mojaloop SDK Inbound Scheme Adapter API - To be implemented by DFSP backend - license: - name: Open API for FSP Interoperability (FSPIOP) - url: http://www.majaloop.io - version: 1.0.0 + title: Mojaloop SDK Backend API + description: > + API specification for the SDK Backend API. + + + To be implemented by the Digital Financial Service Provider (DFSP) to work + in tandem with the Mojaloop SDK (`mojaloop/sdk-scheme-adapter`). + + + This API is not to be confused with the Mojaloop SDK's Inbound or Outbound + API. + + + TODO: More explanation and links about the SDK adapter's Inbound and + Outbound API. + + **Note on terminology:** The term "Switch" is equal to the term "Hub", and + the term "FSP" is equal to the term "DFSP". + license: + name: Apache License Version 2.0, January 2004 + url: http://www.apache.org/licenses/ + version: 1.1.0 paths: /: get: - summary: Health check endpoint. - operationId: healthCheck + operationId: BackendHealthCheck 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 + summary: Health check endpoint. + /bulkQuotes: + post: + operationId: BackendBulkQuotesPost + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteRequest' + description: Incoming request for a bulk quotation. + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteResponse' + description: A response to the bulk quote request. + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' + summary: Requests a bulk quote. tags: - - Participants - operationId: ParticipantsGetByTypeAndID + - BulkQuotes + /bulkQuotes/{idValue}: + get: + operationId: BackendBulkQuotesGet parameters: - - name: idType - in: path - required: true - schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' + - $ref: '#/components/parameters/idValue' 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: Response containing details of the requested bulk quote. + '400': + $ref: '#/components/responses/400' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + summary: >- + Requests information relating to a bulk quote identified by the + specified identifier value. + tags: + - 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: BackendBulkTransactionsPut + parameters: + - $ref: '#/components/parameters/bulkTransactionId' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransactionResponse' + responses: + '202': + description: Bulk transaction information successfully amended. + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' + summary: Callbacks for the bulk transaction request. + tags: + - BulkTransactionsPut + /requestToPay/{transactionRequestId}: + put: + description: >- + It is used to notify the DFSP backend about the status of the + requestToPayTransfer. + operationId: RequestToPayPut + parameters: + - $ref: '#/components/parameters/transactionRequestId' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/requestToPayCallback' + responses: + '200': + description: OK + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' + summary: Callback for the requestToPay request. + tags: + - RequestToPayPut + /bulkTransfers: + post: + operationId: BackendBulkTransfersPost + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferRequest' + description: An incoming bulk transfer request. + responses: + '200': content: application/json: schema: - $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + $ref: '#/components/schemas/bulkTransferResponse' + description: The bulk transfer was accepted. + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' + summary: >- + Execute bulk transfer of funds from an external account to internal + accounts. + tags: + - BulkTransfers + /bulkTransfers/{idValue}: + get: + operationId: BackendBulkTransfersGet + parameters: + - $ref: '#/components/parameters/idValue' + responses: + '200': 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 + $ref: '#/components/schemas/bulkTransferResponse' + description: Response containing details of the requested bulk transfer. + '400': + $ref: '#/components/responses/400' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + summary: >- + Requests information relating to a bulk transfer identified by the + specified identifier value. tags: - - Participants - operationId: ParticipantsGetByTypeIDAndSubId + - BulkTransfers + /otp/{transactionRequestId}: + get: + operationId: BackendOtpGet parameters: - - name: idType - in: path - required: true - schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' - - name: subIdValue - in: path - required: true - schema: - $ref: '#/components/schemas/subIdValue' + - $ref: '#/components/parameters/transactionRequestId' 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/otpDetails' + description: Response containing details of the OTP. + '400': + $ref: '#/components/responses/400' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + summary: Requests OTP. + tags: + - OTP + /participants/{idType}/{idValue}: + get: + description: >- + The HTTP request `GET /participants/{idType}/{idValue}` is used to find + out in which FSP the requested party, defined by `{idType}` and + `{idValue}`, is located. + operationId: BackendParticipantsGetByTypeAndID + parameters: + - $ref: '#/components/parameters/idType' + - $ref: '#/components/parameters/idValue' + responses: + '200': content: application/json: schema: - $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + $ref: '#/components/schemas/participantsResponse' + description: Response containing details of the requested party. + '400': + $ref: '#/components/responses/400' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + summary: >- + Asks for the identifier (fspId) of the scheme participant (FSP) that can + handle transfers for the specified identifier type and value. + tags: + - Participants + /participants/{idType}/{idValue}/{idSubValue}: + get: + description: >- + The HTTP request `GET /participants/{idType}/{idValue}/{idSubValue}` is + used to find out in which FSP the requested party, defined by + `{idType}`, `{idValue}` and `{idSubValue}` is located. + operationId: BackendParticipantsGetByTypeIDAndSubId + parameters: + - $ref: '#/components/parameters/idType' + - $ref: '#/components/parameters/idValue' + - $ref: '#/components/parameters/idSubValue' + responses: + '200': content: application/json: schema: - $ref: '#/components/schemas/errorResponse' - + $ref: '#/components/schemas/participantsResponse' + description: Response containing details of the requested party. + '400': + $ref: '#/components/responses/400' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + summary: >- + Asks for the identifier (fspId) of the scheme participant (FSP) that can + handle transfers for the specified identifier type and value. + tags: + - Participants /parties/{idType}/{idValue}: get: - summary: Requests information relating to a transfer party identified by the specified identifier type and value - tags: - - Parties - operationId: PartiesGetByTypeAndID + description: >- + The HTTP request `GET /parties/{idType}/{idValue}` is used to look up + information regarding the requested transfer party, identified by + `{idType}` and `{idValue}`. + operationId: BackendPartiesGetByTypeAndID parameters: - - name: idType - in: path - required: true - schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' + - $ref: '#/components/parameters/idType' + - $ref: '#/components/parameters/idValue' 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 - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request - 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: Response containing details of the requested party. + '400': + $ref: '#/components/responses/400' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + summary: >- + Requests information relating to a transfer party identified by the + specified identifier type and value. tags: - Parties - operationId: PartiesGetByTypeIdAndSubId + /parties/{idType}/{idValue}/{idSubValue}: + get: + description: >- + The HTTP request `GET /parties/{idType}/{idValue}/{idSubValue}` is used + to look up information regarding the requested transfer party, + identified by `{idType}`, `{idValue}` and `{idSubValue}`. + operationId: BackendPartiesGetByTypeIdAndSubId parameters: - - name: idType - in: path - required: true - schema: - $ref: '#/components/schemas/idType' - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' - - name: subIdValue - in: path - required: true - schema: - $ref: '#/components/schemas/subIdValue' + - $ref: '#/components/parameters/idType' + - $ref: '#/components/parameters/idValue' + - $ref: '#/components/parameters/idSubValue' 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 - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - + description: Response containing details of the requested party. + '400': + $ref: '#/components/responses/400' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + summary: >- + Requests information relating to a transfer party identified by the + specified identifier type, value and subId value. + tags: + - Parties /quoterequests: post: - summary: Requests a quote for the specified transfer - tags: - - Quotes - operationId: QuoteRequest + description: >- + The HTTP request `POST /quoterequests` is used to request the creation + of a quote for the provided financial transaction. + operationId: BackendQuoteRequest requestBody: - description: Request for a transfer quotation content: application/json: schema: $ref: '#/components/schemas/quoteRequest' + description: Request for a transfer quotation. 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 - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - + description: A response to the transfer quotation request. + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' + summary: Requests a quote for the specified transfer. + tags: + - Quotes /transactionrequests: post: - summary: transaction request that supports pull based transfers - tags: - - TransactionRequest - operationId: TransactionRequest + operationId: BackendTransactionRequest requestBody: - description: Request for Transaction Request content: application/json: schema: $ref: '#/components/schemas/transactionRequest' + description: Request for Transaction Request. 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 - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - + description: A response to the transfer transaction request. + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' + summary: Transaction request that supports pull based transfers. + tags: + - TransactionRequest /transfers: post: - summary: Transfers funds from an external account to an internal account - tags: - - Transfers - operationId: TransfersPost + description: >- + The HTTP request `POST /transfers` is used to request the creation of a + transfer for the transfer party. + operationId: BackendTransfersPost requestBody: - description: An incoming transfer request content: application/json: schema: $ref: '#/components/schemas/transferRequest' + description: An incoming transfer request. 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 - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request - 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 - parameters: - - name: transferId - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' + description: The transfer was accepted. + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' + summary: Transfers funds from an external account to an internal account. 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 - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - - - /otp/{requestToPayId}: + /transfers/{transferId}: get: - summary: Requests OTP - tags: - - OTP - operationId: OtpGet + description: >- + The HTTP request `GET /transfers/{transferId}` is used to get + information regarding a transfer created or requested earlier. The + `{transferId}` in the URI should contain the `transferId` that was used + for the creation of the transfer. + operationId: BackendTransfersGet parameters: - - name: requestToPayId - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' - responses: - 200: - description: Response containing details of the OTP - 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 - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - - /bulkQuotes: - post: - summary: Requests a bulk quote - tags: - - BulkQuotes - operationId: BulkQuotesPost - requestBody: - description: Incoming request for a bulk quotation - content: - application/json: - schema: - $ref: '#/components/schemas/bulkQuoteRequest' + - $ref: '#/components/parameters/transferId' responses: - 200: - description: A response to the bulk quote request - content: - application/json: - schema: - $ref: '#/components/schemas/bulkQuoteResponse' - 400: - description: Malformed or missing required headers or parameters - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request + '200': 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 + $ref: '#/components/schemas/transferDetailsResponse' + description: The transfer was accepted. + '500': + $ref: '#/components/responses/500' + summary: Retrieves information for a specific transfer. tags: - - BulkQuotes - operationId: BulkQuotesGet + - Transfers + put: + description: >- + The HTTP request `PUT /transfers/{transferId}` is used to receive + notification for transfer being fulfiled when the FSP is a Payee. + operationId: BackendTransfersPut parameters: - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' - responses: - 200: - description: Response containing details of the requested bulk quote - 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 - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - - /bulkTransfers: - post: - summary: Execute bulk transfer of funds from an external account to internal accounts - tags: - - BulkTransfers - operationId: BulkTransfersPost + - $ref: '#/components/parameters/transferId' requestBody: - description: An incoming bulk transfer request content: application/json: schema: - $ref: '#/components/schemas/bulkTransferRequest' + $ref: '#/components/schemas/fulfilNotification' + description: An incoming notification for fulfiled transfer. responses: - 200: - description: The bulk transfer was accepted - content: - application/json: - schema: - $ref: '#/components/schemas/bulkTransferResponse' - 400: - description: Malformed or missing required headers or parameters - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request - 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 + '200': + description: The notification was accepted. + '500': + $ref: '#/components/responses/500' + summary: Receive notification for a specific transfer. tags: - - BulkTransfers - operationId: BulkTransfersGet - parameters: - - name: idValue - in: path - required: true - schema: - $ref: '#/components/schemas/idValue' - 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 - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - 500: - description: An error occured processing the request - content: - application/json: - schema: - $ref: '#/components/schemas/errorResponse' - + - Transfers components: + parameters: + idSubValue: + description: >- + A sub-identifier of the party identifier, or a sub-type of the party + identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`. + in: path + name: idSubValue + required: true + schema: + type: string + idType: + description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`. + in: path + name: idType + required: true + schema: + type: string + idValue: + description: The identifier value. + in: path + name: idValue + required: true + schema: + type: string + transactionRequestId: + in: path + name: transactionRequestId + required: true + schema: + $ref: '#/components/schemas/transactionRequestId' + transferId: + in: path + name: transferId + required: true + schema: + type: string + bulkTransactionId: + name: bulkTransactionId + in: path + required: true + schema: + $ref: '#/components/schemas/CorrelationId' + description: >- + Identifier of the bulk transaction to continue as returned in the + response to a `POST /bulkTransaction` request. + responses: + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + 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 occurred processing the request. 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 + DateOfBirth: + title: DateofBirth (type Date) + type: string + 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)$ + description: Date of Birth of the Party. + example: '1966-06-16' + FirstName: + title: FirstName + type: string + minLength: 1 + maxLength: 128 + pattern: >- + ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} + .,''-]{1,128}$ + description: First name of the Party (Name Type). + example: Henrik + FspId: + title: FspId + type: string + minLength: 1 + maxLength: 32 + description: FSP identifier. + 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' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + 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 + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + 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: + errorResponse: + $ref: '#/components/schemas/errorResponse' + extensionList: + $ref: '#/components/schemas/extensionList' + transferId: + $ref: '#/components/schemas/transferId' + required: + - transferId + type: object + LastName: + title: LastName type: string minLength: 1 maxLength: 128 - - subIdValue: + pattern: >- + ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} + .,''-]{1,128}$ + description: Last name of the Party (Name Type). + example: Karlsson + MerchantClassificationCode: + title: MerchantClassificationCode + type: string + pattern: ^[\d]{1,4}$ + description: >- + A limited set of pre-defined numbers. This list would be a limited set + of numbers identifying a set of popular merchant types like School Fees, + Pubs and Restaurants, Groceries, etc. + MiddleName: + title: MiddleName 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 - required: - - homeTransactionId + pattern: >- + ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} + .,''-]{1,128}$ + description: Middle name of the Party (Name Type). + example: Johannes + amountCurrency: + description: Object containing Amount and Currency of the transfer. 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-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ - type: string - description: A Mojaloop API transfer identifier (UUID/ULID) - - quoteId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ - type: string - description: A Mojaloop API quote identifier (UUID/ULID) - - transactionRequestId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + amount: + $ref: '#/components/schemas/money' + currency: + $ref: '#/components/schemas/currency' + required: + - amount + - currency + type: object + amountType: + enum: + - SEND + - RECEIVE type: string - description: A Mojaloop API transaction request identifier (UUID/ULID) - - transactionId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + 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 + description: A request for a bulk quote. 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 - items: - $ref: '#/components/schemas/IndividualQuoteResult' - description: Fees for each individual transaction, if any of them are charged per + 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 + items: + oneOf: + - $ref: '#/components/schemas/IndividualQuoteResultSuccess' + - $ref: '#/components/schemas/IndividualQuoteResultFailed' + maxItems: 1000 + minItems: 1 + type: array 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 - - IndividualQuoteResult: + - bulkQuoteId + - individualQuoteResults type: object - description: Data model for 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' - - bulkQuoteId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + 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/ULID) - 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' - extensionList: - $ref: '#/components/schemas/extensionList' - bulkTransferResponse: - type: object - required: - - homeTransactionId properties: bulkTransferId: $ref: '#/components/schemas/bulkTransferId' homeTransactionId: + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the switch and DFSP backend systems. type: string - description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems individualTransferResults: - type: array - minItems: 1 - maxItems: 1000 items: $ref: '#/components/schemas/IndividualTransferResult' - - bulkTransferId: - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ - type: string - description: A Mojaloop API transfer identifier (UUID/ULID) - - geoCode: - type: object - description: Indicates the geographic location from where the transaction was initiated. - properties: - latitude: - $ref: '#/components/schemas/latitude' - longitude: - $ref: '#/components/schemas/longitude' + maxItems: 1000 + minItems: 1 + type: array required: - - latitude - - longitude - - latitude: + - homeTransactionId + type: object + currency: + enum: + - AED + - AFN + - ALL + - AMD + - ANG + - AOA + - ARS + - AUD + - AWG + - AZN + - BAM + - BBD + - BDT + - BGN + - BHD + - BIF + - BMD + - BND + - BOB + - BRL + - BSD + - BTN + - BWP + - BYN + - BZD + - CAD + - CDF + - CHF + - CLP + - CNY + - COP + - CRC + - CUC + - CUP + - CVE + - CZK + - DJF + - DKK + - DOP + - DZD + - EGP + - ERN + - ETB + - EUR + - FJD + - FKP + - GBP + - GEL + - GGP + - GHS + - GIP + - GMD + - GNF + - GTQ + - GYD + - HKD + - HNL + - HRK + - HTG + - HUF + - IDR + - ILS + - IMP + - INR + - IQD + - IRR + - ISK + - JEP + - JMD + - JOD + - JPY + - KES + - KGS + - KHR + - KMF + - KPW + - KRW + - KWD + - KYD + - KZT + - LAK + - LBP + - LKR + - LRD + - LSL + - LYD + - MAD + - MDL + - MGA + - MKD + - MMK + - MNT + - MOP + - MRO + - MUR + - MVR + - MWK + - MXN + - MYR + - MZN + - NAD + - NGN + - NIO + - NOK + - NPR + - NZD + - OMR + - PAB + - PEN + - PGK + - PHP + - PKR + - PLN + - PYG + - QAR + - RON + - RSD + - RUB + - RWF + - SAR + - SBD + - SCR + - SDG + - SEK + - SGD + - SHP + - SLL + - SOS + - SPL + - SRD + - STD + - SVC + - SYP + - SZL + - THB + - TJS + - TMT + - TND + - TOP + - TRY + - TTD + - TVD + - TWD + - TZS + - UAH + - UGX + - USD + - UYU + - UZS + - VEF + - VND + - VUV + - WST + - XAF + - XCD + - XDR + - XOF + - XPF + - XTS + - XXX + - YER + - ZAR + - ZMW + - ZWD + maxLength: 3 + minLength: 3 type: string - pattern: ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ - 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: + 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 - pattern: ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ - 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: + errorCode: + description: > + The API data type errorCode is a JSON String of four characters, + consisting of digits only. Negative numbers are not allowed. A leading + zero is not allowed. Each error code in the API is a four-digit number, + for example, 1234, where the first number (1 in the example) represents + the high-level error category, the second number (2 in the example) + represents the low-level error category, and the last two numbers (34 in + the example) represents the specific error. + pattern: ^[1-9]\d{3}$ + title: ErrorCode + type: string + errorDescription: + description: Error description string. + maxLength: 128 + minLength: 1 + title: ErrorDescription + type: string + errorInformation: + description: A Mojaloop API error information construct. + properties: + errorCode: + $ref: '#/components/schemas/errorCode' + errorDescription: + $ref: '#/components/schemas/errorDescription' + extensionList: + $ref: '#/components/schemas/extensionListComplex' + required: + - errorCode + - errorDescription + title: ErrorInformation type: object + errorResponse: properties: - statusCode: - type: string - description: Error code as string message: - type: string 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. - extensionList: - type: array - items: - $ref: '#/components/schemas/extensionItem' - minItems: 0 - maxItems: 16 - + 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 + extensionListComplex: + description: Data model for the complex type ExtensionList. + properties: + extension: + description: Number of Extension elements. + items: + $ref: '#/components/schemas/extensionItem' + maxItems: 16 + minItems: 1 + type: array + required: + - extension + type: object + fspId: + description: FSP identifier. + maxLength: 32 + minLength: 1 + type: string + fulfilNotification: + description: PUT /transfers/{transferId} object. + properties: + currentState: + $ref: '#/components/schemas/transferStatus' + direction: + enum: + - INBOUND + type: string + finalNotification: + properties: + completedTimestamp: + $ref: '#/components/schemas/timestamp' + extensionList: + $ref: '#/components/schemas/extensionList' + transferState: + $ref: '#/components/schemas/transferState' + required: + - completedTimestamp + - transferState + type: object + fulfil: + properties: + body: + type: object + headers: + type: object + type: object + initiatedTimestamp: + $ref: '#/components/schemas/timestamp' + lastError: + $ref: '#/components/schemas/transferError' + prepare: + properties: + body: + type: object + headers: + type: object + type: object + quote: + properties: + fulfilment: + type: string + internalRequest: + type: object + mojaloopResponse: + type: object + request: + type: object + response: + type: object + type: object + quoteRequest: + properties: + body: + type: object + headers: + type: object + type: object + quoteResponse: + properties: + body: + type: object + headers: + type: object + type: object + transferId: + $ref: '#/components/schemas/transferId' + title: TransfersIDPatchResponse + type: object + generalError: + description: >- + This object may represent a number of different error object types and + so its properties may vary significantly. + type: object + geoCode: + description: >- + Indicates the geographic location from where the transaction was + initiated. + properties: + latitude: + $ref: '#/components/schemas/latitude' + longitude: + $ref: '#/components/schemas/longitude' + required: + - latitude + - longitude + type: object + idSubValue: + maxLength: 128 + minLength: 1 + type: string + idType: + enum: + - MSISDN + - ACCOUNT_NO + - EMAIL + - PERSONAL_ID + - BUSINESS + - DEVICE + - ACCOUNT_ID + - IBAN + - ALIAS + type: string + idValue: + description: Identifier of the party. + maxLength: 128 + minLength: 1 + type: string + ilpPacketData: + description: Object containing transfer object. + properties: + amount: + $ref: '#/components/schemas/amountCurrency' + payee: + $ref: '#/components/schemas/Party' + payer: + $ref: '#/components/schemas/Party' + quoteId: + $ref: '#/components/schemas/quoteId' + transactionId: + $ref: '#/components/schemas/transactionId' + transactionType: + $ref: '#/components/schemas/transactionTypeObject' + required: + - quoteId + - transactionId + - payer + - payee + - amount + - transactionType + type: object + 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. + pattern: >- + ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ + type: string + 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. + 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: + 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: + homeR2PTransactionId: + type: string + description: >- + Linked homeR2PTransactionId which was generated as part of POST + /requestToPay to SDK incase of requestToPay transfer. + amount: + $ref: '#/components/schemas/money' + amountType: + $ref: '#/components/schemas/amountType' + currency: + $ref: '#/components/schemas/currency' + expiration: + $ref: '#/components/schemas/timestamp' + extensionList: + $ref: '#/components/schemas/extensionList' + 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 + quoteId: + $ref: '#/components/schemas/quoteId' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + to: + $ref: '#/components/schemas/transferParty' + transactionId: + $ref: '#/components/schemas/transactionId' + transactionType: + $ref: '#/components/schemas/transactionType' + transactionRequestId: + $ref: '#/components/schemas/transactionRequestId' + 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 + scenario: + enum: + - TRANSFER + 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 + to: + $ref: '#/components/schemas/transferParty' + transactionRequestId: + $ref: '#/components/schemas/transactionRequestId' + transactionType: + $ref: '#/components/schemas/transactionType' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + authenticationType: + $ref: '#/components/schemas/AuthenticationType' + 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: + homeR2PTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + transactionId: + $ref: '#/components/schemas/transactionId' + transactionRequestState: + $ref: '#/components/schemas/transactionRequestState' + required: + - transactionId + - transactionRequestState + type: object + transactionRequestState: + enum: + - RECEIVED + - PENDING + - ACCEPTED + - REJECTED + type: string + transactionSubScenario: + description: >- + Possible sub-scenario, defined locally within the scheme (UndefinedEnum + Type). Based on FSPIOP TransactionSubScenario. + example: LOCALLY_DEFINED_SUBSCENARIO + pattern: ^[A-Z_]{1,32}$ + title: transactionSubScenario + type: string + transactionType: + enum: + - TRANSFER + - DEPOSIT + - PAYMENT + type: string + transactionTypeObject: + description: Object containing transfer object. + properties: + initiator: + $ref: '#/components/schemas/initiator' + initiatorType: + $ref: '#/components/schemas/initiatorType' + scenario: + $ref: '#/components/schemas/scenario' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + required: + - scenario + - initiator + - initiatorType + type: object + transferDetailsResponse: + properties: + amount: + $ref: '#/components/schemas/money' + amountType: + $ref: '#/components/schemas/amountType' + currency: + $ref: '#/components/schemas/currency' + extensions: + $ref: '#/components/schemas/extensionList' + from: + $ref: '#/components/schemas/transferParty' + homeTransactionId: + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + type: string + note: + maxLength: 128 + type: string + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + timestamp: + $ref: '#/components/schemas/timestamp' + to: + $ref: '#/components/schemas/transferParty' + transactionType: + $ref: '#/components/schemas/transactionType' + transferState: + $ref: '#/components/schemas/transferState' + required: + - homeTransactionId + - from + - to + - amountType + - currency + - amount + - transferState + - transactionType + - timestamp + type: object + 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 + extensionList: + $ref: '#/components/schemas/extensionList' + firstName: + description: Party first name. + type: string + fspId: + description: Mojaloop scheme FSPID of the DFSP which owns the party account. + type: string + idSubValue: + $ref: '#/components/schemas/idSubValue' + 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 sender's merchant classification, if + known and applicable. + type: string + middleName: + description: Party middle name. + type: string + type: + $ref: '#/components/schemas/payerType' + required: + - idType + - idValue type: object + transferRequest: properties: - key: - type: string - minLength: 1 - maxLength: 32 - value: + homeR2PTransactionId: type: string - minLength: 1 + description: >- + Linked homeR2PTransactionId which was generated as part of POST + /requestToPay to SDK incase of requestToPay transfer. + amount: + $ref: '#/components/schemas/money' + amountType: + $ref: '#/components/schemas/amountType' + currency: + $ref: '#/components/schemas/currency' + from: + $ref: '#/components/schemas/transferParty' + ilpPacket: + properties: + data: + $ref: '#/components/schemas/ilpPacketData' + required: + - data + type: object + note: maxLength: 128 - + type: string + quote: + $ref: '#/components/schemas/quoteResponse' + quoteRequestExtensions: + $ref: '#/components/schemas/extensionList' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + to: + $ref: '#/components/schemas/transferParty' + transactionType: + $ref: '#/components/schemas/transactionType' + transferId: + $ref: '#/components/schemas/transferId' + transactionRequestId: + $ref: '#/components/schemas/transactionRequestId' + required: + - transferId + - quote + - from + - to + - amountType + - currency + - amount + - transactionType + - ilpPacket + type: object + transferResponse: + properties: + completedTimestamp: + $ref: '#/components/schemas/timestamp' + fulfilment: + $ref: '#/components/schemas/IlpFulfilment' + homeTransactionId: + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + type: string + transferState: + $ref: '#/components/schemas/transferState' + 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. + type: string + transferStatus: + enum: + - ERROR_OCCURRED + - WAITING_FOR_PARTY_ACCEPTANCE + - WAITING_FOR_QUOTE_ACCEPTANCE + - COMPLETED + type: string + requestToPayCallback: + description: Callback for requestToPay. + properties: + homeR2PTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + transactionRequestState: + $ref: '#/components/schemas/transactionRequestState' + required: + - transactionRequestState + TransactionSubScenario: + title: TransactionSubScenario + type: string + pattern: ^[A-Z_]{1,32}$ + description: >- + Possible sub-scenario, defined locally within the scheme (UndefinedEnum + Type). + example: LOCALLY_DEFINED_SUBSCENARIO + CorrelationId: + 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 + bulkTransactionStatus: + type: string + enum: + - ERROR_OCCURRED + - WAITING_FOR_PARTY_ACCEPTANCE + - WAITING_FOR_QUOTE_ACCEPTANCE + - COMPLETED + autoAcceptPartyOption: + type: object + required: + - enabled + properties: + enabled: + type: boolean + enum: + - false + - true + Currency: + title: Currency + description: >- + The currency codes defined in [ISO + 4217](https://www.iso.org/iso-4217-currency-codes.html) as three-letter + alphabetic codes are used as the standard naming representation for + currencies. + type: string + minLength: 3 + maxLength: 3 + enum: + - AED + - AFN + - ALL + - AMD + - ANG + - AOA + - ARS + - AUD + - AWG + - AZN + - BAM + - BBD + - BDT + - BGN + - BHD + - BIF + - BMD + - BND + - BOB + - BRL + - BSD + - BTN + - BWP + - BYN + - BZD + - CAD + - CDF + - CHF + - CLP + - CNY + - COP + - CRC + - CUC + - CUP + - CVE + - CZK + - DJF + - DKK + - DOP + - DZD + - EGP + - ERN + - ETB + - EUR + - FJD + - FKP + - GBP + - GEL + - GGP + - GHS + - GIP + - GMD + - GNF + - GTQ + - GYD + - HKD + - HNL + - HRK + - HTG + - HUF + - IDR + - ILS + - IMP + - INR + - IQD + - IRR + - ISK + - JEP + - JMD + - JOD + - JPY + - KES + - KGS + - KHR + - KMF + - KPW + - KRW + - KWD + - KYD + - KZT + - LAK + - LBP + - LKR + - LRD + - LSL + - LYD + - MAD + - MDL + - MGA + - MKD + - MMK + - MNT + - MOP + - MRO + - MUR + - MVR + - MWK + - MXN + - MYR + - MZN + - NAD + - NGN + - NIO + - NOK + - NPR + - NZD + - OMR + - PAB + - PEN + - PGK + - PHP + - PKR + - PLN + - PYG + - QAR + - RON + - RSD + - RUB + - RWF + - SAR + - SBD + - SCR + - SDG + - SEK + - SGD + - SHP + - SLL + - SOS + - SPL + - SRD + - STD + - SVC + - SYP + - SZL + - THB + - TJS + - TMT + - TND + - TOP + - TRY + - TTD + - TVD + - TWD + - TZS + - UAH + - UGX + - USD + - UYU + - UZS + - VEF + - VND + - VUV + - WST + - XAF + - XCD + - XDR + - XOF + - XPF + - XTS + - XXX + - YER + - ZAR + - ZMW + - ZWD + Amount: + title: Amount + type: string + pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$ + description: >- + The API data type Amount is a JSON String in a canonical format that is + restricted by a regular expression for interoperability reasons. This + pattern does not allow any trailing zeroes at all, but allows an amount + without a minor currency unit. It also only allows four digits in the + minor currency unit; a negative value is not allowed. Using more than 18 + digits in the major currency unit is not allowed. + example: '123.45' + bulkPerTransferFeeLimit: + type: object + required: + - currency + - amount + properties: + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + autoAcceptQuote: + type: object + required: + - enabled + properties: + enabled: + type: boolean + enum: + - true + - false + perTransferFeeLimits: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/bulkPerTransferFeeLimit' + DateTime: + title: DateTime + type: string + 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)$ + description: >- + The API data type DateTime is a JSON String in a lexical format that is + restricted by a regular expression for interoperability reasons. The + format is according to [ISO + 8601](https://www.iso.org/iso-8601-date-and-time-format.html), expressed + in a combined date, time and time zone format. A more readable version + of the format is yyyy-MM-ddTHH:mm:ss.SSS[-HH:MM]. Examples are + "2016-05-24T08:38:08.699-04:00", "2016-05-24T08:38:08.699Z" (where Z + indicates Zulu time zone, same as UTC). + example: '2016-05-24T08:38:08.699-04:00' + bulkTransactionOptions: + type: object + required: + - autoAcceptParty + - autoAcceptQuote + - bulkExpiration + properties: + onlyValidateParty: + description: >- + Set to true if only party validation is required. This means the + quotes and transfers will not run. This is useful for only party + resolution. + type: boolean + autoAcceptParty: + $ref: '#/components/schemas/autoAcceptPartyOption' + autoAcceptQuote: + description: >- + Set to true if the quote response is accepted without confirmation + from the payer. The fees applied by the payee will be acceptable to + the payer abiding by the limits set by optional + 'perTransferFeeLimits' array. + type: object + oneOf: + - $ref: '#/components/schemas/autoAcceptQuote' + skipPartyLookup: + description: >- + Set to true if supplying an FSPID for the payee party and no party + resolution is needed. This may be useful if a previous party + resolution has been performed. + type: boolean + synchronous: + description: >- + Set to true if the bulkTransfer requests need be handled + synchronous. Otherwise the requests will be handled asynchronously, + meaning there will be callbacks whenever the processing is done + type: boolean + bulkExpiration: + $ref: '#/components/schemas/DateTime' + PartyIdType: + title: PartyIdType + type: string + enum: + - MSISDN + - EMAIL + - PERSONAL_ID + - BUSINESS + - DEVICE + - ACCOUNT_ID + - IBAN + - ALIAS + description: >- + Below are the allowed values for the enumeration. - fulfilNotification: - title: TransfersIDPatchResponse + - MSISDN - An MSISDN (Mobile Station International Subscriber Directory + Number, that is, the phone number) is used as reference to a + participant. The MSISDN identifier should be in international format + according to the [ITU-T E.164 + standard](https://www.itu.int/rec/T-REC-E.164/en). Optionally, the + MSISDN may be prefixed by a single plus sign, indicating the + international prefix. + + - EMAIL - An email is used as reference to a participant. The format of + the email should be according to the informational [RFC + 3696](https://tools.ietf.org/html/rfc3696). + + - PERSONAL_ID - A personal identifier is used as reference to a + participant. Examples of personal identification are passport number, + birth certificate number, and national registration number. The + identifier number is added in the PartyIdentifier element. The personal + identifier type is added in the PartySubIdOrType element. + + - BUSINESS - A specific Business (for example, an organization or a + company) is used as reference to a participant. The BUSINESS identifier + can be in any format. To make a transaction connected to a specific + username or bill number in a Business, the PartySubIdOrType element + should be used. + + - DEVICE - A specific device (for example, a POS or ATM) ID connected to + a specific business or organization is used as reference to a Party. For + referencing a specific device under a specific business or organization, + use the PartySubIdOrType element. + + - ACCOUNT_ID - A bank account number or FSP account ID should be used as + reference to a participant. The ACCOUNT_ID identifier can be in any + format, as formats can greatly differ depending on country and FSP. + + - IBAN - A bank account number or FSP account ID is used as reference to + a participant. The IBAN identifier can consist of up to 34 alphanumeric + characters and should be entered without whitespace. + + - ALIAS An alias is used as reference to a participant. The alias should + be created in the FSP as an alternative reference to an account owner. + Another example of an alias is a username in the FSP system. The ALIAS + identifier can be in any format. It is also possible to use the + PartySubIdOrType element for identifying an account under an Alias + defined by the PartyIdentifier. + PartyIdentifier: + title: PartyIdentifier + type: string + minLength: 1 + maxLength: 128 + description: Identifier of the Party. + example: '16135551212' + PartySubIdOrType: + title: PartySubIdOrType + type: string + minLength: 1 + maxLength: 128 + description: >- + Either a sub-identifier of a PartyIdentifier, or a sub-type of the + PartyIdType, normally a PersonalIdentifierType. + ExtensionKey: + title: ExtensionKey + type: string + minLength: 1 + maxLength: 32 + description: Extension key. + ExtensionValue: + title: ExtensionValue + type: string + minLength: 1 + maxLength: 128 + description: Extension value. + Extension: + title: Extension type: object - description: PUT /transfers/{transferId} object + description: Data model for the complex type Extension. properties: - completedTimestamp: - $ref: '#/components/schemas/timestamp' - transferState: - $ref: '#/components/schemas/transferState' + key: + $ref: '#/components/schemas/ExtensionKey' + value: + $ref: '#/components/schemas/ExtensionValue' + required: + - key + - value + ExtensionList: + title: ExtensionList + type: object + description: >- + Data model for the complex type ExtensionList. An optional list of + extensions, specific to deployment. + properties: + extension: + type: array + items: + $ref: '#/components/schemas/Extension' + minItems: 1 + maxItems: 16 + description: Number of Extension elements. + required: + - extension + PartyIdInfo: + title: PartyIdInfo + type: object + description: >- + Data model for the complex type PartyIdInfo. An ExtensionList element + has been added to this reqeust in version v1.1 + properties: + partyIdType: + $ref: '#/components/schemas/PartyIdType' + partyIdentifier: + $ref: '#/components/schemas/PartyIdentifier' + partySubIdOrType: + $ref: '#/components/schemas/PartySubIdOrType' + fspId: + $ref: '#/components/schemas/FspId' extensionList: - $ref: '#/components/schemas/extensionList' + $ref: '#/components/schemas/ExtensionList' required: - - completedTimestamp - - transferState + - partyIdType + - partyIdentifier + PartyName: + title: PartyName + type: string + minLength: 1 + maxLength: 128 + description: Name of the Party. Could be a real name or a nickname. + PartyComplexName: + title: PartyComplexName + type: object + description: Data model for the complex type PartyComplexName. + properties: + firstName: + $ref: '#/components/schemas/FirstName' + middleName: + $ref: '#/components/schemas/MiddleName' + lastName: + $ref: '#/components/schemas/LastName' + PartyPersonalInfo: + title: PartyPersonalInfo + type: object + description: Data model for the complex type PartyPersonalInfo. + properties: + complexName: + $ref: '#/components/schemas/PartyComplexName' + dateOfBirth: + $ref: '#/components/schemas/DateOfBirth' + Party: + title: Party + type: object + description: Data model for the complex type Party. + properties: + partyIdInfo: + $ref: '#/components/schemas/PartyIdInfo' + merchantClassificationCode: + $ref: '#/components/schemas/MerchantClassificationCode' + name: + $ref: '#/components/schemas/PartyName' + personalInfo: + $ref: '#/components/schemas/PartyPersonalInfo' + required: + - partyIdInfo + AmountType: + title: AmountType + type: string + enum: + - SEND + - RECEIVE + description: >- + Below are the allowed values for the enumeration AmountType. + + - SEND - Amount the Payer would like to send, that is, the amount that + should be withdrawn from the Payer account including any fees. + + - RECEIVE - Amount the Payer would like the Payee to receive, that is, + the amount that should be sent to the receiver exclusive of any fees. + example: RECEIVE + Note: + title: Note + type: string + minLength: 1 + maxLength: 128 + description: Memo assigned to transaction. + example: Note sent to Payee. + Money: + title: Money + type: object + description: Data model for the complex type Money. + properties: + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + required: + - currency + - amount + Latitude: + title: Latitude + type: string + pattern: >- + ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ + description: >- + The API data type Latitude is a JSON String in a lexical format that is + restricted by a regular expression for interoperability reasons. + example: '+45.4215' + Longitude: + title: Longitude + type: string + pattern: >- + ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ + description: >- + The API data type Longitude is a JSON String in a lexical format that is + restricted by a regular expression for interoperability reasons. + example: '+75.6972' + GeoCode: + title: GeoCode + type: object + description: >- + Data model for the complex type GeoCode. Indicates the geographic + location from where the transaction was initiated. + properties: + latitude: + $ref: '#/components/schemas/Latitude' + longitude: + $ref: '#/components/schemas/Longitude' + required: + - latitude + - longitude + IlpPacket: + title: IlpPacket + type: string + pattern: ^[A-Za-z0-9-_]+[=]{0,2}$ + minLength: 1 + maxLength: 32768 + description: Information for recipient (transport layer information). + example: >- + AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA + IlpCondition: + title: IlpCondition + type: string + pattern: ^[A-Za-z0-9-_]{43}$ + maxLength: 48 + description: Condition that must be attached to the transfer by the Payer. + ErrorCode: + title: ErrorCode + type: string + pattern: ^[1-9]\d{3}$ + description: >- + The API data type ErrorCode is a JSON String of four characters, + consisting of digits only. Negative numbers are not allowed. A leading + zero is not allowed. Each error code in the API is a four-digit number, + for example, 1234, where the first number (1 in the example) represents + the high-level error category, the second number (2 in the example) + represents the low-level error category, and the last two numbers (34 in + the example) represent the specific error. + example: '5100' + ErrorDescription: + title: ErrorDescription + type: string + minLength: 1 + maxLength: 128 + description: Error description string. + ErrorInformation: + title: ErrorInformation + type: object + description: Data model for the complex type ErrorInformation. + properties: + errorCode: + $ref: '#/components/schemas/ErrorCode' + errorDescription: + $ref: '#/components/schemas/ErrorDescription' + extensionList: + $ref: '#/components/schemas/ExtensionList' + required: + - errorCode + - errorDescription + mojaloopError: + type: object + properties: + errorInformation: + $ref: '#/components/schemas/ErrorInformation' + quoteError: + type: object + description: >- + This object represents a Mojaloop API error received at any time during + the quote process + properties: + httpStatusCode: + type: integer + description: >- + The HTTP status code returned to the caller. This is the same as the + actual HTTP status code returned with the response. + mojaloopError: + $ref: '#/components/schemas/mojaloopError' + individualQuoteResult: + type: object + properties: + quoteId: + $ref: '#/components/schemas/CorrelationId' + transferAmount: + $ref: '#/components/schemas/Money' + payeeReceiveAmount: + $ref: '#/components/schemas/Money' + payeeFspFee: + $ref: '#/components/schemas/Money' + payeeFspCommission: + $ref: '#/components/schemas/Money' + geoCode: + $ref: '#/components/schemas/GeoCode' + ilpPacket: + $ref: '#/components/schemas/IlpPacket' + condition: + $ref: '#/components/schemas/IlpCondition' + extensionList: + $ref: '#/components/schemas/ExtensionList' + lastError: + $ref: '#/components/schemas/quoteError' + required: + - quoteId + IlpFulfilment: + title: IlpFulfilment + type: string + pattern: ^[A-Za-z0-9-_]{43}$ + maxLength: 48 + description: Fulfilment that must be attached to the transfer by the Payee. + example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8 + TransferState: + title: TransferState + type: string + enum: + - RECEIVED + - RESERVED + - COMMITTED + - ABORTED + description: >- + Below are the allowed values for the enumeration. + + - RECEIVED - Next ledger has received the transfer. + + - RESERVED - Next ledger has reserved the transfer. + - COMMITTED - Next ledger has successfully performed the transfer. + + - ABORTED - Next ledger has aborted the transfer due to a rejection or + failure to perform the transfer. + example: RESERVED + transferError: + type: object + description: >- + This object represents a Mojaloop API error received at any time during + the transfer process + properties: + httpStatusCode: + type: integer + description: >- + The HTTP status code returned to the caller. This is the same as the + actual HTTP status code returned with the response. + mojaloopError: + $ref: '#/components/schemas/mojaloopError' + individualTransferResult: + type: object + required: + - transferId + properties: + transferId: + $ref: '#/components/schemas/CorrelationId' + fulfilment: + $ref: '#/components/schemas/IlpFulfilment' + extensionList: + $ref: '#/components/schemas/ExtensionList' + transferState: + $ref: '#/components/schemas/TransferState' + lastError: + $ref: '#/components/schemas/transferError' + bulkTransactionIndividualTransferResult: + type: object + required: + - homeTransactionId + properties: + transferId: + $ref: '#/components/schemas/CorrelationId' + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + transactionId: + $ref: '#/components/schemas/CorrelationId' + to: + $ref: '#/components/schemas/Party' + reference: + description: Payer Loan reference + type: string + amountType: + $ref: '#/components/schemas/AmountType' + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + note: + $ref: '#/components/schemas/Note' + quoteId: + $ref: '#/components/schemas/CorrelationId' + quoteResponse: + $ref: '#/components/schemas/individualQuoteResult' + fulfil: + $ref: '#/components/schemas/individualTransferResult' + quoteExtensions: + $ref: '#/components/schemas/ExtensionList' + transferExtensions: + $ref: '#/components/schemas/ExtensionList' + lastError: + $ref: '#/components/schemas/transferError' + bulkTransactionResponse: + title: BulkTransactionResponse + type: object + required: + - bulkHomeTransactionID + - bulkTransactionId + - currentState + - individualTransferResults + properties: + bulkHomeTransactionID: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + bulkTransactionId: + $ref: '#/components/schemas/CorrelationId' + currentState: + $ref: '#/components/schemas/bulkTransactionStatus' + options: + $ref: '#/components/schemas/bulkTransactionOptions' + individualTransferResults: + description: List of individual transfer result in a bulk transfer response. + type: array + minItems: 1 + items: + $ref: '#/components/schemas/bulkTransactionIndividualTransferResult' + extensions: + $ref: '#/components/schemas/ExtensionList' + AuthenticationType: + title: AuthenticationType + type: string + enum: + - OTP + - QRCODE + - U2F + description: |- + Below are the allowed values for the enumeration AuthenticationType. + - OTP - One-time password generated by the Payer FSP. + - QRCODE - QR code used as One Time Password. + - U2F - U2F is a new addition isolated to Thirdparty stream. + example: OTP diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/response_map.json b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/response_map.json index 4a22ca3ca..336e6a576 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/response_map.json +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/response_map.json @@ -51,5 +51,12 @@ } } } + }, + "/transactionrequests": { + "post": { + "response": { + "bodyOverride": {} + } + } } } \ No newline at end of file From 864cf5065981cba623c4afbf3b89080fb530ac3f Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Sat, 21 Sep 2024 07:40:20 +0000 Subject: [PATCH 12/25] feat: ulid --- .../api_spec.yaml | 2 +- .../mojaloop_simulator_sim_1.4/api_spec.yaml | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml index be6f65971..dcdbe7c13 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml @@ -824,7 +824,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml index 0cbbade3a..9b0ebe268 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml @@ -687,7 +687,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -736,7 +736,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1214,7 +1214,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1324,7 +1324,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1371,7 +1371,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1470,7 +1470,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1621,7 +1621,7 @@ components: 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}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in From 73b42b5382769b49b7048fcfc4813943b8b8a117 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Mon, 23 Sep 2024 12:12:03 +0000 Subject: [PATCH 13/25] feat: ulid --- .../api_definitions/fspiop_2.0/api_spec.yaml | 6274 ++++++++--------- .../api_definitions/fspiop_2.0/api_spec.yaml | 12 +- .../api_definitions/fspiop_2.0/api_spec.yaml | 12 +- 3 files changed, 3140 insertions(+), 3158 deletions(-) diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/api_spec.yaml b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/api_spec.yaml index ec71aa123..d3ff05f3a 100755 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/api_spec.yaml +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/api_spec.yaml @@ -3,9 +3,19 @@ info: version: '2.0' title: Open API for FSP Interoperability (FSPIOP) description: >- - Based on [API Definition updated on 2020-05-19 Version + Revision date: 2023-11-23 Based on [API Definition updated on 2020-05-19 + Version 1.1](https://github.com/mojaloop/mojaloop-specification/blob/main/documents/v1.1-document-set/API%20Definition_v1.1.pdf). + This is implementation friendly version of the API definition. + + It includes the below definitions needed for third-party functionality. - + AuthenticationType + - U2F enum + - AuthenticationValue + - oneOf is changed to anyOf + - new element is added U2FPinValue + - New element U2FPIN **Note:** The API supports a maximum size of 65536 bytes (64 Kilobytes) in the HTTP header. @@ -24,43 +34,19 @@ servers: - https default: https paths: - /interface: - post: - description: >- - Essential path to include schema definitions that are not used so that - these definitions get included into the openapi-cli bundle api - definition so that they get converted into typescript definitions. - operationId: test - requestBody: - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/BinaryString' - - $ref: '#/components/schemas/BinaryString32' - - $ref: '#/components/schemas/Date' - - $ref: '#/components/schemas/Integer' - - $ref: '#/components/schemas/Name' - - $ref: '#/components/schemas/PersonalIdentifierType' - - $ref: '#/components/schemas/TokenCode' - - $ref: '#/components/schemas/Transaction' - - $ref: '#/components/schemas/UndefinedEnum' - responses: - '200': - description: Ok /participants/{Type}/{ID}: parameters: - - $ref: '#/components/parameters/Type' - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Type" + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" post: description: >- The HTTP request `POST /participants/{Type}/{ID}` (or `POST @@ -74,34 +60,34 @@ paths: - participants operationId: ParticipantsByIDAndType parameters: - - $ref: '#/components/parameters/Accept' - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Accept" + - $ref: "#/components/parameters/Content-Length" requestBody: description: Participant information to be created. required: true content: application/json: schema: - $ref: '#/components/schemas/ParticipantsTypeIDSubIDPostRequest' + $ref: "#/components/schemas/ParticipantsTypeIDSubIDPostRequest" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" get: description: >- The HTTP request `GET /participants/{Type}/{ID}` (or `GET @@ -117,26 +103,26 @@ paths: - participants operationId: ParticipantsByTypeAndID parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /participants/{Type}/{ID}` (or `PUT @@ -150,33 +136,33 @@ paths: - participants operationId: ParticipantsByTypeAndID3 parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Participant information returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ParticipantsTypeIDPutResponse' + $ref: "#/components/schemas/ParticipantsTypeIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" delete: description: >- The HTTP request `DELETE /participants/{Type}/{ID}` (or `DELETE @@ -197,26 +183,26 @@ paths: - participants operationId: ParticipantsByTypeAndID2 parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /participants/{Type}/{ID}/error: put: description: >- @@ -229,58 +215,58 @@ paths: - participants operationId: ParticipantsErrorByTypeAndID parameters: - - $ref: '#/components/parameters/Type' - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Type" + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /participants/{Type}/{ID}/{SubId}: parameters: - - $ref: '#/components/parameters/Type' - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/SubId' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Type" + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/SubId" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" post: description: >- The HTTP request `POST /participants/{Type}/{ID}` (or `POST @@ -294,34 +280,34 @@ paths: - participants operationId: ParticipantsSubIdByTypeAndIDPost parameters: - - $ref: '#/components/parameters/Accept' - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Accept" + - $ref: "#/components/parameters/Content-Length" requestBody: description: Participant information to be created. required: true content: application/json: schema: - $ref: '#/components/schemas/ParticipantsTypeIDSubIDPostRequest' + $ref: "#/components/schemas/ParticipantsTypeIDSubIDPostRequest" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" get: description: >- The HTTP request `GET /participants/{Type}/{ID}` (or `GET @@ -337,26 +323,26 @@ paths: - participants operationId: ParticipantsSubIdByTypeAndID parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /participants/{Type}/{ID}` (or `PUT @@ -370,33 +356,33 @@ paths: - participants operationId: ParticipantsSubIdByTypeAndID3 parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Participant information returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ParticipantsTypeIDPutResponse' + $ref: "#/components/schemas/ParticipantsTypeIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" delete: description: >- The HTTP request `DELETE /participants/{Type}/{ID}` (or `DELETE @@ -417,26 +403,26 @@ paths: - participants operationId: ParticipantsSubIdByTypeAndID2 parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /participants/{Type}/{ID}/{SubId}/error: put: description: >- @@ -449,45 +435,45 @@ paths: - participants operationId: ParticipantsSubIdErrorByTypeAndID parameters: - - $ref: '#/components/parameters/Type' - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/SubId' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Type" + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/SubId" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /participants: post: description: >- @@ -501,43 +487,43 @@ paths: - participants operationId: Participants1 parameters: - - $ref: '#/components/parameters/Accept' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Accept" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Participant information to be created. required: true content: application/json: schema: - $ref: '#/components/schemas/ParticipantsPostRequest' + $ref: "#/components/schemas/ParticipantsPostRequest" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /participants/{ID}: put: description: >- @@ -548,43 +534,43 @@ paths: - participants operationId: putParticipantsByID parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Participant information returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ParticipantsIDPutResponse' + $ref: "#/components/schemas/ParticipantsIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /participants/{ID}/error: put: description: >- @@ -597,56 +583,56 @@ paths: - participants operationId: ParticipantsByIDAndError parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /parties/{Type}/{ID}: parameters: - - $ref: '#/components/parameters/Type' - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Type" + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" get: description: >- The HTTP request `GET /parties/{Type}/{ID}` (or `GET @@ -659,26 +645,26 @@ paths: - parties operationId: PartiesByTypeAndID parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /parties/{Type}/{ID}` (or `PUT @@ -689,33 +675,33 @@ paths: - parties operationId: PartiesByTypeAndID2 parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Party information returned. required: true content: application/json: schema: - $ref: '#/components/schemas/PartiesTypeIDPutResponse' + $ref: "#/components/schemas/PartiesTypeIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /parties/{Type}/{ID}/error: put: description: >- @@ -728,58 +714,58 @@ paths: - parties operationId: PartiesErrorByTypeAndID parameters: - - $ref: '#/components/parameters/Type' - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Type" + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /parties/{Type}/{ID}/{SubId}: parameters: - - $ref: '#/components/parameters/Type' - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/SubId' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Type" + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/SubId" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" get: description: >- The HTTP request `GET /parties/{Type}/{ID}` (or `GET @@ -792,26 +778,26 @@ paths: - parties operationId: PartiesSubIdByTypeAndID parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /parties/{Type}/{ID}` (or `PUT @@ -822,33 +808,33 @@ paths: - parties operationId: PartiesSubIdByTypeAndIDPut parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Party information returned. required: true content: application/json: schema: - $ref: '#/components/schemas/PartiesTypeIDPutResponse' + $ref: "#/components/schemas/PartiesTypeIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /parties/{Type}/{ID}/{SubId}/error: put: description: >- @@ -861,45 +847,45 @@ paths: - parties operationId: PartiesSubIdErrorByTypeAndID parameters: - - $ref: '#/components/parameters/Type' - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/SubId' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Type" + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/SubId" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /transactionRequests: post: description: >- @@ -911,55 +897,55 @@ paths: - transactionRequests operationId: TransactionRequests parameters: - - $ref: '#/components/parameters/Accept' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Accept" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Transaction request to be created. required: true content: application/json: schema: - $ref: '#/components/schemas/TransactionRequestsPostRequest' + $ref: "#/components/schemas/TransactionRequestsPostRequest" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /transactionRequests/{ID}: parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" get: description: >- The HTTP request `GET /transactionRequests/{ID}` is used to get @@ -971,26 +957,26 @@ paths: - transactionRequests operationId: TransactionRequestsByID parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /transactionRequests/{ID}` is used to inform the @@ -1003,33 +989,33 @@ paths: - transactionRequests operationId: TransactionRequestsByIDPut parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Transaction request information returned. required: true content: application/json: schema: - $ref: '#/components/schemas/TransactionRequestsIDPutResponse' + $ref: "#/components/schemas/TransactionRequestsIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /transactionRequests/{ID}/error: put: description: >- @@ -1044,43 +1030,43 @@ paths: - transactionRequests operationId: TransactionRequestsErrorByID parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /quotes: post: description: >- @@ -1091,55 +1077,55 @@ paths: - quotes operationId: Quotes parameters: - - $ref: '#/components/parameters/Accept' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Accept" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the quote to be created. required: true content: application/json: schema: - $ref: '#/components/schemas/QuotesPostRequest' + $ref: "#/components/schemas/QuotesPostRequest" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /quotes/{ID}: parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" get: description: >- The HTTP request `GET /quotes/{ID}` is used to get information regarding @@ -1150,26 +1136,26 @@ paths: - quotes operationId: QuotesByID parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /quotes/{ID}` is used to inform the client of a @@ -1181,33 +1167,33 @@ paths: - quotes operationId: QuotesByID1 parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Quote information returned. required: true content: application/json: schema: - $ref: '#/components/schemas/QuotesIDPutResponse' + $ref: "#/components/schemas/QuotesIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /quotes/{ID}/error: put: description: >- @@ -1221,55 +1207,55 @@ paths: - quotes operationId: QuotesByIDAndError parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /authorizations/{ID}: parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" get: description: >- The HTTP request `GET /authorizations/{ID}` is used to request the Payer @@ -1313,26 +1299,26 @@ paths: - authorizations operationId: AuthorizationsByIDGet parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /authorizations/{ID}` is used to inform the client of @@ -1344,33 +1330,33 @@ paths: - authorizations operationId: AuthorizationsByIDPut parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Authorization result returned. required: true content: application/json: schema: - $ref: '#/components/schemas/AuthorizationsIDPutResponse' + $ref: "#/components/schemas/AuthorizationsIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /authorizations/{ID}/error: put: description: >- @@ -1383,43 +1369,43 @@ paths: - authorizations operationId: AuthorizationsByIDAndError parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /transfers: post: description: >- @@ -1431,55 +1417,55 @@ paths: - transfers operationId: transfers parameters: - - $ref: '#/components/parameters/Accept' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Accept" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the transfer to be created. required: true content: application/json: schema: - $ref: '#/components/schemas/TransfersPostRequest' + $ref: "#/components/schemas/TransfersPostRequest" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /transfers/{ID}: parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" get: description: >- The HTTP request `GET /transfers/{ID}` is used to get information @@ -1491,26 +1477,26 @@ paths: - transfers operationId: TransfersByIDGet parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" patch: description: >- The HTTP request PATCH /transfers/ is used by a Switch to update the @@ -1524,33 +1510,33 @@ paths: - transfers operationId: TransfersByIDPatch parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Transfer notification upon completion. required: true content: application/json: schema: - $ref: '#/components/schemas/TransfersIDPatchResponse' + $ref: "#/components/schemas/TransfersIDPatchResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /transfers/{ID}` is used to inform the client of a @@ -1562,33 +1548,33 @@ paths: - transfers operationId: TransfersByIDPut parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Transfer information returned. required: true content: application/json: schema: - $ref: '#/components/schemas/TransfersIDPutResponse' + $ref: "#/components/schemas/TransfersIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /transfers/{ID}/error: put: description: >- @@ -1602,55 +1588,55 @@ paths: - transfers operationId: TransfersByIDAndError parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /transactions/{ID}: parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" get: description: >- The HTTP request `GET /transactions/{ID}` is used to get transaction @@ -1663,26 +1649,26 @@ paths: - transactions operationId: TransactionsByID parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /transactions/{ID}` is used to inform the client of a @@ -1693,33 +1679,33 @@ paths: - transactions operationId: TransactionsByID1 parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Transaction information returned. required: true content: application/json: schema: - $ref: '#/components/schemas/TransactionsIDPutResponse' + $ref: "#/components/schemas/TransactionsIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /transactions/{ID}/error: put: description: >- @@ -1732,43 +1718,43 @@ paths: - transactions operationId: TransactionsErrorByID parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /bulkQuotes: post: description: >- @@ -1779,55 +1765,55 @@ paths: - bulkQuotes operationId: BulkQuotes parameters: - - $ref: '#/components/parameters/Accept' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Accept" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the bulk quote to be created. required: true content: application/json: schema: - $ref: '#/components/schemas/BulkQuotesPostRequest' + $ref: "#/components/schemas/BulkQuotesPostRequest" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /bulkQuotes/{ID}: parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" get: description: >- The HTTP request `GET /bulkQuotes/{ID}` is used to get information @@ -1839,26 +1825,26 @@ paths: - bulkQuotes operationId: BulkQuotesByID parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /bulkQuotes/{ID}` is used to inform the client of a @@ -1870,33 +1856,33 @@ paths: - bulkQuotes operationId: BulkQuotesByID1 parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Bulk quote information returned. required: true content: application/json: schema: - $ref: '#/components/schemas/BulkQuotesIDPutResponse' + $ref: "#/components/schemas/BulkQuotesIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /bulkQuotes/{ID}/error: put: description: >- @@ -1910,43 +1896,43 @@ paths: - bulkQuotes operationId: BulkQuotesErrorByID parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /bulkTransfers: post: description: >- @@ -1957,55 +1943,55 @@ paths: - bulkTransfers operationId: BulkTransfers parameters: - - $ref: '#/components/parameters/Accept' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Accept" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the bulk transfer to be created. required: true content: application/json: schema: - $ref: '#/components/schemas/BulkTransfersPostRequest' + $ref: "#/components/schemas/BulkTransfersPostRequest" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /bulkTransfers/{ID}: parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" get: description: >- The HTTP request `GET /bulkTransfers/{ID}` is used to get information @@ -2017,26 +2003,26 @@ paths: - bulkTransfers operationId: BulkTransferByID parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /bulkTransfers/{ID}` is used to inform the client of a @@ -2049,33 +2035,33 @@ paths: - bulkTransfers operationId: BulkTransfersByIDPut parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Bulk transfer information returned. required: true content: application/json: schema: - $ref: '#/components/schemas/BulkTransfersIDPutResponse' + $ref: "#/components/schemas/BulkTransfersIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /bulkTransfers/{ID}/error: put: description: >- @@ -2090,43 +2076,43 @@ paths: - bulkTransfers operationId: BulkTransfersErrorByID parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /fxQuotes: post: description: >- @@ -2137,55 +2123,55 @@ paths: - fxQuotes operationId: FxQuotesPost parameters: - - $ref: '#/components/parameters/Accept' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Accept" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the FX quote to be created. required: true content: application/json: schema: - $ref: '#/components/schemas/FxQuotesPostRequest' + $ref: "#/components/schemas/FxQuotesPostRequest" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /fxQuotes/{ID}: parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" get: description: >- The HTTP request `GET /fxQuotes/{ID}` is used to request information @@ -2197,26 +2183,26 @@ paths: - fxQuotes operationId: FxQuotesByIDGet parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /fxQuotes/{ID}` is used to inform the requester about @@ -2229,33 +2215,33 @@ paths: - fxQuotes operationId: FxQuotesByIdPut parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: FX Quote information returned. required: true content: application/json: schema: - $ref: '#/components/schemas/FxQuotesIDPutResponse' + $ref: "#/components/schemas/FxQuotesIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /fxQuotes/{ID}/error: put: description: >- @@ -2269,43 +2255,43 @@ paths: - fxQuotes operationId: FxQuotesByIDAndErrorPut parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /fxTransfers: post: description: >- @@ -2316,55 +2302,55 @@ paths: - fxTransfers operationId: FxTransfersPost parameters: - - $ref: '#/components/parameters/Accept' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Accept" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the FX transfer to be created. required: true content: application/json: schema: - $ref: '#/components/schemas/FxTransfersPostRequest' + $ref: "#/components/schemas/FxTransfersPostRequest" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /fxTransfers/{ID}: parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" get: description: >- The HTTP request `GET /fxTransfers/{ID}` s used to request information @@ -2376,26 +2362,26 @@ paths: - fxTransfers operationId: FxTransfersByIDGet parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" patch: description: >- The HTTP request PATCH /fxTransfers/ is used to inform the requester @@ -2408,33 +2394,33 @@ paths: - fxTransfers operationId: FxTransfersByIDPatch parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Transfer notification upon completion. required: true content: application/json: schema: - $ref: '#/components/schemas/FxTransfersIDPatchResponse' + $ref: "#/components/schemas/FxTransfersIDPatchResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /fxTransfers/{ID}` is used to inform the requester @@ -2447,33 +2433,33 @@ paths: - fxTransfers operationId: FxTransfersByIDPut parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: Transfer information returned. required: true content: application/json: schema: - $ref: '#/components/schemas/FxTransfersIDPutResponse' + $ref: "#/components/schemas/FxTransfersIDPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /fxTransfers/{ID}/error: put: description: >- @@ -2487,54 +2473,54 @@ paths: - fxTransfers operationId: FxTransfersByIDAndErrorPut parameters: - - $ref: '#/components/parameters/ID' - - $ref: '#/components/parameters/Content-Length' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/ID" + - $ref: "#/components/parameters/Content-Length" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" requestBody: description: Details of the error returned. required: true content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationObject' + $ref: "#/components/schemas/ErrorInformationObject" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /services/FXP: parameters: - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" get: description: >- The HTTP request `GET /services/FXP` is used to request information @@ -2545,26 +2531,26 @@ paths: - servicesFXP operationId: ServicesFXPGet parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /services/FXP` is used to inform the requester about @@ -2574,46 +2560,46 @@ paths: - servicesFXP operationId: ServicesFXPPut parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: The list of participant(s) who offer currency conversion services. required: true content: application/json: schema: - $ref: '#/components/schemas/ServicesFXPPutResponse' + $ref: "#/components/schemas/ServicesFXPPutResponse" responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" /services/FXP/{SourceCurrency}/{TargetCurrency}: parameters: - - $ref: '#/components/parameters/SourceCurrency' - - $ref: '#/components/parameters/TargetCurrency' - - $ref: '#/components/parameters/Content-Type' - - $ref: '#/components/parameters/Date' - - $ref: '#/components/parameters/X-Forwarded-For' - - $ref: '#/components/parameters/FSPIOP-Source' - - $ref: '#/components/parameters/FSPIOP-Destination' - - $ref: '#/components/parameters/FSPIOP-Encryption' - - $ref: '#/components/parameters/FSPIOP-Signature' - - $ref: '#/components/parameters/FSPIOP-URI' - - $ref: '#/components/parameters/FSPIOP-HTTP-Method' + - $ref: "#/components/parameters/SourceCurrency" + - $ref: "#/components/parameters/TargetCurrency" + - $ref: "#/components/parameters/Content-Type" + - $ref: "#/components/parameters/Date" + - $ref: "#/components/parameters/X-Forwarded-For" + - $ref: "#/components/parameters/FSPIOP-Source" + - $ref: "#/components/parameters/FSPIOP-Destination" + - $ref: "#/components/parameters/FSPIOP-Encryption" + - $ref: "#/components/parameters/FSPIOP-Signature" + - $ref: "#/components/parameters/FSPIOP-URI" + - $ref: "#/components/parameters/FSPIOP-HTTP-Method" get: description: >- The HTTP request `GET /services/FXP/{SourceCurrency}/{TargetCurrency}` @@ -2626,26 +2612,26 @@ paths: - servicesFXP operationId: ServicesFXPSourceCurrencyTargetCurrencyGet parameters: - - $ref: '#/components/parameters/Accept' + - $ref: "#/components/parameters/Accept" responses: - '202': - $ref: '#/components/responses/202' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "202": + $ref: "#/components/responses/202" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" put: description: >- The callback `PUT /services/FXP/{SourceCurrency}/{TargetCurrency}` is @@ -2658,7 +2644,7 @@ paths: - servicesFXP operationId: ServicesFXPSourceCurrencyTargetCurrencyPut parameters: - - $ref: '#/components/parameters/Content-Length' + - $ref: "#/components/parameters/Content-Length" requestBody: description: The list of participant(s) who offer currency conversion services. required: true @@ -2668,26 +2654,122 @@ paths: $ref: >- #/components/schemas/ServicesFXPSourceCurrencyTargetCurrencyPutResponse responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '405': - $ref: '#/components/responses/405' - '406': - $ref: '#/components/responses/406' - '501': - $ref: '#/components/responses/501' - '503': - $ref: '#/components/responses/503' + "200": + $ref: "#/components/responses/200" + "400": + $ref: "#/components/responses/400" + "401": + $ref: "#/components/responses/401" + "403": + $ref: "#/components/responses/403" + "404": + $ref: "#/components/responses/404" + "405": + $ref: "#/components/responses/405" + "406": + $ref: "#/components/responses/406" + "501": + $ref: "#/components/responses/501" + "503": + $ref: "#/components/responses/503" components: schemas: + Amount: + title: Amount + type: string + pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$ + description: >- + The API data type Amount is a JSON String in a canonical format that is + restricted by a regular expression for interoperability reasons. This + pattern does not allow any trailing zeroes at all, but allows an amount + without a minor currency unit. It also only allows four digits in the + minor currency unit; a negative value is not allowed. Using more than 18 + digits in the major currency unit is not allowed. + example: "123.45" + AmountType: + title: AmountType + type: string + enum: + - SEND + - RECEIVE + description: >- + Below are the allowed values for the enumeration AmountType. + + - SEND - Amount the Payer would like to send, that is, the amount that + should be withdrawn from the Payer account including any fees. + + - RECEIVE - Amount the Payer would like the Payee to receive, that is, + the amount that should be sent to the receiver exclusive of any fees. + example: RECEIVE + AuthenticationInfo: + title: AuthenticationInfo + type: object + description: Data model for the complex type AuthenticationInfo. + properties: + authentication: + $ref: "#/components/schemas/AuthenticationType" + authenticationValue: + $ref: "#/components/schemas/AuthenticationValue" + required: + - authentication + - authenticationValue + AuthenticationType: + title: AuthenticationType + type: string + enum: + - OTP + - QRCODE + - U2F + description: |- + Below are the allowed values for the enumeration AuthenticationType. + - OTP - One-time password generated by the Payer FSP. + - QRCODE - QR code used as One Time Password. + - U2F - U2F is a new addition isolated to Thirdparty stream. + example: OTP + AuthenticationValue: + title: AuthenticationValue + anyOf: + - $ref: "#/components/schemas/OtpValue" + - $ref: "#/components/schemas/QRCODE" + - $ref: "#/components/schemas/U2FPinValue" + pattern: ^\d{3,10}$|^\S{1,64}$ + description: >- + Contains the authentication value. The format depends on the + authentication type used in the AuthenticationInfo complex type. + AuthorizationResponse: + title: AuthorizationResponse + type: string + enum: + - ENTERED + - REJECTED + - RESEND + description: |- + Below are the allowed values for the enumeration. + - ENTERED - Consumer entered the authentication value. + - REJECTED - Consumer rejected the transaction. + - RESEND - Consumer requested to resend the authentication value. + example: ENTERED + AuthorizationsIDPutResponse: + title: AuthorizationsIDPutResponse + type: object + description: The object sent in the PUT /authorizations/{ID} callback. + properties: + authenticationInfo: + $ref: "#/components/schemas/AuthenticationInfo" + responseType: + $ref: "#/components/schemas/AuthorizationResponse" + required: + - responseType + BalanceOfPayments: + title: BalanceOfPayments + type: string + pattern: ^[1-9]\d{2}$ + description: >- + (BopCode) The API data type + [BopCode](https://www.imf.org/external/np/sta/bopcode/) is a JSON String + of 3 characters, consisting of digits only. Negative numbers are not + allowed. A leading zero is not allowed. + example: "123" BinaryString: type: string pattern: ^[A-Za-z0-9-_]+[=]{0,2}$ @@ -2705,366 +2787,144 @@ components: type BinaryString, where the raw underlying data is always of 32 bytes. The data type BinaryString32 should not use a padding character as the size of the underlying data is fixed. - Date: - title: Date - type: string - 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)$ - description: >- - The API data type Date is a JSON String in a lexical format that is - restricted by a regular expression for interoperability reasons. This - format, as specified in ISO 8601, contains a date only. A more readable - version of the format is yyyy-MM-dd. Examples are "1982-05-23", - "1987-08-05”. - Integer: - title: Integer - type: string - pattern: ^[1-9]\d*$ - description: >- - The API data type Integer is a JSON String consisting of digits only. - Negative numbers and leading zeroes are not allowed. The data type is - always limited to a specific number of digits. - Name: - title: Name - type: string - pattern: ^(?!\s*$)[\w .,'-]{1,128}$ - description: >- - The API data type Name is a JSON String, restricted by a regular - expression to avoid characters which are generally not used in a name. - - - Regular Expression - The regular expression for restricting the Name - type is "^(?!\s*$)[\w .,'-]{1,128}$". The restriction does not allow a - string consisting of whitespace only, all Unicode characters are - allowed, as well as the period (.) (apostrophe (‘), dash (-), comma (,) - and space characters ( ). - - - **Note:** In some programming languages, Unicode support must be - specifically enabled. For example, if Java is used, the flag - UNICODE_CHARACTER_CLASS must be enabled to allow Unicode characters. - PersonalIdentifierType: - title: PersonalIdentifierType + BulkQuotesIDPutResponse: + title: BulkQuotesIDPutResponse + type: object + description: The object sent in the PUT /bulkQuotes/{ID} callback. + properties: + individualQuoteResults: + type: array + maxItems: 1000 + items: + $ref: "#/components/schemas/IndividualQuoteResult" + description: >- + Fees for each individual transaction, if any of them are charged per + transaction. + expiration: + $ref: "#/components/schemas/DateTime" + extensionList: + $ref: "#/components/schemas/ExtensionList" + required: + - expiration + BulkQuotesPostRequest: + title: BulkQuotesPostRequest + type: object + description: The object sent in the POST /bulkQuotes request. + properties: + bulkQuoteId: + $ref: "#/components/schemas/CorrelationId" + payer: + $ref: "#/components/schemas/Party" + geoCode: + $ref: "#/components/schemas/GeoCode" + expiration: + $ref: "#/components/schemas/DateTime" + individualQuotes: + type: array + minItems: 1 + maxItems: 1000 + items: + $ref: "#/components/schemas/IndividualQuote" + description: List of quotes elements. + extensionList: + $ref: "#/components/schemas/ExtensionList" + required: + - bulkQuoteId + - payer + - individualQuotes + BulkTransferState: + title: BulkTransactionState type: string enum: - - PASSPORT - - NATIONAL_REGISTRATION - - DRIVING_LICENSE - - ALIEN_REGISTRATION - - NATIONAL_ID_CARD - - EMPLOYER_ID - - TAX_ID_NUMBER - - SENIOR_CITIZENS_CARD - - MARRIAGE_CERTIFICATE - - HEALTH_CARD - - VOTERS_ID - - UNITED_NATIONS - - OTHER_ID + - RECEIVED + - PENDING + - ACCEPTED + - PROCESSING + - COMPLETED + - REJECTED description: >- Below are the allowed values for the enumeration. - - PASSPORT - A passport number is used as reference to a Party. - - - NATIONAL_REGISTRATION - A national registration number is used as - reference to a Party. - - - DRIVING_LICENSE - A driving license is used as reference to a Party. - - - ALIEN_REGISTRATION - An alien registration number is used as reference - to a Party. - - - NATIONAL_ID_CARD - A national ID card number is used as reference to a - Party. - - - EMPLOYER_ID - A tax identification number is used as reference to a - Party. - - - TAX_ID_NUMBER - A tax identification number is used as reference to a - Party. - - - SENIOR_CITIZENS_CARD - A senior citizens card number is used as - reference to a Party. + - RECEIVED - Payee FSP has received the bulk transfer from the Payer + FSP. - - MARRIAGE_CERTIFICATE - A marriage certificate number is used as - reference to a Party. + - PENDING - Payee FSP has validated the bulk transfer. - - HEALTH_CARD - A health card number is used as reference to a Party. + - ACCEPTED - Payee FSP has accepted to process the bulk transfer. - - VOTERS_ID - A voter’s identification number is used as reference to a - Party. + - PROCESSING - Payee FSP has started to transfer fund to the Payees. - - UNITED_NATIONS - An UN (United Nations) number is used as reference to - a Party. + - COMPLETED - Payee FSP has completed transfer of funds to the Payees. - - OTHER_ID - Any other type of identification type number is used as - reference to a Party. - TokenCode: - title: TokenCode - type: string - pattern: ^[0-9a-zA-Z]{4,32}$ - description: >- - The API data type TokenCode is a JSON String between 4 and 32 - characters, consisting of digits or upper- or lowercase characters from - a to z. - CorrelationId: - title: CorrelationId - type: string - pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ - description: >- - Identifier that correlates all messages of the same sequence. - The supported identifiers formats are for - lowercase [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and - uppercase [ULID](https://github.com/ulid/spec) - example: b51ec534-ee48-4575-b6a9-ead2955b8069 - PartyIdType: - title: PartyIdType - type: string - enum: - - MSISDN - - EMAIL - - PERSONAL_ID - - BUSINESS - - DEVICE - - ACCOUNT_ID - - IBAN - - ALIAS - description: >- - Below are the allowed values for the enumeration. - - - MSISDN - An MSISDN (Mobile Station International Subscriber Directory - Number, that is, the phone number) is used as reference to a - participant. The MSISDN identifier should be in international format - according to the [ITU-T E.164 - standard](https://www.itu.int/rec/T-REC-E.164/en). Optionally, the - MSISDN may be prefixed by a single plus sign, indicating the - international prefix. - - - EMAIL - An email is used as reference to a participant. The format of - the email should be according to the informational [RFC - 3696](https://tools.ietf.org/html/rfc3696). - - - PERSONAL_ID - A personal identifier is used as reference to a - participant. Examples of personal identification are passport number, - birth certificate number, and national registration number. The - identifier number is added in the PartyIdentifier element. The personal - identifier type is added in the PartySubIdOrType element. - - - BUSINESS - A specific Business (for example, an organization or a - company) is used as reference to a participant. The BUSINESS identifier - can be in any format. To make a transaction connected to a specific - username or bill number in a Business, the PartySubIdOrType element - should be used. - - - DEVICE - A specific device (for example, a POS or ATM) ID connected to - a specific business or organization is used as reference to a Party. For - referencing a specific device under a specific business or organization, - use the PartySubIdOrType element. - - - ACCOUNT_ID - A bank account number or FSP account ID should be used as - reference to a participant. The ACCOUNT_ID identifier can be in any - format, as formats can greatly differ depending on country and FSP. - - - IBAN - A bank account number or FSP account ID is used as reference to - a participant. The IBAN identifier can consist of up to 34 alphanumeric - characters and should be entered without whitespace. - - - ALIAS An alias is used as reference to a participant. The alias should - be created in the FSP as an alternative reference to an account owner. - Another example of an alias is a username in the FSP system. The ALIAS - identifier can be in any format. It is also possible to use the - PartySubIdOrType element for identifying an account under an Alias - defined by the PartyIdentifier. - PartyIdentifier: - title: PartyIdentifier - type: string - minLength: 1 - maxLength: 128 - description: Identifier of the Party. - example: '16135551212' - PartySubIdOrType: - title: PartySubIdOrType - type: string - minLength: 1 - maxLength: 128 - description: >- - Either a sub-identifier of a PartyIdentifier, or a sub-type of the - PartyIdType, normally a PersonalIdentifierType. - FspId: - title: FspId - type: string - minLength: 1 - maxLength: 32 - description: FSP identifier. - ExtensionKey: - title: ExtensionKey - type: string - minLength: 1 - maxLength: 32 - description: Extension key. - ExtensionValue: - title: ExtensionValue - type: string - minLength: 1 - maxLength: 128 - description: Extension value. - Extension: - title: Extension - type: object - description: Data model for the complex type Extension. - properties: - key: - $ref: '#/components/schemas/ExtensionKey' - value: - $ref: '#/components/schemas/ExtensionValue' - required: - - key - - value - ExtensionList: - title: ExtensionList + - REJECTED - Payee FSP has rejected to process the bulk transfer. + example: RECEIVED + BulkTransfersIDPutResponse: + title: BulkTransfersIDPutResponse type: object - description: >- - Data model for the complex type ExtensionList. An optional list of - extensions, specific to deployment. + description: The object sent in the PUT /bulkTransfers/{ID} callback. properties: - extension: + completedTimestamp: + $ref: "#/components/schemas/DateTime" + individualTransferResults: type: array + maxItems: 1000 items: - $ref: '#/components/schemas/Extension' - minItems: 1 - maxItems: 16 - description: Number of Extension elements. + $ref: "#/components/schemas/IndividualTransferResult" + description: List of IndividualTransferResult elements. + bulkTransferState: + $ref: "#/components/schemas/BulkTransferState" + extensionList: + $ref: "#/components/schemas/ExtensionList" required: - - extension - PartyIdInfo: - title: PartyIdInfo + - bulkTransferState + BulkTransfersPostRequest: + title: BulkTransfersPostRequest type: object - description: >- - Data model for the complex type PartyIdInfo. An ExtensionList element - has been added to this reqeust in version v1.1 + description: The object sent in the POST /bulkTransfers request. properties: - partyIdType: - $ref: '#/components/schemas/PartyIdType' - partyIdentifier: - $ref: '#/components/schemas/PartyIdentifier' - partySubIdOrType: - $ref: '#/components/schemas/PartySubIdOrType' - fspId: - $ref: '#/components/schemas/FspId' + bulkTransferId: + $ref: "#/components/schemas/CorrelationId" + bulkQuoteId: + $ref: "#/components/schemas/CorrelationId" + payerFsp: + $ref: "#/components/schemas/FspId" + payeeFsp: + $ref: "#/components/schemas/FspId" + individualTransfers: + type: array + minItems: 1 + maxItems: 1000 + items: + $ref: "#/components/schemas/IndividualTransfer" + description: List of IndividualTransfer elements. + expiration: + $ref: "#/components/schemas/DateTime" extensionList: - $ref: '#/components/schemas/ExtensionList' + $ref: "#/components/schemas/ExtensionList" required: - - partyIdType - - partyIdentifier - MerchantClassificationCode: - title: MerchantClassificationCode - type: string - pattern: ^[\d]{1,4}$ - description: >- - A limited set of pre-defined numbers. This list would be a limited set - of numbers identifying a set of popular merchant types like School Fees, - Pubs and Restaurants, Groceries, etc. - PartyName: - title: PartyName - type: string - minLength: 1 - maxLength: 128 - description: Name of the Party. Could be a real name or a nickname. - FirstName: - title: FirstName - type: string - minLength: 1 - maxLength: 128 - pattern: >- - ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} - .,''-]{1,128}$ - description: First name of the Party (Name Type). - example: Henrik - MiddleName: - title: MiddleName - type: string - minLength: 1 - maxLength: 128 - pattern: >- - ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} - .,''-]{1,128}$ - description: Middle name of the Party (Name Type). - example: Johannes - LastName: - title: LastName + - bulkTransferId + - bulkQuoteId + - payerFsp + - payeeFsp + - individualTransfers + - expiration + Code: + title: Code type: string - minLength: 1 - maxLength: 128 - pattern: >- - ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} - .,''-]{1,128}$ - description: Last name of the Party (Name Type). - example: Karlsson - PartyComplexName: - title: PartyComplexName - type: object - description: Data model for the complex type PartyComplexName. - properties: - firstName: - $ref: '#/components/schemas/FirstName' - middleName: - $ref: '#/components/schemas/MiddleName' - lastName: - $ref: '#/components/schemas/LastName' - DateOfBirth: - title: DateofBirth (type Date) + pattern: ^[0-9a-zA-Z]{4,32}$ + description: Any code/token returned by the Payee FSP (TokenCode Type). + example: Test-Code + CorrelationId: + title: CorrelationId type: string 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)$ - description: Date of Birth of the Party. - example: '1966-06-16' - KYCInformation: - title: KYCInformation - type: string - minLength: 1 - maxLength: 2048 + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- - KYC information for the party in a form mandated by an individual - scheme. - example: |- - { - "metadata": { - "format": "JSON", - "version": "1.0", - "description": "Data containing KYC Information" - }, - "data": { - "name": "John Doe", - "dob": "1980-05-15", - "gender": "Male", - "address": "123 Main Street, Anytown, USA", - "email": "johndoe@example.com", - "phone": "+1 555-123-4567", - "nationality": "US", - "passport_number": "AB1234567", - "issue_date": "2010-02-20", - "expiry_date": "2025-02-20", - "bank_account_number": "1234567890", - "bank_name": "Example Bank", - "employer": "ABC Company", - "occupation": "Software Engineer", - "income": "$80,000 per year", - "marital_status": "Single", - "dependents": 0, - "risk_level": "Low" - } - } - PartyPersonalInfo: - title: PartyPersonalInfo - type: object - description: Data model for the complex type PartyPersonalInfo. - properties: - complexName: - $ref: '#/components/schemas/PartyComplexName' - dateOfBirth: - $ref: '#/components/schemas/DateOfBirth' - kycInformation: - $ref: '#/components/schemas/KYCInformation' + Identifier that correlates all messages of the same sequence. The + supported identifiers formats are for lowercase + [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and uppercase + [ULID](https://github.com/ulid/spec) + example: b51ec534-ee48-4575-b6a9-ead2955b8069 Currency: title: Currency description: >- @@ -3240,52 +3100,6 @@ components: - ZAR - ZMW - ZWD - Party: - title: Party - type: object - description: Data model for the complex type Party. - properties: - partyIdInfo: - $ref: '#/components/schemas/PartyIdInfo' - merchantClassificationCode: - $ref: '#/components/schemas/MerchantClassificationCode' - name: - $ref: '#/components/schemas/PartyName' - personalInfo: - $ref: '#/components/schemas/PartyPersonalInfo' - supportedCurrencies: - type: array - description: Currencies in which the party can receive funds. - items: - $ref: '#/components/schemas/Currency' - minItems: 0 - maxItems: 16 - required: - - partyIdInfo - Amount: - title: Amount - type: string - pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$ - description: >- - The API data type Amount is a JSON String in a canonical format that is - restricted by a regular expression for interoperability reasons. This - pattern does not allow any trailing zeroes at all, but allows an amount - without a minor currency unit. It also only allows four digits in the - minor currency unit; a negative value is not allowed. Using more than 18 - digits in the major currency unit is not allowed. - example: '123.45' - Money: - title: Money - type: object - description: Data model for the complex type Money. - properties: - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - required: - - currency - - amount CurrencyConverter: title: CurrencyConverter type: string @@ -3296,219 +3110,39 @@ components: Below are the allowed values for the enumeration CurrencyConverter. - PAYER - Currency conversion should be performed by the payer. - PAYEE - Currency conversion should be performed by the payee. - FxRate: - title: FxRate - type: object - description: >- - The FxRate object contains information about a currency conversion in - the transfer. It can be used by parties to the transfer to exchange - information with each other about the exchange rate for the transfer, to - ensure that the best rate can be agreed on. - properties: - sourceAmount: - allOf: - - $ref: '#/components/schemas/Money' - - description: The amount of the transfer in the source currency. - targetAmount: - allOf: - - $ref: '#/components/schemas/Money' - - description: The amount of the transfer in the target currency. - required: - - sourceAmount - - targetAmount - TransactionScenario: - title: TransactionScenario - type: string - enum: - - DEPOSIT - - WITHDRAWAL - - TRANSFER - - PAYMENT - - REFUND - description: >- - Below are the allowed values for the enumeration. - - - DEPOSIT - Used for performing a Cash-In (deposit) transaction. In a - normal scenario, electronic funds are transferred from a Business - account to a Consumer account, and physical cash is given from the - Consumer to the Business User. - - - WITHDRAWAL - Used for performing a Cash-Out (withdrawal) transaction. - In a normal scenario, electronic funds are transferred from a Consumer’s - account to a Business account, and physical cash is given from the - Business User to the Consumer. - - - TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to - Consumer) transaction. - - - PAYMENT - Usually used for performing a transaction from a Consumer to - a Merchant or Organization, but could also be for a B2B (Business to - Business) payment. The transaction could be online for a purchase in an - Internet store, in a physical store where both the Consumer and Business - User are present, a bill payment, a donation, and so on. - - - REFUND - Used for performing a refund of transaction. - example: DEPOSIT - TransactionSubScenario: - title: TransactionSubScenario - type: string - pattern: ^[A-Z_]{1,32}$ - description: >- - Possible sub-scenario, defined locally within the scheme (UndefinedEnum - Type). - example: LOCALLY_DEFINED_SUBSCENARIO - TransactionInitiator: - title: TransactionInitiator - type: string - enum: - - PAYER - - PAYEE - description: >- - Below are the allowed values for the enumeration. - - - PAYER - Sender of funds is initiating the transaction. The account to - send from is either owned by the Payer or is connected to the Payer in - some way. - - - PAYEE - Recipient of the funds is initiating the transaction by - sending a transaction request. The Payer must approve the transaction, - either automatically by a pre-generated OTP or by pre-approval of the - Payee, or by manually approving in his or her own Device. - example: PAYEE - TransactionInitiatorType: - title: TransactionInitiatorType - type: string - enum: - - CONSUMER - - AGENT - - BUSINESS - - DEVICE - description: |- - Below are the allowed values for the enumeration. - - CONSUMER - Consumer is the initiator of the transaction. - - AGENT - Agent is the initiator of the transaction. - - BUSINESS - Business is the initiator of the transaction. - - DEVICE - Device is the initiator of the transaction. - example: CONSUMER - RefundReason: - title: RefundReason - type: string - minLength: 1 - maxLength: 128 - description: Reason for the refund. - example: Free text indicating reason for the refund. - Refund: - title: Refund - type: object - description: Data model for the complex type Refund. - properties: - originalTransactionId: - $ref: '#/components/schemas/CorrelationId' - refundReason: - $ref: '#/components/schemas/RefundReason' - required: - - originalTransactionId - BalanceOfPayments: - title: BalanceOfPayments + Date: + title: Date type: string - pattern: ^[1-9]\d{2}$ + 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)$ description: >- - (BopCode) The API data type - [BopCode](https://www.imf.org/external/np/sta/bopcode/) is a JSON String - of 3 characters, consisting of digits only. Negative numbers are not - allowed. A leading zero is not allowed. - example: '123' - TransactionType: - title: TransactionType - type: object - description: Data model for the complex type TransactionType. - properties: - scenario: - $ref: '#/components/schemas/TransactionScenario' - subScenario: - $ref: '#/components/schemas/TransactionSubScenario' - initiator: - $ref: '#/components/schemas/TransactionInitiator' - initiatorType: - $ref: '#/components/schemas/TransactionInitiatorType' - refundInfo: - $ref: '#/components/schemas/Refund' - balanceOfPayments: - $ref: '#/components/schemas/BalanceOfPayments' - required: - - scenario - - initiator - - initiatorType - Note: - title: Note + The API data type Date is a JSON String in a lexical format that is + restricted by a regular expression for interoperability reasons. This + format, as specified in ISO 8601, contains a date only. A more readable + version of the format is yyyy-MM-dd. Examples are "1982-05-23", + "1987-08-05”. + DateOfBirth: + title: DateofBirth (type Date) type: string - minLength: 1 - maxLength: 128 - description: Memo assigned to transaction. - example: Note sent to Payee. - Transaction: - title: Transaction - type: object - description: >- - Data model for the complex type Transaction. The Transaction type is - used to carry end-to-end data between the Payer FSP and the Payee FSP in - the ILP Packet. Both the transactionId and the quoteId in the data model - are decided by the Payer FSP in the POST /quotes request. - properties: - transactionId: - $ref: '#/components/schemas/CorrelationId' - quoteId: - $ref: '#/components/schemas/CorrelationId' - payee: - $ref: '#/components/schemas/Party' - payer: - $ref: '#/components/schemas/Party' - amount: - $ref: '#/components/schemas/Money' - payeeReceiveAmount: - allOf: - - $ref: '#/components/schemas/Money' - - description: The amount that the beneficiary will receive. - converter: - allOf: - - $ref: '#/components/schemas/CurrencyConverter' - - description: >- - An optional field which will allow the payer DFSP to specify - which DFSP it wants to undertake currency conversion. This is - useful incase of if the sender wants the recipient to receive a - specified amount of the target currency, but the payer DFSP does - not want to undertake the currency conversion. In this case, the - amount of the transfer would be expressed in the target currency - and the amountType would be set to RECEIVE. - currencyConversion: - allOf: - - $ref: '#/components/schemas/FxRate' - - description: >- - Used by the debtor party if it wants to share information about - the currency conversion it proposes to make; or if it is - required by scheme rules to share this information. This object - contains the amount of the transfer in the source and target - currencies, but does not identify the FXP being used. - transactionType: - $ref: '#/components/schemas/TransactionType' - note: - $ref: '#/components/schemas/Note' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - transactionId - - quoteId - - payee - - payer - - amount - - transactionType - UndefinedEnum: - title: UndefinedEnum + 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)$ + description: Date of Birth of the Party. + example: "1966-06-16" + DateTime: + title: DateTime type: string - pattern: ^[A-Z_]{1,32}$ + 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)$ description: >- - The API data type UndefinedEnum is a JSON String consisting of 1 to 32 - uppercase characters including an underscore character (_). + The API data type DateTime is a JSON String in a lexical format that is + restricted by a regular expression for interoperability reasons. The + format is according to [ISO + 8601](https://www.iso.org/iso-8601-date-and-time-format.html), expressed + in a combined date, time and time zone format. A more readable version + of the format is yyyy-MM-ddTHH:mm:ss.SSS[-HH:MM]. Examples are + "2016-05-24T08:38:08.699-04:00", "2016-05-24T08:38:08.699Z" (where Z + indicates Zulu time zone, same as UTC). + example: "2016-05-24T08:38:08.699-04:00" ErrorCode: title: ErrorCode type: string @@ -3521,7 +3155,7 @@ components: the high-level error category, the second number (2 in the example) represents the low-level error category, and the last two numbers (34 in the example) represent the specific error. - example: '5100' + example: "5100" ErrorDescription: title: ErrorDescription type: string @@ -3534,14 +3168,23 @@ components: description: Data model for the complex type ErrorInformation. properties: errorCode: - $ref: '#/components/schemas/ErrorCode' + $ref: "#/components/schemas/ErrorCode" errorDescription: - $ref: '#/components/schemas/ErrorDescription' + $ref: "#/components/schemas/ErrorDescription" extensionList: - $ref: '#/components/schemas/ExtensionList' + $ref: "#/components/schemas/ExtensionList" required: - errorCode - errorDescription + ErrorInformationObject: + title: ErrorInformationObject + type: object + description: Data model for the complex type object that contains ErrorInformation. + properties: + errorInformation: + $ref: "#/components/schemas/ErrorInformation" + required: + - errorInformation ErrorInformationResponse: title: ErrorInformationResponse type: object @@ -3550,1049 +3193,1400 @@ components: ErrorInformation used along with 4xx and 5xx responses. properties: errorInformation: - $ref: '#/components/schemas/ErrorInformation' - ParticipantsTypeIDPutResponse: - title: ParticipantsTypeIDPutResponse + $ref: "#/components/schemas/ErrorInformation" + Extension: + title: Extension type: object - description: >- - The object sent in the PUT /participants/{Type}/{ID}/{SubId} and - /participants/{Type}/{ID} callbacks. + description: Data model for the complex type Extension. properties: - fspId: - $ref: '#/components/schemas/FspId' - ParticipantsTypeIDSubIDPostRequest: - title: ParticipantsTypeIDSubIDPostRequest + key: + $ref: "#/components/schemas/ExtensionKey" + value: + $ref: "#/components/schemas/ExtensionValue" + required: + - key + - value + ExtensionKey: + title: ExtensionKey + type: string + minLength: 1 + maxLength: 32 + description: Extension key. + ExtensionList: + title: ExtensionList type: object description: >- - The object sent in the POST /participants/{Type}/{ID}/{SubId} and - /participants/{Type}/{ID} requests. An additional optional ExtensionList - element has been added as part of v1.1 changes. + Data model for the complex type ExtensionList. An optional list of + extensions, specific to deployment. properties: - fspId: - $ref: '#/components/schemas/FspId' - currency: - $ref: '#/components/schemas/Currency' - extensionList: - $ref: '#/components/schemas/ExtensionList' + extension: + type: array + items: + $ref: "#/components/schemas/Extension" + minItems: 1 + maxItems: 16 + description: Number of Extension elements. required: - - fspId - ErrorInformationObject: - title: ErrorInformationObject + - extension + ExtensionValue: + title: ExtensionValue + type: string + minLength: 1 + maxLength: 128 + description: Extension value. + FirstName: + title: FirstName + type: string + minLength: 1 + maxLength: 128 + pattern: >- + ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} + .,''-]{1,128}$ + description: First name of the Party (Name Type). + example: Henrik + FspId: + title: FspId + type: string + minLength: 1 + maxLength: 32 + description: FSP identifier. + FxCharge: + title: FxCharge type: object - description: Data model for the complex type object that contains ErrorInformation. + description: >- + An FXP will be able to specify a charge which it proposes to levy on the + currency conversion operation using a FxCharge object. properties: - errorInformation: - $ref: '#/components/schemas/ErrorInformation' + chargeType: + type: string + minLength: 1 + maxLength: 32 + description: A description of the charge which is being levied. + sourceAmount: + allOf: + - $ref: "#/components/schemas/Money" + - description: >- + The amount of the charge which is being levied, expressed in the + source currency. + targetAmount: + allOf: + - $ref: "#/components/schemas/Money" + - description: >- + The amount of the charge which is being levied, expressed in the + target currency. required: - - errorInformation - ParticipantsPostRequest: - title: ParticipantsPostRequest + - chargeType + FxConversion: + title: FxConversion type: object - description: The object sent in the POST /participants request. + description: >- + A DFSP will be able to request a currency conversion, and an FX provider + will be able to describe its involvement in a proposed transfer, using a + FxConversion object. properties: - requestId: - $ref: '#/components/schemas/CorrelationId' - partyList: + conversionId: + allOf: + - $ref: "#/components/schemas/CorrelationId" + - description: An end-to-end identifier for the conversion request. + determiningTransferId: + allOf: + - $ref: "#/components/schemas/CorrelationId" + - description: >- + The transaction ID of the transfer on whose success this + currency conversion depends. + initiatingFsp: + allOf: + - $ref: "#/components/schemas/FspId" + - description: >- + The id of the participant who is requesting a currency + conversion. + counterPartyFsp: + allOf: + - $ref: "#/components/schemas/FspId" + - description: The ID of the FXP performing the conversion. + amountType: + allOf: + - $ref: "#/components/schemas/AmountType" + - description: >- + This is the AmountType for the base transaction - If SEND - then + any charges levied by the FXP as part of the transaction will be + deducted by the FXP from the amount shown for the target party + in the conversion. If RECEIVE - then any charges levied by the + FXP as part of the transaction will be added by the FXP to the + amount shown for the source party in the conversion. + sourceAmount: + allOf: + - $ref: "#/components/schemas/FxMoney" + - description: The amount to be converted, expressed in the source currency. + targetAmount: + allOf: + - $ref: "#/components/schemas/FxMoney" + - description: The converted amount, expressed in the target currency. + expiration: + allOf: + - $ref: "#/components/schemas/DateTime" + - description: >- + The end of the period for which the currency conversion is + required to remain valid. + charges: type: array - items: - $ref: '#/components/schemas/PartyIdInfo' - minItems: 1 - maxItems: 10000 description: >- - List of PartyIdInfo elements that the client would like to update or - create FSP information about. - currency: - $ref: '#/components/schemas/Currency' + One or more charges which the FXP intends to levy as part of the + currency conversion, or which the payee DFSP intends to add to the + amount transferred. + items: + $ref: "#/components/schemas/FxCharge" + minItems: 0 + maxItems: 16 + extensionList: + allOf: + - $ref: "#/components/schemas/ExtensionList" + - description: The extension list for the currency conversion request. required: - - requestId - - partyList - PartyResult: - title: PartyResult + - conversionId + - initiatingFsp + - counterPartyFsp + - amountType + - sourceAmount + - targetAmount + - expiration + FxMoney: + title: FxMoney type: object - description: Data model for the complex type PartyResult. + description: >- + Data model for the complex type FxMoney; This is based on the type Money + but allows the amount to be optional to support FX quotations. properties: - partyId: - $ref: '#/components/schemas/PartyIdInfo' - errorInformation: - $ref: '#/components/schemas/ErrorInformation' + currency: + $ref: "#/components/schemas/Currency" + amount: + $ref: "#/components/schemas/Amount" required: - - partyId - ParticipantsIDPutResponse: - title: ParticipantsIDPutResponse + - currency + FxQuotesIDPutResponse: + title: FxQuotesIDPutResponse type: object - description: The object sent in the PUT /participants/{ID} callback. + description: The object sent in the PUT /fxQuotes/{ID} callback. properties: - partyList: - type: array - items: - $ref: '#/components/schemas/PartyResult' - minItems: 1 - maxItems: 10000 - description: >- - List of PartyResult elements that were either created or failed to - be created. - currency: - $ref: '#/components/schemas/Currency' + condition: + allOf: + - $ref: "#/components/schemas/IlpCondition" + - description: The ILP condition for the conversion. + conversionTerms: + allOf: + - $ref: "#/components/schemas/FxConversion" + - description: >- + The terms under which the FXP will undertake the currency + conversion proposed by the requester. required: - - partyList - PartiesTypeIDPutResponse: - title: PartiesTypeIDPutResponse + - conversionTerms + FxQuotesPostRequest: + title: FxQuotesPostRequest type: object - description: The object sent in the PUT /parties/{Type}/{ID} callback. + description: The object sent in the POST /fxQuotes request. properties: - party: - $ref: '#/components/schemas/Party' + conversionRequestId: + allOf: + - $ref: "#/components/schemas/CorrelationId" + - description: An end-to-end identifier for the conversion quotation request. + conversionTerms: + allOf: + - $ref: "#/components/schemas/FxConversion" + - description: >- + The terms of the currency conversion for which a quotation is + sought. required: - - party - Latitude: - title: Latitude - type: string - pattern: >- - ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ - description: >- - The API data type Latitude is a JSON String in a lexical format that is - restricted by a regular expression for interoperability reasons. - example: '+45.4215' - Longitude: - title: Longitude - type: string - pattern: >- - ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ - description: >- - The API data type Longitude is a JSON String in a lexical format that is - restricted by a regular expression for interoperability reasons. - example: '+75.6972' - GeoCode: - title: GeoCode + - conversionRequestId + - conversionTerms + FxRate: + title: FxRate type: object description: >- - Data model for the complex type GeoCode. Indicates the geographic - location from where the transaction was initiated. + The FxRate object contains information about a currency conversion in + the transfer. It can be used by parties to the transfer to exchange + information with each other about the exchange rate for the transfer, to + ensure that the best rate can be agreed on. properties: - latitude: - $ref: '#/components/schemas/Latitude' - longitude: - $ref: '#/components/schemas/Longitude' + sourceAmount: + allOf: + - $ref: "#/components/schemas/Money" + - description: The amount of the transfer in the source currency. + targetAmount: + allOf: + - $ref: "#/components/schemas/Money" + - description: The amount of the transfer in the target currency. required: - - latitude - - longitude - AuthenticationType: - title: AuthenticationType - type: string - enum: - - OTP - - QRCODE - - U2F - description: |- - Below are the allowed values for the enumeration AuthenticationType. - - OTP - One-time password generated by the Payer FSP. - - QRCODE - QR code used as One Time Password. - - U2F - U2F is a new addition isolated to Thirdparty stream. - example: OTP - DateTime: - title: DateTime - type: string - 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)$ - description: >- - The API data type DateTime is a JSON String in a lexical format that is - restricted by a regular expression for interoperability reasons. The - format is according to [ISO - 8601](https://www.iso.org/iso-8601-date-and-time-format.html), expressed - in a combined date, time and time zone format. A more readable version - of the format is yyyy-MM-ddTHH:mm:ss.SSS[-HH:MM]. Examples are - "2016-05-24T08:38:08.699-04:00", "2016-05-24T08:38:08.699Z" (where Z - indicates Zulu time zone, same as UTC). - example: '2016-05-24T08:38:08.699-04:00' - TransactionRequestsPostRequest: - title: TransactionRequestsPostRequest + - sourceAmount + - targetAmount + FxTransfersIDPatchResponse: + title: FxTransfersIDPatchResponse type: object - description: The object sent in the POST /transactionRequests request. + description: PATCH /fxTransfers/{ID} object properties: - transactionRequestId: - $ref: '#/components/schemas/CorrelationId' - payee: - $ref: '#/components/schemas/Party' - payer: - $ref: '#/components/schemas/PartyIdInfo' - amount: - $ref: '#/components/schemas/Money' - transactionType: - $ref: '#/components/schemas/TransactionType' - note: - $ref: '#/components/schemas/Note' - geoCode: - $ref: '#/components/schemas/GeoCode' - authenticationType: - $ref: '#/components/schemas/AuthenticationType' - expiration: - $ref: '#/components/schemas/DateTime' + completedTimestamp: + allOf: + - $ref: "#/components/schemas/DateTime" + - description: Time and date when the conversion was executed. + conversionState: + allOf: + - $ref: "#/components/schemas/TransferState" + - description: The current status of the conversion request. extensionList: - $ref: '#/components/schemas/ExtensionList' + $ref: "#/components/schemas/ExtensionList" required: - - transactionRequestId - - payee - - payer - - amount - - transactionType - TransactionRequestState: - title: TransactionRequestState - type: string - enum: - - RECEIVED - - PENDING - - ACCEPTED - - REJECTED - description: |- - Below are the allowed values for the enumeration. - - RECEIVED - Payer FSP has received the transaction from the Payee FSP. - - PENDING - Payer FSP has sent the transaction request to the Payer. - - ACCEPTED - Payer has approved the transaction. - - REJECTED - Payer has rejected the transaction. - example: RECEIVED - TransactionRequestsIDPutResponse: - title: TransactionRequestsIDPutResponse + - conversionState + FxTransfersIDPutResponse: + title: FxTransfersIDPutResponse type: object - description: The object sent in the PUT /transactionRequests/{ID} callback. + description: The object sent in the PUT /fxTransfers/{ID} callback. properties: - transactionId: - $ref: '#/components/schemas/CorrelationId' - transactionRequestState: - $ref: '#/components/schemas/TransactionRequestState' + fulfilment: + allOf: + - $ref: "#/components/schemas/IlpFulfilment" + - description: >- + The fulfilment of the condition specified for the currency + conversion. Mandatory if the conversion has been executed + successfully. + completedTimestamp: + allOf: + - $ref: "#/components/schemas/DateTime" + - description: Time and date when the conversion was executed. + conversionState: + allOf: + - $ref: "#/components/schemas/TransferState" + - description: The current status of the conversion request. extensionList: - $ref: '#/components/schemas/ExtensionList' + $ref: "#/components/schemas/ExtensionList" required: - - transactionRequestState - AmountType: - title: AmountType - type: string - enum: - - SEND - - RECEIVE + - conversionState + FxTransfersPostRequest: + title: FxTransfersPostRequest + type: object + description: The object sent in the POST /fxTransfers request. + properties: + commitRequestId: + allOf: + - $ref: "#/components/schemas/CorrelationId" + - description: An end-to-end identifier for the confirmation request. + determiningTransferId: + allOf: + - $ref: "#/components/schemas/CorrelationId" + - description: >- + The transaction ID of the transfer to which this currency + conversion relates, if the conversion is part of a transfer. If + the conversion is a bulk currency purchase, this field should be + omitted. + initiatingFsp: + allOf: + - $ref: "#/components/schemas/FspId" + - description: Identifier for the FSP who is requesting a currency conversion. + counterPartyFsp: + allOf: + - $ref: "#/components/schemas/FspId" + - description: >- + Identifier for the FXP who is performing the currency + conversion. + sourceAmount: + allOf: + - $ref: "#/components/schemas/Money" + - description: The amount being offered for conversion by the requesting FSP. + targetAmount: + allOf: + - $ref: "#/components/schemas/Money" + - description: >- + The amount which the FXP is to credit to the requesting FSP in + the target currency. + condition: + allOf: + - $ref: "#/components/schemas/IlpCondition" + - description: >- + ILP condition received by the requesting FSP when the quote was + approved. + expiration: + $ref: "#/components/schemas/DateTime" + required: + - commitRequestId + - initiatingFsp + - counterPartyFsp + - sourceAmount + - targetAmount + - condition + GeoCode: + title: GeoCode + type: object description: >- - Below are the allowed values for the enumeration AmountType. - - - SEND - Amount the Payer would like to send, that is, the amount that - should be withdrawn from the Payer account including any fees. - - - RECEIVE - Amount the Payer would like the Payee to receive, that is, - the amount that should be sent to the receiver exclusive of any fees. - example: RECEIVE - QuotesPostRequest: - title: QuotesPostRequest + Data model for the complex type GeoCode. Indicates the geographic + location from where the transaction was initiated. + properties: + latitude: + $ref: "#/components/schemas/Latitude" + longitude: + $ref: "#/components/schemas/Longitude" + required: + - latitude + - longitude + IlpCondition: + title: IlpCondition + type: string + pattern: ^[A-Za-z0-9-_]{43}$ + maxLength: 48 + description: Condition that must be attached to the transfer by the Payer. + IlpFulfilment: + title: IlpFulfilment + type: string + pattern: ^[A-Za-z0-9-_]{43}$ + maxLength: 48 + description: Fulfilment that must be attached to the transfer by the Payee. + example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8 + IlpPacket: + title: IlpPacket + type: string + pattern: ^[A-Za-z0-9-_]+[=]{0,2}$ + minLength: 1 + maxLength: 32768 + description: Information for recipient (transport layer information). + example: >- + AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA + IndividualQuote: + title: IndividualQuote type: object - description: The object sent in the POST /quotes request. + description: Data model for the complex type IndividualQuote. properties: quoteId: - $ref: '#/components/schemas/CorrelationId' + $ref: "#/components/schemas/CorrelationId" transactionId: - $ref: '#/components/schemas/CorrelationId' - transactionRequestId: - $ref: '#/components/schemas/CorrelationId' + $ref: "#/components/schemas/CorrelationId" payee: - $ref: '#/components/schemas/Party' - payer: - $ref: '#/components/schemas/Party' + $ref: "#/components/schemas/Party" amountType: - $ref: '#/components/schemas/AmountType' + $ref: "#/components/schemas/AmountType" amount: - $ref: '#/components/schemas/Money' + $ref: "#/components/schemas/Money" fees: - $ref: '#/components/schemas/Money' + $ref: "#/components/schemas/Money" transactionType: - $ref: '#/components/schemas/TransactionType' - converter: - allOf: - - $ref: '#/components/schemas/CurrencyConverter' - - description: >- - An optional field which will allow the payer DFSP to specify - which DFSP it wants to undertake currency conversion. This is - useful incase of if the sender wants the recipient to receive a - specified amount of the target currency, but the payer DFSP does - not want to undertake the currency conversion. In this case, the - amount of the transfer would be expressed in the target currency - and the amountType would be set to RECEIVE. - currencyConversion: - allOf: - - $ref: '#/components/schemas/FxRate' - - description: >- - Used by the debtor party if it wants to share information about - the currency conversion it proposes to make; or if it is - required by scheme rules to share this information. This object - contains the amount of the transfer in the source and target - currencies, but does not identify the FXP being used. - geoCode: - $ref: '#/components/schemas/GeoCode' + $ref: "#/components/schemas/TransactionType" note: - $ref: '#/components/schemas/Note' - expiration: - $ref: '#/components/schemas/DateTime' + $ref: "#/components/schemas/Note" extensionList: - $ref: '#/components/schemas/ExtensionList' + $ref: "#/components/schemas/ExtensionList" required: - quoteId - transactionId - payee - - payer - amountType - amount - transactionType - IlpPacket: - title: IlpPacket - type: string - pattern: ^[A-Za-z0-9-_]+[=]{0,2}$ - minLength: 1 - maxLength: 32768 - description: Information for recipient (transport layer information). - example: >- - AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA - IlpCondition: - title: IlpCondition - type: string - pattern: ^[A-Za-z0-9-_]{43}$ - maxLength: 48 - description: Condition that must be attached to the transfer by the Payer. - QuotesIDPutResponse: - title: QuotesIDPutResponse + IndividualQuoteResult: + title: IndividualQuoteResult type: object - description: The object sent in the PUT /quotes/{ID} callback. + description: Data model for the complex type IndividualQuoteResult. properties: + quoteId: + $ref: "#/components/schemas/CorrelationId" + payee: + $ref: "#/components/schemas/Party" transferAmount: - $ref: '#/components/schemas/Money' + $ref: "#/components/schemas/Money" payeeReceiveAmount: - $ref: '#/components/schemas/Money' + $ref: "#/components/schemas/Money" payeeFspFee: - $ref: '#/components/schemas/Money' + $ref: "#/components/schemas/Money" payeeFspCommission: - $ref: '#/components/schemas/Money' - expiration: - $ref: '#/components/schemas/DateTime' - geoCode: - $ref: '#/components/schemas/GeoCode' + $ref: "#/components/schemas/Money" + ilpPacket: + $ref: "#/components/schemas/IlpPacket" + condition: + $ref: "#/components/schemas/IlpCondition" + errorInformation: + $ref: "#/components/schemas/ErrorInformation" + extensionList: + $ref: "#/components/schemas/ExtensionList" + required: + - quoteId + IndividualTransfer: + title: IndividualTransfer + type: object + description: Data model for the complex type IndividualTransfer. + properties: + transferId: + $ref: "#/components/schemas/CorrelationId" + transferAmount: + $ref: "#/components/schemas/Money" ilpPacket: - $ref: '#/components/schemas/IlpPacket' + $ref: "#/components/schemas/IlpPacket" condition: - $ref: '#/components/schemas/IlpCondition' + $ref: "#/components/schemas/IlpCondition" extensionList: - $ref: '#/components/schemas/ExtensionList' + $ref: "#/components/schemas/ExtensionList" required: + - transferId - transferAmount - - expiration - ilpPacket - condition - OtpValue: - title: OtpValue - type: string - pattern: ^\d{3,10}$ - description: >- - The API data type OtpValue is a JSON String of 3 to 10 characters, - consisting of digits only. Negative numbers are not allowed. One or more - leading zeros are allowed. - QRCODE: - title: QRCODE - type: string - minLength: 1 - maxLength: 64 - description: QR code used as a One Time Password. - U2FPIN: - title: U2FPIN - type: string - pattern: ^\S{1,64}$ - minLength: 1 - maxLength: 64 - description: > - U2F challenge-response, where payer FSP verifies if the response - provided by end-user device matches the previously registered key. - U2FPinValue: - title: U2FPinValue + IndividualTransferResult: + title: IndividualTransferResult type: object - description: > - U2F challenge-response, where payer FSP verifies if the response - provided by end-user device matches the previously registered key. + description: Data model for the complex type IndividualTransferResult. properties: - pinValue: - allOf: - - $ref: '#/components/schemas/U2FPIN' - description: U2F challenge-response. - counter: - allOf: - - $ref: '#/components/schemas/Integer' - description: >- - Sequential counter used for cloning detection. Present only for U2F - authentication. + transferId: + $ref: "#/components/schemas/CorrelationId" + fulfilment: + $ref: "#/components/schemas/IlpFulfilment" + errorInformation: + $ref: "#/components/schemas/ErrorInformation" + extensionList: + $ref: "#/components/schemas/ExtensionList" required: - - pinValue - - counter - AuthenticationValue: - title: AuthenticationValue - anyOf: - - $ref: '#/components/schemas/OtpValue' - - $ref: '#/components/schemas/QRCODE' - - $ref: '#/components/schemas/U2FPinValue' - pattern: ^\d{3,10}$|^\S{1,64}$ + - transferId + Integer: + title: Integer + type: string + pattern: ^[1-9]\d*$ description: >- - Contains the authentication value. The format depends on the - authentication type used in the AuthenticationInfo complex type. - AuthenticationInfo: - title: AuthenticationInfo - type: object - description: Data model for the complex type AuthenticationInfo. - properties: - authentication: - $ref: '#/components/schemas/AuthenticationType' - authenticationValue: - $ref: '#/components/schemas/AuthenticationValue' - required: - - authentication - - authenticationValue - AuthorizationResponse: - title: AuthorizationResponse + The API data type Integer is a JSON String consisting of digits only. + Negative numbers and leading zeroes are not allowed. The data type is + always limited to a specific number of digits. + KYCInformation: + title: KYCInformation type: string - enum: - - ENTERED - - REJECTED - - RESEND - description: |- - Below are the allowed values for the enumeration. - - ENTERED - Consumer entered the authentication value. - - REJECTED - Consumer rejected the transaction. - - RESEND - Consumer requested to resend the authentication value. - example: ENTERED - AuthorizationsIDPutResponse: - title: AuthorizationsIDPutResponse - type: object - description: The object sent in the PUT /authorizations/{ID} callback. - properties: - authenticationInfo: - $ref: '#/components/schemas/AuthenticationInfo' - responseType: - $ref: '#/components/schemas/AuthorizationResponse' - required: - - responseType - TransfersPostRequest: - title: TransfersPostRequest + minLength: 1 + maxLength: 2048 + description: >- + KYC information for the party in a form mandated by an individual + scheme. + example: |- + { + "metadata": { + "format": "JSON", + "version": "1.0", + "description": "Data containing KYC Information" + }, + "data": { + "name": "John Doe", + "dob": "1980-05-15", + "gender": "Male", + "address": "123 Main Street, Anytown, USA", + "email": "johndoe@example.com", + "phone": "+1 555-123-4567", + "nationality": "US", + "passport_number": "AB1234567", + "issue_date": "2010-02-20", + "expiry_date": "2025-02-20", + "bank_account_number": "1234567890", + "bank_name": "Example Bank", + "employer": "ABC Company", + "occupation": "Software Engineer", + "income": "$80,000 per year", + "marital_status": "Single", + "dependents": 0, + "risk_level": "Low" + } + } + LastName: + title: LastName + type: string + minLength: 1 + maxLength: 128 + pattern: >- + ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} + .,''-]{1,128}$ + description: Last name of the Party (Name Type). + example: Karlsson + Latitude: + title: Latitude + type: string + pattern: >- + ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$ + description: >- + The API data type Latitude is a JSON String in a lexical format that is + restricted by a regular expression for interoperability reasons. + example: "+45.4215" + Longitude: + title: Longitude + type: string + pattern: >- + ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$ + description: >- + The API data type Longitude is a JSON String in a lexical format that is + restricted by a regular expression for interoperability reasons. + example: "+75.6972" + MerchantClassificationCode: + title: MerchantClassificationCode + type: string + pattern: ^[\d]{1,4}$ + description: >- + A limited set of pre-defined numbers. This list would be a limited set + of numbers identifying a set of popular merchant types like School Fees, + Pubs and Restaurants, Groceries, etc. + MiddleName: + title: MiddleName + type: string + minLength: 1 + maxLength: 128 + pattern: >- + ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} + .,''-]{1,128}$ + description: Middle name of the Party (Name Type). + example: Johannes + Money: + title: Money type: object - description: The object sent in the POST /transfers request. + description: Data model for the complex type Money. properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - payeeFsp: - $ref: '#/components/schemas/FspId' - payerFsp: - $ref: '#/components/schemas/FspId' + currency: + $ref: "#/components/schemas/Currency" amount: - $ref: '#/components/schemas/Money' - ilpPacket: - $ref: '#/components/schemas/IlpPacket' - condition: - $ref: '#/components/schemas/IlpCondition' - expiration: - $ref: '#/components/schemas/DateTime' - extensionList: - $ref: '#/components/schemas/ExtensionList' + $ref: "#/components/schemas/Amount" required: - - transferId - - payeeFsp - - payerFsp + - currency - amount - - ilpPacket - - condition - - expiration - IlpFulfilment: - title: IlpFulfilment - type: string - pattern: ^[A-Za-z0-9-_]{43}$ - maxLength: 48 - description: Fulfilment that must be attached to the transfer by the Payee. - example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8 - TransferState: - title: TransferState + Name: + title: Name type: string - enum: - - RECEIVED - - RESERVED - - COMMITTED - - ABORTED + pattern: ^(?!\s*$)[\w .,'-]{1,128}$ description: >- - Below are the allowed values for the enumeration. + The API data type Name is a JSON String, restricted by a regular + expression to avoid characters which are generally not used in a name. - - RECEIVED - Next ledger has received the transfer. - - RESERVED - Next ledger has reserved the transfer. + Regular Expression - The regular expression for restricting the Name + type is "^(?!\s*$)[\w .,'-]{1,128}$". The restriction does not allow a + string consisting of whitespace only, all Unicode characters are + allowed, as well as the period (.) (apostrophe (‘), dash (-), comma (,) + and space characters ( ). - - COMMITTED - Next ledger has successfully performed the transfer. - - ABORTED - Next ledger has aborted the transfer due to a rejection or - failure to perform the transfer. - example: RESERVED - TransfersIDPutResponse: - title: TransfersIDPutResponse + **Note:** In some programming languages, Unicode support must be + specifically enabled. For example, if Java is used, the flag + UNICODE_CHARACTER_CLASS must be enabled to allow Unicode characters. + Note: + title: Note + type: string + minLength: 1 + maxLength: 128 + description: Memo assigned to transaction. + example: Note sent to Payee. + OtpValue: + title: OtpValue + type: string + pattern: ^\d{3,10}$ + description: >- + The API data type OtpValue is a JSON String of 3 to 10 characters, + consisting of digits only. Negative numbers are not allowed. One or more + leading zeros are allowed. + ParticipantsIDPutResponse: + title: ParticipantsIDPutResponse type: object - description: The object sent in the PUT /transfers/{ID} callback. + description: The object sent in the PUT /participants/{ID} callback. properties: - fulfilment: - $ref: '#/components/schemas/IlpFulfilment' - completedTimestamp: - $ref: '#/components/schemas/DateTime' - transferState: - $ref: '#/components/schemas/TransferState' - extensionList: - $ref: '#/components/schemas/ExtensionList' + partyList: + type: array + items: + $ref: "#/components/schemas/PartyResult" + minItems: 1 + maxItems: 10000 + description: >- + List of PartyResult elements that were either created or failed to + be created. + currency: + $ref: "#/components/schemas/Currency" required: - - transferState - TransfersIDPatchResponse: - title: TransfersIDPatchResponse + - partyList + ParticipantsPostRequest: + title: ParticipantsPostRequest type: object - description: PATCH /transfers/{ID} object + description: The object sent in the POST /participants request. properties: - completedTimestamp: - $ref: '#/components/schemas/DateTime' - transferState: - $ref: '#/components/schemas/TransferState' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - completedTimestamp - - transferState - TransactionState: - title: TransactionState - type: string - enum: - - RECEIVED - - PENDING - - COMPLETED - - REJECTED - description: |- - Below are the allowed values for the enumeration. - - RECEIVED - Payee FSP has received the transaction from the Payer FSP. - - PENDING - Payee FSP has validated the transaction. - - COMPLETED - Payee FSP has successfully performed the transaction. - - REJECTED - Payee FSP has failed to perform the transaction. - example: RECEIVED - Code: - title: Code - type: string - pattern: ^[0-9a-zA-Z]{4,32}$ - description: Any code/token returned by the Payee FSP (TokenCode Type). - example: Test-Code - TransactionsIDPutResponse: - title: TransactionsIDPutResponse - type: object - description: The object sent in the PUT /transactions/{ID} callback. - properties: - completedTimestamp: - $ref: '#/components/schemas/DateTime' - transactionState: - $ref: '#/components/schemas/TransactionState' - code: - $ref: '#/components/schemas/Code' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - transactionState - IndividualQuote: - title: IndividualQuote - type: object - description: Data model for the complex type IndividualQuote. - properties: - quoteId: - $ref: '#/components/schemas/CorrelationId' - transactionId: - $ref: '#/components/schemas/CorrelationId' - payee: - $ref: '#/components/schemas/Party' - amountType: - $ref: '#/components/schemas/AmountType' - amount: - $ref: '#/components/schemas/Money' - fees: - $ref: '#/components/schemas/Money' - transactionType: - $ref: '#/components/schemas/TransactionType' - note: - $ref: '#/components/schemas/Note' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - quoteId - - transactionId - - payee - - amountType - - amount - - transactionType - BulkQuotesPostRequest: - title: BulkQuotesPostRequest - type: object - description: The object sent in the POST /bulkQuotes request. - properties: - bulkQuoteId: - $ref: '#/components/schemas/CorrelationId' - payer: - $ref: '#/components/schemas/Party' - geoCode: - $ref: '#/components/schemas/GeoCode' - expiration: - $ref: '#/components/schemas/DateTime' - individualQuotes: + requestId: + $ref: "#/components/schemas/CorrelationId" + partyList: type: array - minItems: 1 - maxItems: 1000 items: - $ref: '#/components/schemas/IndividualQuote' - description: List of quotes elements. - extensionList: - $ref: '#/components/schemas/ExtensionList' + $ref: "#/components/schemas/PartyIdInfo" + minItems: 1 + maxItems: 10000 + description: >- + List of PartyIdInfo elements that the client would like to update or + create FSP information about. + currency: + $ref: "#/components/schemas/Currency" required: - - bulkQuoteId - - payer - - individualQuotes - IndividualQuoteResult: - title: IndividualQuoteResult + - requestId + - partyList + ParticipantsTypeIDPutResponse: + title: ParticipantsTypeIDPutResponse type: object - description: Data model for the complex type IndividualQuoteResult. + description: >- + The object sent in the PUT /participants/{Type}/{ID}/{SubId} and + /participants/{Type}/{ID} callbacks. properties: - quoteId: - $ref: '#/components/schemas/CorrelationId' - payee: - $ref: '#/components/schemas/Party' - transferAmount: - $ref: '#/components/schemas/Money' - payeeReceiveAmount: - $ref: '#/components/schemas/Money' - payeeFspFee: - $ref: '#/components/schemas/Money' - payeeFspCommission: - $ref: '#/components/schemas/Money' - ilpPacket: - $ref: '#/components/schemas/IlpPacket' - condition: - $ref: '#/components/schemas/IlpCondition' - errorInformation: - $ref: '#/components/schemas/ErrorInformation' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - quoteId - BulkQuotesIDPutResponse: - title: BulkQuotesIDPutResponse + fspId: + $ref: "#/components/schemas/FspId" + ParticipantsTypeIDSubIDPostRequest: + title: ParticipantsTypeIDSubIDPostRequest type: object - description: The object sent in the PUT /bulkQuotes/{ID} callback. + description: >- + The object sent in the POST /participants/{Type}/{ID}/{SubId} and + /participants/{Type}/{ID} requests. An additional optional ExtensionList + element has been added as part of v1.1 changes. properties: - individualQuoteResults: - type: array - maxItems: 1000 - items: - $ref: '#/components/schemas/IndividualQuoteResult' - description: >- - Fees for each individual transaction, if any of them are charged per - transaction. - expiration: - $ref: '#/components/schemas/DateTime' + fspId: + $ref: "#/components/schemas/FspId" + currency: + $ref: "#/components/schemas/Currency" extensionList: - $ref: '#/components/schemas/ExtensionList' + $ref: "#/components/schemas/ExtensionList" required: - - expiration - IndividualTransfer: - title: IndividualTransfer + - fspId + PartiesTypeIDPutResponse: + title: PartiesTypeIDPutResponse type: object - description: Data model for the complex type IndividualTransfer. + description: The object sent in the PUT /parties/{Type}/{ID} callback. properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - transferAmount: - $ref: '#/components/schemas/Money' - ilpPacket: - $ref: '#/components/schemas/IlpPacket' - condition: - $ref: '#/components/schemas/IlpCondition' - extensionList: - $ref: '#/components/schemas/ExtensionList' + party: + $ref: "#/components/schemas/Party" required: - - transferId - - transferAmount - - ilpPacket - - condition - BulkTransfersPostRequest: - title: BulkTransfersPostRequest + - party + Party: + title: Party type: object - description: The object sent in the POST /bulkTransfers request. + description: Data model for the complex type Party. properties: - bulkTransferId: - $ref: '#/components/schemas/CorrelationId' - bulkQuoteId: - $ref: '#/components/schemas/CorrelationId' - payerFsp: - $ref: '#/components/schemas/FspId' - payeeFsp: - $ref: '#/components/schemas/FspId' - individualTransfers: + partyIdInfo: + $ref: "#/components/schemas/PartyIdInfo" + merchantClassificationCode: + $ref: "#/components/schemas/MerchantClassificationCode" + name: + $ref: "#/components/schemas/PartyName" + personalInfo: + $ref: "#/components/schemas/PartyPersonalInfo" + supportedCurrencies: type: array - minItems: 1 - maxItems: 1000 + description: Currencies in which the party can receive funds. items: - $ref: '#/components/schemas/IndividualTransfer' - description: List of IndividualTransfer elements. - expiration: - $ref: '#/components/schemas/DateTime' - extensionList: - $ref: '#/components/schemas/ExtensionList' + $ref: "#/components/schemas/Currency" + minItems: 0 + maxItems: 16 required: - - bulkTransferId - - bulkQuoteId - - payerFsp - - payeeFsp - - individualTransfers - - expiration - IndividualTransferResult: - title: IndividualTransferResult + - partyIdInfo + PartyComplexName: + title: PartyComplexName type: object - description: Data model for the complex type IndividualTransferResult. + description: Data model for the complex type PartyComplexName. properties: - transferId: - $ref: '#/components/schemas/CorrelationId' - fulfilment: - $ref: '#/components/schemas/IlpFulfilment' - errorInformation: - $ref: '#/components/schemas/ErrorInformation' + firstName: + $ref: "#/components/schemas/FirstName" + middleName: + $ref: "#/components/schemas/MiddleName" + lastName: + $ref: "#/components/schemas/LastName" + PartyIdInfo: + title: PartyIdInfo + type: object + description: >- + Data model for the complex type PartyIdInfo. An ExtensionList element + has been added to this reqeust in version v1.1 + properties: + partyIdType: + $ref: "#/components/schemas/PartyIdType" + partyIdentifier: + $ref: "#/components/schemas/PartyIdentifier" + partySubIdOrType: + $ref: "#/components/schemas/PartySubIdOrType" + fspId: + $ref: "#/components/schemas/FspId" extensionList: - $ref: '#/components/schemas/ExtensionList' + $ref: "#/components/schemas/ExtensionList" required: - - transferId - BulkTransferState: - title: BulkTransactionState + - partyIdType + - partyIdentifier + PartyIdType: + title: PartyIdType type: string enum: - - RECEIVED - - PENDING - - ACCEPTED - - PROCESSING - - COMPLETED - - REJECTED + - MSISDN + - EMAIL + - PERSONAL_ID + - BUSINESS + - DEVICE + - ACCOUNT_ID + - IBAN + - ALIAS description: >- Below are the allowed values for the enumeration. - - RECEIVED - Payee FSP has received the bulk transfer from the Payer - FSP. + - MSISDN - An MSISDN (Mobile Station International Subscriber Directory + Number, that is, the phone number) is used as reference to a + participant. The MSISDN identifier should be in international format + according to the [ITU-T E.164 + standard](https://www.itu.int/rec/T-REC-E.164/en). Optionally, the + MSISDN may be prefixed by a single plus sign, indicating the + international prefix. - - PENDING - Payee FSP has validated the bulk transfer. + - EMAIL - An email is used as reference to a participant. The format of + the email should be according to the informational [RFC + 3696](https://tools.ietf.org/html/rfc3696). - - ACCEPTED - Payee FSP has accepted to process the bulk transfer. + - PERSONAL_ID - A personal identifier is used as reference to a + participant. Examples of personal identification are passport number, + birth certificate number, and national registration number. The + identifier number is added in the PartyIdentifier element. The personal + identifier type is added in the PartySubIdOrType element. - - PROCESSING - Payee FSP has started to transfer fund to the Payees. + - BUSINESS - A specific Business (for example, an organization or a + company) is used as reference to a participant. The BUSINESS identifier + can be in any format. To make a transaction connected to a specific + username or bill number in a Business, the PartySubIdOrType element + should be used. - - COMPLETED - Payee FSP has completed transfer of funds to the Payees. + - DEVICE - A specific device (for example, a POS or ATM) ID connected to + a specific business or organization is used as reference to a Party. For + referencing a specific device under a specific business or organization, + use the PartySubIdOrType element. - - REJECTED - Payee FSP has rejected to process the bulk transfer. - example: RECEIVED - BulkTransfersIDPutResponse: - title: BulkTransfersIDPutResponse - type: object - description: The object sent in the PUT /bulkTransfers/{ID} callback. - properties: - completedTimestamp: - $ref: '#/components/schemas/DateTime' - individualTransferResults: - type: array - maxItems: 1000 - items: - $ref: '#/components/schemas/IndividualTransferResult' - description: List of IndividualTransferResult elements. - bulkTransferState: - $ref: '#/components/schemas/BulkTransferState' - extensionList: - $ref: '#/components/schemas/ExtensionList' - required: - - bulkTransferState - FxMoney: - title: FxMoney + - ACCOUNT_ID - A bank account number or FSP account ID should be used as + reference to a participant. The ACCOUNT_ID identifier can be in any + format, as formats can greatly differ depending on country and FSP. + + - IBAN - A bank account number or FSP account ID is used as reference to + a participant. The IBAN identifier can consist of up to 34 alphanumeric + characters and should be entered without whitespace. + + - ALIAS An alias is used as reference to a participant. The alias should + be created in the FSP as an alternative reference to an account owner. + Another example of an alias is a username in the FSP system. The ALIAS + identifier can be in any format. It is also possible to use the + PartySubIdOrType element for identifying an account under an Alias + defined by the PartyIdentifier. + PartyIdentifier: + title: PartyIdentifier + type: string + minLength: 1 + maxLength: 128 + description: Identifier of the Party. + example: "16135551212" + PartyName: + title: PartyName + type: string + minLength: 1 + maxLength: 128 + description: Name of the Party. Could be a real name or a nickname. + PartyPersonalInfo: + title: PartyPersonalInfo type: object - description: >- - Data model for the complex type FxMoney; This is based on the type Money - but allows the amount to be optional to support FX quotations. + description: Data model for the complex type PartyPersonalInfo. properties: - currency: - $ref: '#/components/schemas/Currency' - amount: - $ref: '#/components/schemas/Amount' - required: - - currency - FxCharge: - title: FxCharge + complexName: + $ref: "#/components/schemas/PartyComplexName" + dateOfBirth: + $ref: "#/components/schemas/DateOfBirth" + kycInformation: + $ref: "#/components/schemas/KYCInformation" + PartyResult: + title: PartyResult type: object + description: Data model for the complex type PartyResult. + properties: + partyId: + $ref: "#/components/schemas/PartyIdInfo" + errorInformation: + $ref: "#/components/schemas/ErrorInformation" + required: + - partyId + PartySubIdOrType: + title: PartySubIdOrType + type: string + minLength: 1 + maxLength: 128 description: >- - An FXP will be able to specify a charge which it proposes to levy on the - currency conversion operation using a FxCharge object. + Either a sub-identifier of a PartyIdentifier, or a sub-type of the + PartyIdType, normally a PersonalIdentifierType. + PersonalIdentifierType: + title: PersonalIdentifierType + type: string + enum: + - PASSPORT + - NATIONAL_REGISTRATION + - DRIVING_LICENSE + - ALIEN_REGISTRATION + - NATIONAL_ID_CARD + - EMPLOYER_ID + - TAX_ID_NUMBER + - SENIOR_CITIZENS_CARD + - MARRIAGE_CERTIFICATE + - HEALTH_CARD + - VOTERS_ID + - UNITED_NATIONS + - OTHER_ID + description: >- + Below are the allowed values for the enumeration. + + - PASSPORT - A passport number is used as reference to a Party. + + - NATIONAL_REGISTRATION - A national registration number is used as + reference to a Party. + + - DRIVING_LICENSE - A driving license is used as reference to a Party. + + - ALIEN_REGISTRATION - An alien registration number is used as reference + to a Party. + + - NATIONAL_ID_CARD - A national ID card number is used as reference to a + Party. + + - EMPLOYER_ID - A tax identification number is used as reference to a + Party. + + - TAX_ID_NUMBER - A tax identification number is used as reference to a + Party. + + - SENIOR_CITIZENS_CARD - A senior citizens card number is used as + reference to a Party. + + - MARRIAGE_CERTIFICATE - A marriage certificate number is used as + reference to a Party. + + - HEALTH_CARD - A health card number is used as reference to a Party. + + - VOTERS_ID - A voter’s identification number is used as reference to a + Party. + + - UNITED_NATIONS - An UN (United Nations) number is used as reference to + a Party. + + - OTHER_ID - Any other type of identification type number is used as + reference to a Party. + QRCODE: + title: QRCODE + type: string + minLength: 1 + maxLength: 64 + description: QR code used as a One Time Password. + QuotesIDPutResponse: + title: QuotesIDPutResponse + type: object + description: The object sent in the PUT /quotes/{ID} callback. properties: - chargeType: - type: string - minLength: 1 - maxLength: 32 - description: A description of the charge which is being levied. - sourceAmount: - allOf: - - $ref: '#/components/schemas/Money' - - description: >- - The amount of the charge which is being levied, expressed in the - source currency. - targetAmount: - allOf: - - $ref: '#/components/schemas/Money' - - description: >- - The amount of the charge which is being levied, expressed in the - target currency. + transferAmount: + $ref: "#/components/schemas/Money" + payeeReceiveAmount: + $ref: "#/components/schemas/Money" + payeeFspFee: + $ref: "#/components/schemas/Money" + payeeFspCommission: + $ref: "#/components/schemas/Money" + expiration: + $ref: "#/components/schemas/DateTime" + geoCode: + $ref: "#/components/schemas/GeoCode" + ilpPacket: + $ref: "#/components/schemas/IlpPacket" + condition: + $ref: "#/components/schemas/IlpCondition" + extensionList: + $ref: "#/components/schemas/ExtensionList" required: - - chargeType - FxConversion: - title: FxConversion + - transferAmount + - expiration + - ilpPacket + - condition + QuotesPostRequest: + title: QuotesPostRequest type: object - description: >- - A DFSP will be able to request a currency conversion, and an FX provider - will be able to describe its involvement in a proposed transfer, using a - FxConversion object. + description: The object sent in the POST /quotes request. properties: - conversionId: - allOf: - - $ref: '#/components/schemas/CorrelationId' - - description: An end-to-end identifier for the conversion request. - determiningTransferId: - allOf: - - $ref: '#/components/schemas/CorrelationId' - - description: >- - The transaction ID of the transfer on whose success this - currency conversion depends. - initiatingFsp: - allOf: - - $ref: '#/components/schemas/FspId' - - description: >- - The id of the participant who is requesting a currency - conversion. - counterPartyFsp: - allOf: - - $ref: '#/components/schemas/FspId' - - description: The ID of the FXP performing the conversion. + quoteId: + $ref: "#/components/schemas/CorrelationId" + transactionId: + $ref: "#/components/schemas/CorrelationId" + transactionRequestId: + $ref: "#/components/schemas/CorrelationId" + payee: + $ref: "#/components/schemas/Party" + payer: + $ref: "#/components/schemas/Party" amountType: + $ref: "#/components/schemas/AmountType" + amount: + $ref: "#/components/schemas/Money" + fees: + $ref: "#/components/schemas/Money" + transactionType: + $ref: "#/components/schemas/TransactionType" + converter: allOf: - - $ref: '#/components/schemas/AmountType' + - $ref: "#/components/schemas/CurrencyConverter" - description: >- - This is the AmountType for the base transaction - If SEND - then - any charges levied by the FXP as part of the transaction will be - deducted by the FXP from the amount shown for the target party - in the conversion. If RECEIVE - then any charges levied by the - FXP as part of the transaction will be added by the FXP to the - amount shown for the source party in the conversion. - sourceAmount: - allOf: - - $ref: '#/components/schemas/FxMoney' - - description: The amount to be converted, expressed in the source currency. - targetAmount: - allOf: - - $ref: '#/components/schemas/FxMoney' - - description: The converted amount, expressed in the target currency. - expiration: + An optional field which will allow the payer DFSP to specify + which DFSP it wants to undertake currency conversion. This is + useful incase of if the sender wants the recipient to receive a + specified amount of the target currency, but the payer DFSP does + not want to undertake the currency conversion. In this case, the + amount of the transfer would be expressed in the target currency + and the amountType would be set to RECEIVE. + currencyConversion: allOf: - - $ref: '#/components/schemas/DateTime' + - $ref: "#/components/schemas/FxRate" - description: >- - The end of the period for which the currency conversion is - required to remain valid. - charges: - type: array - description: >- - One or more charges which the FXP intends to levy as part of the - currency conversion, or which the payee DFSP intends to add to the - amount transferred. - items: - $ref: '#/components/schemas/FxCharge' - minItems: 0 - maxItems: 16 + Used by the debtor party if it wants to share information about + the currency conversion it proposes to make; or if it is + required by scheme rules to share this information. This object + contains the amount of the transfer in the source and target + currencies, but does not identify the FXP being used. + geoCode: + $ref: "#/components/schemas/GeoCode" + note: + $ref: "#/components/schemas/Note" + expiration: + $ref: "#/components/schemas/DateTime" extensionList: - allOf: - - $ref: '#/components/schemas/ExtensionList' - - description: The extension list for the currency conversion request. + $ref: "#/components/schemas/ExtensionList" required: - - conversionId - - initiatingFsp - - counterPartyFsp + - quoteId + - transactionId + - payee + - payer - amountType - - sourceAmount - - targetAmount - - expiration - FxQuotesPostRequest: - title: FxQuotesPostRequest + - amount + - transactionType + Refund: + title: Refund type: object - description: The object sent in the POST /fxQuotes request. + description: Data model for the complex type Refund. properties: - conversionRequestId: - allOf: - - $ref: '#/components/schemas/CorrelationId' - - description: An end-to-end identifier for the conversion quotation request. - conversionTerms: - allOf: - - $ref: '#/components/schemas/FxConversion' - - description: >- - The terms of the currency conversion for which a quotation is - sought. + originalTransactionId: + $ref: "#/components/schemas/CorrelationId" + refundReason: + $ref: "#/components/schemas/RefundReason" required: - - conversionRequestId - - conversionTerms - FxQuotesIDPutResponse: - title: FxQuotesIDPutResponse + - originalTransactionId + RefundReason: + title: RefundReason + type: string + minLength: 1 + maxLength: 128 + description: Reason for the refund. + example: Free text indicating reason for the refund. + ServicesFXPPutResponse: + title: ServicesFXPPutResponse type: object - description: The object sent in the PUT /fxQuotes/{ID} callback. + description: The object sent in the PUT /services/FXP callback. properties: - condition: - allOf: - - $ref: '#/components/schemas/IlpCondition' - - description: The ILP condition for the conversion. - conversionTerms: - allOf: - - $ref: '#/components/schemas/FxConversion' - - description: >- - The terms under which the FXP will undertake the currency - conversion proposed by the requester. + providers: + type: array + description: >- + The FSP Id(s) of the participant(s) who offer currency conversion + services. + items: + $ref: "#/components/schemas/FspId" + minItems: 0 + maxItems: 16 required: - - conversionTerms - FxTransfersPostRequest: - title: FxTransfersPostRequest + - providers + ServicesFXPSourceCurrencyTargetCurrencyPutResponse: + title: ServicesFXPSourceCurrencyTargetCurrencyPutResponse type: object - description: The object sent in the POST /fxTransfers request. + description: >- + The object sent in the PUT + /services/FXP/{SourceCurrency}/{TargetCurrency} callback. properties: - commitRequestId: - allOf: - - $ref: '#/components/schemas/CorrelationId' - - description: An end-to-end identifier for the confirmation request. - determiningTransferId: - allOf: - - $ref: '#/components/schemas/CorrelationId' - - description: >- - The transaction ID of the transfer to which this currency - conversion relates, if the conversion is part of a transfer. If - the conversion is a bulk currency purchase, this field should be - omitted. - initiatingFsp: - allOf: - - $ref: '#/components/schemas/FspId' - - description: Identifier for the FSP who is requesting a currency conversion. - counterPartyFsp: - allOf: - - $ref: '#/components/schemas/FspId' - - description: >- - Identifier for the FXP who is performing the currency - conversion. - sourceAmount: + providers: + type: array + description: >- + The FSP Id(s) of the participant(s) who offer currency conversion + services. + items: + $ref: "#/components/schemas/FspId" + minItems: 0 + maxItems: 16 + required: + - providers + TokenCode: + title: TokenCode + type: string + pattern: ^[0-9a-zA-Z]{4,32}$ + description: >- + The API data type TokenCode is a JSON String between 4 and 32 + characters, consisting of digits or upper- or lowercase characters from + a to z. + Transaction: + title: Transaction + type: object + description: >- + Data model for the complex type Transaction. The Transaction type is + used to carry end-to-end data between the Payer FSP and the Payee FSP in + the ILP Packet. Both the transactionId and the quoteId in the data model + are decided by the Payer FSP in the POST /quotes request. + properties: + transactionId: + $ref: "#/components/schemas/CorrelationId" + quoteId: + $ref: "#/components/schemas/CorrelationId" + payee: + $ref: "#/components/schemas/Party" + payer: + $ref: "#/components/schemas/Party" + amount: + $ref: "#/components/schemas/Money" + payeeReceiveAmount: allOf: - - $ref: '#/components/schemas/Money' - - description: The amount being offered for conversion by the requesting FSP. - targetAmount: + - $ref: "#/components/schemas/Money" + - description: The amount that the beneficiary will receive. + converter: allOf: - - $ref: '#/components/schemas/Money' + - $ref: "#/components/schemas/CurrencyConverter" - description: >- - The amount which the FXP is to credit to the requesting FSP in - the target currency. - condition: + An optional field which will allow the payer DFSP to specify + which DFSP it wants to undertake currency conversion. This is + useful incase of if the sender wants the recipient to receive a + specified amount of the target currency, but the payer DFSP does + not want to undertake the currency conversion. In this case, the + amount of the transfer would be expressed in the target currency + and the amountType would be set to RECEIVE. + currencyConversion: allOf: - - $ref: '#/components/schemas/IlpCondition' + - $ref: "#/components/schemas/FxRate" - description: >- - ILP condition received by the requesting FSP when the quote was - approved. + Used by the debtor party if it wants to share information about + the currency conversion it proposes to make; or if it is + required by scheme rules to share this information. This object + contains the amount of the transfer in the source and target + currencies, but does not identify the FXP being used. + transactionType: + $ref: "#/components/schemas/TransactionType" + note: + $ref: "#/components/schemas/Note" + extensionList: + $ref: "#/components/schemas/ExtensionList" + required: + - transactionId + - quoteId + - payee + - payer + - amount + - transactionType + TransactionInitiator: + title: TransactionInitiator + type: string + enum: + - PAYER + - PAYEE + description: >- + Below are the allowed values for the enumeration. + + - PAYER - Sender of funds is initiating the transaction. The account to + send from is either owned by the Payer or is connected to the Payer in + some way. + + - PAYEE - Recipient of the funds is initiating the transaction by + sending a transaction request. The Payer must approve the transaction, + either automatically by a pre-generated OTP or by pre-approval of the + Payee, or by manually approving in his or her own Device. + example: PAYEE + TransactionInitiatorType: + title: TransactionInitiatorType + type: string + enum: + - CONSUMER + - AGENT + - BUSINESS + - DEVICE + description: |- + Below are the allowed values for the enumeration. + - CONSUMER - Consumer is the initiator of the transaction. + - AGENT - Agent is the initiator of the transaction. + - BUSINESS - Business is the initiator of the transaction. + - DEVICE - Device is the initiator of the transaction. + example: CONSUMER + TransactionRequestState: + title: TransactionRequestState + type: string + enum: + - RECEIVED + - PENDING + - ACCEPTED + - REJECTED + description: |- + Below are the allowed values for the enumeration. + - RECEIVED - Payer FSP has received the transaction from the Payee FSP. + - PENDING - Payer FSP has sent the transaction request to the Payer. + - ACCEPTED - Payer has approved the transaction. + - REJECTED - Payer has rejected the transaction. + example: RECEIVED + TransactionRequestsIDPutResponse: + title: TransactionRequestsIDPutResponse + type: object + description: The object sent in the PUT /transactionRequests/{ID} callback. + properties: + transactionId: + $ref: "#/components/schemas/CorrelationId" + transactionRequestState: + $ref: "#/components/schemas/TransactionRequestState" + extensionList: + $ref: "#/components/schemas/ExtensionList" + required: + - transactionRequestState + TransactionRequestsPostRequest: + title: TransactionRequestsPostRequest + type: object + description: The object sent in the POST /transactionRequests request. + properties: + transactionRequestId: + $ref: "#/components/schemas/CorrelationId" + payee: + $ref: "#/components/schemas/Party" + payer: + $ref: "#/components/schemas/PartyIdInfo" + amount: + $ref: "#/components/schemas/Money" + transactionType: + $ref: "#/components/schemas/TransactionType" + note: + $ref: "#/components/schemas/Note" + geoCode: + $ref: "#/components/schemas/GeoCode" + authenticationType: + $ref: "#/components/schemas/AuthenticationType" expiration: - $ref: '#/components/schemas/DateTime' + $ref: "#/components/schemas/DateTime" + extensionList: + $ref: "#/components/schemas/ExtensionList" required: - - commitRequestId - - initiatingFsp - - counterPartyFsp - - sourceAmount - - targetAmount - - condition - FxTransfersIDPutResponse: - title: FxTransfersIDPutResponse + - transactionRequestId + - payee + - payer + - amount + - transactionType + TransactionScenario: + title: TransactionScenario + type: string + enum: + - DEPOSIT + - WITHDRAWAL + - TRANSFER + - PAYMENT + - REFUND + description: >- + Below are the allowed values for the enumeration. + + - DEPOSIT - Used for performing a Cash-In (deposit) transaction. In a + normal scenario, electronic funds are transferred from a Business + account to a Consumer account, and physical cash is given from the + Consumer to the Business User. + + - WITHDRAWAL - Used for performing a Cash-Out (withdrawal) transaction. + In a normal scenario, electronic funds are transferred from a Consumer’s + account to a Business account, and physical cash is given from the + Business User to the Consumer. + + - TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to + Consumer) transaction. + + - PAYMENT - Usually used for performing a transaction from a Consumer to + a Merchant or Organization, but could also be for a B2B (Business to + Business) payment. The transaction could be online for a purchase in an + Internet store, in a physical store where both the Consumer and Business + User are present, a bill payment, a donation, and so on. + + - REFUND - Used for performing a refund of transaction. + example: DEPOSIT + TransactionState: + title: TransactionState + type: string + enum: + - RECEIVED + - PENDING + - COMPLETED + - REJECTED + description: |- + Below are the allowed values for the enumeration. + - RECEIVED - Payee FSP has received the transaction from the Payer FSP. + - PENDING - Payee FSP has validated the transaction. + - COMPLETED - Payee FSP has successfully performed the transaction. + - REJECTED - Payee FSP has failed to perform the transaction. + example: RECEIVED + TransactionSubScenario: + title: TransactionSubScenario + type: string + pattern: ^[A-Z_]{1,32}$ + description: >- + Possible sub-scenario, defined locally within the scheme (UndefinedEnum + Type). + example: LOCALLY_DEFINED_SUBSCENARIO + TransactionType: + title: TransactionType + type: object + description: Data model for the complex type TransactionType. + properties: + scenario: + $ref: "#/components/schemas/TransactionScenario" + subScenario: + $ref: "#/components/schemas/TransactionSubScenario" + initiator: + $ref: "#/components/schemas/TransactionInitiator" + initiatorType: + $ref: "#/components/schemas/TransactionInitiatorType" + refundInfo: + $ref: "#/components/schemas/Refund" + balanceOfPayments: + $ref: "#/components/schemas/BalanceOfPayments" + required: + - scenario + - initiator + - initiatorType + TransactionsIDPutResponse: + title: TransactionsIDPutResponse + type: object + description: The object sent in the PUT /transactions/{ID} callback. + properties: + completedTimestamp: + $ref: "#/components/schemas/DateTime" + transactionState: + $ref: "#/components/schemas/TransactionState" + code: + $ref: "#/components/schemas/Code" + extensionList: + $ref: "#/components/schemas/ExtensionList" + required: + - transactionState + TransferState: + title: TransferState + type: string + enum: + - RECEIVED + - RESERVED + - COMMITTED + - ABORTED + description: >- + Below are the allowed values for the enumeration. + + - RECEIVED - Next ledger has received the transfer. + + - RESERVED - Next ledger has reserved the transfer. + + - COMMITTED - Next ledger has successfully performed the transfer. + + - ABORTED - Next ledger has aborted the transfer due to a rejection or + failure to perform the transfer. + example: RESERVED + TransfersIDPatchResponse: + title: TransfersIDPatchResponse type: object - description: The object sent in the PUT /fxTransfers/{ID} callback. + description: PATCH /transfers/{ID} object properties: - fulfilment: - allOf: - - $ref: '#/components/schemas/IlpFulfilment' - - description: >- - The fulfilment of the condition specified for the currency - conversion. Mandatory if the conversion has been executed - successfully. completedTimestamp: - allOf: - - $ref: '#/components/schemas/DateTime' - - description: Time and date when the conversion was executed. - conversionState: - allOf: - - $ref: '#/components/schemas/TransferState' - - description: The current status of the conversion request. + $ref: "#/components/schemas/DateTime" + transferState: + $ref: "#/components/schemas/TransferState" extensionList: - $ref: '#/components/schemas/ExtensionList' + $ref: "#/components/schemas/ExtensionList" required: - - conversionState - FxTransfersIDPatchResponse: - title: FxTransfersIDPatchResponse + - completedTimestamp + - transferState + TransfersIDPutResponse: + title: TransfersIDPutResponse type: object - description: PATCH /fxTransfers/{ID} object + description: The object sent in the PUT /transfers/{ID} callback. properties: + fulfilment: + $ref: "#/components/schemas/IlpFulfilment" completedTimestamp: - allOf: - - $ref: '#/components/schemas/DateTime' - - description: Time and date when the conversion was executed. - conversionState: - allOf: - - $ref: '#/components/schemas/TransferState' - - description: The current status of the conversion request. + $ref: "#/components/schemas/DateTime" + transferState: + $ref: "#/components/schemas/TransferState" extensionList: - $ref: '#/components/schemas/ExtensionList' + $ref: "#/components/schemas/ExtensionList" required: - - conversionState - ServicesFXPPutResponse: - title: ServicesFXPPutResponse + - transferState + TransfersPostRequest: + title: TransfersPostRequest type: object - description: The object sent in the PUT /services/FXP callback. + description: The object sent in the POST /transfers request. properties: - providers: - type: array - description: >- - The FSP Id(s) of the participant(s) who offer currency conversion - services. - items: - $ref: '#/components/schemas/FspId' - minItems: 0 - maxItems: 16 + transferId: + $ref: "#/components/schemas/CorrelationId" + payeeFsp: + $ref: "#/components/schemas/FspId" + payerFsp: + $ref: "#/components/schemas/FspId" + amount: + $ref: "#/components/schemas/Money" + ilpPacket: + $ref: "#/components/schemas/IlpPacket" + condition: + $ref: "#/components/schemas/IlpCondition" + expiration: + $ref: "#/components/schemas/DateTime" + extensionList: + $ref: "#/components/schemas/ExtensionList" required: - - providers - ServicesFXPSourceCurrencyTargetCurrencyPutResponse: - title: ServicesFXPSourceCurrencyTargetCurrencyPutResponse + - transferId + - payeeFsp + - payerFsp + - amount + - ilpPacket + - condition + - expiration + U2FPIN: + title: U2FPIN + type: string + pattern: ^\S{1,64}$ + minLength: 1 + maxLength: 64 + description: > + U2F challenge-response, where payer FSP verifies if the response + provided by end-user device matches the previously registered key. + U2FPinValue: + title: U2FPinValue type: object - description: >- - The object sent in the PUT - /services/FXP/{SourceCurrency}/{TargetCurrency} callback. + description: > + U2F challenge-response, where payer FSP verifies if the response + provided by end-user device matches the previously registered key. properties: - providers: - type: array + pinValue: + allOf: + - $ref: "#/components/schemas/U2FPIN" + description: U2F challenge-response. + counter: + allOf: + - $ref: "#/components/schemas/Integer" description: >- - The FSP Id(s) of the participant(s) who offer currency conversion - services. - items: - $ref: '#/components/schemas/FspId' - minItems: 0 - maxItems: 16 + Sequential counter used for cloning detection. Present only for U2F + authentication. required: - - providers + - pinValue + - counter + UndefinedEnum: + title: UndefinedEnum + type: string + pattern: ^[A-Z_]{1,32}$ + description: >- + The API data type UndefinedEnum is a JSON String consisting of 1 to 32 + uppercase characters including an underscore character (_). parameters: - Type: - name: Type - in: path + Accept: + name: Accept + in: header required: true schema: type: string - description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`. - ID: - name: ID - in: path - required: true + description: >- + The `Accept` header field indicates the version of the API the client + would like the server to use. + Content-Length: + name: Content-Length + in: header + required: false schema: - type: string - description: The identifier value. + type: integer + description: >- + The `Content-Length` header field indicates the anticipated size of the + payload body. Only sent if there is a body. + + + **Note:** The API supports a maximum size of 5242880 bytes (5 + Megabytes). Content-Type: name: Content-Type in: header @@ -4609,34 +4603,6 @@ components: type: string required: true description: The `Date` header field indicates the date when the request was sent. - X-Forwarded-For: - name: X-Forwarded-For - in: header - schema: - type: string - required: false - description: >- - The `X-Forwarded-For` header field is an unofficially accepted standard - used for informational purposes of the originating client IP address, as - a request might pass multiple proxies, firewalls, and so on. Multiple - `X-Forwarded-For` values should be expected and supported by - implementers of the API. - - - **Note:** An alternative to `X-Forwarded-For` is defined in [RFC - 7239](https://tools.ietf.org/html/rfc7239). However, to this point RFC - 7239 is less-used and supported than `X-Forwarded-For`. - FSPIOP-Source: - name: FSPIOP-Source - in: header - schema: - type: string - required: true - description: >- - The `FSPIOP-Source` header field is a non-HTTP standard field used by - the API for identifying the sender of the HTTP request. The field should - be set by the original sender of the request. Required for routing and - signature verification (see header field `FSPIOP-Signature`). FSPIOP-Destination: name: FSPIOP-Destination in: header @@ -4661,6 +4627,18 @@ components: description: >- The `FSPIOP-Encryption` header field is a non-HTTP standard field used by the API for applying end-to-end encryption of the request. + FSPIOP-HTTP-Method: + name: FSPIOP-HTTP-Method + in: header + schema: + type: string + required: false + description: >- + The `FSPIOP-HTTP-Method` header field is a non-HTTP standard field used + by the API for signature verification, should contain the service HTTP + method. Required if signature verification is used, for more + information, see [the API Signature + document](https://github.com/mojaloop/docs/tree/main/Specification%20Document%20Set). FSPIOP-Signature: name: FSPIOP-Signature in: header @@ -4670,6 +4648,17 @@ components: description: >- The `FSPIOP-Signature` header field is a non-HTTP standard field used by the API for applying an end-to-end request signature. + FSPIOP-Source: + name: FSPIOP-Source + in: header + schema: + type: string + required: true + description: >- + The `FSPIOP-Source` header field is a non-HTTP standard field used by + the API for identifying the sender of the HTTP request. The field should + be set by the original sender of the request. Required for routing and + signature verification (see header field `FSPIOP-Signature`). FSPIOP-URI: name: FSPIOP-URI in: header @@ -4682,40 +4671,20 @@ components: if signature verification is used, for more information, see [the API Signature document](https://github.com/mojaloop/docs/tree/main/Specification%20Document%20Set). - FSPIOP-HTTP-Method: - name: FSPIOP-HTTP-Method - in: header + ID: + name: ID + in: path + required: true schema: type: string - required: false - description: >- - The `FSPIOP-HTTP-Method` header field is a non-HTTP standard field used - by the API for signature verification, should contain the service HTTP - method. Required if signature verification is used, for more - information, see [the API Signature - document](https://github.com/mojaloop/docs/tree/main/Specification%20Document%20Set). - Accept: - name: Accept - in: header + description: The identifier value. + SourceCurrency: + name: SourceCurrency + in: path required: true schema: type: string - description: >- - The `Accept` header field indicates the version of the API the client - would like the server to use. - Content-Length: - name: Content-Length - in: header - required: false - schema: - type: integer - description: >- - The `Content-Length` header field indicates the anticipated size of the - payload body. Only sent if there is a body. - - - **Note:** The API supports a maximum size of 5242880 bytes (5 - Megabytes). + description: ISO 4217 currency code for the source currency. SubId: name: SubId in: path @@ -4725,113 +4694,130 @@ components: description: >- A sub-identifier of the party identifier, or a sub-type of the party identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`. - SourceCurrency: - name: SourceCurrency + TargetCurrency: + name: TargetCurrency in: path required: true schema: type: string - description: ISO 4217 currency code for the source currency. - TargetCurrency: - name: TargetCurrency + description: ISO 4217 currency code for the target currency. + Type: + name: Type in: path required: true schema: type: string - description: ISO 4217 currency code for the target currency. + description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`. + X-Forwarded-For: + name: X-Forwarded-For + in: header + schema: + type: string + required: false + description: >- + The `X-Forwarded-For` header field is an unofficially accepted standard + used for informational purposes of the originating client IP address, as + a request might pass multiple proxies, firewalls, and so on. Multiple + `X-Forwarded-For` values should be expected and supported by + implementers of the API. + + + **Note:** An alternative to `X-Forwarded-For` is defined in [RFC + 7239](https://tools.ietf.org/html/rfc7239). However, to this point RFC + 7239 is less-used and supported than `X-Forwarded-For`. responses: - '200': + "200": description: OK - '202': + "202": description: Accepted - '400': + "400": description: Bad Request content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationResponse' + $ref: "#/components/schemas/ErrorInformationResponse" headers: Content-Length: - $ref: '#/components/headers/Content-Length' + $ref: "#/components/headers/Content-Length" Content-Type: - $ref: '#/components/headers/Content-Type' - '401': + $ref: "#/components/headers/Content-Type" + "401": description: Unauthorized content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationResponse' + $ref: "#/components/schemas/ErrorInformationResponse" headers: Content-Length: - $ref: '#/components/headers/Content-Length' + $ref: "#/components/headers/Content-Length" Content-Type: - $ref: '#/components/headers/Content-Type' - '403': + $ref: "#/components/headers/Content-Type" + "403": description: Forbidden content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationResponse' + $ref: "#/components/schemas/ErrorInformationResponse" headers: Content-Length: - $ref: '#/components/headers/Content-Length' + $ref: "#/components/headers/Content-Length" Content-Type: - $ref: '#/components/headers/Content-Type' - '404': + $ref: "#/components/headers/Content-Type" + "404": description: Not Found content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationResponse' + $ref: "#/components/schemas/ErrorInformationResponse" headers: Content-Length: - $ref: '#/components/headers/Content-Length' + $ref: "#/components/headers/Content-Length" Content-Type: - $ref: '#/components/headers/Content-Type' - '405': + $ref: "#/components/headers/Content-Type" + "405": description: Method Not Allowed content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationResponse' + $ref: "#/components/schemas/ErrorInformationResponse" headers: Content-Length: - $ref: '#/components/headers/Content-Length' + $ref: "#/components/headers/Content-Length" Content-Type: - $ref: '#/components/headers/Content-Type' - '406': + $ref: "#/components/headers/Content-Type" + "406": description: Not Acceptable content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationResponse' + $ref: "#/components/schemas/ErrorInformationResponse" headers: Content-Length: - $ref: '#/components/headers/Content-Length' + $ref: "#/components/headers/Content-Length" Content-Type: - $ref: '#/components/headers/Content-Type' - '501': + $ref: "#/components/headers/Content-Type" + "501": description: Not Implemented content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationResponse' + $ref: "#/components/schemas/ErrorInformationResponse" headers: Content-Length: - $ref: '#/components/headers/Content-Length' + $ref: "#/components/headers/Content-Length" Content-Type: - $ref: '#/components/headers/Content-Type' - '503': + $ref: "#/components/headers/Content-Type" + "503": description: Service Unavailable content: application/json: schema: - $ref: '#/components/schemas/ErrorInformationResponse' + $ref: "#/components/schemas/ErrorInformationResponse" headers: Content-Length: - $ref: '#/components/headers/Content-Length' + $ref: "#/components/headers/Content-Length" Content-Type: - $ref: '#/components/headers/Content-Type' + $ref: "#/components/headers/Content-Type" headers: Content-Length: required: false diff --git a/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/api_spec.yaml b/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/api_spec.yaml index 5675aa94b..7dc7dc035 100644 --- a/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/api_spec.yaml +++ b/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/api_spec.yaml @@ -2918,14 +2918,12 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ 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 (‘-‘). + Identifier that correlates all messages of the same sequence. The + supported identifiers formats are for lowercase + [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and uppercase + [ULID](https://github.com/ulid/spec) example: b51ec534-ee48-4575-b6a9-ead2955b8069 Currency: title: Currency diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/api_spec.yaml b/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/api_spec.yaml index 5675aa94b..7dc7dc035 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/api_spec.yaml +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/api_spec.yaml @@ -2918,14 +2918,12 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ 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 (‘-‘). + Identifier that correlates all messages of the same sequence. The + supported identifiers formats are for lowercase + [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and uppercase + [ULID](https://github.com/ulid/spec) example: b51ec534-ee48-4575-b6a9-ead2955b8069 Currency: title: Currency From 3c2d3a545db2dc98133d89df258a0b05bef10350 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Mon, 23 Sep 2024 12:16:26 +0000 Subject: [PATCH 14/25] chore: update UUID to include version 7 --- .../api_spec.yaml | 2 +- .../mojaloop_simulator_sim_1.4/api_spec.yaml | 14 ++-- .../api_spec.yaml | 64 +++++++++---------- .../api_spec.yaml | 14 ++-- .../api_spec.yaml | 2 +- .../mojaloop_simulator_sim_1.4/api_spec.yaml | 14 ++-- .../api_spec.yaml | 14 ++-- .../api_spec.yaml | 2 +- .../api_spec.yaml | 14 ++-- .../api_spec.yaml | 14 ++-- 10 files changed, 77 insertions(+), 77 deletions(-) diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml index dcdbe7c13..a9d10eea6 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml @@ -824,7 +824,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml index 9b0ebe268..21e6dc61f 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml @@ -687,7 +687,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -736,7 +736,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1214,7 +1214,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1324,7 +1324,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1371,7 +1371,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1470,7 +1470,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1621,7 +1621,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-hub/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml b/test/func/config/ttk-hub/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml index 58e27fc87..f287f3b9c 100644 --- a/test/func/config/ttk-hub/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +++ b/test/func/config/ttk-hub/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml @@ -560,7 +560,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -648,7 +648,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -1063,7 +1063,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -1119,7 +1119,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -1183,7 +1183,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -1612,7 +1612,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally @@ -1628,7 +1628,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally @@ -1710,7 +1710,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID @@ -1778,7 +1778,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -1821,7 +1821,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID @@ -1978,7 +1978,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -1992,7 +1992,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2020,7 +2020,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2166,7 +2166,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -2195,7 +2195,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2271,7 +2271,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2299,7 +2299,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2409,7 +2409,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2463,7 +2463,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2595,7 +2595,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -2624,7 +2624,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2834,7 +2834,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2920,7 +2920,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3226,7 +3226,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3310,7 +3310,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3402,7 +3402,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -3549,7 +3549,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3837,7 +3837,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3852,7 +3852,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3867,7 +3867,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -4118,7 +4118,7 @@ paths: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -4470,7 +4470,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttkfxp/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttkfxp/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index 3a8a7e7cb..ff8370bf1 100644 --- a/test/func/config/ttk-ttkfxp/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttkfxp/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -747,7 +747,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -796,7 +796,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1259,7 +1259,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1389,7 +1389,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1436,7 +1436,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1535,7 +1535,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1746,7 +1746,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml b/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml index dcdbe7c13..a9d10eea6 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml @@ -824,7 +824,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in 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 dadb7c0d9..6095753ba 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 @@ -687,7 +687,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -736,7 +736,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1214,7 +1214,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1324,7 +1324,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1371,7 +1371,7 @@ components: transactionRequestId: description: A Mojaloop API transaction request identifier (UUID/ULID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1470,7 +1470,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1621,7 +1621,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index 3a8a7e7cb..ff8370bf1 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -747,7 +747,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -796,7 +796,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1259,7 +1259,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1389,7 +1389,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1436,7 +1436,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1535,7 +1535,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1746,7 +1746,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index 7d15ee3c6..2954bf3d7 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -919,7 +919,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim2/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttksim2/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index 3a8a7e7cb..ff8370bf1 100644 --- a/test/func/config/ttk-ttksim2/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttksim2/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -747,7 +747,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -796,7 +796,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1259,7 +1259,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1389,7 +1389,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1436,7 +1436,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1535,7 +1535,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1746,7 +1746,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim3/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttksim3/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index 3a8a7e7cb..ff8370bf1 100644 --- a/test/func/config/ttk-ttksim3/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttksim3/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -747,7 +747,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -796,7 +796,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1259,7 +1259,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1389,7 +1389,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1436,7 +1436,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1535,7 +1535,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1746,7 +1746,7 @@ components: 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}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in From f20473b105602ef478f9c2ea1b7a1033e9efdcc2 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Tue, 24 Sep 2024 10:40:49 +0000 Subject: [PATCH 15/25] chore(snapshot): 23.6.0-snapshot.16 --- modules/api-svc/package.json | 2 +- modules/outbound-command-event-handler/package.json | 2 +- modules/outbound-domain-event-handler/package.json | 2 +- modules/private-shared-lib/package.json | 2 +- package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/api-svc/package.json b/modules/api-svc/package.json index ed3f71e98..97c193cfd 100644 --- a/modules/api-svc/package.json +++ b/modules/api-svc/package.json @@ -1,6 +1,6 @@ { "name": "@mojaloop/sdk-scheme-adapter-api-svc", - "version": "20.8.0-snapshot.16", + "version": "20.8.0-snapshot.18", "description": "An adapter for connecting to Mojaloop API enabled switches.", "main": "src/index.js", "types": "src/index.d.ts", diff --git a/modules/outbound-command-event-handler/package.json b/modules/outbound-command-event-handler/package.json index ed3d66232..49918ae5c 100644 --- a/modules/outbound-command-event-handler/package.json +++ b/modules/outbound-command-event-handler/package.json @@ -1,6 +1,6 @@ { "name": "@mojaloop/sdk-scheme-adapter-outbound-command-event-handler", - "version": "0.2.20-snapshot.27", + "version": "0.2.20-snapshot.29", "description": "Mojaloop sdk scheme adapter command event handler", "license": "Apache-2.0", "homepage": "https://github.com/mojaloop/sdk-scheme-adapter/", diff --git a/modules/outbound-domain-event-handler/package.json b/modules/outbound-domain-event-handler/package.json index e05b8c04f..286ca460e 100644 --- a/modules/outbound-domain-event-handler/package.json +++ b/modules/outbound-domain-event-handler/package.json @@ -1,6 +1,6 @@ { "name": "@mojaloop/sdk-scheme-adapter-outbound-domain-event-handler", - "version": "0.2.20-snapshot.27", + "version": "0.2.20-snapshot.28", "description": "mojaloop sdk scheme adapter outbound domain event handler", "license": "Apache-2.0", "homepage": "https://github.com/mojaloop/sdk-scheme-adapter/", diff --git a/modules/private-shared-lib/package.json b/modules/private-shared-lib/package.json index 9c65f15c8..8e1e47150 100644 --- a/modules/private-shared-lib/package.json +++ b/modules/private-shared-lib/package.json @@ -1,6 +1,6 @@ { "name": "@mojaloop/sdk-scheme-adapter-private-shared-lib", - "version": "0.3.20-snapshot.27", + "version": "0.3.20-snapshot.29", "description": "SDK Scheme Adapter private shared library.", "license": "Apache-2.0", "homepage": "https://github.com/mojaloop/accounts-and-balances-bc/tree/main/modules/private-types", diff --git a/package.json b/package.json index 6752b6d0c..955c57bf2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@mojaloop/sdk-scheme-adapter", - "version": "23.6.0-snapshot.15", + "version": "23.6.0-snapshot.16", "description": "mojaloop sdk-scheme-adapter", "license": "Apache-2.0", "homepage": "https://github.com/mojaloop/sdk-scheme-adapter", From fa86016bb59fb26bed7b710e36ee426f941468de Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Wed, 25 Sep 2024 12:21:16 +0000 Subject: [PATCH 16/25] feat: ulid --- .../transaction_request_followup.json | 2 +- .../outbound-command-event-handler/package.json | 2 +- .../outbound-domain-event-handler/package.json | 2 +- modules/private-shared-lib/package.json | 2 +- package.json | 2 +- .../transaction_request_followup.json | 2 +- .../transaction_request_followup.json | 2 +- .../spec_files/rules_response/default.json | 2 +- .../spec_files/rules_response/default.json | 2 +- test/func/docker-compose.yml | 10 +++++----- yarn.lock | 16 ++++++++-------- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json index 0c1aa45f0..ad213d198 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json @@ -43,7 +43,7 @@ "FSPIOP-Source": "{$inputs.TrsPayerFspId}" }, "body": { - "quoteId": "{$function.generic.generateULID}", + "quoteId": "{$function.generic.generateID}", "transactionId": "{$inputs.transactionId}", "payer": { "partyIdInfo": { diff --git a/modules/outbound-command-event-handler/package.json b/modules/outbound-command-event-handler/package.json index 49918ae5c..62706e0c1 100644 --- a/modules/outbound-command-event-handler/package.json +++ b/modules/outbound-command-event-handler/package.json @@ -58,7 +58,7 @@ "@types/convict": "^6.1.6", "@types/express": "^4.17.21", "@types/jest": "^29.5.13", - "@types/node": "^22.5.5", + "@types/node": "^22.7.0", "@types/node-cache": "^4.2.5", "@types/supertest": "^6.0.2", "@types/swagger-ui-express": "^4.1.6", diff --git a/modules/outbound-domain-event-handler/package.json b/modules/outbound-domain-event-handler/package.json index 286ca460e..a72903fd8 100644 --- a/modules/outbound-domain-event-handler/package.json +++ b/modules/outbound-domain-event-handler/package.json @@ -56,7 +56,7 @@ "@types/convict": "^6.1.6", "@types/express": "^4.17.21", "@types/jest": "^29.5.13", - "@types/node": "^22.5.5", + "@types/node": "^22.7.0", "@types/node-cache": "^4.2.5", "@types/supertest": "^6.0.2", "@types/swagger-ui-express": "^4.1.6", diff --git a/modules/private-shared-lib/package.json b/modules/private-shared-lib/package.json index 8e1e47150..9053dd01f 100644 --- a/modules/private-shared-lib/package.json +++ b/modules/private-shared-lib/package.json @@ -37,7 +37,7 @@ "uuid": "^10.0.0" }, "devDependencies": { - "@types/node": "^22.5.5", + "@types/node": "^22.7.0", "@types/uuid": "^10.0.0", "eslint": "^8.57.0", "jest": "^29.7.0", diff --git a/package.json b/package.json index 955c57bf2..2896231a3 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ }, "devDependencies": { "@types/jest": "^29.5.13", - "@types/node": "^22.5.5", + "@types/node": "^22.7.0", "@types/node-cache": "^4.2.5", "@typescript-eslint/eslint-plugin": "^7.15.0", "@typescript-eslint/parser": "^7.15.0", diff --git a/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json b/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json index 0c1aa45f0..ad213d198 100644 --- a/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json +++ b/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json @@ -43,7 +43,7 @@ "FSPIOP-Source": "{$inputs.TrsPayerFspId}" }, "body": { - "quoteId": "{$function.generic.generateULID}", + "quoteId": "{$function.generic.generateID}", "transactionId": "{$inputs.transactionId}", "payer": { "partyIdInfo": { diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json b/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json index 0c1aa45f0..ad213d198 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json @@ -43,7 +43,7 @@ "FSPIOP-Source": "{$inputs.TrsPayerFspId}" }, "body": { - "quoteId": "{$function.generic.generateULID}", + "quoteId": "{$function.generic.generateID}", "transactionId": "{$inputs.transactionId}", "payer": { "partyIdInfo": { diff --git a/test/func/config/ttk-ttksim1/spec_files/rules_response/default.json b/test/func/config/ttk-ttksim1/spec_files/rules_response/default.json index d5dd9230a..16b962b2e 100644 --- a/test/func/config/ttk-ttksim1/spec_files/rules_response/default.json +++ b/test/func/config/ttk-ttksim1/spec_files/rules_response/default.json @@ -1272,7 +1272,7 @@ "params": { "body": { "homeR2PTransactionId": "cba321", - "transactionId": "{$function.generic.generateULID}", + "transactionId": "{$function.generic.generateID}", "transactionRequestState": "RECEIVED" }, "statusCode": "200", diff --git a/test/func/config/ttk-ttksim2/spec_files/rules_response/default.json b/test/func/config/ttk-ttksim2/spec_files/rules_response/default.json index 7b17075a7..8239124a2 100644 --- a/test/func/config/ttk-ttksim2/spec_files/rules_response/default.json +++ b/test/func/config/ttk-ttksim2/spec_files/rules_response/default.json @@ -1332,7 +1332,7 @@ "params": { "body": { "homeR2PTransactionId": "cba321", - "transactionId": "{$function.generic.generateULID}", + "transactionId": "{$function.generic.generateID}", "transactionRequestState": "RECEIVED" }, "statusCode": "200", diff --git a/test/func/docker-compose.yml b/test/func/docker-compose.yml index c67cce608..e1f6b51df 100644 --- a/test/func/docker-compose.yml +++ b/test/func/docker-compose.yml @@ -123,7 +123,7 @@ services: ttk-ttksim1: networks: - mojaloop-net - image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.0 + image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.1 container_name: ttk-ttksim1 user: root volumes: @@ -159,7 +159,7 @@ services: ttk-ttksim2: networks: - mojaloop-net - image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.0 + image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.1 container_name: ttk-ttksim2 user: root volumes: @@ -189,7 +189,7 @@ services: ttk-ttksim3: networks: - mojaloop-net - image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.0 + image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.1 container_name: ttk-ttksim3 user: root volumes: @@ -220,7 +220,7 @@ services: ttk-ttkfxp: networks: - mojaloop-net - image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.0 + image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.1 container_name: ttk-ttkfxp user: root volumes: @@ -250,7 +250,7 @@ services: ttk-hub: networks: - mojaloop-net - image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.0 + image: mojaloop/ml-testing-toolkit:v17.3.0-snapshot.1 container_name: ttk-hub user: root volumes: diff --git a/yarn.lock b/yarn.lock index 2f8bdf147..3253a3c0b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2332,7 +2332,7 @@ __metadata: "@types/convict": ^6.1.6 "@types/express": ^4.17.21 "@types/jest": ^29.5.13 - "@types/node": ^22.5.5 + "@types/node": ^22.7.0 "@types/node-cache": ^4.2.5 "@types/supertest": ^6.0.2 "@types/swagger-ui-express": ^4.1.6 @@ -2370,7 +2370,7 @@ __metadata: "@types/convict": ^6.1.6 "@types/express": ^4.17.21 "@types/jest": ^29.5.13 - "@types/node": ^22.5.5 + "@types/node": ^22.7.0 "@types/node-cache": ^4.2.5 "@types/supertest": ^6.0.2 "@types/swagger-ui-express": ^4.1.6 @@ -2405,7 +2405,7 @@ __metadata: "@mojaloop/logging-bc-public-types-lib": ^0.5.4 "@mojaloop/platform-shared-lib-messaging-types-lib": ^0.7.1 "@mojaloop/platform-shared-lib-nodejs-kafka-client-lib": 0.2.15 - "@types/node": ^22.5.5 + "@types/node": ^22.7.0 "@types/uuid": ^10.0.0 ajv: ^8.17.1 eslint: ^8.57.0 @@ -2425,7 +2425,7 @@ __metadata: resolution: "@mojaloop/sdk-scheme-adapter@workspace:." dependencies: "@types/jest": ^29.5.13 - "@types/node": ^22.5.5 + "@types/node": ^22.7.0 "@types/node-cache": ^4.2.5 "@typescript-eslint/eslint-plugin": ^7.15.0 "@typescript-eslint/parser": ^7.15.0 @@ -3457,12 +3457,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^22.5.5": - version: 22.5.5 - resolution: "@types/node@npm:22.5.5" +"@types/node@npm:^22.7.0": + version: 22.7.0 + resolution: "@types/node@npm:22.7.0" dependencies: undici-types: ~6.19.2 - checksum: 1f788966ff7df07add0af3481fb68c7fe5091cc72a265c671432abb443788ddacca4ca6378af64fe100c20f857c4d80170d358e66c070171fcea0d4adb1b45b1 + checksum: a40a013afb3d00c2246d6eca39885a5516216785e9c6668191fd836eefd9b3daed0c8865485ebab181838131dbded6b9ee3275b404202261c31a7f9fa51a871a languageName: node linkType: hard From b6ec2087a3966a2605381c6588d3d8ce4298ab51 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Thu, 26 Sep 2024 06:02:17 +0000 Subject: [PATCH 17/25] test: functional tests --- .../package.json | 6 +- .../package.json | 6 +- modules/private-shared-lib/package.json | 4 +- package.json | 2 +- .../ttk-hub/spec_files/system_config.json | 14 ++++- yarn.lock | 62 +++++++++++++------ 6 files changed, 65 insertions(+), 29 deletions(-) diff --git a/modules/outbound-command-event-handler/package.json b/modules/outbound-command-event-handler/package.json index 62706e0c1..5c7bb9754 100644 --- a/modules/outbound-command-event-handler/package.json +++ b/modules/outbound-command-event-handler/package.json @@ -41,7 +41,7 @@ "snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'" }, "dependencies": { - "@mojaloop/api-snippets": "17.6.1", + "@mojaloop/api-snippets": "17.6.2", "@mojaloop/central-services-shared": "^18.9.0", "@mojaloop/logging-bc-client-lib": "^0.1.17", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", @@ -56,9 +56,9 @@ }, "devDependencies": { "@types/convict": "^6.1.6", - "@types/express": "^4.17.21", + "@types/express": "^5.0.0", "@types/jest": "^29.5.13", - "@types/node": "^22.7.0", + "@types/node": "^22.7.2", "@types/node-cache": "^4.2.5", "@types/supertest": "^6.0.2", "@types/swagger-ui-express": "^4.1.6", diff --git a/modules/outbound-domain-event-handler/package.json b/modules/outbound-domain-event-handler/package.json index a72903fd8..439834cbd 100644 --- a/modules/outbound-domain-event-handler/package.json +++ b/modules/outbound-domain-event-handler/package.json @@ -41,7 +41,7 @@ "snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'" }, "dependencies": { - "@mojaloop/api-snippets": "17.6.1", + "@mojaloop/api-snippets": "17.6.2", "@mojaloop/logging-bc-client-lib": "^0.1.17", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^", @@ -54,9 +54,9 @@ }, "devDependencies": { "@types/convict": "^6.1.6", - "@types/express": "^4.17.21", + "@types/express": "^5.0.0", "@types/jest": "^29.5.13", - "@types/node": "^22.7.0", + "@types/node": "^22.7.2", "@types/node-cache": "^4.2.5", "@types/supertest": "^6.0.2", "@types/swagger-ui-express": "^4.1.6", diff --git a/modules/private-shared-lib/package.json b/modules/private-shared-lib/package.json index 9053dd01f..822a0493d 100644 --- a/modules/private-shared-lib/package.json +++ b/modules/private-shared-lib/package.json @@ -27,7 +27,7 @@ "snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'" }, "dependencies": { - "@mojaloop/api-snippets": "17.6.1", + "@mojaloop/api-snippets": "17.6.2", "@mojaloop/central-services-shared": "^18.9.0", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", "@mojaloop/platform-shared-lib-messaging-types-lib": "^0.7.1", @@ -37,7 +37,7 @@ "uuid": "^10.0.0" }, "devDependencies": { - "@types/node": "^22.7.0", + "@types/node": "^22.7.2", "@types/uuid": "^10.0.0", "eslint": "^8.57.0", "jest": "^29.7.0", diff --git a/package.json b/package.json index 2896231a3..c296e153f 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ }, "devDependencies": { "@types/jest": "^29.5.13", - "@types/node": "^22.7.0", + "@types/node": "^22.7.2", "@types/node-cache": "^4.2.5", "@typescript-eslint/eslint-plugin": "^7.15.0", "@typescript-eslint/parser": "^7.15.0", diff --git a/test/func/config/ttk-hub/spec_files/system_config.json b/test/func/config/ttk-hub/spec_files/system_config.json index 055aa9099..da89a6f39 100644 --- a/test/func/config/ttk-hub/spec_files/system_config.json +++ b/test/func/config/ttk-hub/spec_files/system_config.json @@ -64,6 +64,18 @@ "objectStore": {} }, "API_DEFINITIONS": [ + { + "type": "fspiop", + "version": "1.0", + "folderPath": "fspiop_1.0", + "asynchronous": true + }, + { + "type": "fspiop", + "version": "1.1", + "folderPath": "fspiop_1.1", + "asynchronous": true + }, { "type": "settlements", "version": "1.0", @@ -104,7 +116,7 @@ "folderPath": "thirdparty_sdk_outbound_0.1" }, { - "type": "fspiop 2.0", + "type": "fspiop", "version": "2.0", "folderPath": "fspiop_2.0", "asynchronous": true diff --git a/yarn.lock b/yarn.lock index 3253a3c0b..46d3010bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2041,9 +2041,9 @@ __metadata: languageName: node linkType: hard -"@mojaloop/api-snippets@npm:17.6.1": - version: 17.6.1 - resolution: "@mojaloop/api-snippets@npm:17.6.1" +"@mojaloop/api-snippets@npm:17.6.2": + version: 17.6.2 + resolution: "@mojaloop/api-snippets@npm:17.6.2" dependencies: "@apidevtools/json-schema-ref-parser": ^9.1.2 "@redocly/openapi-core": ^1.5.0 @@ -2052,9 +2052,9 @@ __metadata: js-yaml: ^4.1.0 json-refs: ^3.0.15 openapi-types: ^12.1.3 - openapi-typescript: ^7.4.0 + openapi-typescript: ^7.4.1 ts-auto-mock: ^3.7.4 - checksum: 2d283a3c937db488cca40be16eb55d7e3a1e5c3b14da81bc29acaaea4cb0095f99c317cd26169c32d4e78be256bb48db5ad751ae976f8eb5a90b7b4e1258d6e2 + checksum: 36e4087d99cb426745e40a44d0261bd522761a03b34a304acdebe39d73161ed146b7d3f6e5288429427466512a1599b08626b03b04ba92f92f28abb4f3dc9b72 languageName: node linkType: hard @@ -2324,15 +2324,15 @@ __metadata: version: 0.0.0-use.local resolution: "@mojaloop/sdk-scheme-adapter-outbound-command-event-handler@workspace:modules/outbound-command-event-handler" dependencies: - "@mojaloop/api-snippets": 17.6.1 + "@mojaloop/api-snippets": 17.6.2 "@mojaloop/central-services-shared": ^18.9.0 "@mojaloop/logging-bc-client-lib": ^0.1.17 "@mojaloop/logging-bc-public-types-lib": ^0.5.4 "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^" "@types/convict": ^6.1.6 - "@types/express": ^4.17.21 + "@types/express": ^5.0.0 "@types/jest": ^29.5.13 - "@types/node": ^22.7.0 + "@types/node": ^22.7.2 "@types/node-cache": ^4.2.5 "@types/supertest": ^6.0.2 "@types/swagger-ui-express": ^4.1.6 @@ -2363,14 +2363,14 @@ __metadata: version: 0.0.0-use.local resolution: "@mojaloop/sdk-scheme-adapter-outbound-domain-event-handler@workspace:modules/outbound-domain-event-handler" dependencies: - "@mojaloop/api-snippets": 17.6.1 + "@mojaloop/api-snippets": 17.6.2 "@mojaloop/logging-bc-client-lib": ^0.1.17 "@mojaloop/logging-bc-public-types-lib": ^0.5.4 "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^" "@types/convict": ^6.1.6 - "@types/express": ^4.17.21 + "@types/express": ^5.0.0 "@types/jest": ^29.5.13 - "@types/node": ^22.7.0 + "@types/node": ^22.7.2 "@types/node-cache": ^4.2.5 "@types/supertest": ^6.0.2 "@types/swagger-ui-express": ^4.1.6 @@ -2400,12 +2400,12 @@ __metadata: version: 0.0.0-use.local resolution: "@mojaloop/sdk-scheme-adapter-private-shared-lib@workspace:modules/private-shared-lib" dependencies: - "@mojaloop/api-snippets": 17.6.1 + "@mojaloop/api-snippets": 17.6.2 "@mojaloop/central-services-shared": ^18.9.0 "@mojaloop/logging-bc-public-types-lib": ^0.5.4 "@mojaloop/platform-shared-lib-messaging-types-lib": ^0.7.1 "@mojaloop/platform-shared-lib-nodejs-kafka-client-lib": 0.2.15 - "@types/node": ^22.7.0 + "@types/node": ^22.7.2 "@types/uuid": ^10.0.0 ajv: ^8.17.1 eslint: ^8.57.0 @@ -2425,7 +2425,7 @@ __metadata: resolution: "@mojaloop/sdk-scheme-adapter@workspace:." dependencies: "@types/jest": ^29.5.13 - "@types/node": ^22.7.0 + "@types/node": ^22.7.2 "@types/node-cache": ^4.2.5 "@typescript-eslint/eslint-plugin": ^7.15.0 "@typescript-eslint/parser": ^7.15.0 @@ -3227,7 +3227,19 @@ __metadata: languageName: node linkType: hard -"@types/express@npm:*, @types/express@npm:^4.17.21": +"@types/express-serve-static-core@npm:^5.0.0": + version: 5.0.0 + resolution: "@types/express-serve-static-core@npm:5.0.0" + dependencies: + "@types/node": "*" + "@types/qs": "*" + "@types/range-parser": "*" + "@types/send": "*" + checksum: d4e2abfc961a908098290958e43a077504ef669f3ef3c49e871932453d2281e86f5d483ae99ec3aaecd13ada0b18025a99ad5413577660587570c4e21d91c263 + languageName: node + linkType: hard + +"@types/express@npm:*": version: 4.17.21 resolution: "@types/express@npm:4.17.21" dependencies: @@ -3239,6 +3251,18 @@ __metadata: languageName: node linkType: hard +"@types/express@npm:^5.0.0": + version: 5.0.0 + resolution: "@types/express@npm:5.0.0" + dependencies: + "@types/body-parser": "*" + "@types/express-serve-static-core": ^5.0.0 + "@types/qs": "*" + "@types/serve-static": "*" + checksum: ef68d8e2b7593c930093b1e79bf4df15413773508c9acd6a1a933ed7017f2a4892a8d128b2222d7eab9a3fa43181067a378c2600d9258bd7ae917f170e962df4 + languageName: node + linkType: hard + "@types/formidable@npm:^2.0.5": version: 2.0.6 resolution: "@types/formidable@npm:2.0.6" @@ -3457,12 +3481,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^22.7.0": - version: 22.7.0 - resolution: "@types/node@npm:22.7.0" +"@types/node@npm:^22.7.2": + version: 22.7.2 + resolution: "@types/node@npm:22.7.2" dependencies: undici-types: ~6.19.2 - checksum: a40a013afb3d00c2246d6eca39885a5516216785e9c6668191fd836eefd9b3daed0c8865485ebab181838131dbded6b9ee3275b404202261c31a7f9fa51a871a + checksum: 5e753a4a7195a05133e1234e6e2eb68d9f002c5566499dc560e1d7efdcad102f10815ea11f8e206a04b7626876c666227535c755a7d77bc71d73278864b0a652 languageName: node linkType: hard From f5679a3fc5abba62649a4434ddf8121a22dee67d Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Thu, 26 Sep 2024 11:59:47 +0300 Subject: [PATCH 18/25] test: fix functional test --- modules/api-svc/src/lib/model/OutboundRequestToPayModel.js | 1 + test/func/config/sdk-ttksim1/api-svc.env | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/api-svc/src/lib/model/OutboundRequestToPayModel.js b/modules/api-svc/src/lib/model/OutboundRequestToPayModel.js index 7ad29bf0a..f337d7692 100644 --- a/modules/api-svc/src/lib/model/OutboundRequestToPayModel.js +++ b/modules/api-svc/src/lib/model/OutboundRequestToPayModel.js @@ -44,6 +44,7 @@ class OutboundRequestToPayModel { jwsSignPutParties: config.jwsSignPutParties, jwsSigningKey: config.jwsSigningKey, wso2: config.wso2, + resourceVersions: config.resourceVersions, }); } diff --git a/test/func/config/sdk-ttksim1/api-svc.env b/test/func/config/sdk-ttksim1/api-svc.env index e1859570e..a1b20d422 100644 --- a/test/func/config/sdk-ttksim1/api-svc.env +++ b/test/func/config/sdk-ttksim1/api-svc.env @@ -133,7 +133,7 @@ ALLOW_TRANSFER_WITHOUT_QUOTE=false # To enable request for notification on fulfiled transfer RESERVE_NOTIFICATION=true # resources API versions should be string in format: "resourceOneName=1.0,resourceTwoName=1.1" -RESOURCE_VERSIONS="transfers=1.1,participants=1.1" +RESOURCE_VERSIONS="transfers=1.1,participants=1.1,transactionRequests=2.0" # Management API websocket connection settings. # The Management API uses this for exchanging connector management messages. From 2cfb3d340ec2b7503dab200cf5c16de0ef833167 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Thu, 26 Sep 2024 12:15:02 +0300 Subject: [PATCH 19/25] test: fix functional test --- .../config/ttk-hub/spec_files/rules_callback/default.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/func/config/ttk-hub/spec_files/rules_callback/default.json b/test/func/config/ttk-hub/spec_files/rules_callback/default.json index 1ec5fed60..684e702c1 100644 --- a/test/func/config/ttk-hub/spec_files/rules_callback/default.json +++ b/test/func/config/ttk-hub/spec_files/rules_callback/default.json @@ -474,7 +474,7 @@ "description": "post /transactionRequests", "apiVersion": { "minorVersion": 0, - "majorVersion": 1, + "majorVersion": 2, "type": "fspiop", "asynchronous": true }, @@ -750,7 +750,7 @@ "description": "get /transactionRequests/{ID}", "apiVersion": { "minorVersion": 0, - "majorVersion": 1, + "majorVersion": 2, "type": "fspiop", "asynchronous": true }, From bdd65b93fee149b637b814c2b4e334e83c722164 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Thu, 26 Sep 2024 16:05:30 +0300 Subject: [PATCH 20/25] test: fix functional test --- .../config/ttk-hub/spec_files/system_config.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/func/config/ttk-hub/spec_files/system_config.json b/test/func/config/ttk-hub/spec_files/system_config.json index da89a6f39..6b9cc4b22 100644 --- a/test/func/config/ttk-hub/spec_files/system_config.json +++ b/test/func/config/ttk-hub/spec_files/system_config.json @@ -76,6 +76,12 @@ "folderPath": "fspiop_1.1", "asynchronous": true }, + { + "type": "fspiop", + "version": "2.0", + "folderPath": "fspiop_2.0", + "asynchronous": true + }, { "type": "settlements", "version": "1.0", @@ -114,12 +120,6 @@ "type": "thirdparty_sdk_outbound", "version": "0.1", "folderPath": "thirdparty_sdk_outbound_0.1" - }, - { - "type": "fspiop", - "version": "2.0", - "folderPath": "fspiop_2.0", - "asynchronous": true } ] } From 274fc51a2ee026313609f2e75421902fc5c1c89d Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Thu, 26 Sep 2024 17:11:37 +0300 Subject: [PATCH 21/25] test: fix functional test --- .../api-svc/src/lib/model/OutboundRequestToPayTransferModel.js | 1 + test/func/config/sdk-ttksim2/api-svc.env | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/api-svc/src/lib/model/OutboundRequestToPayTransferModel.js b/modules/api-svc/src/lib/model/OutboundRequestToPayTransferModel.js index 605fbf3a1..b0b3aca2a 100644 --- a/modules/api-svc/src/lib/model/OutboundRequestToPayTransferModel.js +++ b/modules/api-svc/src/lib/model/OutboundRequestToPayTransferModel.js @@ -55,6 +55,7 @@ class OutboundRequestToPayTransferModel { jwsSignPutParties: config.jwsSignPutParties, jwsSigningKey: config.jwsSigningKey, wso2: config.wso2, + resourceVersions: config.resourceVersions, }); this._ilp = new Ilp({ diff --git a/test/func/config/sdk-ttksim2/api-svc.env b/test/func/config/sdk-ttksim2/api-svc.env index e2a418ede..c850182f4 100644 --- a/test/func/config/sdk-ttksim2/api-svc.env +++ b/test/func/config/sdk-ttksim2/api-svc.env @@ -126,7 +126,7 @@ ALLOW_TRANSFER_WITHOUT_QUOTE=false # To enable request for notification on fulfiled transfer RESERVE_NOTIFICATION=true # resources API versions should be string in format: "resourceOneName=1.0,resourceTwoName=1.1" -RESOURCE_VERSIONS="transfers=1.1,participants=1.1" +RESOURCE_VERSIONS="transfers=2.0,participants=1.1,quotes=2.0,transactionRequests=2.0" # Management API websocket connection settings. # The Management API uses this for exchanging connector management messages. From 97b43a67e8a129d03c0be7dd0edfb6d59b7a3755 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Thu, 26 Sep 2024 18:09:08 +0300 Subject: [PATCH 22/25] test: fix functional test --- test/func/config/sdk-ttksim1/api-svc.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/func/config/sdk-ttksim1/api-svc.env b/test/func/config/sdk-ttksim1/api-svc.env index a1b20d422..5ca6a8354 100644 --- a/test/func/config/sdk-ttksim1/api-svc.env +++ b/test/func/config/sdk-ttksim1/api-svc.env @@ -133,7 +133,7 @@ ALLOW_TRANSFER_WITHOUT_QUOTE=false # To enable request for notification on fulfiled transfer RESERVE_NOTIFICATION=true # resources API versions should be string in format: "resourceOneName=1.0,resourceTwoName=1.1" -RESOURCE_VERSIONS="transfers=1.1,participants=1.1,transactionRequests=2.0" +RESOURCE_VERSIONS="transfers=2.0,participants=1.1,quotes=2.0,transactionRequests=2.0" # Management API websocket connection settings. # The Management API uses this for exchanging connector management messages. From 2ddbd8cd09948ee85af0bc3a8d2d7fc078e9c61e Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Mon, 30 Sep 2024 09:32:29 +0000 Subject: [PATCH 23/25] fix: uuid/ulid regex --- .../api_definitions/fspiop_2.0/api_spec.yaml | 2 +- .../api_spec.yaml | 2 +- .../mojaloop_simulator_sim_1.4/api_spec.yaml | 14 ++-- modules/api-svc/src/InboundServer/api.yaml | 2 +- .../package.json | 4 +- .../package.json | 4 +- modules/private-shared-lib/package.json | 4 +- package.json | 2 +- .../api_definitions/fspiop_2.0/api_spec.yaml | 2 +- .../api_spec.yaml | 64 +++++++++---------- .../api_spec.yaml | 14 ++-- .../api_definitions/fspiop_2.0/api_spec.yaml | 2 +- .../api_spec.yaml | 2 +- .../mojaloop_simulator_sim_1.4/api_spec.yaml | 14 ++-- .../api_spec.yaml | 14 ++-- .../api_spec.yaml | 2 +- .../api_spec.yaml | 14 ++-- .../api_spec.yaml | 14 ++-- 18 files changed, 88 insertions(+), 88 deletions(-) diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/api_spec.yaml b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/api_spec.yaml index d3ff05f3a..07de209e6 100755 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/api_spec.yaml +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/fspiop_2.0/api_spec.yaml @@ -2918,7 +2918,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The supported identifiers formats are for lowercase diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml index a9d10eea6..b7bb1a017 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml @@ -824,7 +824,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml index 21e6dc61f..682bb573e 100644 --- a/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml +++ b/docker/ml-testing-toolkit/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml @@ -687,7 +687,7 @@ components: bulkQuoteId: description: A Mojaloop API bulk quote identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -736,7 +736,7 @@ components: bulkTransferId: description: A Mojaloop API transfer identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1214,7 +1214,7 @@ components: quoteId: description: A Mojaloop API quote identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1324,7 +1324,7 @@ components: 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-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1371,7 +1371,7 @@ components: transactionRequestId: description: A Mojaloop API transaction request identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1470,7 +1470,7 @@ components: transferId: description: A Mojaloop API transfer identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1621,7 +1621,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/modules/api-svc/src/InboundServer/api.yaml b/modules/api-svc/src/InboundServer/api.yaml index 8f2679885..47b1e8127 100644 --- a/modules/api-svc/src/InboundServer/api.yaml +++ b/modules/api-svc/src/InboundServer/api.yaml @@ -2810,7 +2810,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The supported identifiers formats are for diff --git a/modules/outbound-command-event-handler/package.json b/modules/outbound-command-event-handler/package.json index 5c7bb9754..9f023eedf 100644 --- a/modules/outbound-command-event-handler/package.json +++ b/modules/outbound-command-event-handler/package.json @@ -41,7 +41,7 @@ "snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'" }, "dependencies": { - "@mojaloop/api-snippets": "17.6.2", + "@mojaloop/api-snippets": "17.6.3", "@mojaloop/central-services-shared": "^18.9.0", "@mojaloop/logging-bc-client-lib": "^0.1.17", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", @@ -58,7 +58,7 @@ "@types/convict": "^6.1.6", "@types/express": "^5.0.0", "@types/jest": "^29.5.13", - "@types/node": "^22.7.2", + "@types/node": "^22.7.4", "@types/node-cache": "^4.2.5", "@types/supertest": "^6.0.2", "@types/swagger-ui-express": "^4.1.6", diff --git a/modules/outbound-domain-event-handler/package.json b/modules/outbound-domain-event-handler/package.json index 439834cbd..ed3fa8521 100644 --- a/modules/outbound-domain-event-handler/package.json +++ b/modules/outbound-domain-event-handler/package.json @@ -41,7 +41,7 @@ "snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'" }, "dependencies": { - "@mojaloop/api-snippets": "17.6.2", + "@mojaloop/api-snippets": "17.6.3", "@mojaloop/logging-bc-client-lib": "^0.1.17", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^", @@ -56,7 +56,7 @@ "@types/convict": "^6.1.6", "@types/express": "^5.0.0", "@types/jest": "^29.5.13", - "@types/node": "^22.7.2", + "@types/node": "^22.7.4", "@types/node-cache": "^4.2.5", "@types/supertest": "^6.0.2", "@types/swagger-ui-express": "^4.1.6", diff --git a/modules/private-shared-lib/package.json b/modules/private-shared-lib/package.json index 822a0493d..e4607100c 100644 --- a/modules/private-shared-lib/package.json +++ b/modules/private-shared-lib/package.json @@ -27,7 +27,7 @@ "snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'" }, "dependencies": { - "@mojaloop/api-snippets": "17.6.2", + "@mojaloop/api-snippets": "17.6.3", "@mojaloop/central-services-shared": "^18.9.0", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", "@mojaloop/platform-shared-lib-messaging-types-lib": "^0.7.1", @@ -37,7 +37,7 @@ "uuid": "^10.0.0" }, "devDependencies": { - "@types/node": "^22.7.2", + "@types/node": "^22.7.4", "@types/uuid": "^10.0.0", "eslint": "^8.57.0", "jest": "^29.7.0", diff --git a/package.json b/package.json index c296e153f..660ad9b6a 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ }, "devDependencies": { "@types/jest": "^29.5.13", - "@types/node": "^22.7.2", + "@types/node": "^22.7.4", "@types/node-cache": "^4.2.5", "@typescript-eslint/eslint-plugin": "^7.15.0", "@typescript-eslint/parser": "^7.15.0", diff --git a/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/api_spec.yaml b/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/api_spec.yaml index 7dc7dc035..a86f1e680 100644 --- a/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/api_spec.yaml +++ b/test/func/config/ttk-hub/spec_files/api_definitions/fspiop_2.0/api_spec.yaml @@ -2918,7 +2918,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The supported identifiers formats are for lowercase diff --git a/test/func/config/ttk-hub/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml b/test/func/config/ttk-hub/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml index f287f3b9c..dd180e722 100644 --- a/test/func/config/ttk-hub/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +++ b/test/func/config/ttk-hub/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml @@ -560,7 +560,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -648,7 +648,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -1063,7 +1063,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -1119,7 +1119,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -1183,7 +1183,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -1612,7 +1612,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally @@ -1628,7 +1628,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally @@ -1710,7 +1710,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID @@ -1778,7 +1778,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -1821,7 +1821,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID @@ -1978,7 +1978,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -1992,7 +1992,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2020,7 +2020,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2166,7 +2166,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -2195,7 +2195,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2271,7 +2271,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2299,7 +2299,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2409,7 +2409,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2463,7 +2463,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2595,7 +2595,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -2624,7 +2624,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2834,7 +2834,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -2920,7 +2920,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3226,7 +3226,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3310,7 +3310,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3402,7 +3402,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON @@ -3549,7 +3549,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3837,7 +3837,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3852,7 +3852,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -3867,7 +3867,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -4118,7 +4118,7 @@ paths: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique @@ -4470,7 +4470,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttkfxp/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttkfxp/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index ff8370bf1..e0d2c4714 100644 --- a/test/func/config/ttk-ttkfxp/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttkfxp/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -747,7 +747,7 @@ components: bulkQuoteId: description: A Mojaloop API bulk quote identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -796,7 +796,7 @@ components: bulkTransferId: description: A Mojaloop API transfer identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1259,7 +1259,7 @@ components: quoteId: description: A Mojaloop API quote identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1389,7 +1389,7 @@ components: 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-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1436,7 +1436,7 @@ components: transactionRequestId: description: A Mojaloop API transaction request identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1535,7 +1535,7 @@ components: transferId: description: A Mojaloop API transfer identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1746,7 +1746,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/api_spec.yaml b/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/api_spec.yaml index 7dc7dc035..a86f1e680 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/api_spec.yaml +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/fspiop_2.0/api_spec.yaml @@ -2918,7 +2918,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The supported identifiers formats are for lowercase diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml b/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml index a9d10eea6..b7bb1a017 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml @@ -824,7 +824,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in 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 6095753ba..17b5b176a 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 @@ -687,7 +687,7 @@ components: bulkQuoteId: description: A Mojaloop API bulk quote identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -736,7 +736,7 @@ components: bulkTransferId: description: A Mojaloop API transfer identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1214,7 +1214,7 @@ components: quoteId: description: A Mojaloop API quote identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1324,7 +1324,7 @@ components: 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-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1371,7 +1371,7 @@ components: transactionRequestId: description: A Mojaloop API transaction request identifier (UUID/ULID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1470,7 +1470,7 @@ components: transferId: description: A Mojaloop API transfer identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1621,7 +1621,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index ff8370bf1..e0d2c4714 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -747,7 +747,7 @@ components: bulkQuoteId: description: A Mojaloop API bulk quote identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -796,7 +796,7 @@ components: bulkTransferId: description: A Mojaloop API transfer identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1259,7 +1259,7 @@ components: quoteId: description: A Mojaloop API quote identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1389,7 +1389,7 @@ components: 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-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1436,7 +1436,7 @@ components: transactionRequestId: description: A Mojaloop API transaction request identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1535,7 +1535,7 @@ components: transferId: description: A Mojaloop API transfer identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1746,7 +1746,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index 2954bf3d7..ffd2f29f3 100644 --- a/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttksim1/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -919,7 +919,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim2/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttksim2/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index ff8370bf1..e0d2c4714 100644 --- a/test/func/config/ttk-ttksim2/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttksim2/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -747,7 +747,7 @@ components: bulkQuoteId: description: A Mojaloop API bulk quote identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -796,7 +796,7 @@ components: bulkTransferId: description: A Mojaloop API transfer identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1259,7 +1259,7 @@ components: quoteId: description: A Mojaloop API quote identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1389,7 +1389,7 @@ components: 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-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1436,7 +1436,7 @@ components: transactionRequestId: description: A Mojaloop API transaction request identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1535,7 +1535,7 @@ components: transferId: description: A Mojaloop API transfer identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1746,7 +1746,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in diff --git a/test/func/config/ttk-ttksim3/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml b/test/func/config/ttk-ttksim3/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml index ff8370bf1..e0d2c4714 100644 --- a/test/func/config/ttk-ttksim3/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +++ b/test/func/config/ttk-ttksim3/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml @@ -747,7 +747,7 @@ components: bulkQuoteId: description: A Mojaloop API bulk quote identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkQuoteRequest: description: A request for a bulk quote. @@ -796,7 +796,7 @@ components: bulkTransferId: description: A Mojaloop API transfer identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string bulkTransferRequest: properties: @@ -1259,7 +1259,7 @@ components: quoteId: description: A Mojaloop API quote identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string quoteRequest: description: A request for a quote for transfer from the DFSP backend. @@ -1389,7 +1389,7 @@ components: 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-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequest: description: A request for a pull based transfer. @@ -1436,7 +1436,7 @@ components: transactionRequestId: description: A Mojaloop API transaction request identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transactionRequestResponse: description: A response to a request for a quote. @@ -1535,7 +1535,7 @@ components: transferId: description: A Mojaloop API transfer identifier (UUID). pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ type: string transferParty: properties: @@ -1746,7 +1746,7 @@ components: title: CorrelationId type: string pattern: >- - ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9A-HJKMNP-TV-Z]{26}$ + ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in From 67dac9eabbed3de3550567f3c05986d55fc4a731 Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Mon, 30 Sep 2024 15:48:48 +0000 Subject: [PATCH 24/25] fix: build --- modules/api-svc/package.json | 4 +- modules/api-svc/src/InboundServer/api.yaml | 23 +++-- .../package.json | 2 +- .../package.json | 2 +- modules/private-shared-lib/package.json | 2 +- yarn.lock | 91 ++++++------------- 6 files changed, 50 insertions(+), 74 deletions(-) diff --git a/modules/api-svc/package.json b/modules/api-svc/package.json index 97c193cfd..984dd90c2 100644 --- a/modules/api-svc/package.json +++ b/modules/api-svc/package.json @@ -21,7 +21,7 @@ "start:debug": "node --inspect=0.0.0.0:9229 src/index.js", "build": "yarn run build:openapi", "build:openapi": "yarn run build:openapi:inbound", - "build:openapi:inbound": "openapi bundle --output src/InboundServer/api.yaml --ext yaml ./node_modules/@mojaloop/api-snippets/fspiop/v2_0/openapi3/openapi.yaml", + "build:openapi:inbound": "openapi bundle --output src/InboundServer/api.yaml --ext yaml ../../node_modules/@mojaloop/api-snippets/fspiop/v2_0/openapi3/openapi.yaml", "clean:dist": "rm -Rf dist", "lint": "eslint ./src/", "lint:fix": "eslint ./src/ --fix", @@ -63,7 +63,7 @@ }, "dependencies": { "@koa/cors": "^5.0.0", - "@mojaloop/api-snippets": "17.7.0-snapshot.1", + "@mojaloop/api-snippets": "17.7.0-snapshot.2", "@mojaloop/central-services-error-handling": "^13.0.1", "@mojaloop/central-services-logger": "^11.5.1", "@mojaloop/central-services-metrics": "^12.0.8", diff --git a/modules/api-svc/src/InboundServer/api.yaml b/modules/api-svc/src/InboundServer/api.yaml index 47b1e8127..54cf37cb3 100644 --- a/modules/api-svc/src/InboundServer/api.yaml +++ b/modules/api-svc/src/InboundServer/api.yaml @@ -1,11 +1,21 @@ openapi: 3.0.2 info: - version: '2.0' + version: 2.0-draft title: Open API for FSP Interoperability (FSPIOP) description: >- - Based on [API Definition updated on 2020-05-19 Version + Revision date: 2023-11-23 Based on [API Definition updated on 2020-05-19 + Version 1.1](https://github.com/mojaloop/mojaloop-specification/blob/main/documents/v1.1-document-set/API%20Definition_v1.1.pdf). + This is implementation friendly version of the API definition. + + It includes the below definitions needed for third-party functionality. - + AuthenticationType + - U2F enum + - AuthenticationValue + - oneOf is changed to anyOf + - new element is added U2FPinValue + - New element U2FPIN **Note:** The API supports a maximum size of 65536 bytes (64 Kilobytes) in the HTTP header. @@ -2812,10 +2822,11 @@ components: pattern: >- ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$ description: >- - Identifier that correlates all messages of the same sequence. - The supported identifiers formats are for - lowercase [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and - uppercase [ULID](https://github.com/ulid/spec) + Identifier that correlates all messages of the same sequence. The + supported identifiers formats are for lowercase + [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and uppercase + [ULID](https://github.com/ulid/spec) + example: b51ec534-ee48-4575-b6a9-ead2955b8069 PartyIdType: title: PartyIdType type: string diff --git a/modules/outbound-command-event-handler/package.json b/modules/outbound-command-event-handler/package.json index 9f023eedf..5bce9f2e6 100644 --- a/modules/outbound-command-event-handler/package.json +++ b/modules/outbound-command-event-handler/package.json @@ -41,7 +41,7 @@ "snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'" }, "dependencies": { - "@mojaloop/api-snippets": "17.6.3", + "@mojaloop/api-snippets": "17.7.0-snapshot.2", "@mojaloop/central-services-shared": "^18.9.0", "@mojaloop/logging-bc-client-lib": "^0.1.17", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", diff --git a/modules/outbound-domain-event-handler/package.json b/modules/outbound-domain-event-handler/package.json index ed3fa8521..3dec4fa69 100644 --- a/modules/outbound-domain-event-handler/package.json +++ b/modules/outbound-domain-event-handler/package.json @@ -41,7 +41,7 @@ "snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'" }, "dependencies": { - "@mojaloop/api-snippets": "17.6.3", + "@mojaloop/api-snippets": "17.7.0-snapshot.2", "@mojaloop/logging-bc-client-lib": "^0.1.17", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^", diff --git a/modules/private-shared-lib/package.json b/modules/private-shared-lib/package.json index e4607100c..b1fe28e8c 100644 --- a/modules/private-shared-lib/package.json +++ b/modules/private-shared-lib/package.json @@ -27,7 +27,7 @@ "snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'" }, "dependencies": { - "@mojaloop/api-snippets": "17.6.3", + "@mojaloop/api-snippets": "17.7.0-snapshot.2", "@mojaloop/central-services-shared": "^18.9.0", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", "@mojaloop/platform-shared-lib-messaging-types-lib": "^0.7.1", diff --git a/yarn.lock b/yarn.lock index 46d3010bd..652e4745a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2041,9 +2041,9 @@ __metadata: languageName: node linkType: hard -"@mojaloop/api-snippets@npm:17.6.2": - version: 17.6.2 - resolution: "@mojaloop/api-snippets@npm:17.6.2" +"@mojaloop/api-snippets@npm:17.7.0-snapshot.2": + version: 17.7.0-snapshot.2 + resolution: "@mojaloop/api-snippets@npm:17.7.0-snapshot.2" dependencies: "@apidevtools/json-schema-ref-parser": ^9.1.2 "@redocly/openapi-core": ^1.5.0 @@ -2054,24 +2054,7 @@ __metadata: openapi-types: ^12.1.3 openapi-typescript: ^7.4.1 ts-auto-mock: ^3.7.4 - checksum: 36e4087d99cb426745e40a44d0261bd522761a03b34a304acdebe39d73161ed146b7d3f6e5288429427466512a1599b08626b03b04ba92f92f28abb4f3dc9b72 - languageName: node - linkType: hard - -"@mojaloop/api-snippets@npm:17.7.0-snapshot.1": - version: 17.7.0-snapshot.1 - resolution: "@mojaloop/api-snippets@npm:17.7.0-snapshot.1" - dependencies: - "@apidevtools/json-schema-ref-parser": ^9.1.2 - "@redocly/openapi-core": ^1.5.0 - commander: ^12.1.0 - jest-ts-auto-mock: ^2.1.0 - js-yaml: ^4.1.0 - json-refs: ^3.0.15 - openapi-types: ^12.1.3 - openapi-typescript: ^7.4.0 - ts-auto-mock: ^3.7.4 - checksum: e3373246dc16629fddd2867dbf39d581bfd2881787752e19ea68623258bc6a891aa12c66edfa977ad2de99e2b3c5a7c8574299ad0377d892bd1af2c266540ede + checksum: efcd7de347a27fceac3eed5158fee3b9c8d51627ae1135071a26b6fe47055ca013efc6728cece8bd59b087a941318955f087791d6596d478358618bfe3dfe1fb languageName: node linkType: hard @@ -2269,7 +2252,7 @@ __metadata: "@babel/core": ^7.25.2 "@babel/preset-env": ^7.25.4 "@koa/cors": ^5.0.0 - "@mojaloop/api-snippets": 17.7.0-snapshot.1 + "@mojaloop/api-snippets": 17.7.0-snapshot.2 "@mojaloop/central-services-error-handling": ^13.0.1 "@mojaloop/central-services-logger": ^11.5.1 "@mojaloop/central-services-metrics": ^12.0.8 @@ -2324,7 +2307,7 @@ __metadata: version: 0.0.0-use.local resolution: "@mojaloop/sdk-scheme-adapter-outbound-command-event-handler@workspace:modules/outbound-command-event-handler" dependencies: - "@mojaloop/api-snippets": 17.6.2 + "@mojaloop/api-snippets": 17.7.0-snapshot.2 "@mojaloop/central-services-shared": ^18.9.0 "@mojaloop/logging-bc-client-lib": ^0.1.17 "@mojaloop/logging-bc-public-types-lib": ^0.5.4 @@ -2332,7 +2315,7 @@ __metadata: "@types/convict": ^6.1.6 "@types/express": ^5.0.0 "@types/jest": ^29.5.13 - "@types/node": ^22.7.2 + "@types/node": ^22.7.4 "@types/node-cache": ^4.2.5 "@types/supertest": ^6.0.2 "@types/swagger-ui-express": ^4.1.6 @@ -2363,14 +2346,14 @@ __metadata: version: 0.0.0-use.local resolution: "@mojaloop/sdk-scheme-adapter-outbound-domain-event-handler@workspace:modules/outbound-domain-event-handler" dependencies: - "@mojaloop/api-snippets": 17.6.2 + "@mojaloop/api-snippets": 17.7.0-snapshot.2 "@mojaloop/logging-bc-client-lib": ^0.1.17 "@mojaloop/logging-bc-public-types-lib": ^0.5.4 "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^" "@types/convict": ^6.1.6 "@types/express": ^5.0.0 "@types/jest": ^29.5.13 - "@types/node": ^22.7.2 + "@types/node": ^22.7.4 "@types/node-cache": ^4.2.5 "@types/supertest": ^6.0.2 "@types/swagger-ui-express": ^4.1.6 @@ -2400,12 +2383,12 @@ __metadata: version: 0.0.0-use.local resolution: "@mojaloop/sdk-scheme-adapter-private-shared-lib@workspace:modules/private-shared-lib" dependencies: - "@mojaloop/api-snippets": 17.6.2 + "@mojaloop/api-snippets": 17.7.0-snapshot.2 "@mojaloop/central-services-shared": ^18.9.0 "@mojaloop/logging-bc-public-types-lib": ^0.5.4 "@mojaloop/platform-shared-lib-messaging-types-lib": ^0.7.1 "@mojaloop/platform-shared-lib-nodejs-kafka-client-lib": 0.2.15 - "@types/node": ^22.7.2 + "@types/node": ^22.7.4 "@types/uuid": ^10.0.0 ajv: ^8.17.1 eslint: ^8.57.0 @@ -2425,7 +2408,7 @@ __metadata: resolution: "@mojaloop/sdk-scheme-adapter@workspace:." dependencies: "@types/jest": ^29.5.13 - "@types/node": ^22.7.2 + "@types/node": ^22.7.4 "@types/node-cache": ^4.2.5 "@typescript-eslint/eslint-plugin": ^7.15.0 "@typescript-eslint/parser": ^7.15.0 @@ -2926,12 +2909,12 @@ __metadata: languageName: node linkType: hard -"@redocly/openapi-core@npm:^1.16.0, @redocly/openapi-core@npm:^1.5.0": - version: 1.22.1 - resolution: "@redocly/openapi-core@npm:1.22.1" +"@redocly/openapi-core@npm:^1.25.3": + version: 1.25.3 + resolution: "@redocly/openapi-core@npm:1.25.3" dependencies: - "@redocly/ajv": ^8.11.0 - "@redocly/config": ^0.10.1 + "@redocly/ajv": ^8.11.2 + "@redocly/config": ^0.11.0 colorette: ^1.2.0 https-proxy-agent: ^7.0.4 js-levenshtein: ^1.1.6 @@ -2941,16 +2924,16 @@ __metadata: node-fetch: ^2.6.1 pluralize: ^8.0.0 yaml-ast-parser: 0.0.43 - checksum: 1353c549fa71f2de3f2afb3640179e03b64d8198bec763728ff11c439e6961489b121bbb0404e27601a618a86bc975df3389befdaca790e1bd6d1d20b68861af + checksum: 5128c904624a71f518017db7062d9689e0f91e335d4fd2381f8753303625533cb991c1ef4a3cbd857a6cb949bb5e54d6868fb38906991065320c8d54d488fee5 languageName: node linkType: hard -"@redocly/openapi-core@npm:^1.25.3": - version: 1.25.3 - resolution: "@redocly/openapi-core@npm:1.25.3" +"@redocly/openapi-core@npm:^1.5.0": + version: 1.22.1 + resolution: "@redocly/openapi-core@npm:1.22.1" dependencies: - "@redocly/ajv": ^8.11.2 - "@redocly/config": ^0.11.0 + "@redocly/ajv": ^8.11.0 + "@redocly/config": ^0.10.1 colorette: ^1.2.0 https-proxy-agent: ^7.0.4 js-levenshtein: ^1.1.6 @@ -2960,7 +2943,7 @@ __metadata: node-fetch: ^2.6.1 pluralize: ^8.0.0 yaml-ast-parser: 0.0.43 - checksum: 5128c904624a71f518017db7062d9689e0f91e335d4fd2381f8753303625533cb991c1ef4a3cbd857a6cb949bb5e54d6868fb38906991065320c8d54d488fee5 + checksum: 1353c549fa71f2de3f2afb3640179e03b64d8198bec763728ff11c439e6961489b121bbb0404e27601a618a86bc975df3389befdaca790e1bd6d1d20b68861af languageName: node linkType: hard @@ -3481,12 +3464,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^22.7.2": - version: 22.7.2 - resolution: "@types/node@npm:22.7.2" +"@types/node@npm:^22.7.4": + version: 22.7.4 + resolution: "@types/node@npm:22.7.4" dependencies: undici-types: ~6.19.2 - checksum: 5e753a4a7195a05133e1234e6e2eb68d9f002c5566499dc560e1d7efdcad102f10815ea11f8e206a04b7626876c666227535c755a7d77bc71d73278864b0a652 + checksum: a3f4154147639369aed08fe6f8d62eff637cf87b187bb252d7bbccdc82884626007af424b08a653c53f2182adfa0340001b4888cb7cbb942cef351210fc742a5 languageName: node linkType: hard @@ -11468,24 +11451,6 @@ __metadata: languageName: node linkType: hard -"openapi-typescript@npm:^7.4.0": - version: 7.4.0 - resolution: "openapi-typescript@npm:7.4.0" - dependencies: - "@redocly/openapi-core": ^1.16.0 - ansi-colors: ^4.1.3 - change-case: ^5.4.4 - parse-json: ^8.1.0 - supports-color: ^9.4.0 - yargs-parser: ^21.1.1 - peerDependencies: - typescript: ^5.x - bin: - openapi-typescript: bin/cli.js - checksum: 8497f4bf1eb19e77d4430f2ff2d9638d18a274e4093832643f5bea36a2adc6f79df3a806f65454991ac5899ae4f6796eaebcadcf0f09ac8e9783c13efcffc935 - languageName: node - linkType: hard - "openapi-typescript@npm:^7.4.1": version: 7.4.1 resolution: "openapi-typescript@npm:7.4.1" From 23d44d3b5b00134e5fdd1af2f392689176edfd5e Mon Sep 17 00:00:00 2001 From: Kalin Krustev Date: Tue, 1 Oct 2024 09:27:53 +0000 Subject: [PATCH 25/25] chore: dependencies --- modules/api-svc/package.json | 2 +- .../outbound-command-event-handler/package.json | 2 +- .../outbound-domain-event-handler/package.json | 2 +- modules/private-shared-lib/package.json | 2 +- yarn.lock | 16 ++++++++-------- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/api-svc/package.json b/modules/api-svc/package.json index 984dd90c2..1c3878da5 100644 --- a/modules/api-svc/package.json +++ b/modules/api-svc/package.json @@ -63,7 +63,7 @@ }, "dependencies": { "@koa/cors": "^5.0.0", - "@mojaloop/api-snippets": "17.7.0-snapshot.2", + "@mojaloop/api-snippets": "17.7.0", "@mojaloop/central-services-error-handling": "^13.0.1", "@mojaloop/central-services-logger": "^11.5.1", "@mojaloop/central-services-metrics": "^12.0.8", diff --git a/modules/outbound-command-event-handler/package.json b/modules/outbound-command-event-handler/package.json index 5bce9f2e6..f352d3c2a 100644 --- a/modules/outbound-command-event-handler/package.json +++ b/modules/outbound-command-event-handler/package.json @@ -41,7 +41,7 @@ "snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'" }, "dependencies": { - "@mojaloop/api-snippets": "17.7.0-snapshot.2", + "@mojaloop/api-snippets": "17.7.0", "@mojaloop/central-services-shared": "^18.9.0", "@mojaloop/logging-bc-client-lib": "^0.1.17", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", diff --git a/modules/outbound-domain-event-handler/package.json b/modules/outbound-domain-event-handler/package.json index 3dec4fa69..31f697753 100644 --- a/modules/outbound-domain-event-handler/package.json +++ b/modules/outbound-domain-event-handler/package.json @@ -41,7 +41,7 @@ "snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'" }, "dependencies": { - "@mojaloop/api-snippets": "17.7.0-snapshot.2", + "@mojaloop/api-snippets": "17.7.0", "@mojaloop/logging-bc-client-lib": "^0.1.17", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^", diff --git a/modules/private-shared-lib/package.json b/modules/private-shared-lib/package.json index b1fe28e8c..8f0295bc2 100644 --- a/modules/private-shared-lib/package.json +++ b/modules/private-shared-lib/package.json @@ -27,7 +27,7 @@ "snapshot": "standard-version --no-verify --skip.changelog --prerelease snapshot --releaseCommitMessageFormat 'chore(snapshot): {{currentTag}}'" }, "dependencies": { - "@mojaloop/api-snippets": "17.7.0-snapshot.2", + "@mojaloop/api-snippets": "17.7.0", "@mojaloop/central-services-shared": "^18.9.0", "@mojaloop/logging-bc-public-types-lib": "^0.5.4", "@mojaloop/platform-shared-lib-messaging-types-lib": "^0.7.1", diff --git a/yarn.lock b/yarn.lock index 652e4745a..d7f40e97a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2041,9 +2041,9 @@ __metadata: languageName: node linkType: hard -"@mojaloop/api-snippets@npm:17.7.0-snapshot.2": - version: 17.7.0-snapshot.2 - resolution: "@mojaloop/api-snippets@npm:17.7.0-snapshot.2" +"@mojaloop/api-snippets@npm:17.7.0": + version: 17.7.0 + resolution: "@mojaloop/api-snippets@npm:17.7.0" dependencies: "@apidevtools/json-schema-ref-parser": ^9.1.2 "@redocly/openapi-core": ^1.5.0 @@ -2054,7 +2054,7 @@ __metadata: openapi-types: ^12.1.3 openapi-typescript: ^7.4.1 ts-auto-mock: ^3.7.4 - checksum: efcd7de347a27fceac3eed5158fee3b9c8d51627ae1135071a26b6fe47055ca013efc6728cece8bd59b087a941318955f087791d6596d478358618bfe3dfe1fb + checksum: 9415c87917689c3cd2c12fb1efbd28ed1b1a253c8d0cee883bd2294f518d4852de93a362bcb1858c561a557c91d3f1c807ca909466370740f775e44ece924119 languageName: node linkType: hard @@ -2252,7 +2252,7 @@ __metadata: "@babel/core": ^7.25.2 "@babel/preset-env": ^7.25.4 "@koa/cors": ^5.0.0 - "@mojaloop/api-snippets": 17.7.0-snapshot.2 + "@mojaloop/api-snippets": 17.7.0 "@mojaloop/central-services-error-handling": ^13.0.1 "@mojaloop/central-services-logger": ^11.5.1 "@mojaloop/central-services-metrics": ^12.0.8 @@ -2307,7 +2307,7 @@ __metadata: version: 0.0.0-use.local resolution: "@mojaloop/sdk-scheme-adapter-outbound-command-event-handler@workspace:modules/outbound-command-event-handler" dependencies: - "@mojaloop/api-snippets": 17.7.0-snapshot.2 + "@mojaloop/api-snippets": 17.7.0 "@mojaloop/central-services-shared": ^18.9.0 "@mojaloop/logging-bc-client-lib": ^0.1.17 "@mojaloop/logging-bc-public-types-lib": ^0.5.4 @@ -2346,7 +2346,7 @@ __metadata: version: 0.0.0-use.local resolution: "@mojaloop/sdk-scheme-adapter-outbound-domain-event-handler@workspace:modules/outbound-domain-event-handler" dependencies: - "@mojaloop/api-snippets": 17.7.0-snapshot.2 + "@mojaloop/api-snippets": 17.7.0 "@mojaloop/logging-bc-client-lib": ^0.1.17 "@mojaloop/logging-bc-public-types-lib": ^0.5.4 "@mojaloop/sdk-scheme-adapter-private-shared-lib": "workspace:^" @@ -2383,7 +2383,7 @@ __metadata: version: 0.0.0-use.local resolution: "@mojaloop/sdk-scheme-adapter-private-shared-lib@workspace:modules/private-shared-lib" dependencies: - "@mojaloop/api-snippets": 17.7.0-snapshot.2 + "@mojaloop/api-snippets": 17.7.0 "@mojaloop/central-services-shared": ^18.9.0 "@mojaloop/logging-bc-public-types-lib": ^0.5.4 "@mojaloop/platform-shared-lib-messaging-types-lib": ^0.7.1