From d3ffee5d60dc5cc339f7b520d527a27d86da0334 Mon Sep 17 00:00:00 2001 From: vijayg10 <33152110+vijayg10@users.noreply.github.com> Date: Wed, 6 Dec 2023 19:00:28 +0530 Subject: [PATCH] feat(mojaloop/3573): add fx to sdk (#170) * feat: added browsersync script * feat:added fxquotes and fxtransfers defs * fix: refactored fxquotes and fxtransfers * feat: added other fspiop changes for fx * feat: added initial version of sdk 2.1.0 * feat: added fxQuotes to sdk backend * feat: added fxTransfers to sdk * fix: refactor sdk backend fx apis * fix: some fixes in fspiop fx * fix: build error * fix: merge * fix: fxTransfers * fix: currencyConversion * fix: conversionTerms * feat: addressed some comments * feat: added services API to sdk outbound * fix: renamed fxquoteid to conversionRequestId * fix: build * fix: filename case change * feat: added fx resources for outbound * fix: quotes body in sdk outbound * feat: changed fspiop new version number * fix: some fixes * fix: sdkoutpostfxquotes * chore: some comments * fix: added kyc information * feat: added kycinformation * chore: fix audits * chore: cleaning * fix: fxmoney * fix: fxapi * fix: required fileds in fxquotes callback * feat: some fixes * fix: case * fix: case * fix: sdk-outbound warnings * feat: added reordering script * chore: updated fspiop apis with reording components * feat(3618): updated deps * chore(snapshot): 17.3.0-snapshot.0 * fix: fspiop2.0 reviewed * chore: deps * fix: audit * chore: remove system file --------- Co-authored-by: geka.evk --- README.md | 12 + docs/fspiop-rest-v1.0-openapi3-snippets.yaml | 1010 +- docs/index.html | 4 + ...pter-backend-v2_0_0-openapi3-snippets.yaml | 449 +- ...pter-backend-v2_1_0-openapi3-snippets.yaml | 2837 ++ ...ter-outbound-v2_0_0-openapi3-snippets.yaml | 631 +- ...ter-outbound-v2_1_0-openapi3-snippets.yaml | 3451 ++ docs/thirdparty-openapi3-snippets.yaml | 1182 +- .../schemas/PartiesTypeIDPutResponse.yaml | 1 - package-lock.json | 485 +- package.json | 33 +- .../schemas/getPartiesResponse.yaml | 1 - .../schemas/partiesByIdResponse.yaml | 1 - .../schemas/requestToPayResponse.yaml | 5 - .../schemas/requestToPayTransferResponse.yaml | 5 - .../schemas/simpleQuotesPostRequest.yaml | 1 - .../components/schemas/transferError.yaml | 5 +- .../components/schemas/transferResponse.yaml | 5 - .../v2_1_0/backend/openapi.yaml | 1494 + .../v2_1_0/backend/paths/fxQuotes.yaml | 26 + .../v2_1_0/backend/paths/fxTransfers.yaml | 25 + .../v2_1_0/backend/paths/fxTransfersById.yaml | 21 + .../v2_1_0/components/parameters/ID.yaml | 6 + .../v2_1_0/components/parameters/SubId.yaml | 8 + .../v2_1_0/components/parameters/Type.yaml | 6 + .../components/parameters/bulkQuoteId.yaml | 8 + .../parameters/bulkTransactionId.yaml | 8 + .../components/parameters/bulkTransferId.yaml | 8 + .../parameters/transactionRequestId.yaml | 8 + .../components/parameters/transferId.yaml | 8 + .../v2_1_0/components/responses/200.yaml | 1 + .../v2_1_0/components/responses/400.yaml | 5 + .../v2_1_0/components/responses/404.yaml | 5 + .../v2_1_0/components/responses/500.yaml | 5 + .../responses/accountsCreationCompleted.yaml | 5 + .../responses/accountsCreationError.yaml | 5 + .../responses/accountsCreationTimeout.yaml | 5 + .../responses/bulkQuoteBadRequest.yaml | 5 + .../responses/bulkQuoteServerError.yaml | 5 + .../responses/bulkQuoteSuccess.yaml | 5 + .../responses/bulkQuoteTimeout.yaml | 5 + .../responses/bulkTransactionAccepted.yaml | 1 + .../responses/bulkTransactionBadRequest.yaml | 5 + .../bulkTransactionPutBadRequest.yaml | 7 + .../responses/bulkTransferBadRequest.yaml | 5 + .../responses/bulkTransferStatusResponse.yaml | 16 + .../responses/bulkTransferSuccess.yaml | 5 + .../components/responses/errorResponse.yaml | 5 + .../responses/partiesByIdError404.yaml | 8 + .../responses/partiesByIdSuccess.yaml | 5 + .../responses/quotesPostSuccess.yaml | 5 + .../responses/quotesServerError.yaml | 5 + .../responses/requestToPaySuccess.yaml | 5 + .../requestToPayTransferBadRequest.yaml | 5 + .../requestToPayTransferSuccess.yaml | 5 + .../responses/servicesFXPSucess.yaml | 5 + .../responses/simpleTransfersPostSuccess.yaml | 5 + .../responses/simpleTransfersServerError.yaml | 5 + .../responses/transferBadRequest.yaml | 5 + .../responses/transferServerError.yaml | 5 + .../components/responses/transferSuccess.yaml | 5 + .../components/responses/transferTimeout.yaml | 5 + .../v2_1_0/components/schemas/Amount.yaml | 11 + .../v2_1_0/components/schemas/AmountType.yaml | 14 + .../schemas/AuthenticationInfo.yaml | 11 + .../schemas/AuthenticationType.yaml | 12 + .../schemas/AuthenticationValue.yaml | 44 + .../schemas/AuthorizationIDPutResponse.yaml | 10 + .../schemas/AuthorizationResponseType.yaml | 12 + .../components/schemas/BalanceOfPayments.yaml | 9 + .../components/schemas/CorrelationId.yaml | 10 + .../v2_1_0/components/schemas/Currency.yaml | 174 + .../components/schemas/DateOfBirth.yaml | 6 + .../v2_1_0/components/schemas/DateTime.yaml | 14 + .../v2_1_0/components/schemas/ErrorCode.yaml | 11 + .../components/schemas/ErrorDescription.yaml | 5 + .../components/schemas/ErrorInformation.yaml | 13 + .../v2_1_0/components/schemas/Extension.yaml | 11 + .../components/schemas/ExtensionKey.yaml | 5 + .../components/schemas/ExtensionList.yaml | 15 + .../components/schemas/ExtensionValue.yaml | 5 + .../v2_1_0/components/schemas/FirstName.yaml | 9 + .../v2_1_0/components/schemas/FspId.yaml | 5 + .../schemas/FxQuotesPostBackendRequest.yaml | 16 + .../schemas/FxQuotesPostBackendResponse.yaml | 14 + .../schemas/FxQuotesPostOutboundRequest.yaml | 19 + .../schemas/FxQuotesPostOutboundResponse.yaml | 18 + .../FxTransfersPostBackendRequest.yaml | 28 + .../FxTransfersPostBackendResponse.yaml | 17 + .../FxTransfersPostOutboundRequest.yaml | 28 + .../FxTransfersPostOutboundResponse.yaml | 17 + .../schemas/FxTransfersPutBackendRequest.yaml | 17 + .../v2_1_0/components/schemas/GeoCode.yaml | 13 + .../components/schemas/IlpCondition.yaml | 5 + .../components/schemas/IlpFulfilment.yaml | 6 + .../v2_1_0/components/schemas/IlpPacket.yaml | 8 + .../v2_1_0/components/schemas/LastName.yaml | 9 + .../v2_1_0/components/schemas/Latitude.yaml | 7 + .../v2_1_0/components/schemas/Longitude.yaml | 8 + .../schemas/MerchantClassificationCode.yaml | 7 + .../v2_1_0/components/schemas/MiddleName.yaml | 9 + .../v2_1_0/components/schemas/Money.yaml | 11 + .../v2_1_0/components/schemas/Name.yaml | 17 + .../v2_1_0/components/schemas/Note.yaml | 6 + .../v2_1_0/components/schemas/Party.yaml | 21 + .../components/schemas/PartyComplexName.yaml | 10 + .../components/schemas/PartyIdInfo.yaml | 19 + .../components/schemas/PartyIdType.yaml | 54 + .../components/schemas/PartyIdentifier.yaml | 6 + .../v2_1_0/components/schemas/PartyName.yaml | 5 + .../components/schemas/PartyPersonalInfo.yaml | 8 + .../components/schemas/PartySubIdOrType.yaml | 7 + .../schemas/QuotesIDPutResponse.yaml | 27 + .../components/schemas/QuotesPostRequest.yaml | 53 + .../v2_1_0/components/schemas/Refund.yaml | 10 + .../components/schemas/RefundReason.yaml | 6 + .../schemas/TransactionInitiator.yaml | 16 + .../schemas/TransactionInitiatorType.yaml | 14 + .../schemas/TransactionRequestResponse.yaml | 20 + .../schemas/TransactionRequestState.yaml | 14 + .../schemas/TransactionScenario.yaml | 32 + .../schemas/TransactionSubScenario.yaml | 5 + .../components/schemas/TransactionType.yaml | 20 + .../components/schemas/TransferState.yaml | 19 + .../schemas/TransfersIDPutResponse.yaml | 14 + .../schemas/TransfersPostRequest.yaml | 28 + .../schemas/accountCreationStatus.yaml | 15 + .../schemas/accountsCreationState.yaml | 4 + .../components/schemas/accountsRequest.yaml | 16 + .../components/schemas/accountsResponse.yaml | 23 + .../schemas/async2SyncCurrentState.yaml | 5 + .../schemas/autoAcceptPartyOption.yaml | 9 + .../components/schemas/autoAcceptQuote.yaml | 14 + .../schemas/bulkPerTransferFeeLimit.yaml | 9 + .../schemas/bulkQuoteErrorResponse.yaml | 8 + .../components/schemas/bulkQuoteRequest.yaml | 24 + .../components/schemas/bulkQuoteResponse.yaml | 26 + .../components/schemas/bulkQuoteStatus.yaml | 4 + .../schemas/bulkQuoteStatusResponse.yaml | 16 + ...lkTransactionAcceptPartyErrorResponse.yaml | 10 + ...lkTransactionAcceptQuoteErrorResponse.yaml | 10 + ...ulkTransactionContinuationAcceptParty.yaml | 17 + ...ulkTransactionContinuationAcceptQuote.yaml | 13 + .../bulkTransactionIndividualTransfer.yaml | 34 + ...lkTransactionIndividualTransferAccept.yaml | 7 + ...lkTransactionIndividualTransferResult.yaml | 38 + .../schemas/bulkTransactionOptions.yaml | 35 + .../schemas/bulkTransactionRequest.yaml | 27 + .../schemas/bulkTransactionResponse.yaml | 27 + .../schemas/bulkTransactionStatus.yaml | 6 + .../schemas/bulkTransferErrorResponse.yaml | 8 + .../schemas/bulkTransferRequest.yaml | 28 + .../schemas/bulkTransferResponse.yaml | 29 + .../schemas/bulkTransferStatus.yaml | 4 + .../schemas/errorAccountsResponse.yaml | 8 + .../schemas/errorQuotesResponse.yaml | 3 + .../components/schemas/errorResponse.yaml | 10 + .../schemas/errorSimpleTransfersResponse.yaml | 3 + .../schemas/errorTransferResponse.yaml | 8 + .../schemas/extensionListEmptiable.yaml | 5 + .../schemas/getPartiesResponse.yaml | 11 + .../components/schemas/individualQuote.yaml | 29 + .../schemas/individualQuoteResult.yaml | 25 + .../schemas/individualTransfer.yaml | 34 + .../schemas/individualTransferFulfilment.yaml | 9 + .../schemas/individualTransferResult.yaml | 14 + .../components/schemas/mojaloopError.yaml | 4 + .../schemas/partiesByIdResponse.yaml | 18 + .../v2_1_0/components/schemas/partyError.yaml | 12 + .../v2_1_0/components/schemas/quoteError.yaml | 12 + .../schemas/quotesPostResponse.yaml | 48 + .../schemas/requestToPayRequest.yaml | 32 + .../schemas/requestToPayResponse.yaml | 35 + .../schemas/requestToPayStatus.yaml | 5 + .../schemas/requestToPayTransferRequest.yaml | 42 + .../schemas/requestToPayTransferResponse.yaml | 72 + .../schemas/simpleQuotesPostRequest.yaml | 10 + .../schemas/simpleTransfersPostRequest.yaml | 10 + .../schemas/simpleTransfersPostResponse.yaml | 17 + .../transferContinuationAcceptConversion.yaml | 9 + .../transferContinuationAcceptOTP.yaml | 9 + .../transferContinuationAcceptParty.yaml | 9 + .../transferContinuationAcceptQuote.yaml | 9 + .../components/schemas/transferError.yaml | 12 + .../components/schemas/transferParty.yaml | 38 + .../components/schemas/transferRequest.yaml | 41 + .../components/schemas/transferResponse.yaml | 93 + .../components/schemas/transferStatus.yaml | 7 + .../schemas/transferStatusResponse.yaml | 19 + .../schemas/transferTransactionType.yaml | 5 + .../v2_1_0/outbound/openapi.yaml | 66 + sdk-scheme-adapter/v2_1_0/outbound/paths.yaml | 12 + .../v2_1_0/outbound/paths/accounts.yaml | 26 + .../v2_1_0/outbound/paths/bulkQuotes.yaml | 23 + .../paths/bulkQuotes_bulkQuoteId.yaml | 24 + .../outbound/paths/bulkTransactions.yaml | 21 + .../bulkTransactions_bulkTransactionId.yaml | 33 + .../v2_1_0/outbound/paths/bulkTransfers.yaml | 21 + .../paths/bulkTransfers_bulkTransferId.yaml | 24 + .../v2_1_0/outbound/paths/fxQuotes.yaml | 26 + .../v2_1_0/outbound/paths/fxTransfers.yaml | 25 + .../outbound/paths/parties_Type_ID.yaml | 18 + .../outbound/paths/parties_Type_ID_SubId.yaml | 19 + .../v2_1_0/outbound/paths/quotes.yaml | 18 + .../v2_1_0/outbound/paths/requestToPay.yaml | 22 + .../outbound/paths/requestToPayTransfer.yaml | 57 + ...estToPayTransfer_transactionRequestId.yaml | 34 + .../requestToPay_transactionRequestId.yaml | 29 + .../v2_1_0/outbound/paths/services_FXP.yaml | 15 + ...ces_FXP_SourceCurrency_TargetCurrency.yaml | 18 + .../outbound/paths/simpleTransfers.yaml | 18 + .../v2_1_0/outbound/paths/transfers.yaml | 55 + .../outbound/paths/transfers_transferId.yaml | 59 + src/fspiop/v1_0/openapi.ts | 1 - .../v2_0_0/backend/json-schemas.json | 14 +- .../v2_0_0/backend/openapi.ts | 2 +- .../v2_0_0/outbound/json-schemas.json | 24 +- .../v2_0_0/outbound/openapi.ts | 8 +- .../v2_1_0/backend/json-schemas.json | 3244 +- .../v2_1_0/backend/openapi.ts | 1484 + .../v2_1_0/backend/schemas.ts | 137 + .../v2_1_0/backend/types.ts | 137 + .../v2_1_0/outbound/json-schemas.json | 38718 ++++++++++++++++ .../v2_1_0/outbound/openapi.ts | 1905 + .../v2_1_0/outbound/schemas.ts | 146 + .../v2_1_0/outbound/types.ts | 146 + 226 files changed, 59784 insertions(+), 1044 deletions(-) create mode 100644 docs/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets.yaml create mode 100644 docs/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/backend/openapi.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/backend/paths/fxQuotes.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/backend/paths/fxTransfers.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/backend/paths/fxTransfersById.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/parameters/ID.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/parameters/SubId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/parameters/Type.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/parameters/bulkQuoteId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/parameters/bulkTransactionId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/parameters/bulkTransferId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/parameters/transactionRequestId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/parameters/transferId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/200.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/400.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/404.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/500.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/accountsCreationCompleted.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/accountsCreationError.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/accountsCreationTimeout.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteBadRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteServerError.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteSuccess.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteTimeout.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/bulkTransactionAccepted.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/bulkTransactionBadRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/bulkTransactionPutBadRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/bulkTransferBadRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/bulkTransferStatusResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/bulkTransferSuccess.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/errorResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/partiesByIdError404.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/partiesByIdSuccess.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/quotesPostSuccess.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/quotesServerError.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/requestToPaySuccess.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/requestToPayTransferBadRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/requestToPayTransferSuccess.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/servicesFXPSucess.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/simpleTransfersPostSuccess.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/simpleTransfersServerError.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/transferBadRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/transferServerError.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/transferSuccess.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/responses/transferTimeout.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/Amount.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/AmountType.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/AuthenticationInfo.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/AuthenticationType.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/AuthenticationValue.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/AuthorizationIDPutResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/AuthorizationResponseType.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/BalanceOfPayments.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/CorrelationId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/Currency.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/DateOfBirth.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/DateTime.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/ErrorCode.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/ErrorDescription.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/ErrorInformation.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/Extension.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/ExtensionKey.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/ExtensionList.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/ExtensionValue.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/FirstName.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/FspId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostBackendRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostBackendResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostOutboundRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostOutboundResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostBackendRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostBackendResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostOutboundRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostOutboundResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPutBackendRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/GeoCode.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/IlpCondition.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/IlpFulfilment.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/IlpPacket.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/LastName.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/Latitude.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/Longitude.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/MerchantClassificationCode.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/MiddleName.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/Money.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/Name.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/Note.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/Party.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/PartyComplexName.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/PartyIdInfo.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/PartyIdType.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/PartyIdentifier.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/PartyName.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/PartyPersonalInfo.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/PartySubIdOrType.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/QuotesIDPutResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/QuotesPostRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/Refund.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/RefundReason.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/TransactionInitiator.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/TransactionInitiatorType.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/TransactionRequestResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/TransactionRequestState.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/TransactionScenario.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/TransactionSubScenario.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/TransactionType.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/TransferState.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/TransfersIDPutResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/TransfersPostRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/accountCreationStatus.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/accountsCreationState.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/accountsRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/accountsResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/async2SyncCurrentState.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/autoAcceptPartyOption.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/autoAcceptQuote.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkPerTransferFeeLimit.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteErrorResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteStatus.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteStatusResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionAcceptPartyErrorResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionAcceptQuoteErrorResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionContinuationAcceptParty.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionContinuationAcceptQuote.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionIndividualTransfer.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionIndividualTransferAccept.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionIndividualTransferResult.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionOptions.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionStatus.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferErrorResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferStatus.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/errorAccountsResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/errorQuotesResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/errorResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/errorSimpleTransfersResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/errorTransferResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/extensionListEmptiable.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/getPartiesResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/individualQuote.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/individualQuoteResult.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/individualTransfer.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/individualTransferFulfilment.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/individualTransferResult.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/mojaloopError.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/partiesByIdResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/partyError.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/quoteError.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/quotesPostResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayStatus.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayTransferRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayTransferResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/simpleQuotesPostRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/simpleTransfersPostRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/simpleTransfersPostResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptConversion.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptOTP.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptParty.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptQuote.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/transferError.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/transferParty.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/transferRequest.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/transferResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/transferStatus.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/transferStatusResponse.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/components/schemas/transferTransactionType.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/openapi.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/accounts.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/bulkQuotes.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/bulkQuotes_bulkQuoteId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransactions.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransactions_bulkTransactionId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransfers.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransfers_bulkTransferId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/fxQuotes.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/fxTransfers.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/parties_Type_ID.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/parties_Type_ID_SubId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/quotes.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPay.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPayTransfer.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPayTransfer_transactionRequestId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPay_transactionRequestId.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/services_FXP.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/services_FXP_SourceCurrency_TargetCurrency.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/simpleTransfers.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/transfers.yaml create mode 100644 sdk-scheme-adapter/v2_1_0/outbound/paths/transfers_transferId.yaml create mode 100644 src/sdk-scheme-adapter/v2_1_0/backend/openapi.ts create mode 100644 src/sdk-scheme-adapter/v2_1_0/backend/schemas.ts create mode 100644 src/sdk-scheme-adapter/v2_1_0/backend/types.ts create mode 100644 src/sdk-scheme-adapter/v2_1_0/outbound/json-schemas.json create mode 100644 src/sdk-scheme-adapter/v2_1_0/outbound/openapi.ts create mode 100644 src/sdk-scheme-adapter/v2_1_0/outbound/schemas.ts create mode 100644 src/sdk-scheme-adapter/v2_1_0/outbound/types.ts diff --git a/README.md b/README.md index c8f69287..eb59f90f 100644 --- a/README.md +++ b/README.md @@ -184,3 +184,15 @@ the `npm run build:dto` script is already executing linting with auto-fixing there is pre-commit hook setup witch do a linting for staged files. ### DTO testing - testing of DTO declarations + +### Comparing openapi specification - useful commands + +For difference: +``` +docker run --rm -t -v $(pwd)/docs:/docs:ro tufin/oasdiff diff /docs/fspiop-rest-v1.1-openapi3-snippets.yaml /docs/fspiop-rest-v2.0-openapi3-snippets.yaml -f text +``` + +For changelog: +``` +docker run --rm -t -v $(pwd)/docs:/docs:ro tufin/oasdiff changelog /docs/fspiop-rest-v1.1-openapi3-snippets.yaml /docs/fspiop-rest-v2.0-openapi3-snippets.yaml +``` diff --git a/docs/fspiop-rest-v1.0-openapi3-snippets.yaml b/docs/fspiop-rest-v1.0-openapi3-snippets.yaml index 1f455f44..fe72bab0 100644 --- a/docs/fspiop-rest-v1.0-openapi3-snippets.yaml +++ b/docs/fspiop-rest-v1.0-openapi3-snippets.yaml @@ -2,12 +2,17 @@ openapi: 3.0.2 info: version: '1.0' title: Open API for FSP Interoperability (FSPIOP) (Implementation Friendly Version) - description: |- - Based on [API Definition version 1.0](https://github.com/mojaloop/mojaloop-specification/blob/develop/API%20Definition%20v1.0.pdf). + description: >- + Based on [API Definition version + 1.0](https://github.com/mojaloop/mojaloop-specification/blob/develop/API%20Definition%20v1.0.pdf). - **Note:** The API supports a maximum size of 65536 bytes (64 Kilobytes) in the HTTP header. + + **Note:** The API supports a maximum size of 65536 bytes (64 Kilobytes) in + the HTTP header. license: - name: Open API for FSP Interoperability (FSPIOP) (Implementation Friendly Version) + name: >- + Open API for FSP Interoperability (FSPIOP) (Implementation Friendly + Version) url: https://github.com/mojaloop/mojaloop-specification/blob/develop/LICENSE.md servers: - url: protocol://hostname:/switch/ @@ -20,7 +25,10 @@ servers: paths: /interface: post: - description: Essential path to include schema components 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. + description: >- + Essential path to include schema components 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: Interface requestBody: content: @@ -96,7 +104,12 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' post: - description: The HTTP request `POST /participants/{Type}/{ID}` (or `POST /participants/{Type}/{ID}/{SubId}`) is used to create information in the server regarding the provided identity, defined by `{Type}`, `{ID}`, and optionally `{SubId}` (for example, `POST /participants/MSISDN/123456789` or `POST /participants/BUSINESS/shoecompany/employee1`). + description: >- + The HTTP request `POST /participants/{Type}/{ID}` (or `POST + /participants/{Type}/{ID}/{SubId}`) is used to create information in the + server regarding the provided identity, defined by `{Type}`, `{ID}`, and + optionally `{SubId}` (for example, `POST /participants/MSISDN/123456789` + or `POST /participants/BUSINESS/shoecompany/employee1`). summary: Create participant information tags: - participants @@ -131,7 +144,15 @@ paths: '503': $ref: '#/components/responses/503' get: - description: The HTTP request `GET /participants/{Type}/{ID}` (or `GET /participants/{Type}/{ID}/{SubId}`) is used to find out in which FSP the requested Party, defined by `{Type}`, `{ID}` and optionally `{SubId}`, is located (for example, `GET /participants/MSISDN/123456789`, or `GET /participants/BUSINESS/shoecompany/employee1`). This HTTP request should support a query string for filtering of currency. To use filtering of currency, the HTTP request `GET /participants/{Type}/{ID}?currency=XYZ` should be used, where `XYZ` is the requested currency. + description: >- + The HTTP request `GET /participants/{Type}/{ID}` (or `GET + /participants/{Type}/{ID}/{SubId}`) is used to find out in which FSP the + requested Party, defined by `{Type}`, `{ID}` and optionally `{SubId}`, + is located (for example, `GET /participants/MSISDN/123456789`, or `GET + /participants/BUSINESS/shoecompany/employee1`). This HTTP request should + support a query string for filtering of currency. To use filtering of + currency, the HTTP request `GET /participants/{Type}/{ID}?currency=XYZ` + should be used, where `XYZ` is the requested currency. summary: Look up participant information tags: - participants @@ -158,7 +179,13 @@ paths: '503': $ref: '#/components/responses/503' put: - description: The callback `PUT /participants/{Type}/{ID}` (or `PUT /participants/{Type}/{ID}/{SubId}`) is used to inform the client of a successful result of the lookup, creation, or deletion of the FSP information related to the Party. If the FSP information is deleted, the fspId element should be empty; otherwise the element should include the FSP information for the Party. + description: >- + The callback `PUT /participants/{Type}/{ID}` (or `PUT + /participants/{Type}/{ID}/{SubId}`) is used to inform the client of a + successful result of the lookup, creation, or deletion of the FSP + information related to the Party. If the FSP information is deleted, the + fspId element should be empty; otherwise the element should include the + FSP information for the Party. summary: Return participant information tags: - participants @@ -192,10 +219,20 @@ paths: '503': $ref: '#/components/responses/503' delete: - description: |- - The HTTP request `DELETE /participants/{Type}/{ID}` (or `DELETE /participants/{Type}/{ID}/{SubId}`) is used to delete information in the server regarding the provided identity, defined by `{Type}` and `{ID}`) (for example, `DELETE /participants/MSISDN/123456789`), and optionally `{SubId}`. This HTTP request should support a query string to delete FSP information regarding a specific currency only. To delete a specific currency only, the HTTP request `DELETE /participants/{Type}/{ID}?currency=XYZ` should be used, where `XYZ` is the requested currency. + description: >- + The HTTP request `DELETE /participants/{Type}/{ID}` (or `DELETE + /participants/{Type}/{ID}/{SubId}`) is used to delete information in the + server regarding the provided identity, defined by `{Type}` and `{ID}`) + (for example, `DELETE /participants/MSISDN/123456789`), and optionally + `{SubId}`. This HTTP request should support a query string to delete FSP + information regarding a specific currency only. To delete a specific + currency only, the HTTP request `DELETE + /participants/{Type}/{ID}?currency=XYZ` should be used, where `XYZ` is + the requested currency. + - **Note:** The Account Lookup System should verify that it is the Party’s current FSP that is deleting the FSP information. + **Note:** The Account Lookup System should verify that it is the Party’s + current FSP that is deleting the FSP information. summary: Delete participant information tags: - participants @@ -223,7 +260,11 @@ paths: $ref: '#/components/responses/503' /participants/{Type}/{ID}/error: put: - description: If the server is unable to find, create or delete the associated FSP of the provided identity, or another processing error occurred, the error callback `PUT /participants/{Type}/{ID}/error` (or `PUT /participants/{Type}/{ID}/{SubId}/error`) is used. + description: >- + If the server is unable to find, create or delete the associated FSP of + the provided identity, or another processing error occurred, the error + callback `PUT /participants/{Type}/{ID}/error` (or `PUT + /participants/{Type}/{ID}/{SubId}/error`) is used. summary: Return participant information error tags: - participants @@ -282,7 +323,12 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' post: - description: The HTTP request `POST /participants/{Type}/{ID}` (or `POST /participants/{Type}/{ID}/{SubId}`) is used to create information in the server regarding the provided identity, defined by `{Type}`, `{ID}`, and optionally `{SubId}` (for example, `POST /participants/MSISDN/123456789` or `POST /participants/BUSINESS/shoecompany/employee1`). + description: >- + The HTTP request `POST /participants/{Type}/{ID}` (or `POST + /participants/{Type}/{ID}/{SubId}`) is used to create information in the + server regarding the provided identity, defined by `{Type}`, `{ID}`, and + optionally `{SubId}` (for example, `POST /participants/MSISDN/123456789` + or `POST /participants/BUSINESS/shoecompany/employee1`). summary: Create participant information tags: - participants @@ -317,7 +363,15 @@ paths: '503': $ref: '#/components/responses/503' get: - description: The HTTP request `GET /participants/{Type}/{ID}` (or `GET /participants/{Type}/{ID}/{SubId}`) is used to find out in which FSP the requested Party, defined by `{Type}`, `{ID}` and optionally `{SubId}`, is located (for example, `GET /participants/MSISDN/123456789`, or `GET /participants/BUSINESS/shoecompany/employee1`). This HTTP request should support a query string for filtering of currency. To use filtering of currency, the HTTP request `GET /participants/{Type}/{ID}?currency=XYZ` should be used, where `XYZ` is the requested currency. + description: >- + The HTTP request `GET /participants/{Type}/{ID}` (or `GET + /participants/{Type}/{ID}/{SubId}`) is used to find out in which FSP the + requested Party, defined by `{Type}`, `{ID}` and optionally `{SubId}`, + is located (for example, `GET /participants/MSISDN/123456789`, or `GET + /participants/BUSINESS/shoecompany/employee1`). This HTTP request should + support a query string for filtering of currency. To use filtering of + currency, the HTTP request `GET /participants/{Type}/{ID}?currency=XYZ` + should be used, where `XYZ` is the requested currency. summary: Look up participant information tags: - participants @@ -344,7 +398,13 @@ paths: '503': $ref: '#/components/responses/503' put: - description: The callback `PUT /participants/{Type}/{ID}` (or `PUT /participants/{Type}/{ID}/{SubId}`) is used to inform the client of a successful result of the lookup, creation, or deletion of the FSP information related to the Party. If the FSP information is deleted, the fspId element should be empty; otherwise the element should include the FSP information for the Party. + description: >- + The callback `PUT /participants/{Type}/{ID}` (or `PUT + /participants/{Type}/{ID}/{SubId}`) is used to inform the client of a + successful result of the lookup, creation, or deletion of the FSP + information related to the Party. If the FSP information is deleted, the + fspId element should be empty; otherwise the element should include the + FSP information for the Party. summary: Return participant information tags: - participants @@ -378,10 +438,20 @@ paths: '503': $ref: '#/components/responses/503' delete: - description: |- - The HTTP request `DELETE /participants/{Type}/{ID}` (or `DELETE /participants/{Type}/{ID}/{SubId}`) is used to delete information in the server regarding the provided identity, defined by `{Type}` and `{ID}`) (for example, `DELETE /participants/MSISDN/123456789`), and optionally `{SubId}`. This HTTP request should support a query string to delete FSP information regarding a specific currency only. To delete a specific currency only, the HTTP request `DELETE /participants/{Type}/{ID}?currency=XYZ` should be used, where `XYZ` is the requested currency. + description: >- + The HTTP request `DELETE /participants/{Type}/{ID}` (or `DELETE + /participants/{Type}/{ID}/{SubId}`) is used to delete information in the + server regarding the provided identity, defined by `{Type}` and `{ID}`) + (for example, `DELETE /participants/MSISDN/123456789`), and optionally + `{SubId}`. This HTTP request should support a query string to delete FSP + information regarding a specific currency only. To delete a specific + currency only, the HTTP request `DELETE + /participants/{Type}/{ID}?currency=XYZ` should be used, where `XYZ` is + the requested currency. + - **Note:** The Account Lookup System should verify that it is the Party’s current FSP that is deleting the FSP information. + **Note:** The Account Lookup System should verify that it is the Party’s + current FSP that is deleting the FSP information. summary: Delete participant information tags: - participants @@ -409,7 +479,11 @@ paths: $ref: '#/components/responses/503' /participants/{Type}/{ID}/{SubId}/error: put: - description: If the server is unable to find, create or delete the associated FSP of the provided identity, or another processing error occurred, the error callback `PUT /participants/{Type}/{ID}/error` (or `PUT /participants/{Type}/{ID}/{SubId}/error`) is used. + description: >- + If the server is unable to find, create or delete the associated FSP of + the provided identity, or another processing error occurred, the error + callback `PUT /participants/{Type}/{ID}/error` (or `PUT + /participants/{Type}/{ID}/{SubId}/error`) is used. summary: Return participant information error tags: - participants @@ -456,7 +530,12 @@ paths: $ref: '#/components/responses/503' /participants: post: - description: The HTTP request `POST /participants` is used to create information in the server regarding the provided list of identities. This request should be used for bulk creation of FSP information for more than one Party. The optional currency parameter should indicate that each provided Party supports the currency. + description: >- + The HTTP request `POST /participants` is used to create information in + the server regarding the provided list of identities. This request + should be used for bulk creation of FSP information for more than one + Party. The optional currency parameter should indicate that each + provided Party supports the currency. summary: Create bulk participant information tags: - participants @@ -501,7 +580,9 @@ paths: $ref: '#/components/responses/503' /participants/{ID}: put: - description: The callback `PUT /participants/{ID}` is used to inform the client of the result of the creation of the provided list of identities. + description: >- + The callback `PUT /participants/{ID}` is used to inform the client of + the result of the creation of the provided list of identities. summary: Return bulk participant information tags: - participants @@ -546,7 +627,11 @@ paths: $ref: '#/components/responses/503' /participants/{ID}/error: put: - description: If there is an error during FSP information creation in the server, the error callback `PUT /participants/{ID}/error` is used. The `{ID}` in the URI should contain the requestId that was used for the creation of the participant information. + description: >- + If there is an error during FSP information creation in the server, the + error callback `PUT /participants/{ID}/error` is used. The `{ID}` in the + URI should contain the requestId that was used for the creation of the + participant information. summary: Return bulk participant information error tags: - participants @@ -603,7 +688,12 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' get: - description: The HTTP request `GET /parties/{Type}/{ID}` (or `GET /parties/{Type}/{ID}/{SubId}`) is used to look up information regarding the requested Party, defined by `{Type}`, `{ID}` and optionally `{SubId}` (for example, `GET /parties/MSISDN/123456789`, or `GET /parties/BUSINESS/shoecompany/employee1`). + description: >- + The HTTP request `GET /parties/{Type}/{ID}` (or `GET + /parties/{Type}/{ID}/{SubId}`) is used to look up information regarding + the requested Party, defined by `{Type}`, `{ID}` and optionally + `{SubId}` (for example, `GET /parties/MSISDN/123456789`, or `GET + /parties/BUSINESS/shoecompany/employee1`). summary: Look up party information tags: - parties @@ -630,7 +720,10 @@ paths: '503': $ref: '#/components/responses/503' put: - description: The callback `PUT /parties/{Type}/{ID}` (or `PUT /parties/{Type}/{ID}/{SubId}`) is used to inform the client of a successful result of the Party information lookup. + description: >- + The callback `PUT /parties/{Type}/{ID}` (or `PUT + /parties/{Type}/{ID}/{SubId}`) is used to inform the client of a + successful result of the Party information lookup. summary: Return party information tags: - parties @@ -665,7 +758,11 @@ paths: $ref: '#/components/responses/503' /parties/{Type}/{ID}/error: put: - description: If the server is unable to find Party information of the provided identity, or another processing error occurred, the error callback `PUT /parties/{Type}/{ID}/error` (or `PUT /parties/{Type}/{ID}/{SubI}/error`) is used. + description: >- + If the server is unable to find Party information of the provided + identity, or another processing error occurred, the error callback `PUT + /parties/{Type}/{ID}/error` (or `PUT /parties/{Type}/{ID}/{SubI}/error`) + is used. summary: Return party information error tags: - parties @@ -724,7 +821,12 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' get: - description: The HTTP request `GET /parties/{Type}/{ID}` (or `GET /parties/{Type}/{ID}/{SubId}`) is used to look up information regarding the requested Party, defined by `{Type}`, `{ID}` and optionally `{SubId}` (for example, `GET /parties/MSISDN/123456789`, or `GET /parties/BUSINESS/shoecompany/employee1`). + description: >- + The HTTP request `GET /parties/{Type}/{ID}` (or `GET + /parties/{Type}/{ID}/{SubId}`) is used to look up information regarding + the requested Party, defined by `{Type}`, `{ID}` and optionally + `{SubId}` (for example, `GET /parties/MSISDN/123456789`, or `GET + /parties/BUSINESS/shoecompany/employee1`). summary: Look up party information tags: - parties @@ -751,7 +853,10 @@ paths: '503': $ref: '#/components/responses/503' put: - description: The callback `PUT /parties/{Type}/{ID}` (or `PUT /parties/{Type}/{ID}/{SubId}`) is used to inform the client of a successful result of the Party information lookup. + description: >- + The callback `PUT /parties/{Type}/{ID}` (or `PUT + /parties/{Type}/{ID}/{SubId}`) is used to inform the client of a + successful result of the Party information lookup. summary: Return party information tags: - parties @@ -786,7 +891,11 @@ paths: $ref: '#/components/responses/503' /parties/{Type}/{ID}/{SubId}/error: put: - description: If the server is unable to find Party information of the provided identity, or another processing error occurred, the error callback `PUT /parties/{Type}/{ID}/error` (or `PUT /parties/{Type}/{ID}/{SubId}/error`) is used. + description: >- + If the server is unable to find Party information of the provided + identity, or another processing error occurred, the error callback `PUT + /parties/{Type}/{ID}/error` (or `PUT + /parties/{Type}/{ID}/{SubId}/error`) is used. summary: Return party information error tags: - parties @@ -833,7 +942,10 @@ paths: $ref: '#/components/responses/503' /transactionRequests: post: - description: The HTTP request `POST /transactionRequests` is used to request the creation of a transaction request for the provided financial transaction in the server. + description: >- + The HTTP request `POST /transactionRequests` is used to request the + creation of a transaction request for the provided financial transaction + in the server. summary: Perform transaction request tags: - transactionRequests @@ -889,7 +1001,11 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' get: - description: The HTTP request `GET /transactionRequests/{ID}` is used to get information regarding a transaction request created or requested earlier. The `{ID}` in the URI should contain the `transactionRequestId` that was used for the creation of the transaction request. + description: >- + The HTTP request `GET /transactionRequests/{ID}` is used to get + information regarding a transaction request created or requested + earlier. The `{ID}` in the URI should contain the `transactionRequestId` + that was used for the creation of the transaction request. summary: Retrieve transaction request information tags: - transactionRequests @@ -916,7 +1032,12 @@ paths: '503': $ref: '#/components/responses/503' put: - description: The callback `PUT /transactionRequests/{ID}` is used to inform the client of a requested or created transaction request. The `{ID}` in the URI should contain the `transactionRequestId` that was used for the creation of the transaction request, or the `{ID}` that was used in the `GET /transactionRequests/{ID}`. + description: >- + The callback `PUT /transactionRequests/{ID}` is used to inform the + client of a requested or created transaction request. The `{ID}` in the + URI should contain the `transactionRequestId` that was used for the + creation of the transaction request, or the `{ID}` that was used in the + `GET /transactionRequests/{ID}`. summary: Return transaction request information tags: - transactionRequests @@ -951,7 +1072,13 @@ paths: $ref: '#/components/responses/503' /transactionRequests/{ID}/error: put: - description: If the server is unable to find or create a transaction request, or another processing error occurs, the error callback `PUT /transactionRequests/{ID}/error` is used. The `{ID}` in the URI should contain the `transactionRequestId` that was used for the creation of the transaction request, or the `{ID}` that was used in the `GET /transactionRequests/{ID}`. + description: >- + If the server is unable to find or create a transaction request, or + another processing error occurs, the error callback `PUT + /transactionRequests/{ID}/error` is used. The `{ID}` in the URI should + contain the `transactionRequestId` that was used for the creation of the + transaction request, or the `{ID}` that was used in the `GET + /transactionRequests/{ID}`. summary: Return transaction request information error tags: - transactionRequests @@ -996,7 +1123,9 @@ paths: $ref: '#/components/responses/503' /quotes: post: - description: The HTTP request `POST /quotes` is used to request the creation of a quote for the provided financial transaction in the server. + description: >- + The HTTP request `POST /quotes` is used to request the creation of a + quote for the provided financial transaction in the server. summary: Calculate quote tags: - quotes @@ -1052,7 +1181,10 @@ paths: - $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 a quote created or requested earlier. The `{ID}` in the URI should contain the `quoteId` that was used for the creation of the quote. + description: >- + The HTTP request `GET /quotes/{ID}` is used to get information regarding + a quote created or requested earlier. The `{ID}` in the URI should + contain the `quoteId` that was used for the creation of the quote. summary: Retrieve quote information tags: - quotes @@ -1079,7 +1211,11 @@ paths: '503': $ref: '#/components/responses/503' put: - description: The callback `PUT /quotes/{ID}` is used to inform the client of a requested or created quote. The `{ID}` in the URI should contain the `quoteId` that was used for the creation of the quote, or the `{ID}` that was used in the `GET /quotes/{ID}` request. + description: >- + The callback `PUT /quotes/{ID}` is used to inform the client of a + requested or created quote. The `{ID}` in the URI should contain the + `quoteId` that was used for the creation of the quote, or the `{ID}` + that was used in the `GET /quotes/{ID}` request. summary: Return quote information tags: - quotes @@ -1114,7 +1250,12 @@ paths: $ref: '#/components/responses/503' /quotes/{ID}/error: put: - description: If the server is unable to find or create a quote, or some other processing error occurs, the error callback `PUT /quotes/{ID}/error` is used. The `{ID}` in the URI should contain the `quoteId` that was used for the creation of the quote, or the `{ID}` that was used in the `GET /quotes/{ID}` request. + description: >- + If the server is unable to find or create a quote, or some other + processing error occurs, the error callback `PUT /quotes/{ID}/error` is + used. The `{ID}` in the URI should contain the `quoteId` that was used + for the creation of the quote, or the `{ID}` that was used in the `GET + /quotes/{ID}` request. summary: Return quote information error tags: - quotes @@ -1170,20 +1311,43 @@ paths: - $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 to enter the applicable credentials in the Payee FSP system. The `{ID}` in the URI should contain the `transactionRequestID`, received from the `POST /transactionRequests` service earlier in the process. This request requires a query string to be included in the URI, with the following key-value pairs*:* + description: >- + The HTTP request `GET /authorizations/{ID}` is used to request the Payer + to enter the applicable credentials in the Payee FSP system. The `{ID}` + in the URI should contain the `transactionRequestID`, received from the + `POST /transactionRequests` service earlier in the process. This request + requires a query string to be included in the URI, with the following + key-value pairs*:* + + + - `authenticationType={Type}`, where `{Type}` value is a valid + authentication type from the enumeration `AuthenticationType`. + - - `authenticationType={Type}`, where `{Type}` value is a valid authentication type from the enumeration `AuthenticationType`. + - `retriesLeft=={NrOfRetries}`, where `{NrOfRetries}` is the number of + retries left before the financial transaction is rejected. + `{NrOfRetries}` must be expressed in the form of the data type + `Integer`. `retriesLeft=1` means that this is the last retry before the + financial transaction is rejected. - - `retriesLeft=={NrOfRetries}`, where `{NrOfRetries}` is the number of retries left before the financial transaction is rejected. `{NrOfRetries}` must be expressed in the form of the data type `Integer`. `retriesLeft=1` means that this is the last retry before the financial transaction is rejected. - - `amount={Amount}`, where `{Amount}` is the transaction amount that will be withdrawn from the Payer’s account. `{Amount}` must be expressed in the form of the data type `Amount`. + - `amount={Amount}`, where `{Amount}` is the transaction amount that + will be withdrawn from the Payer’s account. `{Amount}` must be expressed + in the form of the data type `Amount`. - - `currency={Currency}`, where `{Currency}` is the transaction currency for the amount that will be withdrawn from the Payer’s account. The `{Currency}` value must be expressed in the form of the enumeration `CurrencyCode`. - The following is an example URI containing all the required key-value pairs in the query string*:* + - `currency={Currency}`, where `{Currency}` is the transaction currency + for the amount that will be withdrawn from the Payer’s account. The + `{Currency}` value must be expressed in the form of the enumeration + `CurrencyCode`. - `GET /authorization/3d492671-b7af-4f3f-88de-76169b1bdf88?authenticationType=OTP&retriesLeft=2&amount=102¤cy=USD` + + The following is an example URI containing all the required key-value + pairs in the query string*:* + + + `GET + /authorization/3d492671-b7af-4f3f-88de-76169b1bdf88?authenticationType=OTP&retriesLeft=2&amount=102¤cy=USD` summary: Perform authorization tags: - authorizations @@ -1210,7 +1374,11 @@ paths: '503': $ref: '#/components/responses/503' put: - description: The callback `PUT /authorizations/{ID}` is used to inform the client of the result of a previously-requested authorization. The `{ID}` in the URI should contain the `{ID}` that was used in the `GET /authorizations/{ID}` request. + description: >- + The callback `PUT /authorizations/{ID}` is used to inform the client of + the result of a previously-requested authorization. The `{ID}` in the + URI should contain the `{ID}` that was used in the `GET + /authorizations/{ID}` request. summary: Return authorization result tags: - authorizations @@ -1245,7 +1413,11 @@ paths: $ref: '#/components/responses/503' /authorizations/{ID}/error: put: - description: If the server is unable to find the transaction request, or another processing error occurs, the error callback `PUT /authorizations/{ID}/error` is used. The `{ID}` in the URI should contain the `{ID}` that was used in the `GET /authorizations/{ID}`. + description: >- + If the server is unable to find the transaction request, or another + processing error occurs, the error callback `PUT + /authorizations/{ID}/error` is used. The `{ID}` in the URI should + contain the `{ID}` that was used in the `GET /authorizations/{ID}`. summary: Return authorization error tags: - authorizations @@ -1290,7 +1462,10 @@ paths: $ref: '#/components/responses/503' /transfers: post: - description: The HTTP request `POST /transfers` is used to request the creation of a transfer for the next ledger, and a financial transaction for the Payee FSP. + description: >- + The HTTP request `POST /transfers` is used to request the creation of a + transfer for the next ledger, and a financial transaction for the Payee + FSP. summary: Perform transfer tags: - transfers @@ -1346,7 +1521,11 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' get: - description: The HTTP request `GET /transfers/{ID}` is used to get information regarding a transfer created or requested earlier. The `{ID}` in the URI should contain the `transferId` that was used for the creation of the transfer. + description: >- + The HTTP request `GET /transfers/{ID}` is used to get information + regarding a transfer created or requested earlier. The `{ID}` in the URI + should contain the `transferId` that was used for the creation of the + transfer. summary: Retrieve transfer information tags: - transfers @@ -1373,7 +1552,11 @@ paths: '503': $ref: '#/components/responses/503' put: - description: The callback `PUT /transfers/{ID}` is used to inform the client of a requested or created transfer. The `{ID}` in the URI should contain the `transferId` that was used for the creation of the transfer, or the `{ID}` that was used in the `GET /transfers/{ID}` request. + description: >- + The callback `PUT /transfers/{ID}` is used to inform the client of a + requested or created transfer. The `{ID}` in the URI should contain the + `transferId` that was used for the creation of the transfer, or the + `{ID}` that was used in the `GET /transfers/{ID}` request. summary: Return transfer information tags: - transfers @@ -1408,7 +1591,12 @@ paths: $ref: '#/components/responses/503' /transfers/{ID}/error: put: - description: If the server is unable to find or create a transfer, or another processing error occurs, the error callback `PUT /transfers/{ID}/error` is used. The `{ID}` in the URI should contain the `transferId` that was used for the creation of the transfer, or the `{ID}` that was used in the `GET /transfers/{ID}`. + description: >- + If the server is unable to find or create a transfer, or another + processing error occurs, the error callback `PUT /transfers/{ID}/error` + is used. The `{ID}` in the URI should contain the `transferId` that was + used for the creation of the transfer, or the `{ID}` that was used in + the `GET /transfers/{ID}`. summary: Return transfer information error tags: - transfers @@ -1464,7 +1652,12 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' get: - description: The HTTP request `GET /transactions/{ID}` is used to get transaction information regarding a financial transaction created earlier. The `{ID}` in the URI should contain the `transactionId` that was used for the creation of the quote, as the transaction is created as part of another process (the transfer process). + description: >- + The HTTP request `GET /transactions/{ID}` is used to get transaction + information regarding a financial transaction created earlier. The + `{ID}` in the URI should contain the `transactionId` that was used for + the creation of the quote, as the transaction is created as part of + another process (the transfer process). summary: Retrieve transaction information tags: - transactions @@ -1491,7 +1684,10 @@ paths: '503': $ref: '#/components/responses/503' put: - description: The callback `PUT /transactions/{ID}` is used to inform the client of a requested transaction. The `{ID}` in the URI should contain the `{ID}` that was used in the `GET /transactions/{ID}` request. + description: >- + The callback `PUT /transactions/{ID}` is used to inform the client of a + requested transaction. The `{ID}` in the URI should contain the `{ID}` + that was used in the `GET /transactions/{ID}` request. summary: Return transaction information tags: - transactions @@ -1526,7 +1722,11 @@ paths: $ref: '#/components/responses/503' /transactions/{ID}/error: put: - description: If the server is unable to find or create a transaction, or another processing error occurs, the error callback `PUT /transactions/{ID}/error` is used. The `{ID}` in the URI should contain the `{ID}` that was used in the `GET /transactions/{ID}` request. + description: >- + If the server is unable to find or create a transaction, or another + processing error occurs, the error callback `PUT + /transactions/{ID}/error` is used. The `{ID}` in the URI should contain + the `{ID}` that was used in the `GET /transactions/{ID}` request. summary: Return transaction information error tags: - transactions @@ -1571,7 +1771,9 @@ paths: $ref: '#/components/responses/503' /bulkQuotes: post: - description: The HTTP request `POST /bulkQuotes` is used to request the creation of a bulk quote for the provided financial transactions in the server. + description: >- + The HTTP request `POST /bulkQuotes` is used to request the creation of a + bulk quote for the provided financial transactions in the server. summary: Calculate bulk quote tags: - bulkQuotes @@ -1627,7 +1829,11 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' get: - description: The HTTP request `GET /bulkQuotes/{ID}` is used to get information regarding a bulk quote created or requested earlier. The `{ID}` in the URI should contain the `bulkQuoteId` that was used for the creation of the bulk quote. + description: >- + The HTTP request `GET /bulkQuotes/{ID}` is used to get information + regarding a bulk quote created or requested earlier. The `{ID}` in the + URI should contain the `bulkQuoteId` that was used for the creation of + the bulk quote. summary: Retrieve bulk quote information tags: - bulkQuotes @@ -1654,7 +1860,11 @@ paths: '503': $ref: '#/components/responses/503' put: - description: The callback `PUT /bulkQuotes/{ID}` is used to inform the client of a requested or created bulk quote. The `{ID}` in the URI should contain the `bulkQuoteId` that was used for the creation of the bulk quote, or the `{ID}` that was used in the `GET /bulkQuotes/{ID}` request. + description: >- + The callback `PUT /bulkQuotes/{ID}` is used to inform the client of a + requested or created bulk quote. The `{ID}` in the URI should contain + the `bulkQuoteId` that was used for the creation of the bulk quote, or + the `{ID}` that was used in the `GET /bulkQuotes/{ID}` request. summary: Return bulk quote information tags: - bulkQuotes @@ -1689,7 +1899,12 @@ paths: $ref: '#/components/responses/503' /bulkQuotes/{ID}/error: put: - description: If the server is unable to find or create a bulk quote, or another processing error occurs, the error callback `PUT /bulkQuotes/{ID}/error` is used. The `{ID}` in the URI should contain the `bulkQuoteId` that was used for the creation of the bulk quote, or the `{ID}` that was used in the `GET /bulkQuotes/{ID}` request. + description: >- + If the server is unable to find or create a bulk quote, or another + processing error occurs, the error callback `PUT /bulkQuotes/{ID}/error` + is used. The `{ID}` in the URI should contain the `bulkQuoteId` that was + used for the creation of the bulk quote, or the `{ID}` that was used in + the `GET /bulkQuotes/{ID}` request. summary: Return bulk quote information error tags: - bulkQuotes @@ -1734,7 +1949,9 @@ paths: $ref: '#/components/responses/503' /bulkTransfers: post: - description: The HTTP request `POST /bulkTransfers` is used to request the creation of a bulk transfer in the server. + description: >- + The HTTP request `POST /bulkTransfers` is used to request the creation + of a bulk transfer in the server. summary: Perform bulk transfer tags: - bulkTransfers @@ -1790,7 +2007,11 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' get: - description: The HTTP request `GET /bulkTransfers/{ID}` is used to get information regarding a bulk transfer created or requested earlier. The `{ID}` in the URI should contain the `bulkTransferId` that was used for the creation of the bulk transfer. + description: >- + The HTTP request `GET /bulkTransfers/{ID}` is used to get information + regarding a bulk transfer created or requested earlier. The `{ID}` in + the URI should contain the `bulkTransferId` that was used for the + creation of the bulk transfer. summary: Retrieve bulk transfer information tags: - bulkTransfers @@ -1817,7 +2038,12 @@ paths: '503': $ref: '#/components/responses/503' put: - description: The callback `PUT /bulkTransfers/{ID}` is used to inform the client of a requested or created bulk transfer. The `{ID}` in the URI should contain the `bulkTransferId` that was used for the creation of the bulk transfer (`POST /bulkTransfers`), or the `{ID}` that was used in the `GET /bulkTransfers/{ID}` request. + description: >- + The callback `PUT /bulkTransfers/{ID}` is used to inform the client of a + requested or created bulk transfer. The `{ID}` in the URI should contain + the `bulkTransferId` that was used for the creation of the bulk transfer + (`POST /bulkTransfers`), or the `{ID}` that was used in the `GET + /bulkTransfers/{ID}` request. summary: Return bulk transfer information tags: - bulkTransfers @@ -1852,7 +2078,13 @@ paths: $ref: '#/components/responses/503' /bulkTransfers/{ID}/error: put: - description: If the server is unable to find or create a bulk transfer, or another processing error occurs, the error callback `PUT /bulkTransfers/{ID}/error` is used. The `{ID}` in the URI should contain the `bulkTransferId` that was used for the creation of the bulk transfer (`POST /bulkTransfers`), or the `{ID}` that was used in the `GET /bulkTransfers/{ID}` request. + description: >- + If the server is unable to find or create a bulk transfer, or another + processing error occurs, the error callback `PUT + /bulkTransfers/{ID}/error` is used. The `{ID}` in the URI should contain + the `bulkTransferId` that was used for the creation of the bulk transfer + (`POST /bulkTransfers`), or the `{ID}` that was used in the `GET + /bulkTransfers/{ID}` request. summary: Return bulk transfer information error tags: - bulkTransfers @@ -1901,17 +2133,27 @@ components: 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. + 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. AmountType: title: AmountType type: string enum: - SEND - RECEIVE - description: |- + 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. + + - 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. AuthenticationInfo: title: AuthenticationInfo type: object @@ -1942,7 +2184,10 @@ components: 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. + 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 @@ -1955,7 +2200,9 @@ components: - $ref: '#/components/schemas/OtpValue' - $ref: '#/components/schemas/QRCODE' 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. + description: >- + Contains the authentication value. The format depends on the + authentication type used in the AuthenticationInfo complex type. AuthorizationResponse: title: AuthorizationResponse type: string @@ -1972,15 +2219,28 @@ components: 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. + 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. BinaryString: type: string pattern: ^[A-Za-z0-9-_]+[=]{0,2}$ - description: The API data type BinaryString is a JSON String. The string is a base64url encoding of a string of raw bytes, where padding (character ‘=’) is added at the end of the data if needed to ensure that the string is a multiple of 4 characters. The length restriction indicates the allowed number of characters. + description: >- + The API data type BinaryString is a JSON String. The string is a + base64url encoding of a string of raw bytes, where padding (character + ‘=’) is added at the end of the data if needed to ensure that the string + is a multiple of 4 characters. The length restriction indicates the + allowed number of characters. BinaryString32: type: string pattern: ^[A-Za-z0-9-_]{43}$ - description: The API data type BinaryString32 is a fixed size version of the API data 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. + description: >- + The API data type BinaryString32 is a fixed size version of the API data + 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. BulkTransferState: title: BulkTransactionState type: string @@ -1991,13 +2251,20 @@ components: - PROCESSING - COMPLETED - REJECTED - description: |- + description: >- Below are the allowed values for the enumeration. - - RECEIVED - Payee FSP has received the bulk transfer from the Payer FSP. + + - RECEIVED - Payee FSP has received the bulk transfer from the Payer + FSP. + - PENDING - Payee FSP has validated the bulk transfer. + - ACCEPTED - Payee FSP has accepted to process the bulk transfer. + - PROCESSING - Payee FSP has started to transfer fund to the Payees. + - COMPLETED - Payee FSP has completed transfer of funds to the Payees. + - REJECTED - Payee FSP has rejected to process the bulk transfer. Code: title: Code @@ -2007,11 +2274,22 @@ components: 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 (‘-‘). + 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 (‘-‘). 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. + 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 @@ -2183,23 +2461,46 @@ components: 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”. + 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”. 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)$ + 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. 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). + 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). 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. + 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 @@ -2223,7 +2524,9 @@ components: type: string minLength: 1 maxLength: 128 - pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,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). FspId: title: FspId @@ -2313,7 +2616,9 @@ components: description: Party Id type, id, sub ID or type, and FSP Id. merchantClassificationCode: type: string - description: Used in the context of Payee Information, where the Payee happens to be a merchant accepting merchant payments. + description: >- + Used in the context of Payee Information, where the Payee happens to + be a merchant accepting merchant payments. example: 4321 name: type: string @@ -2321,7 +2626,9 @@ components: example: Henrik Karlsson personalInfo: $ref: '#/components/schemas/PartyPersonalInfo' - description: Personal information used to verify identity of Party such as first, middle, last name and date of birth. + description: >- + Personal information used to verify identity of Party such as first, + middle, last name and date of birth. required: - partyIdInfo Refund: @@ -2331,7 +2638,9 @@ components: properties: originalTransactionId: type: string - description: Reference to the original transaction ID that is requested to be refunded. + description: >- + Reference to the original transaction ID that is requested to be + refunded. example: b51ec534-ee48-4575-b6a9-ead2955b8069 refundReason: type: string @@ -2362,7 +2671,9 @@ components: example: CONSUMER refundInfo: $ref: '#/components/schemas/Refund' - description: Extra information specific to a refund scenario. Should only be populated if scenario is REFUND. + description: >- + Extra information specific to a refund scenario. Should only be + populated if scenario is REFUND. balanceOfPayments: type: string description: Balance of Payments code. @@ -2388,7 +2699,9 @@ components: ExtensionList: title: ExtensionList type: object - description: Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment. + description: >- + Data model for the complex type ExtensionList. An optional list of + extensions, specific to deployment. properties: extension: type: array @@ -2460,46 +2773,71 @@ components: 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. + 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. 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}$ + 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). 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. + 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. + 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. 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. + 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}$ + 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). 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. + 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 ( ). + 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. + + **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 @@ -2524,16 +2862,52 @@ components: - ACCOUNT_ID - IBAN - ALIAS - description: |- + 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. + + - 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. PartyName: title: PartyName type: string @@ -2545,7 +2919,9 @@ components: type: string minLength: 1 maxLength: 128 - description: Either a sub-identifier of a PartyIdentifier, or a sub-type of the PartyIdType, normally a PersonalIdentifierType. + description: >- + Either a sub-identifier of a PartyIdentifier, or a sub-type of the + PartyIdType, normally a PersonalIdentifierType. PersonalIdentifierType: title: PersonalIdentifierType type: string @@ -2563,21 +2939,44 @@ components: - VOTERS_ID - UNITED_NATIONS - OTHER_ID - description: |- + 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. + + - 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. + + - 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. + + - 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. RefundReason: title: RefundReason type: string @@ -2588,7 +2987,10 @@ components: 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. + 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. Money: title: Money type: object @@ -2608,14 +3010,22 @@ components: 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. + 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: type: string - description: ID of the transaction, the ID is decided by the Payer FSP during the creation of the quote. + description: >- + ID of the transaction, the ID is decided by the Payer FSP during the + creation of the quote. quoteId: type: string - description: ID of the quote, the ID is decided by the Payer FSP during the creation of the quote. + description: >- + ID of the quote, the ID is decided by the Payer FSP during the + creation of the quote. payee: $ref: '#/components/schemas/Party' description: Information about the Payee in the proposed financial transaction. @@ -2647,10 +3057,17 @@ components: enum: - PAYER - PAYEE - description: |- + 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. + + - 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. TransactionInitiatorType: title: TransactionInitiatorType type: string @@ -2688,12 +3105,28 @@ components: - TRANSFER - PAYMENT - REFUND - description: |- + 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. + + - 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. TransactionState: title: TransactionState @@ -2713,7 +3146,9 @@ components: title: TransactionSubScenario type: string pattern: ^[A-Z_]{1,32}$ - description: Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type). + description: >- + Possible sub-scenario, defined locally within the scheme (UndefinedEnum + Type). TransferState: title: TransferState type: string @@ -2722,17 +3157,24 @@ components: - RESERVED - COMMITTED - ABORTED - description: |- + 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. + + - ABORTED - Next ledger has aborted the transfer due to a rejection or + failure to perform the transfer. 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 (_). + description: >- + The API data type UndefinedEnum is a JSON String consisting of 1 to 32 + uppercase characters including an underscore character (_). ErrorInformation: title: ErrorInformation type: object @@ -2754,14 +3196,18 @@ components: ErrorInformationResponse: title: ErrorInformationResponse type: object - description: Data model for the complex type object that contains an optional element ErrorInformation used along with 4xx and 5xx responses. + description: >- + Data model for the complex type object that contains an optional element + ErrorInformation used along with 4xx and 5xx responses. properties: errorInformation: $ref: '#/components/schemas/ErrorInformation' ParticipantsTypeIDPutResponse: title: ParticipantsTypeIDPutResponse type: object - description: The object sent in the PUT /participants/{Type}/{ID}/{SubId} and /participants/{Type}/{ID} callbacks. + description: >- + The object sent in the PUT /participants/{Type}/{ID}/{SubId} and + /participants/{Type}/{ID} callbacks. properties: fspId: type: string @@ -2770,7 +3216,9 @@ components: ParticipantsTypeIDSubIDPostRequest: title: ParticipantsTypeIDSubIDPostRequest type: object - description: The object sent in the POST /participants/{Type}/{ID}/{SubId} and /participants/{Type}/{ID} requests. + description: >- + The object sent in the POST /participants/{Type}/{ID}/{SubId} and + /participants/{Type}/{ID} requests. properties: fspId: type: string @@ -2798,7 +3246,9 @@ components: properties: requestId: type: string - description: The ID of the request, decided by the client. Used for identification of the callback from the server. + description: >- + The ID of the request, decided by the client. Used for + identification of the callback from the server. example: b51ec534-ee48-4575-b6a9-ead2955b8069 partyList: type: array @@ -2806,10 +3256,14 @@ components: $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. + description: >- + List of PartyIdInfo elements that the client would like to update or + create FSP information about. currency: type: string - description: Indicate that the provided Currency is supported by each PartyIdInfo in the list. + description: >- + Indicate that the provided Currency is supported by each PartyIdInfo + in the list. example: USD required: - requestId @@ -2824,7 +3278,10 @@ components: description: Party Id type, id, sub ID or type, and FSP Id. errorInformation: $ref: '#/components/schemas/ErrorInformation' - description: If the Party failed to be added, error information should be provided. Otherwise, this parameter should be empty to indicate success. + description: >- + If the Party failed to be added, error information should be + provided. Otherwise, this parameter should be empty to indicate + success. required: - partyId ParticipantsIDPutResponse: @@ -2838,10 +3295,14 @@ components: $ref: '#/components/schemas/PartyResult' minItems: 1 maxItems: 10000 - description: List of PartyResult elements that were either created or failed to be created. + description: >- + List of PartyResult elements that were either created or failed to + be created. currency: type: string - description: Indicate that the provided Currency was set to be supported by each successfully added PartyIdInfo. + description: >- + Indicate that the provided Currency was set to be supported by each + successfully added PartyIdInfo. example: USD required: - partyList @@ -2852,13 +3313,14 @@ components: properties: party: $ref: '#/components/schemas/Party' - description: Information regarding the requested Party. required: - party GeoCode: title: GeoCode type: object - description: Data model for the complex type GeoCode. Indicates the geographic location from where the transaction was initiated. + description: >- + Data model for the complex type GeoCode. Indicates the geographic + location from where the transaction was initiated. properties: latitude: type: string @@ -2878,14 +3340,20 @@ components: properties: transactionRequestId: type: string - description: Common ID between the FSPs for the transaction request object, decided by the Payee FSP. The ID should be reused for resends of the same transaction request. A new ID should be generated for each new transaction request. + description: >- + Common ID between the FSPs for the transaction request object, + decided by the Payee FSP. The ID should be reused for resends of the + same transaction request. A new ID should be generated for each new + transaction request. example: b51ec534-ee48-4575-b6a9-ead2955b8069 payee: $ref: '#/components/schemas/Party' description: Information about the Payee in the proposed financial transaction. payer: $ref: '#/components/schemas/PartyIdInfo' - description: Information about the Payer type, id, sub-type/id, FSP Id in the proposed financial transaction. + description: >- + Information about the Payer type, id, sub-type/id, FSP Id in the + proposed financial transaction. amount: $ref: '#/components/schemas/Money' description: Requested amount to be transferred from the Payer to Payee. @@ -2898,14 +3366,19 @@ components: example: Free-text memo. geoCode: $ref: '#/components/schemas/GeoCode' - description: Longitude and Latitude of the initiating Party. Can be used to detect fraud. + description: >- + Longitude and Latitude of the initiating Party. Can be used to + detect fraud. authenticationType: type: string description: OTP or QR Code, otherwise empty. example: OTP expiration: type: string - description: Can be set to get a quick failure in case the peer FSP takes too long to respond. Also, it may be beneficial for Consumer, Agent, Merchant to know that their request has a time limit. + description: >- + Can be set to get a quick failure in case the peer FSP takes too + long to respond. Also, it may be beneficial for Consumer, Agent, + Merchant to know that their request has a time limit. example: '2016-05-24T08:38:08.699-04:00' extensionList: $ref: '#/components/schemas/ExtensionList' @@ -2923,7 +3396,9 @@ components: properties: transactionId: type: string - description: Identifies a related transaction (if a transaction has been created). + description: >- + Identifies a related transaction (if a transaction has been + created). example: b51ec534-ee48-4575-b6a9-ead2955b8069 transactionRequestState: type: string @@ -2941,11 +3416,20 @@ components: properties: quoteId: type: string - description: Common ID between the FSPs for the quote object, decided by the Payer FSP. The ID should be reused for resends of the same quote for a transaction. A new ID should be generated for each new quote for a transaction. + description: >- + Common ID between the FSPs for the quote object, decided by the + Payer FSP. The ID should be reused for resends of the same quote for + a transaction. A new ID should be generated for each new quote for a + transaction. example: b51ec534-ee48-4575-b6a9-ead2955b8069 transactionId: type: string - description: Common ID (decided by the Payer FSP) between the FSPs for the future transaction object. The actual transaction will be created as part of a successful transfer process. The ID should be reused for resends of the same quote for a transaction. A new ID should be generated for each new quote for a transaction. + description: >- + Common ID (decided by the Payer FSP) between the FSPs for the future + transaction object. The actual transaction will be created as part + of a successful transfer process. The ID should be reused for + resends of the same quote for a transaction. A new ID should be + generated for each new quote for a transaction. example: a8323bc6-c228-4df2-ae82-e5a997baf899 transactionRequestId: type: string @@ -2960,15 +3444,21 @@ components: properties: partyIdType: type: string - description: Information about the Payer in the proposed financial transaction. Type of the identifier. + description: >- + Information about the Payer in the proposed financial + transaction. Type of the identifier. example: PERSONAL_ID partyIdentifier: type: string - description: Information about the Payer in the proposed financial transaction. An indentifier for the Party. + description: >- + Information about the Payer in the proposed financial + transaction. An indentifier for the Party. example: 16135551212 partySubIdOrType: type: string - description: Information about the Payer in the proposed financial transaction. A sub-identifier or sub-type for the Party. + description: >- + Information about the Payer in the proposed financial + transaction. A sub-identifier or sub-type for the Party. example: PASSPORT fspId: type: string @@ -2976,7 +3466,9 @@ components: example: 1234 merchantClassificationCode: type: string - description: Used in the context of Payee Information, where the Payee happens to be a merchant accepting merchant payments. + description: >- + Used in the context of Payee Information, where the Payee + happens to be a merchant accepting merchant payments. example: 1234 name: type: string @@ -3031,14 +3523,20 @@ components: description: Type of transaction for which the quote is requested. geoCode: $ref: '#/components/schemas/GeoCode' - description: Longitude and Latitude of the initiating Party. Can be used to detect fraud. + description: >- + Longitude and Latitude of the initiating Party. Can be used to + detect fraud. note: type: string description: A memo that will be attached to the transaction. example: Free-text memo. expiration: type: string - description: Expiration is optional. It can be set to get a quick failure in case the peer FSP takes too long to respond. Also, it may be beneficial for Consumer, Agent, and Merchant to know that their request has a time limit. + description: >- + Expiration is optional. It can be set to get a quick failure in case + the peer FSP takes too long to respond. Also, it may be beneficial + for Consumer, Agent, and Merchant to know that their request has a + time limit. example: '2016-05-24T08:38:08.699-04:00' extensionList: $ref: '#/components/schemas/ExtensionList' @@ -3098,7 +3596,9 @@ components: example: '0' expiration: type: string - description: Date and time until when the quotation is valid and can be honored when used in the subsequent transaction. + 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' @@ -3106,7 +3606,8 @@ components: ilpPacket: type: string description: The ILP Packet that must be attached to the transfer by the Payer. - example: “AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA” + example: >- + “AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA” condition: type: string description: The condition that must be attached to the transfer by the Payer. @@ -3130,7 +3631,10 @@ components: example: OTP responseType: type: string - description: Enum containing response information; if the customer entered the authentication value, rejected the transaction, or requested a resend of the authentication value. + description: >- + Enum containing response information; if the customer entered the + authentication value, rejected the transaction, or requested a + resend of the authentication value. example: ENTERED required: - responseType @@ -3141,7 +3645,11 @@ components: properties: transferId: type: string - description: The common ID between the FSPs and the optional Switch for the transfer object, decided by the Payer FSP. The ID should be reused for resends of the same transfer. A new ID should be generated for each new transfer. + description: >- + The common ID between the FSPs and the optional Switch for the + transfer object, decided by the Payer FSP. The ID should be reused + for resends of the same transfer. A new ID should be generated for + each new transfer. example: b51ec534-ee48-4575-b6a9-ead2955b8069 payeeFsp: type: string @@ -3156,15 +3664,21 @@ components: description: The transfer amount to be sent. ilpPacket: type: string - description: The ILP Packet containing the amount delivered to the Payee and the ILP Address of the Payee and any other end-to-end data. - example: AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA + description: >- + The ILP Packet containing the amount delivered to the Payee and the + ILP Address of the Payee and any other end-to-end data. + example: >- + AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA condition: type: string description: The condition that must be fulfilled to commit the transfer. example: f5sqb7tBTWPd5Y8BDFdMm9BJR_MNI4isf8p8n4D5pHA expiration: type: string - description: Expiration can be set to get a quick failure expiration of the transfer. The transfer should be rolled back if no fulfilment is delivered before this time. + description: >- + Expiration can be set to get a quick failure expiration of the + transfer. The transfer should be rolled back if no fulfilment is + delivered before this time. example: '2016-05-24T08:38:08.699-04:00' extensionList: $ref: '#/components/schemas/ExtensionList' @@ -3184,7 +3698,9 @@ components: properties: fulfilment: type: string - description: Fulfilment of the condition specified with the transaction. Mandatory if transfer has completed successfully. + description: >- + Fulfilment of the condition specified with the transaction. + Mandatory if transfer has completed successfully. example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8 completedTimestamp: type: string @@ -3214,7 +3730,9 @@ components: example: RECEIVED code: type: string - description: Optional redemption information provided to Payer after transaction has been completed. + description: >- + Optional redemption information provided to Payer after transaction + has been completed. example: Test-Code extensionList: $ref: '#/components/schemas/ExtensionList' @@ -3228,7 +3746,10 @@ components: properties: bulkQuoteId: type: string - description: Common ID between the FSPs for the bulk quote object, decided by the Payer FSP. The ID should be reused for resends of the same bulk quote. A new ID should be generated for each new bulk quote. + description: >- + Common ID between the FSPs for the bulk quote object, decided by the + Payer FSP. The ID should be reused for resends of the same bulk + quote. A new ID should be generated for each new bulk quote. example: b51ec534-ee48-4575-b6a9-ead2955b8069 payer: properties: @@ -3237,7 +3758,9 @@ components: description: Party Id type, id, sub ID or type, and FSP Id. merchantClassificationCode: type: string - description: Used in the context of Payee Information, where the Payee happens to be a merchant accepting merchant payments. + description: >- + Used in the context of Payee Information, where the Payee + happens to be a merchant accepting merchant payments. example: 1234 name: type: string @@ -3245,13 +3768,19 @@ components: example: Henrik Karlsson personalInfo: $ref: '#/components/schemas/PartyPersonalInfo' - description: Personal information used to verify identity of Party such as first, middle, last name and date of birth. + description: >- + Personal information used to verify identity of Party such as + first, middle, last name and date of birth. geoCode: $ref: '#/components/schemas/GeoCode' - description: Longitude and Latitude of the initiating Party. Can be used to detect fraud. + description: >- + Longitude and Latitude of the initiating Party. Can be used to + detect fraud. expiration: type: string - description: Expiration is optional to let the Payee FSP know when a quote no longer needs to be returned. + description: >- + Expiration is optional to let the Payee FSP know when a quote no + longer needs to be returned. example: '2016-05-24T08:38:08.699-04:00' individualQuotes: properties: @@ -3270,15 +3799,21 @@ components: description: Party Id type, id, sub ID or type, and FSP Id. merchantClassificationCode: type: string - description: Used in the context of Payee Information, where the Payee happens to be a merchant accepting merchant payments. + description: >- + Used in the context of Payee Information, where the Payee + happens to be a merchant accepting merchant payments. example: 1234 name: type: string - description: Display name of the Party, could be a real name or a nick name. + description: >- + Display name of the Party, could be a real name or a nick + name. example: Henrik Karlsson personalInfo: $ref: '#/components/schemas/PartyPersonalInfo' - description: Personal information used to verify identity of Party such as first, middle, last name and date of birth. + description: >- + Personal information used to verify identity of Party such + as first, middle, last name and date of birth. amountType: type: string description: SEND for sendAmount, RECEIVE for receiveAmount. @@ -3372,14 +3907,18 @@ components: ilpPacket: type: string description: The ILP Packet that must be attached to the transfer by the Payer. - example: AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA + example: >- + AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA condition: type: string description: The condition that must be attached to the transfer by the Payer. example: f5sqb7tBTWPd5Y8BDFdMm9BJR_MNI4isf8p8n4D5pHA errorInformation: $ref: '#/components/schemas/ErrorInformation' - description: Error code, category description. **Note:** receiveAmount, payeeFspFee, payeeFspCommission, expiration, ilpPacket, condition should not be set if errorInformation is set. + description: >- + Error code, category description. **Note:** receiveAmount, + payeeFspFee, payeeFspCommission, expiration, ilpPacket, condition + should not be set if errorInformation is set. extensionList: $ref: '#/components/schemas/ExtensionList' description: Optional extension, specific to deployment. @@ -3395,10 +3934,14 @@ components: maxItems: 1000 items: $ref: '#/components/schemas/IndividualQuoteResult' - description: Fees for each individual transaction, if any of them are charged per transaction. + description: >- + Fees for each individual transaction, if any of them are charged per + transaction. expiration: type: string - description: Date and time until when the quotation is valid and can be honored when used in the subsequent transaction request. + description: >- + Date and time until when the quotation is valid and can be honored + when used in the subsequent transaction request. example: '2016-05-24T08:38:08.699-04:00' extensionList: $ref: '#/components/schemas/ExtensionList' @@ -3419,8 +3962,11 @@ components: description: Transaction amount to be sent. ilpPacket: type: string - description: ILP Packet containing the amount delivered to the Payee and the ILP Address of the Payee and any other end-to-end data. - example: AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA + description: >- + ILP Packet containing the amount delivered to the Payee and the ILP + Address of the Payee and any other end-to-end data. + example: >- + AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA condition: type: string description: Condition that must be fulfilled to commit the transfer. @@ -3440,7 +3986,11 @@ components: properties: bulkTransferId: type: string - description: Common ID between the FSPs and the optional Switch for the bulk transfer object, decided by the Payer FSP. The ID should be reused for resends of the same bulk transfer. A new ID should be generated for each new bulk transfer. + description: >- + Common ID between the FSPs and the optional Switch for the bulk + transfer object, decided by the Payer FSP. The ID should be reused + for resends of the same bulk transfer. A new ID should be generated + for each new bulk transfer. example: b51ec534-ee48-4575-b6a9-ead2955b8069 bulkQuoteId: type: string @@ -3486,11 +4036,17 @@ components: example: b51ec534-ee48-4575-b6a9-ead2955b8069 fulfilment: type: string - description: Fulfilment of the condition specified with the transaction. **Note:** Either fulfilment or errorInformation should be set, not both. + description: >- + Fulfilment of the condition specified with the transaction. + **Note:** Either fulfilment or errorInformation should be set, not + both. example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8 errorInformation: $ref: '#/components/schemas/ErrorInformation' - description: If transfer is REJECTED, error information may be provided. **Note:** Either fulfilment or errorInformation should be set, not both. + description: >- + If transfer is REJECTED, error information may be provided. + **Note:** Either fulfilment or errorInformation should be set, not + both. extensionList: $ref: '#/components/schemas/ExtensionList' description: Optional extension, specific to deployment. @@ -3541,7 +4097,9 @@ components: schema: type: string required: true - description: The `Content-Type` header indicates the specific version of the API used to send the payload body. + description: >- + The `Content-Type` header indicates the specific version of the API used + to send the payload body. Date: name: Date in: header @@ -3555,76 +4113,113 @@ components: 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. + 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`. + **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`). + 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 schema: type: string required: false - description: The `FSPIOP-Destination` header field is a non-HTTP standard field used by the API for HTTP header based routing of requests and responses to the destination. The field should be set by the original sender of the request (if known), so that any entities between the client and the server do not need to parse the payload for routing purposes. + description: >- + The `FSPIOP-Destination` header field is a non-HTTP standard field used + by the API for HTTP header based routing of requests and responses to + the destination. The field should be set by the original sender of the + request (if known), so that any entities between the client and the + server do not need to parse the payload for routing purposes. FSPIOP-Encryption: name: FSPIOP-Encryption in: header schema: type: string required: false - 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. + 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-Signature: name: FSPIOP-Signature in: header schema: type: string required: false - description: The `FSPIOP-Signature` header field is a non-HTTP standard field used by the API for applying an end-to-end request signature. + 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-URI: name: FSPIOP-URI in: header schema: type: string required: false - description: The `FSPIOP-URI` header field is a non-HTTP standard field used by the API for signature verification, should contain the service URI. Required if signature verification is used, for more information, see [the API Signature document](https://github.com/mojaloop/docs/tree/main/Specification%20Document%20Set). + description: >- + The `FSPIOP-URI` header field is a non-HTTP standard field used by the + API for signature verification, should contain the service URI. 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-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). + 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 required: true schema: type: string - description: The `Accept` header field indicates the version of the API the client would like the server to use. + 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. + 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). + **Note:** The API supports a maximum size of 5242880 bytes (5 + Megabytes). SubId: name: SubId in: path required: true schema: type: string - description: A sub-identifier of the party identifier, or a sub-type of the party identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`. + description: >- + A sub-identifier of the party identifier, or a sub-type of the party + identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`. responses: '200': description: OK @@ -3723,12 +4318,17 @@ components: 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. + 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). + **Note:** The API supports a maximum size of 5242880 bytes (5 + Megabytes). Content-Type: schema: type: string required: true - description: The `Content-Type` header indicates the specific version of the API used to send the payload body. + description: >- + The `Content-Type` header indicates the specific version of the API used + to send the payload body. diff --git a/docs/index.html b/docs/index.html index 26a69a21..f1121a54 100644 --- a/docs/index.html +++ b/docs/index.html @@ -44,6 +44,10 @@ {url: "fspiop-rest-v1.1-openapi3-snippets.yaml", name: "v1.1"}, {url: "fspiop-rest-v2.0-openapi3-snippets.yaml", name: "v2.0"}, {url: "thirdparty-openapi3-snippets.yaml", name: "thirdparty"}, + {url: "sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml", name: "SDK Backend v2.0.0"}, + {url: "sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml", name: "SDK Outbound v2.0.0"}, + {url: "sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets.yaml", name: "SDK Backend v2.1.0"}, + {url: "sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets.yaml", name: "SDK Outbound v2.1.0"}, ], dom_id: '#swagger-ui', deepLinking: true, diff --git a/docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml b/docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml index 86a01c82..65db2078 100644 --- a/docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml +++ b/docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml @@ -1,16 +1,24 @@ openapi: 3.0.1 info: title: Mojaloop SDK Backend API - description: | + 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. + To be implemented by the Digital Financial Service Provider (DFSP) to work + in tandem with the Mojaloop SDK (`mojaloop/sdk-scheme-adapter`). - 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". + 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/ @@ -64,12 +72,20 @@ paths: $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' - summary: Requests information relating to a bulk quote identified by the specified identifier value. + 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. + 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' @@ -90,7 +106,9 @@ paths: - BulkTransactionsPut /requestToPay/{transactionRequestId}: put: - description: It is used to notify the DFSP backend about the status of the requestToPayTransfer. + description: >- + It is used to notify the DFSP backend about the status of the + requestToPayTransfer. operationId: RequestToPayPut parameters: - $ref: '#/components/parameters/transactionRequestId' @@ -129,7 +147,9 @@ paths: $ref: '#/components/responses/400' '500': $ref: '#/components/responses/500' - summary: Execute bulk transfer of funds from an external account to internal accounts. + summary: >- + Execute bulk transfer of funds from an external account to internal + accounts. tags: - BulkTransfers /bulkTransfers/{idValue}: @@ -150,7 +170,9 @@ paths: $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' - summary: Requests information relating to a bulk transfer identified by the specified identifier value. + summary: >- + Requests information relating to a bulk transfer identified by the + specified identifier value. tags: - BulkTransfers /otp/{transactionRequestId}: @@ -176,7 +198,10 @@ paths: - 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. + 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' @@ -194,12 +219,17 @@ paths: $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. + 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. + 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' @@ -218,12 +248,17 @@ paths: $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. + 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: - description: The HTTP request `GET /parties/{idType}/{idValue}` is used to look up information regarding the requested transfer party, identified by `{idType}` and `{idValue}`. + 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: - $ref: '#/components/parameters/idType' @@ -241,12 +276,17 @@ paths: $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. + summary: >- + Requests information relating to a transfer party identified by the + specified identifier type and 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}`. + 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: - $ref: '#/components/parameters/idType' @@ -265,12 +305,16 @@ paths: $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. + summary: >- + Requests information relating to a transfer party identified by the + specified identifier type, value and subId value. tags: - Parties /quoterequests: post: - description: The HTTP request `POST /quoterequests` is used to request the creation of a quote for the provided financial transaction. + description: >- + The HTTP request `POST /quoterequests` is used to request the creation + of a quote for the provided financial transaction. operationId: BackendQuoteRequest requestBody: content: @@ -317,7 +361,9 @@ paths: - TransactionRequest /transfers: post: - description: The HTTP request `POST /transfers` is used to request the creation of a transfer for the transfer party. + description: >- + The HTTP request `POST /transfers` is used to request the creation of a + transfer for the transfer party. operationId: BackendTransfersPost requestBody: content: @@ -341,7 +387,11 @@ paths: - Transfers /transfers/{transferId}: 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. + 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: - $ref: '#/components/parameters/transferId' @@ -358,7 +408,9 @@ paths: 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. + 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' @@ -379,7 +431,9 @@ paths: 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`. + 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 @@ -417,7 +471,9 @@ components: 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. + description: >- + Identifier of the bulk transaction to continue as returned in the + response to a `POST /bulkTransaction` request. responses: '400': content: @@ -426,7 +482,9 @@ components: $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. + description: >- + The party specified by the provided identifier type and value is not + known to the server. '500': content: application/json: @@ -437,7 +495,8 @@ components: 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)$ + 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: @@ -445,7 +504,9 @@ components: type: string minLength: 1 maxLength: 128 - pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,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: @@ -584,20 +645,27 @@ components: type: string minLength: 1 maxLength: 128 - pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,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. + 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}$ + 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: @@ -618,7 +686,8 @@ components: 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}$ + 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 bulkQuoteRequest: description: A request for a bulk quote. @@ -650,7 +719,9 @@ components: expiration: $ref: '#/components/schemas/timestamp' individualQuoteResults: - description: Fees for each individual transaction, if any of them are charged per transaction. + description: >- + Fees for each individual transaction, if any of them are charged per + transaction. items: oneOf: - $ref: '#/components/schemas/IndividualQuoteResultSuccess' @@ -664,7 +735,8 @@ components: 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}$ + 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 bulkTransferRequest: properties: @@ -689,7 +761,9 @@ components: bulkTransferId: $ref: '#/components/schemas/bulkTransferId' homeTransactionId: - description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the switch and DFSP backend systems. type: string individualTransferResults: items: @@ -871,11 +945,18 @@ components: 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)$ + 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. + 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 @@ -905,9 +986,13 @@ components: description: Error message text type: string statusCode: - description: | - Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code. - Otherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message. + description: > + Backend error code from FSP. Ideally, statusCode is FSPIOP + conforming. SDK will use status code to retrieve an FSPIOP error + with the same code. + + Otherwise, a suitable generic FSPIOP will be used with the + errorResponse in the FSPIOP error message. type: string type: object extensionItem: @@ -1016,10 +1101,14 @@ components: title: TransfersIDPatchResponse type: object generalError: - description: This object may represent a number of different error object types and so its properties may vary significantly. + 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. + description: >- + Indicates the geographic location from where the transaction was + initiated. properties: latitude: $ref: '#/components/schemas/latitude' @@ -1086,12 +1175,18 @@ components: - 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})?))$ + 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})?))$ + 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])?$ @@ -1118,14 +1213,17 @@ components: 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}$ + 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. + description: >- + Linked homeR2PTransactionId which was generated as part of POST + /requestToPay to SDK incase of requestToPay transfer. amount: $ref: '#/components/schemas/money' amountType: @@ -1218,11 +1316,15 @@ components: 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)$ + 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}$ + 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. @@ -1268,14 +1370,17 @@ components: 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}$ + 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. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. transactionId: $ref: '#/components/schemas/transactionId' transactionRequestState: @@ -1292,7 +1397,9 @@ components: - REJECTED type: string transactionSubScenario: - description: Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type). Based on FSPIOP 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 @@ -1332,7 +1439,9 @@ components: from: $ref: '#/components/schemas/transferParty' homeTransactionId: - description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. type: string note: maxLength: 128 @@ -1360,7 +1469,8 @@ components: 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}$ + 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: @@ -1388,7 +1498,9 @@ components: description: Party last name. type: string merchantClassificationCode: - description: Up to 4 digits specifying the sender's merchant classification, if known and applicable. + description: >- + Up to 4 digits specifying the sender's merchant classification, if + known and applicable. type: string middleName: description: Party middle name. @@ -1403,7 +1515,9 @@ components: properties: homeR2PTransactionId: type: string - description: Linked homeR2PTransactionId which was generated as part of POST /requestToPay to SDK incase of requestToPay transfer. + description: >- + Linked homeR2PTransactionId which was generated as part of POST + /requestToPay to SDK incase of requestToPay transfer. amount: $ref: '#/components/schemas/money' amountType: @@ -1454,7 +1568,9 @@ components: fulfilment: $ref: '#/components/schemas/IlpFulfilment' homeTransactionId: - description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + 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' @@ -1462,8 +1578,12 @@ components: - 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. + 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 @@ -1482,7 +1602,9 @@ components: properties: homeR2PTransactionId: type: string - description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. transactionRequestState: $ref: '#/components/schemas/transactionRequestState' required: @@ -1491,13 +1613,22 @@ components: title: TransactionSubScenario type: string pattern: ^[A-Z_]{1,32}$ - description: Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type). + 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 (‘-‘). + 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 @@ -1518,7 +1649,11 @@ components: - 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. + 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 @@ -1691,7 +1826,13 @@ components: 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. + 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 @@ -1721,8 +1862,17 @@ components: 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). + 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 @@ -1732,20 +1882,33 @@ components: - 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. + 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. + 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. + 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 + 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' @@ -1761,16 +1924,52 @@ components: - ACCOUNT_ID - IBAN - ALIAS - description: |- + 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. + + - 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 @@ -1783,7 +1982,9 @@ components: type: string minLength: 1 maxLength: 128 - description: Either a sub-identifier of a PartyIdentifier, or a sub-type of the PartyIdType, normally a PersonalIdentifierType. + description: >- + Either a sub-identifier of a PartyIdentifier, or a sub-type of the + PartyIdType, normally a PersonalIdentifierType. ExtensionKey: title: ExtensionKey type: string @@ -1811,7 +2012,9 @@ components: ExtensionList: title: ExtensionList type: object - description: Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment. + description: >- + Data model for the complex type ExtensionList. An optional list of + extensions, specific to deployment. properties: extension: type: array @@ -1825,7 +2028,9 @@ components: 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. An ExtensionList element + has been added to this reqeust in version v1.1 properties: partyIdType: $ref: '#/components/schemas/PartyIdType' @@ -1887,10 +2092,14 @@ components: enum: - SEND - RECEIVE - description: |- + 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. + + - 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 @@ -1914,19 +2123,27 @@ components: 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. + 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. + 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. + description: >- + Data model for the complex type GeoCode. Indicates the geographic + location from where the transaction was initiated. properties: latitude: $ref: '#/components/schemas/Latitude' @@ -1942,7 +2159,8 @@ components: minLength: 1 maxLength: 32768 description: Information for recipient (transport layer information). - example: AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA + example: >- + AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA IlpCondition: title: IlpCondition type: string @@ -1953,7 +2171,14 @@ components: 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. + 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 @@ -1982,11 +2207,15 @@ components: $ref: '#/components/schemas/ErrorInformation' quoteError: type: object - description: This object represents a Mojaloop API error received at any time during the quote process + 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. + 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: @@ -2029,20 +2258,30 @@ components: - RESERVED - COMMITTED - ABORTED - description: |- + 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. + + - 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 + description: >- + 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. 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. + 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: @@ -2069,7 +2308,9 @@ components: $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. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. transactionId: $ref: '#/components/schemas/CorrelationId' to: @@ -2108,7 +2349,9 @@ components: properties: bulkHomeTransactionID: type: string - description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. bulkTransactionId: $ref: '#/components/schemas/CorrelationId' currentState: diff --git a/docs/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets.yaml b/docs/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets.yaml new file mode 100644 index 00000000..6b457e70 --- /dev/null +++ b/docs/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets.yaml @@ -0,0 +1,2837 @@ +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". + license: + name: Apache License Version 2.0, January 2004 + url: http://www.apache.org/licenses/ + version: 2.1.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. + 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}: + get: + operationId: BackendBulkQuotesGet + parameters: + - $ref: '#/components/parameters/idValue' + responses: + '200': + 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': + 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': + 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}: + get: + operationId: BackendOtpGet + parameters: + - $ref: '#/components/parameters/transactionRequestId' + responses: + '200': + 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': + 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': + 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 + /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 + parameters: + - $ref: '#/components/parameters/idType' + - $ref: '#/components/parameters/idValue' + responses: + '200': + 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. + 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 + parameters: + - $ref: '#/components/parameters/idType' + - $ref: '#/components/parameters/idValue' + - $ref: '#/components/parameters/idSubValue' + responses: + '200': + 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 + /quoterequests: + post: + description: >- + The HTTP request `POST /quoterequests` is used to request the creation + of a quote for the provided financial transaction. + operationId: BackendQuoteRequest + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/quoteRequest' + description: Request for a transfer quotation. + responses: + '200': + 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 + /transactionrequests: + post: + operationId: BackendTransactionRequest + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/transactionRequest' + description: Request for Transaction Request. + responses: + '200': + 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 + /transfers: + post: + description: >- + The HTTP request `POST /transfers` is used to request the creation of a + transfer for the transfer party. + operationId: BackendTransfersPost + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/transferRequest' + description: An incoming transfer request. + responses: + '200': + 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. + tags: + - Transfers + /transfers/{transferId}: + 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 + parameters: + - $ref: '#/components/parameters/transferId' + responses: + '200': + 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. + 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' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/fulfilNotification' + description: An incoming notification for fulfiled transfer. + responses: + '200': + description: The notification was accepted. + '500': + $ref: '#/components/responses/500' + summary: Receive notification for a specific transfer. + tags: + - Transfers + /fxQuotes: + post: + description: >- + The HTTP request `POST /fxQuotes` is used to ask an FXP backend to + provide a quotation for a currency conversion. + summary: Calculate FX quote + tags: + - Fx + operationId: FxQuotesPost + requestBody: + description: Details of the FX quote request. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/FxQuotesPostBackendRequest' + responses: + '200': + description: Successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/FxQuotesPostBackendResponse' + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' + /fxTransfers: + post: + description: >- + The HTTP request `POST /fxTransfers` is used to ask an FXP backend to + confirm the execution of an agreed currency conversion. + summary: Perform FX transfer + tags: + - Fx + operationId: FxTransfersPost + requestBody: + description: Details of the FX transfer request. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/FxTransfersPostBackendRequest' + responses: + '200': + description: Successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/FxTransfersPostBackendResponse' + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' + /fxTransfers/{commitRequestId}: + put: + description: >- + The HTTP request `PUT /fxTransfers/{commitRequestId}` is used to notify + an FXP backend about the status of currency conversion. + summary: FX Commit Notification + tags: + - Fx + operationId: FxTransfersById + requestBody: + description: Status of the FX transfer. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/FxTransfersPutBackendRequest' + responses: + '200': + $ref: '#/components/responses/200' + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' +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. + 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. + properties: + 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' + 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 + 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: + - quoteId + - transactionId + - to + - amountType + - 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' + required: + - quoteId + - errorResponse + type: object + IndividualQuoteResultSuccess: + description: Data model for successful individual quote in a bulk quote response. + properties: + 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' + transferAmount: + $ref: '#/components/schemas/money' + transferAmountCurrency: + $ref: '#/components/schemas/currency' + required: + - quoteId + type: object + IndividualTransfer: + description: Data model for individual transfer in a bulk transfer request. + properties: + 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' + 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 + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + to: + $ref: '#/components/schemas/transferParty' + transactionType: + $ref: '#/components/schemas/transactionType' + transferId: + $ref: '#/components/schemas/transferId' + required: + - transferId + - amount + - currency + 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 + 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 + 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}$ + type: string + bulkQuoteRequest: + 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' + individualQuotes: + items: + $ref: '#/components/schemas/IndividualQuote' + maxItems: 1000 + minItems: 1 + type: array + required: + - bulkQuoteId + - 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: + 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 + required: + - bulkQuoteId + - individualQuoteResults + 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}$ + type: string + bulkTransferRequest: + properties: + bulkQuote: + $ref: '#/components/schemas/bulkQuoteResponse' + bulkTransferId: + $ref: '#/components/schemas/bulkTransferId' + from: + $ref: '#/components/schemas/transferParty' + individualTransfers: + items: + $ref: '#/components/schemas/IndividualTransfer' + maxItems: 1000 + minItems: 1 + type: array + required: + - bulkTransferId + - individualTransfers + type: object + bulkTransferResponse: + 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 + individualTransferResults: + 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 + 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 + 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' + 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. + 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' + supportedCurrencies: + type: array + description: Currencies in which the party can receive funds. + items: + $ref: '#/components/schemas/currency' + minItems: 0 + maxItems: 16 + kycInformation: + $ref: '#/components/schemas/KYCInformation' + 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 + KYCInformation: + title: KYCInformation + type: string + 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" + } + } + 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 + errorResponse: + type: object + properties: + statusCode: + type: string + description: > + Backend error code from FSP. Ideally, statusCode is FSPIOP + conforming. SDK will use status code to retrieve an FSPIOP error + with the same code. + + Otherwise, a suitable generic FSPIOP will be used with the + errorResponse in the FSPIOP error message. + message: + type: string + description: Error message text. + 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. + + - 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: 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 + 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' + kycInformation: + $ref: '#/components/schemas/KYCInformation' + 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 + 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' + CurrencyConverter: + title: CurrencyConverter + type: string + enum: + - PAYER + - PAYEE + description: >- + 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 + 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 + FxMoney: + title: FxMoney + 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. + properties: + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + required: + - currency + FxCharge: + title: FxCharge + type: object + 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: + 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: + - chargeType + FxConversion: + title: FxConversion + 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. + 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. + 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 + 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 + extensionList: + allOf: + - $ref: '#/components/schemas/ExtensionList' + - description: The extension list for the currency conversion request. + required: + - conversionId + - initiatingFsp + - counterPartyFsp + - amountType + - sourceAmount + - targetAmount + - expiration + FxQuotesPostBackendRequest: + title: FxQuotesPostBackendRequest + type: object + description: The object sent in the POST /fxQuotes request. + 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. + required: + - conversionRequestId + - conversionTerms + FxQuotesPostBackendResponse: + title: FxQuotesPostBackendResponse + type: object + description: >- + The object sent as a response for the POST /fxQuotes request. The terms + under which the FXP will undertake the currency conversion proposed by + the requester. + properties: + homeTransactionId: + description: >- + Transaction ID for the FXP backend, used to reconcile transactions + between the Switch and FXP backend systems. + type: string + conversionTerms: + allOf: + - $ref: '#/components/schemas/FxConversion' + - description: >- + The terms under which the FXP will undertake the currency + conversion proposed by the requester. + required: + - conversionTerms + 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. + FxTransfersPostBackendRequest: + title: FxTransfersPostBackendRequest + type: object + description: The object sent in the POST /fxTransfers request. + properties: + homeTransactionId: + description: >- + Transaction ID for the FXP backend, used to reconcile transactions + between the Switch and FXP backend systems. + type: string + commitRequestId: + $ref: '#/components/schemas/commitRequestId' + determiningTransferId: + $ref: '#/components/schemas/determiningTransferId' + initiatingFsp: + $ref: '#/components/schemas/initiatingFsp' + counterPartyFsp: + $ref: '#/components/schemas/counterPartyFsp' + sourceAmount: + $ref: '#/components/schemas/sourceAmount' + targetAmount: + $ref: '#/components/schemas/targetAmount' + condition: + $ref: '#/components/schemas/condition' + required: + - commitRequestId + - initiatingFsp + - counterPartyFsp + - sourceAmount + - targetAmount + 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. + FxTransfersPostBackendResponse: + title: FxTransfersPostBackendResponse + type: object + description: The object sent as a response for the POST /fxTransfers request. + properties: + homeTransactionId: + description: >- + Transaction ID for the FXP backend, used to reconcile transactions + between the Switch and FXP backend systems. + type: string + fulfilment: + $ref: '#/components/schemas/fulfilment' + completedTimestamp: + $ref: '#/components/schemas/completedTimestamp' + conversionState: + $ref: '#/components/schemas/conversionState' + extensionList: + $ref: '#/components/schemas/ExtensionList' + required: + - conversionState + FxTransfersPutBackendRequest: + title: FxTransfersPutBackendRequest + type: object + description: PUT /fxTransfers/{commitRequestId} object + properties: + homeTransactionId: + description: >- + Transaction ID for the FXP backend, used to reconcile transactions + between the Switch and FXP backend systems. + type: string + fulfilment: + $ref: '#/components/schemas/fulfilment' + completedTimestamp: + $ref: '#/components/schemas/completedTimestamp' + conversionState: + $ref: '#/components/schemas/conversionState' + extensionList: + $ref: '#/components/schemas/ExtensionList' + required: + - conversionState + responses: + '200': + description: OK + '400': + description: Malformed or missing required headers or parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + '500': + description: An error occurred processing the request. + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' diff --git a/docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml b/docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml index 7237815a..b6e5c4cd 100644 --- a/docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml +++ b/docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml @@ -1,14 +1,20 @@ openapi: 3.0.1 info: title: Mojaloop SDK Outbound Scheme Adapter API - description: | + description: > Specification for the Mojaloop SDK Scheme Adapter Outbound Transfers API - This API can be used by DFSP backends to simplify the process of sending funds to other parties within a Mojaloop scheme. - Please see other documentation on https://github.com/mojaloop/sdk-scheme-adapter for more information. + This API can be used by DFSP backends to simplify the process of sending + funds to other parties within a Mojaloop scheme. - **Note on terminology:** The term "Switch" is equal to the term "Hub", and the term "FSP" is equal to the term "DFSP". + + Please see other documentation on + https://github.com/mojaloop/sdk-scheme-adapter for more information. + + + **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/main/LICENSE.md @@ -17,17 +23,24 @@ paths: /: get: summary: Health check endpoint - description: This endpoint allows a user of the SDK scheme adapter to check the outbound transfers service is listening. + description: >- + This endpoint allows a user of the SDK scheme adapter to check the + outbound transfers service is listening. tags: - Health responses: '200': - description: Returns empty body if the scheme adapter outbound transfers service is running. + description: >- + Returns empty body if the scheme adapter outbound transfers service + is running. /accounts: 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. + 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: @@ -51,8 +64,9 @@ paths: /bulkQuotes: 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. + description: > + The HTTP request `POST /bulkQuotes` is used to request a bulk quote to + fascilitate funds transfer from payer DFSP to payees' DFSP. tags: - BulkQuotes requestBody: @@ -74,7 +88,11 @@ paths: /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. + 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 parameters: @@ -95,8 +113,9 @@ paths: /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. + description: > + The HTTP request `POST /bulkTransactions` is used to request the + movement of funds from payer DFSP to payees' DFSP. tags: - BulkTransactions requestBody: @@ -116,7 +135,13 @@ paths: /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. + 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: @@ -144,8 +169,9 @@ paths: /bulkTransfers: post: summary: Sends money from one account to multiple accounts - description: | - The HTTP request `POST /bulkTransfers` is used to request the movement of funds from payer DFSP to payees' DFSP. + description: > + The HTTP request `POST /bulkTransfers` is used to request the movement + of funds from payer DFSP to payees' DFSP. tags: - BulkTransfers requestBody: @@ -165,7 +191,11 @@ paths: /bulkTransfers/{bulkTransferId}: get: summary: Retrieves information for a specific bulk transfer - description: 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. + description: >- + 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 parameters: @@ -188,7 +218,11 @@ paths: - $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). + 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 @@ -204,7 +238,11 @@ paths: - $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). + 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 @@ -236,8 +274,10 @@ paths: /requestToPay: post: summary: Receiver requesting funds from Sender - description: | - The HTTP request `POST /requestToPay` is used to support Pull Funds pattern where in a receiver can request for funds from the Sender. + description: > + The HTTP request `POST /requestToPay` is used to support Pull Funds + pattern where in a receiver can request for funds from the Sender. + The underlying API has two stages: 1. Party lookup. This facilitates a check by the sending party that the destination party is correct before proceeding with a money movement. @@ -256,11 +296,19 @@ paths: $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. + 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: @@ -279,9 +327,13 @@ paths: $ref: '#/components/responses/transferTimeout' /requestToPayTransfer: post: - summary: Used to trigger funds from customer fsp account to merchant fsp account. This is a follow-up request to requestToPay. - description: | - The HTTP request `POST /requestToPayTransfer` is used to request the movement of funds from payer DFSP to payee DFSP. + summary: >- + Used to trigger funds from customer fsp account to merchant fsp account. + This is a follow-up request to requestToPay. + description: > + The HTTP request `POST /requestToPayTransfer` 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. Quotation. This facilitates the exchange of fee information and the construction of a cryptographic "contract" between payee and payer DFSPs before funds are transferred. @@ -289,17 +341,30 @@ paths: 3. Transfer. The enactment of the previously agreed "contract" This method has several modes of operation. - - 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 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 otp, 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 variable `AUTO_ACCEPT_OTP` is set to `"false"` this method will terminate and return the otp when it has been received from the payee DFSP. + - If the configuration variable `AUTO_ACCEPT_OTP` is set to `"false"` + this method will terminate and return the otp when it has been received + from the payee DFSP. If the payer 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. + 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... + 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: - RequestToPayTransfer requestBody: @@ -320,13 +385,21 @@ paths: $ref: '#/components/responses/transferTimeout' /requestToPayTransfer/{transactionRequestId}: put: - summary: 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 otp stage. + summary: >- + 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 otp stage. + - The request body should contain either the "acceptOTP" or "acceptQuote" property set to `true` as required to continue the transfer. + The request body should contain either the "acceptOTP" or "acceptQuote" + property set to `true` as required to continue the transfer. - See the description of the `POST /requestToPayTransfer` HTTP method for more information on modes of transfer. + + See the description of the `POST /requestToPayTransfer` HTTP method for + more information on modes of transfer. tags: - RequestToPayTransferID requestBody: @@ -367,8 +440,10 @@ paths: /transfers: 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. + 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. @@ -376,17 +451,30 @@ paths: 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 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 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. + 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... + + 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: - Transfers requestBody: @@ -407,13 +495,22 @@ paths: $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. + 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. - 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. + See the description of the `POST /transfers` HTTP method for more + information on modes of transfer. tags: - Transfers requestBody: @@ -434,7 +531,11 @@ paths: $ref: '#/components/responses/transferTimeout' get: summary: Retrieves information for a specific transfer - 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. + 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. tags: - Transfers parameters: @@ -466,16 +567,52 @@ components: - ACCOUNT_ID - IBAN - ALIAS - description: |- + 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. + + - 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 @@ -488,10 +625,16 @@ components: type: string minLength: 1 maxLength: 128 - description: Either a sub-identifier of a PartyIdentifier, or a sub-type of the PartyIdType, normally a PersonalIdentifierType. + description: >- + Either a sub-identifier of a PartyIdentifier, or a sub-type of the + PartyIdType, normally a PersonalIdentifierType. 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. + 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 @@ -680,8 +823,15 @@ components: 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 (‘-‘). + 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 errorResponse: type: object @@ -717,7 +867,14 @@ components: 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. + 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 @@ -752,7 +909,9 @@ components: ExtensionList: title: ExtensionList type: object - description: Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment. + description: >- + Data model for the complex type ExtensionList. An optional list of + extensions, specific to deployment. properties: extension: type: array @@ -784,11 +943,16 @@ components: $ref: '#/components/schemas/ErrorInformation' transferError: type: object - description: This object represents a Mojaloop API error received at any time during the transfer process + description: >- + 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. 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. + 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' accountsResponse: @@ -843,18 +1007,29 @@ components: 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. + 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 ( ). - 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. + **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}$ + 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: @@ -862,7 +1037,9 @@ components: type: string minLength: 1 maxLength: 128 - pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,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: @@ -870,20 +1047,26 @@ components: type: string minLength: 1 maxLength: 128 - pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,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)$ + 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. + 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 @@ -932,16 +1115,26 @@ components: enum: - SEND - RECEIVE - description: |- + 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. + + - 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. + 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 @@ -953,7 +1146,9 @@ components: title: TransactionSubScenario type: string pattern: ^[A-Z_]{1,32}$ - description: Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type). + description: >- + Possible sub-scenario, defined locally within the scheme (UndefinedEnum + Type). example: LOCALLY_DEFINED_SUBSCENARIO Note: title: Note @@ -1001,7 +1196,9 @@ components: properties: homeTransactionId: type: string - description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. bulkQuoteId: $ref: '#/components/schemas/CorrelationId' from: @@ -1018,8 +1215,17 @@ components: 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). + 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 @@ -1041,19 +1247,27 @@ components: 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. + 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. + 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. + description: >- + Data model for the complex type GeoCode. Indicates the geographic + location from where the transaction was initiated. properties: latitude: $ref: '#/components/schemas/Latitude' @@ -1069,7 +1283,8 @@ components: minLength: 1 maxLength: 32768 description: Information for recipient (transport layer information). - example: AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA + example: >- + AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA IlpCondition: title: IlpCondition type: string @@ -1078,11 +1293,15 @@ components: 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 + 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. + 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: @@ -1122,7 +1341,9 @@ components: $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. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. expiration: $ref: '#/components/schemas/DateTime' extensionList: @@ -1209,27 +1430,42 @@ components: - 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. + 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. + 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. + 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 + 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. An ExtensionList element has been added to this reqeust in version v1.1 + 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' @@ -1292,7 +1528,9 @@ components: properties: homeTransactionId: type: string - description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. to: $ref: '#/components/schemas/Party' reference: @@ -1329,7 +1567,9 @@ components: properties: bulkHomeTransactionID: type: string - description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. bulkTransactionId: $ref: '#/components/schemas/CorrelationId' options: @@ -1352,12 +1592,17 @@ components: - RESERVED - COMMITTED - ABORTED - description: |- + 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. + + - ABORTED - Next ledger has aborted the transfer due to a rejection or + failure to perform the transfer. example: RESERVED IlpFulfilment: title: IlpFulfilment @@ -1394,7 +1639,9 @@ components: $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. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. bulkTransferState: $ref: '#/components/schemas/TransferState' completedTimestamp: @@ -1437,13 +1684,17 @@ components: - true - false bulkTransactionContinuationAcceptParty: - description: The object sent back as confirmation of payee parties when autoAcceptParty is false. + 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. + description: >- + List of individual transfers in a bulk transfer with accept party + information. type: array minItems: 1 items: @@ -1461,7 +1712,9 @@ components: - true - false bulkTransactionContinuationAcceptQuote: - description: The object sent back as confirmation of quotes when autoAcceptQuotes is false. + description: >- + The object sent back as confirmation of quotes when autoAcceptQuotes is + false. type: object required: - individualTransfers @@ -1476,11 +1729,15 @@ components: - $ref: '#/components/schemas/transferContinuationAcceptQuote' partyError: type: object - description: This object represents a Mojaloop API error received at any time during the party discovery process + 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. + 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: @@ -1551,7 +1808,9 @@ components: properties: homeTransactionId: type: string - description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. bulkTransferId: $ref: '#/components/schemas/CorrelationId' bulkQuoteId: @@ -1569,7 +1828,9 @@ components: $ref: '#/components/schemas/ExtensionList' individualTransferFulfilment: type: object - description: A Mojaloop API transfer fulfilment for individual transfers in a bulk transfer + description: >- + A Mojaloop API transfer fulfilment for individual transfers in a bulk + transfer properties: fulfilment: $ref: '#/components/schemas/IlpFulfilment' @@ -1607,7 +1868,6 @@ components: properties: body: $ref: '#/components/schemas/Party' - description: Information regarding the requested Party. headers: type: object required: @@ -1627,12 +1887,28 @@ components: - TRANSFER - PAYMENT - REFUND - description: |- + 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. + + - 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: @@ -1641,10 +1917,17 @@ components: enum: - PAYER - PAYEE - description: |- + 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. + + - 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 @@ -1668,7 +1951,11 @@ components: 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. + 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 @@ -1735,7 +2022,6 @@ components: type: object properties: fspId: - title: destination DFSP requested to calculate the quote $ref: '#/components/schemas/FspId' quotesPostRequest: $ref: '#/components/schemas/QuotesPostRequest' @@ -1764,7 +2050,9 @@ components: $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. + 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' @@ -1819,7 +2107,9 @@ components: properties: homeR2PTransactionId: type: string - description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. from: $ref: '#/components/schemas/transferParty' to: @@ -1849,7 +2139,6 @@ components: properties: body: $ref: '#/components/schemas/Party' - description: Information regarding the requested Party. headers: type: object required: @@ -1926,8 +2215,6 @@ components: 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 @@ -1994,7 +2281,9 @@ components: $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. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. from: $ref: '#/components/schemas/transferParty' to: @@ -2035,8 +2324,11 @@ components: 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. + 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: @@ -2047,11 +2339,12 @@ components: 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. + 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: @@ -2078,7 +2371,9 @@ components: properties: homeR2PTransactionId: type: string - description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. transactionRequestId: $ref: '#/components/schemas/CorrelationId' from: @@ -2109,7 +2404,10 @@ components: - 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. + 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 @@ -2117,26 +2415,33 @@ components: 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. + 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. + 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. + 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. + description: >- + Contains the authentication value. The format depends on the + authentication type used in the AuthenticationInfo complex type. AuthenticationInfo: title: AuthenticationInfo type: object @@ -2188,7 +2493,9 @@ components: $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. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. transactionRequestId: $ref: '#/components/schemas/CorrelationId' from: @@ -2220,8 +2527,11 @@ components: 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. + 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: @@ -2241,8 +2551,6 @@ components: 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 @@ -2329,7 +2637,9 @@ components: properties: homeTransactionId: type: string - description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. from: $ref: '#/components/schemas/transferParty' to: @@ -2351,7 +2661,10 @@ components: 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. + 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 @@ -2532,21 +2845,27 @@ components: 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. + description: >- + Identifier of the bulk transfer to continue as returned in the response + to a `POST /bulkTransfers` request. 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. + description: >- + 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 bulk transfer to continue as returned in the response to a `POST /bulkTransfers` request. + description: >- + Identifier of the bulk transfer to continue as returned in the response + to a `POST /bulkTransfers` request. Type: name: Type in: path @@ -2567,18 +2886,24 @@ components: required: true schema: type: string - description: A sub-identifier of the party identifier, or a sub-type of the party identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`. + 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. + 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. + description: >- + Identifier of the transfer to continue as returned in the response to a + `POST /transfers` request. diff --git a/docs/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets.yaml b/docs/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets.yaml new file mode 100644 index 00000000..24c97043 --- /dev/null +++ b/docs/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets.yaml @@ -0,0 +1,3451 @@ +openapi: 3.0.1 +info: + title: Mojaloop SDK Outbound Scheme Adapter API + description: > + Specification for the Mojaloop SDK Scheme Adapter Outbound Transfers API + + + This API can be used by DFSP backends to simplify the process of sending + funds to other parties within a Mojaloop scheme. + + + Please see other documentation on + https://github.com/mojaloop/sdk-scheme-adapter for more information. + + + **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/main/LICENSE.md + version: 2.1.0 +paths: + /: + get: + summary: Health check endpoint + description: >- + This endpoint allows a user of the SDK scheme adapter to check the + outbound transfers service is listening. + tags: + - Health + responses: + '200': + description: >- + Returns empty body if the scheme adapter outbound transfers service + is running. + /accounts: + 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 + tags: + - Accounts + requestBody: + description: Identities list request body + content: + application/json: + schema: + $ref: '#/components/schemas/accountsRequest' + required: true + responses: + '200': + $ref: '#/components/responses/accountsCreationCompleted' + '400': + $ref: '#/components/responses/accountsCreationError' + '500': + $ref: '#/components/responses/accountsCreationError' + '504': + $ref: '#/components/responses/accountsCreationTimeout' + /bulkQuotes: + 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. + tags: + - BulkQuotes + requestBody: + description: Bulk quote request body + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteRequest' + 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 + 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' + /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: + $ref: '#/components/schemas/errorResponse' + /bulkTransfers: + post: + summary: Sends money from one account to multiple accounts + description: > + The HTTP request `POST /bulkTransfers` is used to request the movement + of funds from payer DFSP to payees' DFSP. + tags: + - BulkTransfers + requestBody: + description: Bulk transfer request body + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferRequest' + required: true + responses: + '200': + $ref: '#/components/responses/bulkTransferSuccess' + '400': + $ref: '#/components/responses/bulkTransferBadRequest' + '500': + $ref: '#/components/responses/errorResponse' + /bulkTransfers/{bulkTransferId}: + get: + summary: Retrieves information for a specific bulk transfer + description: >- + 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 + parameters: + - $ref: '#/components/parameters/bulkTransferId' + responses: + '200': + description: Bulk transfer information successfully retrieved + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferStatusResponse' + '500': + description: An error occurred processing the bulk transfer + content: + 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: + post: + summary: Quotes endpoint + description: is used to request quotes from other DFSP + tags: + - quotes + operationId: QuotesPost + requestBody: + description: Quotes request payload + content: + application/json: + schema: + $ref: '#/components/schemas/simpleQuotesPostRequest' + required: true + responses: + '200': + $ref: '#/components/responses/quotesPostSuccess' + '500': + $ref: '#/components/responses/quotesServerError' + /requestToPay: + post: + summary: Receiver requesting funds from Sender + description: > + The HTTP request `POST /requestToPay` is used to support Pull Funds + pattern where in a receiver can request for funds from the Sender. + + The underlying API has two stages: + + 1. Party lookup. This facilitates a check by the sending party that the destination party is correct before proceeding with a money movement. + 2. Transaction Request. This request enables a Payee to request Payer to send electronic funds to the Payee. + tags: + - RequestToPay + requestBody: + description: RequestToPay request body + content: + application/json: + schema: + $ref: '#/components/schemas/requestToPayRequest' + required: true + 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: >- + Used to trigger funds from customer fsp account to merchant fsp account. + This is a follow-up request to requestToPay. + description: > + The HTTP request `POST /requestToPayTransfer` 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. Quotation. This facilitates the exchange of fee information and the construction of a cryptographic "contract" between payee and payer DFSPs before funds are transferred. + 2. Authorization. This facilitates getting OTP from payee DFSP. + 3. Transfer. The enactment of the previously agreed "contract" + + This method has several modes of operation. + + - 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 otp, 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 variable `AUTO_ACCEPT_OTP` is set to `"false"` + this method will terminate and return the otp when it has been received + from the payee DFSP. + If the payer 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: + - RequestToPayTransfer + requestBody: + description: Request To Pay Transfer request body + content: + application/json: + schema: + $ref: '#/components/schemas/requestToPayTransferRequest' + required: true + responses: + '200': + $ref: '#/components/responses/requestToPayTransferSuccess' + '400': + $ref: '#/components/responses/requestToPayTransferBadRequest' + '500': + $ref: '#/components/responses/transferServerError' + '504': + $ref: '#/components/responses/transferTimeout' + /requestToPayTransfer/{transactionRequestId}: + put: + summary: >- + 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 otp stage. + + + The request body should contain either the "acceptOTP" or "acceptQuote" + property set to `true` as required to continue the transfer. + + + See the description of the `POST /requestToPayTransfer` HTTP method for + more information on modes of transfer. + tags: + - RequestToPayTransferID + requestBody: + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/transferContinuationAcceptQuote' + - $ref: '#/components/schemas/transferContinuationAcceptOTP' + parameters: + - $ref: '#/components/parameters/transactionRequestId' + responses: + '200': + $ref: '#/components/responses/transferSuccess' + '500': + $ref: '#/components/responses/transferServerError' + '504': + $ref: '#/components/responses/transferTimeout' + /simpleTransfers: + post: + summary: Simple Transfers endpoint + description: is used to request a transfer + tags: + - transfers + operationId: SimpleTransfersPost + requestBody: + description: Simple Transfer request payload + content: + application/json: + schema: + $ref: '#/components/schemas/simpleTransfersPostRequest' + required: true + responses: + '200': + $ref: '#/components/responses/simpleTransfersPostSuccess' + '500': + $ref: '#/components/responses/simpleTransfersServerError' + /transfers: + 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... + tags: + - Transfers + requestBody: + description: Transfer request body + content: + application/json: + schema: + $ref: '#/components/schemas/transferRequest' + required: true + responses: + '200': + $ref: '#/components/responses/transferSuccess' + '400': + $ref: '#/components/responses/transferBadRequest' + '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 and/or conversion + 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 and/or currency conversion + stage. + + + The request body should contain either the "acceptParty" or + "acceptQuote" or "acceptConversion" 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 + requestBody: + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/transferContinuationAcceptParty' + - $ref: '#/components/schemas/transferContinuationAcceptQuote' + - $ref: '#/components/schemas/transferContinuationAcceptConversion' + parameters: + - $ref: '#/components/parameters/transferId' + responses: + '200': + $ref: '#/components/responses/transferSuccess' + '500': + $ref: '#/components/responses/transferServerError' + '504': + $ref: '#/components/responses/transferTimeout' + get: + summary: Retrieves information for a specific transfer + 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. + tags: + - Transfers + parameters: + - $ref: '#/components/parameters/transferId' + responses: + '200': + description: Transfer information successfully retrieved + content: + application/json: + schema: + $ref: '#/components/schemas/transferStatusResponse' + '500': + description: An error occurred processing the transfer + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + /services/FXP: + get: + description: >- + The HTTP request `GET /services/FXP` is used to request information + about the participants in a scheme who offer currency conversion + services. + summary: Obtain a list of the DFSPs in the scheme who provide FXP service + tags: + - servicesFXP + operationId: ServicesFXPGet + responses: + '200': + $ref: '#/components/responses/servicesFXPSucess' + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' + /services/FXP/{SourceCurrency}/{TargetCurrency}: + get: + description: >- + The HTTP request `GET /services/FXP/{SourceCurrency}/{TargetCurrency}` + is used to request information about the participants in a scheme who + offer currency conversion services in a particular currency corridor. + The required corridor is specified by giving the ISO 4217 currency code + for the SourceCurrency and the TargetCurrency. + summary: Obtain a list of the DFSPs in the scheme who provide FXP service + tags: + - servicesFXP + operationId: ServicesFXPSourceCurrencyTargetCurrencyGet + parameters: + - $ref: '#/components/parameters/SourceCurrency' + - $ref: '#/components/parameters/TargetCurrency' + responses: + '200': + $ref: '#/components/responses/servicesFXPSucess' + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' + /fxQuotes: + post: + description: >- + The HTTP request `POST /fxQuotes` is used to ask to provide a quotation + for a currency conversion. + summary: Calculate FX quote + tags: + - Fx + operationId: FxQuotesPost + requestBody: + description: Details of the FX quote request. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/FxQuotesPostOutboundRequest' + responses: + '200': + description: Successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/FxQuotesPostOutboundResponse' + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' + /fxTransfers: + post: + description: >- + The HTTP request `POST /fxTransfers` is used to ask to confirm the + execution of an agreed currency conversion. + summary: Perform FX transfer + tags: + - Fx + operationId: FxTransfersPost + requestBody: + description: Details of the FX transfer request. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/FxTransfersPostOutboundRequest' + responses: + '200': + description: Successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/FxTransfersPostOutboundResponse' + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' +components: + schemas: + 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. + 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 + 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-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 + errorResponse: + type: object + properties: + statusCode: + type: string + description: > + Backend error code from FSP. Ideally, statusCode is FSPIOP + conforming. SDK will use status code to retrieve an FSPIOP error + with the same code. + + Otherwise, a suitable generic FSPIOP will be used with the + errorResponse in the FSPIOP error message. + message: + 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 + - 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 + type: string + minLength: 1 + maxLength: 128 + description: Error description string. + 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 + 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 + 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' + 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' + 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' + postAccountsResponse: + type: object + required: + - body + properties: + body: + type: object + headers: + type: object + errorAccountsResponse: + allOf: + - $ref: '#/components/schemas/errorResponse' + - type: object + required: + - executionState + 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. + KYCInformation: + title: KYCInformation + type: string + 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" + } + } + 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' + supportedCurrencies: + type: array + description: Currencies in which the party can receive funds. + items: + $ref: '#/components/schemas/Currency' + minItems: 0 + maxItems: 16 + kycInformation: + $ref: '#/components/schemas/KYCInformation' + 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 + 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/transferTransactionType' + subScenario: + $ref: '#/components/schemas/TransactionSubScenario' + note: + $ref: '#/components/schemas/Note' + extensions: + $ref: '#/components/schemas/ExtensionList' + required: + - quoteId + - to + - amountType + - currency + - transactionType + - amount + 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' + 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 + 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 + bulkQuoteResponse: + type: object + required: + - bulkQuoteId + - individualQuoteResults + - currentState + - expiration + properties: + 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. + expiration: + $ref: '#/components/schemas/DateTime' + extensionList: + $ref: '#/components/schemas/ExtensionList' + currentState: + $ref: '#/components/schemas/bulkTransferStatus' + individualQuoteResults: + type: array + maxItems: 1000 + items: + $ref: '#/components/schemas/individualQuoteResult' + description: List of individualQuoteResults in a bulk transfer response. + bulkQuoteErrorResponse: + allOf: + - $ref: '#/components/schemas/errorResponse' + - type: object + required: + - bulkQuoteState + properties: + bulkQuoteState: + $ref: '#/components/schemas/bulkQuoteResponse' + bulkQuoteStatus: + type: string + enum: + - ERROR_OCCURRED + - COMPLETED + bulkQuoteStatusResponse: + type: object + required: + - bulkQuoteId + - currentState + - individualQuotes + properties: + bulkQuoteId: + $ref: '#/components/schemas/CorrelationId' + currentState: + $ref: '#/components/schemas/bulkQuoteStatus' + individualQuotes: + type: array + minItems: 1 + maxItems: 1000 + items: + $ref: '#/components/schemas/individualQuote' + autoAcceptPartyOption: + type: object + required: + - enabled + properties: + enabled: + type: boolean + enum: + - false + - true + 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' + 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' + 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' + kycInformation: + $ref: '#/components/schemas/KYCInformation' + 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 + bulkTransactionIndividualTransfer: + title: BulkTransactionIndividualTransfer + type: object + description: Data model for the complex type 'bulkTransactionIndividualTransfer'. + properties: + 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/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' + 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 + CurrencyConverter: + title: CurrencyConverter + type: string + enum: + - PAYER + - PAYEE + description: >- + 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 + 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' + 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' + 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: + $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' + 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: + $ref: '#/components/schemas/transferError' + transferStatus: + type: string + enum: + - ERROR_OCCURRED + - WAITING_FOR_PARTY_ACCEPTANCE + - WAITING_FOR_QUOTE_ACCEPTANCE + - WAITING_FOR_CONVERSION_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 + FxMoney: + title: FxMoney + 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. + properties: + currency: + $ref: '#/components/schemas/Currency' + amount: + $ref: '#/components/schemas/Amount' + required: + - currency + FxCharge: + title: FxCharge + type: object + 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: + 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: + - chargeType + FxConversion: + title: FxConversion + 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. + 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. + 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 + 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 + extensionList: + allOf: + - $ref: '#/components/schemas/ExtensionList' + - description: The extension list for the currency conversion request. + required: + - conversionId + - initiatingFsp + - counterPartyFsp + - amountType + - sourceAmount + - targetAmount + - expiration + FxQuotesPostOutboundResponse: + title: FxQuotesPostOutboundResponse + type: object + description: >- + The object sent as a response for the POST /fxQuotes request. The terms + under which the FXP will undertake the currency conversion proposed by + the requester. + properties: + homeTransactionId: + description: >- + Transaction ID for the FXP backend, used to reconcile transactions + between the Switch and FXP backend systems. + type: string + 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: + - conversionTerms + 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. + conversionRequestId: + $ref: '#/components/schemas/CorrelationId' + fxQuotesResponse: + type: object + required: + - body + properties: + body: + $ref: '#/components/schemas/FxQuotesPostOutboundResponse' + headers: + type: object + fxQuotesResponseSource: + type: string + description: | + FXPID of the entity that supplied the fxQuotes response. + fulfil: + type: object + required: + - body + properties: + body: + $ref: '#/components/schemas/TransfersIDPutResponse' + headers: + type: object + lastError: + $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: + $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: + - 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: + properties: + body: + $ref: '#/components/schemas/TransfersIDPutResponse' + headers: + type: object + required: + - body + - headers + currentState: + $ref: '#/components/schemas/async2SyncCurrentState' + required: + - transfer + - currentState + 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 + transferContinuationAcceptConversion: + type: object + required: + - acceptConversion + properties: + acceptConversion: + type: boolean + enum: + - true + - false + ServicesFXPPutResponse: + title: ServicesFXPPutResponse + type: object + description: The object sent in the PUT /services/FXP callback. + 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 + required: + - providers + FxQuotesPostOutboundRequest: + title: FxQuotesPostOutboundRequest + type: object + description: The object sent in the POST /fxQuotes request. + properties: + homeTransactionId: + description: >- + Transaction ID for the backend, used to reconcile transactions + between the Switch and backend systems. + type: string + 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: + - conversionRequestId + - conversionTerms + 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. + FxTransfersPostOutboundRequest: + title: FxTransfersPostOutboundRequest + type: object + description: The object sent in the POST /fxTransfers request. + properties: + homeTransactionId: + description: >- + Transaction ID for the backend, used to reconcile transactions + between the Switch and backend systems. + type: string + commitRequestId: + $ref: '#/components/schemas/commitRequestId' + determiningTransferId: + $ref: '#/components/schemas/determiningTransferId' + initiatingFsp: + $ref: '#/components/schemas/initiatingFsp' + counterPartyFsp: + $ref: '#/components/schemas/counterPartyFsp' + sourceAmount: + $ref: '#/components/schemas/sourceAmount' + targetAmount: + $ref: '#/components/schemas/targetAmount' + condition: + $ref: '#/components/schemas/condition' + required: + - commitRequestId + - initiatingFsp + - counterPartyFsp + - sourceAmount + - targetAmount + 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. + FxTransfersPostOutboundResponse: + title: FxTransfersPostOutboundResponse + type: object + description: The object sent as a response for the POST /fxTransfers request. + properties: + homeTransactionId: + description: >- + Transaction ID for the backend, used to reconcile transactions + between the Switch and backend systems. + type: string + fulfilment: + $ref: '#/components/schemas/fulfilment' + completedTimestamp: + $ref: '#/components/schemas/completedTimestamp' + conversionState: + $ref: '#/components/schemas/conversionState' + extensionList: + $ref: '#/components/schemas/ExtensionList' + required: + - conversionState + responses: + '400': + description: Malformed or missing required headers or parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + '500': + description: An error occurred processing the request. + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + accountsCreationCompleted: + description: Accounts creation completed + content: + application/json: + schema: + $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' + bulkQuoteSuccess: + description: Bulk quote completed successfully + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteResponse' + bulkQuoteBadRequest: + description: Malformed or missing required body, headers or parameters + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteErrorResponse' + bulkQuoteServerError: + description: An error occurred processing the bulk quote + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteErrorResponse' + bulkQuoteTimeout: + description: Timeout occurred processing the bulk quote + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteErrorResponse' + bulkTransactionAccepted: + description: Bulk transfer accepted successfully + bulkTransferBadRequest: + description: Malformed or missing required body, headers or parameters + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferErrorResponse' + errorResponse: + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/errorResponse' + bulkTransactionPutBadRequest: + 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 + content: + application/json: + schema: + $ref: '#/components/schemas/bulkTransferResponse' + partiesByIdSuccess: + description: PartiesByIdSuccess + content: + application/json: + schema: + $ref: '#/components/schemas/partiesByIdResponse' + partiesByIdError404: + description: PartiesByIdError404 + content: + application/json: + schema: + type: object + properties: + errorInformation: + $ref: '#/components/schemas/ErrorInformation' + quotesPostSuccess: + description: sync response from POST /quotes + content: + application/json: + schema: + $ref: '#/components/schemas/quotesPostResponse' + quotesServerError: + description: An error occurred processing the quotes request + content: + 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: + application/json: + schema: + $ref: '#/components/schemas/simpleTransfersPostResponse' + simpleTransfersServerError: + description: An error occurred processing the simple transfers request + content: + application/json: + schema: + $ref: '#/components/schemas/errorSimpleTransfersResponse' + transferBadRequest: + description: Malformed or missing required body, headers or parameters + content: + application/json: + schema: + $ref: '#/components/schemas/errorTransferResponse' + servicesFXPSucess: + description: >- + The response contains participants in a scheme who offer currency + conversion services. If no participants offer these services, the return + object will be blank. + content: + application/json: + schema: + $ref: '#/components/schemas/ServicesFXPPutResponse' + parameters: + bulkQuoteId: + name: bulkQuoteId + 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 + 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 + 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. + Type: + name: Type + in: path + required: true + schema: + type: string + description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`. + ID: + name: ID + in: path + required: true + schema: + type: string + description: The identifier value. + SubId: + name: SubId + in: path + required: true + schema: + type: string + 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. + SourceCurrency: + name: SourceCurrency + in: path + required: true + schema: + type: string + description: ISO 4217 currency code for the source currency. + TargetCurrency: + name: TargetCurrency + in: path + required: true + schema: + type: string + description: ISO 4217 currency code for the target currency. diff --git a/docs/thirdparty-openapi3-snippets.yaml b/docs/thirdparty-openapi3-snippets.yaml index 9e4adc57..931915c3 100644 --- a/docs/thirdparty-openapi3-snippets.yaml +++ b/docs/thirdparty-openapi3-snippets.yaml @@ -19,7 +19,10 @@ servers: 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. + 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: @@ -29,7 +32,8 @@ paths: - $ref: '#/components/schemas/ParticipantsIDPutResponse' - $ref: '#/components/schemas/PartiesTypeIDPutResponse' - $ref: '#/components/schemas/QuotesIDPutResponse' - - $ref: '#/components/schemas/ThirdpartyRequestsTransactionsIDPatchResponse' + - $ref: >- + #/components/schemas/ThirdpartyRequestsTransactionsIDPatchResponse - $ref: '#/components/schemas/AuthorizationResponseType' - $ref: '#/components/schemas/ConsentStatusIssued' - $ref: '#/components/schemas/IlpFulfilment' @@ -58,8 +62,9 @@ paths: get: operationId: GetAccountsByUserId summary: GetAccountsByUserId - description: | - The HTTP request `GET /accounts/{ID}` is used to retrieve the list of potential accounts available for linking. + description: > + The HTTP request `GET /accounts/{ID}` is used to retrieve the list of + potential accounts available for linking. tags: - accounts - sampled @@ -85,8 +90,9 @@ paths: '503': $ref: '#/components/responses/503' put: - description: | - The HTTP request `PUT /accounts/{ID}` is used to return the list of potential accounts available for linking + description: > + The HTTP request `PUT /accounts/{ID}` is used to return the list of + potential accounts available for linking operationId: UpdateAccountsByUserId summary: UpdateAccountsByUserId tags: @@ -139,8 +145,9 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' put: - description: | - The HTTP request `PUT /accounts/{ID}/error` is used to return error information + description: > + The HTTP request `PUT /accounts/{ID}/error` is used to return error + information operationId: UpdateAccountsByUserIdError summary: UpdateAccountsByUserIdError tags: @@ -199,7 +206,9 @@ paths: $ref: '#/components/responses/503' operationId: HealthGet summary: Health check endpoint - description: The HTTP request GET /health is used to return the current status of the API. + description: >- + The HTTP request GET /health is used to return the current status of the + API. /metrics: get: tags: @@ -243,9 +252,12 @@ paths: - sampled operationId: CreateConsentRequest summary: CreateConsentRequest - description: | - The HTTP request **POST /consentRequests** is used to request a DFSP to grant access to one or more - accounts owned by a customer of the DFSP for the PISP who sends the request. + description: > + The HTTP request **POST /consentRequests** is used to request a DFSP to + grant access to one or more + + accounts owned by a customer of the DFSP for the PISP who sends the + request. parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/Content-Length' @@ -290,9 +302,13 @@ paths: get: operationId: GetConsentRequestsById summary: GetConsentRequestsById - description: | - The HTTP request `GET /consentRequests/{ID}` is used to get information about a previously - requested consent. The *{ID}* in the URI should contain the consentRequestId that was assigned to the + description: > + The HTTP request `GET /consentRequests/{ID}` is used to get information + about a previously + + requested consent. The *{ID}* in the URI should contain the + consentRequestId that was assigned to the + request by the PISP when the PISP originated the request. tags: - consentRequests @@ -324,15 +340,28 @@ paths: - sampled operationId: UpdateConsentRequest summary: UpdateConsentRequest - description: | - A DFSP uses this callback to (1) inform the PISP that the consentRequest has been accepted, - and (2) communicate to the PISP which `authChannel` it should use to authenticate their user + description: > + A DFSP uses this callback to (1) inform the PISP that the consentRequest + has been accepted, + + and (2) communicate to the PISP which `authChannel` it should use to + authenticate their user + with. - When a PISP requests a series of permissions from a DFSP on behalf of a DFSP’s customer, not all - the permissions requested may be granted by the DFSP. Conversely, the out-of-band authorization - process may result in additional privileges being granted by the account holder to the PISP. The - **PUT /consentRequests/**_{ID}_ resource returns the current state of the permissions relating to a + + When a PISP requests a series of permissions from a DFSP on behalf of a + DFSP’s customer, not all + + the permissions requested may be granted by the DFSP. Conversely, the + out-of-band authorization + + process may result in additional privileges being granted by the + account holder to the PISP. The + + **PUT /consentRequests/**_{ID}_ resource returns the current state of + the permissions relating to a + particular authorization request. parameters: - $ref: '#/components/parameters/Content-Length' @@ -369,8 +398,10 @@ paths: - sampled operationId: PatchConsentRequest summary: PatchConsentRequest - description: | - After the user completes an out-of-band authorization with the DFSP, the PISP will receive a token which they can use to prove to the DFSP that the user trusts this PISP. + description: > + After the user completes an out-of-band authorization with the DFSP, the + PISP will receive a token which they can use to prove to the DFSP that + the user trusts this PISP. parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/Content-Length' @@ -417,8 +448,9 @@ paths: - sampled operationId: NotifyErrorConsentRequests summary: NotifyErrorConsentRequests - description: | - DFSP responds to the PISP if something went wrong with validating an OTP or secret. + description: > + DFSP responds to the PISP if something went wrong with validating an OTP + or secret. parameters: - $ref: '#/components/parameters/Content-Length' requestBody: @@ -464,8 +496,10 @@ paths: - sampled operationId: PostConsents summary: PostConsents - description: | - The **POST /consents** request is used to request the creation of a consent for interactions between a PISP and the DFSP who owns the account which a PISP’s customer wants to allow the PISP access to. + description: > + The **POST /consents** request is used to request the creation of a + consent for interactions between a PISP and the DFSP who owns the + account which a PISP’s customer wants to allow the PISP access to. parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/Content-Length' @@ -509,8 +543,11 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' get: - description: | - The **GET /consents/**_{ID}_ resource allows a party to enquire after the status of a consent. The *{ID}* used in the URI of the request should be the consent request ID which was used to identify the consent when it was created. + description: > + The **GET /consents/**_{ID}_ resource allows a party to enquire after + the status of a consent. The *{ID}* used in the URI of the request + should be the consent request ID which was used to identify the consent + when it was created. tags: - consents operationId: GetConsent @@ -537,10 +574,12 @@ paths: '503': $ref: '#/components/responses/503' patch: - description: | + description: > The HTTP request `PATCH /consents/{ID}` is used - - In account linking in the Credential Registration phase. Used by a DFSP + + - In account linking in the Credential Registration phase. Used by a + DFSP to notify a PISP a credential has been verified and registered with an Auth service. @@ -585,11 +624,16 @@ paths: '503': $ref: '#/components/responses/503' put: - description: | - The HTTP request `PUT /consents/{ID}` is used by the PISP and Auth Service. + description: > + The HTTP request `PUT /consents/{ID}` is used by the PISP and Auth + Service. + - - Called by a `PISP` to after signing a challenge. Sent to an DFSP for verification. - - Called by a `auth-service` to notify a DFSP that a credential has been verified and registered. + - Called by a `PISP` to after signing a challenge. Sent to an DFSP for + verification. + + - Called by a `auth-service` to notify a DFSP that a credential has been + verified and registered. tags: - consents - sampled @@ -627,12 +671,19 @@ paths: '503': $ref: '#/components/responses/503' delete: - description: | + description: > Used by PISP, DFSP - The **DELETE /consents/**_{ID}_ request is used to request the revocation of a previously agreed consent. - For tracing and auditing purposes, the switch should be sure not to delete the consent physically; - instead, information relating to the consent should be marked as deleted and requests relating to the + + The **DELETE /consents/**_{ID}_ request is used to request the + revocation of a previously agreed consent. + + For tracing and auditing purposes, the switch should be sure not to + delete the consent physically; + + instead, information relating to the consent should be marked as deleted + and requests relating to the + consent should not be honoured. operationId: DeleteConsentByID parameters: @@ -676,8 +727,9 @@ paths: - sampled operationId: NotifyErrorConsents summary: NotifyErrorConsents - description: | - DFSP responds to the PISP if something went wrong with validating or storing consent. + description: > + DFSP responds to the PISP if something went wrong with validating or + storing consent. parameters: - $ref: '#/components/parameters/Content-Length' requestBody: @@ -718,7 +770,12 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' post: - description: The HTTP request `POST /participants` is used to create information in the server regarding the provided list of identities. This request should be used for bulk creation of FSP information for more than one Party. The optional currency parameter should indicate that each provided Party supports the currency. + description: >- + The HTTP request `POST /participants` is used to create information in + the server regarding the provided list of identities. This request + should be used for bulk creation of FSP information for more than one + Party. The optional currency parameter should indicate that each + provided Party supports the currency. summary: Create bulk participant information tags: - participants @@ -766,7 +823,9 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' put: - description: The callback `PUT /participants/{ID}` is used to inform the client of the result of the creation of the provided list of identities. + description: >- + The callback `PUT /participants/{ID}` is used to inform the client of + the result of the creation of the provided list of identities. summary: Return bulk participant information tags: - participants @@ -813,7 +872,11 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' put: - description: If there is an error during FSP information creation in the server, the error callback `PUT /participants/{ID}/error` is used. The `{ID}` in the URI should contain the requestId that was used for the creation of the participant information. + description: >- + If there is an error during FSP information creation in the server, the + error callback `PUT /participants/{ID}/error` is used. The `{ID}` in the + URI should contain the requestId that was used for the creation of the + participant information. summary: Return bulk participant information error tags: - participants @@ -861,7 +924,13 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' post: - description: The HTTP request `POST /participants/{Type}/{ID}` (or `POST /participants/{Type}/{ID}/{SubId}`) is used to create information in the server regarding the provided identity, defined by `{Type}`, `{ID}`, and optionally `{SubId}` (for example, `POST /participants/MSISDN/123456789` or `POST /participants/BUSINESS/shoecompany/employee1`). An ExtensionList element has been added to this reqeust in version v1.1 + description: >- + The HTTP request `POST /participants/{Type}/{ID}` (or `POST + /participants/{Type}/{ID}/{SubId}`) is used to create information in the + server regarding the provided identity, defined by `{Type}`, `{ID}`, and + optionally `{SubId}` (for example, `POST /participants/MSISDN/123456789` + or `POST /participants/BUSINESS/shoecompany/employee1`). An + ExtensionList element has been added to this reqeust in version v1.1 summary: Create participant information tags: - participants @@ -897,7 +966,15 @@ paths: '503': $ref: '#/components/responses/503' get: - description: The HTTP request `GET /participants/{Type}/{ID}` (or `GET /participants/{Type}/{ID}/{SubId}`) is used to find out in which FSP the requested Party, defined by `{Type}`, `{ID}` and optionally `{SubId}`, is located (for example, `GET /participants/MSISDN/123456789`, or `GET /participants/BUSINESS/shoecompany/employee1`). This HTTP request should support a query string for filtering of currency. To use filtering of currency, the HTTP request `GET /participants/{Type}/{ID}?currency=XYZ` should be used, where `XYZ` is the requested currency. + description: >- + The HTTP request `GET /participants/{Type}/{ID}` (or `GET + /participants/{Type}/{ID}/{SubId}`) is used to find out in which FSP the + requested Party, defined by `{Type}`, `{ID}` and optionally `{SubId}`, + is located (for example, `GET /participants/MSISDN/123456789`, or `GET + /participants/BUSINESS/shoecompany/employee1`). This HTTP request should + support a query string for filtering of currency. To use filtering of + currency, the HTTP request `GET /participants/{Type}/{ID}?currency=XYZ` + should be used, where `XYZ` is the requested currency. summary: Look up participant information tags: - participants @@ -924,7 +1001,13 @@ paths: '503': $ref: '#/components/responses/503' put: - description: The callback `PUT /participants/{Type}/{ID}` (or `PUT /participants/{Type}/{ID}/{SubId}`) is used to inform the client of a successful result of the lookup, creation, or deletion of the FSP information related to the Party. If the FSP information is deleted, the fspId element should be empty; otherwise the element should include the FSP information for the Party. + description: >- + The callback `PUT /participants/{Type}/{ID}` (or `PUT + /participants/{Type}/{ID}/{SubId}`) is used to inform the client of a + successful result of the lookup, creation, or deletion of the FSP + information related to the Party. If the FSP information is deleted, the + fspId element should be empty; otherwise the element should include the + FSP information for the Party. summary: Return participant information tags: - participants @@ -958,10 +1041,20 @@ paths: '503': $ref: '#/components/responses/503' delete: - description: |- - The HTTP request `DELETE /participants/{Type}/{ID}` (or `DELETE /participants/{Type}/{ID}/{SubId}`) is used to delete information in the server regarding the provided identity, defined by `{Type}` and `{ID}`) (for example, `DELETE /participants/MSISDN/123456789`), and optionally `{SubId}`. This HTTP request should support a query string to delete FSP information regarding a specific currency only. To delete a specific currency only, the HTTP request `DELETE /participants/{Type}/{ID}?currency=XYZ` should be used, where `XYZ` is the requested currency. + description: >- + The HTTP request `DELETE /participants/{Type}/{ID}` (or `DELETE + /participants/{Type}/{ID}/{SubId}`) is used to delete information in the + server regarding the provided identity, defined by `{Type}` and `{ID}`) + (for example, `DELETE /participants/MSISDN/123456789`), and optionally + `{SubId}`. This HTTP request should support a query string to delete FSP + information regarding a specific currency only. To delete a specific + currency only, the HTTP request `DELETE + /participants/{Type}/{ID}?currency=XYZ` should be used, where `XYZ` is + the requested currency. - **Note:** The Account Lookup System should verify that it is the Party’s current FSP that is deleting the FSP information. + + **Note:** The Account Lookup System should verify that it is the Party’s + current FSP that is deleting the FSP information. summary: Delete participant information tags: - participants @@ -1001,7 +1094,11 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' put: - description: If the server is unable to find, create or delete the associated FSP of the provided identity, or another processing error occurred, the error callback `PUT /participants/{Type}/{ID}/error` (or `PUT /participants/{Type}/{ID}/{SubId}/error`) is used. + description: >- + If the server is unable to find, create or delete the associated FSP of + the provided identity, or another processing error occurred, the error + callback `PUT /participants/{Type}/{ID}/error` (or `PUT + /participants/{Type}/{ID}/{SubId}/error`) is used. summary: Return participant information error tags: - participants @@ -1050,8 +1147,10 @@ paths: get: operationId: GetServicesByServiceType summary: GetServicesByServiceType - description: | - The HTTP request `GET /services/{ServiceType}` is used to retrieve the list of participants + description: > + The HTTP request `GET /services/{ServiceType}` is used to retrieve the + list of participants + that support a specified service. parameters: - $ref: '#/components/parameters/Accept' @@ -1078,8 +1177,10 @@ paths: '503': $ref: '#/components/responses/503' put: - description: | - The HTTP request `PUT /services/{ServiceType}` is used to return list of participants + description: > + The HTTP request `PUT /services/{ServiceType}` is used to return list of + participants + that support a specified service. operationId: PutServicesByServiceType summary: PutServicesByServiceType @@ -1126,8 +1227,9 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' put: - description: | - The HTTP request `PUT /services/{ServiceType}/error` is used to return error information + description: > + The HTTP request `PUT /services/{ServiceType}/error` is used to return + error information operationId: PutServicesByServiceTypeAndError summary: PutServicesByServiceTypeAndError tags: @@ -1175,7 +1277,9 @@ paths: post: operationId: ThirdpartyRequestsTransactionsPost summary: ThirdpartyRequestsTransactionsPost - description: The HTTP request POST `/thirdpartyRequests/transactions` is used by a PISP to initiate a 3rd party Transaction request with a DFSP + description: >- + The HTTP request POST `/thirdpartyRequests/transactions` is used by a + PISP to initiate a 3rd party Transaction request with a DFSP tags: - thirdpartyRequests - sampled @@ -1226,8 +1330,10 @@ paths: - sampled operationId: GetThirdpartyTransactionRequests summary: GetThirdpartyTransactionRequests - description: | - The HTTP request `GET /thirdpartyRequests/transactions/{ID}` is used to request the + description: > + The HTTP request `GET /thirdpartyRequests/transactions/{ID}` is used to + request the + retrieval of a third party transaction request. parameters: - $ref: '#/components/parameters/Accept' @@ -1256,10 +1362,13 @@ paths: - sampled operationId: UpdateThirdPartyTransactionRequests summary: UpdateThirdPartyTransactionRequests - description: | - The HTTP request `PUT /thirdpartyRequests/transactions/{ID}` is used by the DFSP to inform the client about + description: > + The HTTP request `PUT /thirdpartyRequests/transactions/{ID}` is used by + the DFSP to inform the client about + the status of a previously requested thirdparty transaction request. + Switch(Thirdparty API Adapter) -> PISP parameters: - $ref: '#/components/parameters/Content-Length' @@ -1293,10 +1402,13 @@ paths: patch: operationId: NotifyThirdpartyTransactionRequests summary: NotifyThirdpartyTransactionRequests - description: | - The HTTP request `PATCH /thirdpartyRequests/transactions/{ID}` is used to + description: > + The HTTP request `PATCH /thirdpartyRequests/transactions/{ID}` is used + to + notify a thirdparty of the outcome of a transaction request. + Switch(Thirdparty API Adapter) -> PISP tags: - thirdpartyRequests @@ -1308,7 +1420,8 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ThirdpartyRequestsTransactionsIDPatchResponse' + $ref: >- + #/components/schemas/ThirdpartyRequestsTransactionsIDPatchResponse example: transactionRequestState: ACCEPTED transactionState: COMMITTED @@ -1349,10 +1462,16 @@ paths: - sampled operationId: ThirdpartyTransactionRequestsError summary: ThirdpartyTransactionRequestsError - description: | - If the server is unable to find the transaction request, or another processing error occurs, - the error callback `PUT /thirdpartyRequests/transactions/{ID}/error` is used. - The `{ID}` in the URI should contain the `transactionRequestId` that was used for the creation of + description: > + If the server is unable to find the transaction request, or another + processing error occurs, + + the error callback `PUT /thirdpartyRequests/transactions/{ID}/error` is + used. + + The `{ID}` in the URI should contain the `transactionRequestId` that was + used for the creation of + the thirdparty transaction request. parameters: - $ref: '#/components/parameters/Content-Length' @@ -1394,8 +1513,10 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' post: - description: | - The HTTP request **POST /thirdpartyRequests/authorizations** is used to request the validation by a customer for the transfer described in the request. + description: > + The HTTP request **POST /thirdpartyRequests/authorizations** is used to + request the validation by a customer for the transfer described in the + request. operationId: PostThirdpartyRequestsAuthorizations summary: PostThirdpartyRequestsAuthorizations tags: @@ -1443,10 +1564,15 @@ paths: - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' get: - description: | - The HTTP request **GET /thirdpartyRequests/authorizations/**_{ID}_ is used to get information relating - to a previously issued authorization request. The *{ID}* in the request should match the - `authorizationRequestId` which was given when the authorization request was created. + description: > + The HTTP request **GET /thirdpartyRequests/authorizations/**_{ID}_ is + used to get information relating + + to a previously issued authorization request. The *{ID}* in the request + should match the + + `authorizationRequestId` which was given when the authorization request + was created. operationId: GetThirdpartyRequestsAuthorizationsById summary: GetThirdpartyRequestsAuthorizationsById tags: @@ -1474,12 +1600,18 @@ paths: '503': $ref: '#/components/responses/503' put: - description: | - After receiving the **POST /thirdpartyRequests/authorizations**, the PISP will present the details of the - transaction to their user, and request that the client sign the `challenge` field using the credential + description: > + After receiving the **POST /thirdpartyRequests/authorizations**, the + PISP will present the details of the + + transaction to their user, and request that the client sign the + `challenge` field using the credential + they previously registered. - The signed challenge will be sent back by the PISP in **PUT /thirdpartyRequests/authorizations/**_{ID}_: + + The signed challenge will be sent back by the PISP in **PUT + /thirdpartyRequests/authorizations/**_{ID}_: operationId: PutThirdpartyRequestsAuthorizationsById summary: PutThirdpartyRequestsAuthorizationsById tags: @@ -1493,9 +1625,12 @@ paths: application/json: schema: oneOf: - - $ref: '#/components/schemas/ThirdpartyRequestsAuthorizationsIDPutResponseRejected' - - $ref: '#/components/schemas/ThirdpartyRequestsAuthorizationsIDPutResponseFIDO' - - $ref: '#/components/schemas/ThirdpartyRequestsAuthorizationsIDPutResponseGeneric' + - $ref: >- + #/components/schemas/ThirdpartyRequestsAuthorizationsIDPutResponseRejected + - $ref: >- + #/components/schemas/ThirdpartyRequestsAuthorizationsIDPutResponseFIDO + - $ref: >- + #/components/schemas/ThirdpartyRequestsAuthorizationsIDPutResponseGeneric responses: '200': $ref: '#/components/responses/200' @@ -1533,14 +1668,23 @@ paths: - sampled operationId: PutThirdpartyRequestsAuthorizationsByIdAndError summary: PutThirdpartyRequestsAuthorizationsByIdAndError - description: | - The HTTP request `PUT /thirdpartyRequests/authorizations/{ID}/error` is used by the DFSP or PISP to inform - the other party that something went wrong with a Thirdparty Transaction Authorization Request. + description: > + The HTTP request `PUT /thirdpartyRequests/authorizations/{ID}/error` is + used by the DFSP or PISP to inform + + the other party that something went wrong with a Thirdparty Transaction + Authorization Request. + + + The PISP may use this to tell the DFSP that the Thirdparty Transaction + Authorization Request is invalid or doesn't - The PISP may use this to tell the DFSP that the Thirdparty Transaction Authorization Request is invalid or doesn't match a `transactionRequestId`. - The DFSP may use this to tell the PISP that the signed challenge returned in `PUT /thirdpartyRequest/authorizations/{ID}` + + The DFSP may use this to tell the PISP that the signed challenge + returned in `PUT /thirdpartyRequest/authorizations/{ID}` + was invalid. parameters: - $ref: '#/components/parameters/Content-Length' @@ -1587,8 +1731,9 @@ paths: - sampled operationId: PostThirdpartyRequestsVerifications summary: PostThirdpartyRequestsVerifications - description: | - The HTTP request `POST /thirdpartyRequests/verifications` is used by the DFSP to verify a third party authorization. + description: > + The HTTP request `POST /thirdpartyRequests/verifications` is used by the + DFSP to verify a third party authorization. parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/Content-Length' @@ -1599,8 +1744,10 @@ paths: application/json: schema: oneOf: - - $ref: '#/components/schemas/ThirdpartyRequestsVerificationsPostRequestFIDO' - - $ref: '#/components/schemas/ThirdpartyRequestsVerificationsPostRequestGeneric' + - $ref: >- + #/components/schemas/ThirdpartyRequestsVerificationsPostRequestFIDO + - $ref: >- + #/components/schemas/ThirdpartyRequestsVerificationsPostRequestGeneric responses: '202': $ref: '#/components/responses/202' @@ -1638,9 +1785,12 @@ paths: - sampled operationId: GetThirdpartyRequestsVerificationsById summary: GetThirdpartyRequestsVerificationsById - description: | + description: > The HTTP request `/thirdpartyRequests/verifications/{ID}` is used to get - information regarding a previously created or requested authorization. The *{ID}* + + information regarding a previously created or requested authorization. + The *{ID}* + in the URI should contain the verification request ID parameters: - $ref: '#/components/parameters/Accept' @@ -1669,10 +1819,17 @@ paths: - sampled operationId: PutThirdpartyRequestsVerificationsById summary: PutThirdpartyRequestsVerificationsById - description: |- - The HTTP request `PUT /thirdpartyRequests/verifications/{ID}` is used by the Auth-Service to inform the DFSP of a successful result in validating the verification of a Thirdparty Transaction Request. - If the validation fails, the auth-service will send back `PUT /thirdpartyRequests/verifications/{ID}` with `authenticationResponse: 'REJECTED'`. - In unplanned error cases the Auth-Service MUST use `PUT /thirdpartyRequests/verifications/{ID}/error`. + description: >- + The HTTP request `PUT /thirdpartyRequests/verifications/{ID}` is used by + the Auth-Service to inform the DFSP of a successful result in validating + the verification of a Thirdparty Transaction Request. + + If the validation fails, the auth-service will send back `PUT + /thirdpartyRequests/verifications/{ID}` with `authenticationResponse: + 'REJECTED'`. + + In unplanned error cases the Auth-Service MUST use `PUT + /thirdpartyRequests/verifications/{ID}/error`. parameters: - $ref: '#/components/parameters/Content-Length' requestBody: @@ -1681,7 +1838,8 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ThirdpartyRequestsVerificationsIDPutResponse' + $ref: >- + #/components/schemas/ThirdpartyRequestsVerificationsIDPutResponse example: authenticationResponse: VERIFIED responses: @@ -1721,9 +1879,12 @@ paths: - sampled operationId: PutThirdpartyRequestsVerificationsByIdAndError summary: PutThirdpartyRequestsVerificationsByIdAndError - description: | - The HTTP request `PUT /thirdpartyRequests/verifications/{ID}/error` is used by the Auth-Service to inform - the DFSP of a failure in validating or looking up the verification of a Thirdparty Transaction Request. + description: > + The HTTP request `PUT /thirdpartyRequests/verifications/{ID}/error` is + used by the Auth-Service to inform + + the DFSP of a failure in validating or looking up the verification of a + Thirdparty Transaction Request. parameters: - $ref: '#/components/parameters/Content-Length' requestBody: @@ -1768,49 +1929,114 @@ components: - ALIAS - CONSENT - THIRD_PARTY_LINK - description: | + 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. + + 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 + + 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 + + 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 + + - 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 + + - 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 + + - 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, + + 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, + + 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 + + - 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 + + - 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 + + 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 - A Consent represents an agreement between a PISP, a Customer and - a DFSP which allows the PISP permission to perform actions on behalf of the - customer. A Consent has an authoritative source: either the DFSP who issued + + - CONSENT - A Consent represents an agreement between a PISP, a Customer + and + + a DFSP which allows the PISP permission to perform actions on behalf of + the + + customer. A Consent has an authoritative source: either the DFSP who + issued + the Consent, or an Auth Service which administers the Consent. - - THIRD_PARTY_LINK - A Third Party Link represents an agreement between a PISP, - a DFSP, and a specific Customer's account at the DFSP. The content of the link - is created by the DFSP at the time when it gives permission to the PISP for + + - THIRD_PARTY_LINK - A Third Party Link represents an agreement between + a PISP, + + a DFSP, and a specific Customer's account at the DFSP. The content of + the link + + is created by the DFSP at the time when it gives permission to the PISP + for + specific access to a given account. example: PERSONAL_ID PartyIdentifier: @@ -1825,7 +2051,9 @@ components: type: string minLength: 1 maxLength: 128 - description: Either a sub-identifier of a PartyIdentifier, or a sub-type of the PartyIdType, normally a PersonalIdentifierType. + description: >- + Either a sub-identifier of a PartyIdentifier, or a sub-type of the + PartyIdType, normally a PersonalIdentifierType. FspId: title: FspId type: string @@ -1859,7 +2087,9 @@ components: ExtensionList: title: ExtensionList type: object - description: Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment. + description: >- + Data model for the complex type ExtensionList. An optional list of + extensions, specific to deployment. properties: extension: type: array @@ -1892,7 +2122,14 @@ components: 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. + 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 @@ -1927,7 +2164,11 @@ components: - partyId 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. + 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 @@ -2107,7 +2348,9 @@ components: $ref: '#/components/schemas/PartyResult' minItems: 1 maxItems: 10000 - description: List of PartyResult elements that were either created or failed to be created. + description: >- + List of PartyResult elements that were either created or failed to + be created. currency: $ref: '#/components/schemas/Currency' required: @@ -2116,7 +2359,10 @@ components: 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. + 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 @@ -2128,7 +2374,9 @@ components: type: string minLength: 1 maxLength: 128 - pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,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: @@ -2136,7 +2384,9 @@ components: type: string minLength: 1 maxLength: 128 - pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,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: @@ -2144,7 +2394,9 @@ components: type: string minLength: 1 maxLength: 128 - pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,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: @@ -2161,7 +2413,8 @@ components: 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)$ + 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' PartyPersonalInfo: @@ -2191,11 +2444,15 @@ components: PartiesTypeIDPutResponse: title: PartiesTypeIDPutResponse type: object - description: | + description: > The object sent in the PUT /parties/{Type}/{ID} callback. - This is a variant based on FSPIOP `PartiesTypeIDPutResponse` specification. + + This is a variant based on FSPIOP `PartiesTypeIDPutResponse` + specification. + Main difference being that it returns a `Party` with the newly added + `accounts` property. properties: party: @@ -2206,7 +2463,13 @@ components: 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. + 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 @@ -2223,25 +2486,42 @@ components: 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). + 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' 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. + 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. + 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. + description: >- + Data model for the complex type GeoCode. Indicates the geographic + location from where the transaction was initiated. properties: latitude: $ref: '#/components/schemas/Latitude' @@ -2257,7 +2537,8 @@ components: minLength: 1 maxLength: 32768 description: Information for recipient (transport layer information). - example: AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA + example: >- + AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA IlpCondition: title: IlpCondition type: string @@ -2325,11 +2606,19 @@ components: ThirdpartyRequestsTransactionsIDPatchResponse: title: ThirdpartyRequestsTransactionsIDPatchResponse type: object - description: |- + description: >- Used by: DFSP - The issuing PISP will expect a response to their request for a transfer which describes the finalized state of the requested transfer. - This response will be given by a PATCH call on the /thirdpartyRequests/transactions/{ID} resource. - The {ID} given in the query string should be the transactionRequestId which was originally used by the PISP to identify the transaction request. + + The issuing PISP will expect a response to their request for a transfer + which describes the finalized state of the requested transfer. + + This response will be given by a PATCH call on the + /thirdpartyRequests/transactions/{ID} resource. + + The {ID} given in the query string should be the transactionRequestId + which was originally used by the PISP to identify the transaction + request. + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#31612-post-thirdpartyrequestsauthorizations properties: completedTimestamp: @@ -2371,7 +2660,10 @@ components: 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. + 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. Note: title: Note type: string @@ -2384,8 +2676,9 @@ components: type: string enum: - THIRD_PARTY_LINK - description: | - - THIRD_PARTY_LINK - is the DFSP's internal reference which allows DFSP to find out the corresponding consent + description: > + - THIRD_PARTY_LINK - is the DFSP's internal reference which allows DFSP + to find out the corresponding consent example: PERSONAL_ID PartyIdInfoTPLink: title: PartyIdInfo @@ -2408,9 +2701,15 @@ components: ServiceType: title: ServiceType type: string - description: |- - The ServiceType enumeration describes the types of role for which a DFSP may query using the /services resource. - Below are the allowed values for the enumeration ServiceType - THIRD_PARTY_DFSP - Enum used to query for DFSPs that have thirdparty features enabled. - PISP - Enum used to query for PISPs. - AUTH_SERVICE - Participants which provide Authentication Services. + description: >- + The ServiceType enumeration describes the types of role for which a DFSP + may query using the /services resource. + + Below are the allowed values for the enumeration ServiceType - + THIRD_PARTY_DFSP - Enum used to query for DFSPs that have thirdparty + features enabled. - PISP - Enum used to query for PISPs. - AUTH_SERVICE + - Participants which provide Authentication Services. + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#3229-servicetype enum: - THIRD_PARTY_DFSP @@ -2419,8 +2718,15 @@ components: 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 (‘-‘). + 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 ParticipantsPostRequest: title: ParticipantsPostRequest @@ -2449,10 +2755,14 @@ components: enum: - SEND - RECEIVE - description: |- + 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. + + - 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 TransactionScenario: title: TransactionScenario @@ -2463,19 +2773,37 @@ components: - TRANSFER - PAYMENT - REFUND - description: |- + 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. + + - 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). + description: >- + Possible sub-scenario, defined locally within the scheme (UndefinedEnum + Type). example: LOCALLY_DEFINED_SUBSCENARIO TransactionInitiator: title: TransactionInitiator @@ -2483,10 +2811,17 @@ components: enum: - PAYER - PAYEE - description: |- + 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. + + - 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 @@ -2525,7 +2860,11 @@ components: 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. + 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 @@ -2555,11 +2894,20 @@ components: properties: quoteId: $ref: '#/components/schemas/CorrelationId' - description: Common ID between the FSPs for the quote object, decided by the Payer FSP. The ID should be reused for resends of the same quote for a transaction. A new ID should be generated for each new quote for a transaction. + description: >- + Common ID between the FSPs for the quote object, decided by the + Payer FSP. The ID should be reused for resends of the same quote for + a transaction. A new ID should be generated for each new quote for a + transaction. example: b51ec534-ee48-4575-b6a9-ead2955b8069 transactionId: $ref: '#/components/schemas/CorrelationId' - description: Common ID (decided by the Payer FSP) between the FSPs for the future transaction object. The actual transaction will be created as part of a successful transfer process. The ID should be reused for resends of the same quote for a transaction. A new ID should be generated for each new quote for a transaction. + description: >- + Common ID (decided by the Payer FSP) between the FSPs for the future + transaction object. The actual transaction will be created as part + of a successful transfer process. The ID should be reused for + resends of the same quote for a transaction. A new ID should be + generated for each new quote for a transaction. example: a8323bc6-c228-4df2-ae82-e5a997baf899 transactionRequestId: $ref: '#/components/schemas/CorrelationId' @@ -2577,23 +2925,39 @@ components: example: SEND amount: $ref: '#/components/schemas/Money' - description: Depending on amountType - If SEND - The amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees. The amount is updated by each participating entity in the transaction. If RECEIVE - The amount the Payee should receive, that is, the amount that should be sent to the receiver exclusive any fees. The amount is not updated by any of the participating entities. + description: >- + Depending on amountType - If SEND - The amount the Payer would like + to send, that is, the amount that should be withdrawn from the Payer + account including any fees. The amount is updated by each + participating entity in the transaction. If RECEIVE - The amount the + Payee should receive, that is, the amount that should be sent to the + receiver exclusive any fees. The amount is not updated by any of the + participating entities. fees: $ref: '#/components/schemas/Money' - description: The fees in the transaction. The fees element should be empty if fees should be non-disclosed. The fees element should be non-empty if fees should be disclosed. + description: >- + The fees in the transaction. The fees element should be empty if + fees should be non-disclosed. The fees element should be non-empty + if fees should be disclosed. transactionType: $ref: '#/components/schemas/TransactionType' description: Type of transaction for which the quote is requested. geoCode: $ref: '#/components/schemas/GeoCode' - description: Longitude and Latitude of the initiating Party. Can be used to detect fraud. + description: >- + Longitude and Latitude of the initiating Party. Can be used to + detect fraud. note: $ref: '#/components/schemas/Note' description: A memo that will be attached to the transaction. example: Free-text memo. expiration: $ref: '#/components/schemas/DateTime' - description: Expiration is optional. It can be set to get a quick failure in case the peer FSP takes too long to respond. Also, it may be beneficial for Consumer, Agent, and Merchant to know that their request has a time limit. + description: >- + Expiration is optional. It can be set to get a quick failure in case + the peer FSP takes too long to respond. Also, it may be beneficial + for Consumer, Agent, and Merchant to know that their request has a + time limit. example: '2016-05-24T08:38:08.699-04:00' extensionList: $ref: '#/components/schemas/ExtensionList' @@ -2609,7 +2973,9 @@ components: ErrorInformationResponse: title: ErrorInformationResponse type: object - description: Data model for the complex type object that contains an optional element ErrorInformation used along with 4xx and 5xx responses. + description: >- + Data model for the complex type object that contains an optional element + ErrorInformation used along with 4xx and 5xx responses. properties: errorInformation: $ref: '#/components/schemas/ErrorInformation' @@ -2617,21 +2983,44 @@ components: 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. + 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 ( ). + 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. + + **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. AccountAddress: title: AccountAddress type: string - description: |- - The AccountAddress data type is a variable length string with a maximum size of 1023 characters and consists of: - Alphanumeric characters, upper or lower case. (Addresses are case-sensitive so that they can contain data encoded in formats such as base64url.) - - Underscore (_) - Tilde (~) - Hyphen (-) - Period (.) Addresses MUST NOT end in a period (.) character - An entity providing accounts to parties (i.e. a participant) can provide any value for an AccountAddress that is meaningful to that entity. It does not need to provide an address that makes the account identifiable outside the entity's domain. - IMPORTANT: The policy for defining addresses and the life-cycle of these is at the discretion of the address space owner (the payer DFSP in this case). + description: >- + The AccountAddress data type is a variable length string with a maximum + size of 1023 characters and consists of: + + Alphanumeric characters, upper or lower case. (Addresses are + case-sensitive so that they can contain data encoded in formats such as + base64url.) + + - Underscore (_) - Tilde (~) - Hyphen (-) - Period (.) Addresses MUST + NOT end in a period (.) character + + An entity providing accounts to parties (i.e. a participant) can provide + any value for an AccountAddress that is meaningful to that entity. It + does not need to provide an address that makes the account identifiable + outside the entity's domain. + + IMPORTANT: The policy for defining addresses and the life-cycle of these + is at the discretion of the address space owner (the payer DFSP in this + case). + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#3212-accountaddress pattern: ^([0-9A-Za-z_~\-\.]+[0-9A-Za-z_~\-])$ minLength: 1 @@ -2639,8 +3028,9 @@ components: Account: title: Account type: object - description: |- + description: >- Data model for the complex type Account. + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#3211-account properties: accountNickname: @@ -2656,8 +3046,10 @@ components: AccountList: title: AccountList type: array - description: |- - The AccountList data model is used to hold information about the accounts that a party controls. + description: >- + The AccountList data model is used to hold information about the + accounts that a party controls. + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#3213-accountlist items: $ref: '#/components/schemas/Account' @@ -2666,10 +3058,16 @@ components: AccountsIDPutResponse: title: AccountsIDPutResponse type: object - description: |- + description: >- Callback and data model information for GET /accounts/{ID}: - Callback - PUT /accounts/{ID} Error Callback - PUT /accounts/{ID}/error Data Model - Empty body - The PUT /accounts/{ID} response is used to inform the requester of the result of a request for accounts information. The identifier ID given in the call are the values given in the original request. + + Callback - PUT /accounts/{ID} Error Callback - PUT /accounts/{ID}/error + Data Model - Empty body + + The PUT /accounts/{ID} response is used to inform the requester of the + result of a request for accounts information. The identifier ID given in + the call are the values given in the original request. + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#31121--put-accountsid properties: accounts: @@ -2690,14 +3088,22 @@ components: ScopeAction: title: ScopeAction type: string - description: | + description: > The ScopeAction element contains an access type which a PISP can request + from a DFSP, or which a DFSP can grant to a PISP. + It must be a member of the appropriate enumeration. - - ACCOUNTS_GET_BALANCE: PISP can request a balance for the linked account - - ACCOUNTS_TRANSFER: PISP can request a transfer of funds from the linked account in the DFSP - - ACCOUNTS_STATEMENT: PISP can request a statement of individual transactions on a user's account + + - ACCOUNTS_GET_BALANCE: PISP can request a balance for the linked + account + + - ACCOUNTS_TRANSFER: PISP can request a transfer of funds from the + linked account in the DFSP + + - ACCOUNTS_STATEMENT: PISP can request a statement of individual + transactions on a user's account enum: - ACCOUNTS_GET_BALANCE - ACCOUNTS_TRANSFER @@ -2705,8 +3111,11 @@ components: Scope: title: Scope type: object - description: |- - The Scope element contains an identifier defining, in the terms of a DFSP, an account on which access types can be requested or granted. It also defines the access types which are requested or granted. + description: >- + The Scope element contains an identifier defining, in the terms of a + DFSP, an account on which access types can be requested or granted. It + also defines the access types which are requested or granted. + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#32121-scope properties: address: @@ -2736,23 +3145,33 @@ components: pattern: ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))? minLength: 1 maxLength: 512 - description: | - The API data type Uri is a JSON string in a canonical format that is restricted by a regular expression for interoperability reasons. + description: > + The API data type Uri is a JSON string in a canonical format that is + restricted by a regular expression for interoperability reasons. ConsentRequestsPostRequest: title: ConsentRequestsPostRequest type: object - description: |- + description: >- Used by: PISP - The HTTP request POST /consentRequests is used to request a DFSP to grant access to one or more accounts owned by a customer of the DFSP for the PISP who sends the request. + + The HTTP request POST /consentRequests is used to request a DFSP to + grant access to one or more accounts owned by a customer of the DFSP for + the PISP who sends the request. + Callback and data model for POST /consentRequests: - Callback: PUT /consentRequests/{ID} Error callback: PUT /consentRequests/{ID}/error Data model - see below url + + Callback: PUT /consentRequests/{ID} Error callback: PUT + /consentRequests/{ID}/error Data model - see below url + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#31212-post-consentrequests properties: consentRequestId: $ref: '#/components/schemas/CorrelationId' userId: type: string - description: The identifier used in the **GET /accounts/**_{ID}_. Used by the DFSP to correlate an account lookup to a `consentRequest` + description: >- + The identifier used in the **GET /accounts/**_{ID}_. Used by the + DFSP to correlate an account lookup to a `consentRequest` minLength: 1 maxLength: 128 scopes: @@ -2787,12 +3206,17 @@ components: ConsentRequestsIDPutResponseWeb: title: ConsentRequestsIDPutResponseWeb type: object - description: | + description: > The object sent in a `PUT /consentRequests/{ID}` request. - Schema used in the request consent phase of the account linking web flow, + + Schema used in the request consent phase of the account linking web + flow, + the result is the PISP being instructed on a specific URL where this + supposed user should be redirected. This URL should be a place where + the user can prove their identity (e.g., by logging in). properties: scopes: @@ -2829,10 +3253,12 @@ components: ConsentRequestsIDPutResponseOTP: title: ConsentRequestsIDPutResponseOTP type: object - description: | + description: > The object sent in a `PUT /consentRequests/{ID}` request. - Schema used in the request consent phase of the account linking OTP/SMS flow. + + Schema used in the request consent phase of the account linking OTP/SMS + flow. properties: scopes: type: array @@ -2857,13 +3283,22 @@ components: BinaryString: type: string pattern: ^[A-Za-z0-9-_]+[=]{0,2}$ - description: The API data type BinaryString is a JSON String. The string is a base64url encoding of a string of raw bytes, where padding (character ‘=’) is added at the end of the data if needed to ensure that the string is a multiple of 4 characters. The length restriction indicates the allowed number of characters. + description: >- + The API data type BinaryString is a JSON String. The string is a + base64url encoding of a string of raw bytes, where padding (character + ‘=’) is added at the end of the data if needed to ensure that the string + is a multiple of 4 characters. The length restriction indicates the + allowed number of characters. ConsentRequestsIDPatchRequest: title: ConsentRequestsIDPatchRequest type: object - description: |- + description: >- Used by: PISP - After the user completes an out-of-band authorization with the DFSP, the PISP will receive a token which they can use to prove to the DFSP that the user trusts this PISP. + + After the user completes an out-of-band authorization with the DFSP, the + PISP will receive a token which they can use to prove to the DFSP that + the user trusts this PISP. + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#31222-patch-consentrequestsid properties: authToken: @@ -2878,8 +3313,12 @@ components: enum: - FIDO - GENERIC - description: |- - The type of the Credential. - "FIDO" - The credential is based on a FIDO challenge. Its payload is a FIDOPublicKeyCredentialAttestation object. - "GENERIC" - The credential is based on a simple public key validation. Its payload is a GenericCredential object. + description: >- + The type of the Credential. - "FIDO" - The credential is based on a FIDO + challenge. Its payload is a FIDOPublicKeyCredentialAttestation object. - + "GENERIC" - The credential is based on a simple public key validation. + Its payload is a GenericCredential object. + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#3226-credentialtype CredentialStatusPending: title: CredentialStatusPending @@ -2892,8 +3331,9 @@ components: GenericCredential: title: GenericCredential type: object - description: | - A publicKey + signature of a challenge for a generic public/private keypair. + description: > + A publicKey + signature of a challenge for a generic public/private + keypair. properties: publicKey: $ref: '#/components/schemas/BinaryString' @@ -2906,12 +3346,18 @@ components: FIDOPublicKeyCredentialAttestation: title: FIDOPublicKeyCredentialAttestation type: object - description: | + description: > A data model representing a FIDO Attestation result. Derived from - [`PublicKeyCredential` Interface](https://w3c.github.io/webauthn/#iface-pkcredential). + + [`PublicKeyCredential` + Interface](https://w3c.github.io/webauthn/#iface-pkcredential). + The `PublicKeyCredential` interface represents the below fields with - a Type of Javascript [ArrayBuffer](https://heycam.github.io/webidl/#idl-ArrayBuffer). + + a Type of Javascript + [ArrayBuffer](https://heycam.github.io/webidl/#idl-ArrayBuffer). + For this API, we represent ArrayBuffers as base64 encoded utf-8 strings. properties: id: @@ -2961,12 +3407,18 @@ components: SignedCredential: title: SignedCredential type: object - description: | + description: > A credential used to allow a user to prove their identity and access + to an account with a DFSP. - SignedCredential is a special formatting of the credential to allow us to be - more explicit about the `status` field - it should only ever be PENDING when + + SignedCredential is a special formatting of the credential to allow us + to be + + more explicit about the `status` field - it should only ever be PENDING + when + updating a credential. properties: credentialType: @@ -3034,15 +3486,20 @@ components: consentId: allOf: - $ref: '#/components/schemas/CorrelationId' - description: | - Common ID between the PISP and the Payer DFSP for the consent object. The ID - should be reused for re-sends of the same consent. A new ID should be generated + description: > + Common ID between the PISP and the Payer DFSP for the consent + object. The ID + + should be reused for re-sends of the same consent. A new ID should + be generated + for each new consent. consentRequestId: allOf: - $ref: '#/components/schemas/CorrelationId' - description: | - The ID given to the original consent request on which this consent is based. + description: > + The ID given to the original consent request on which this consent + is based. scopes: type: array minLength: 1 @@ -3061,9 +3518,12 @@ components: ConsentsIDPutResponseSigned: title: ConsentsIDPutResponseSigned type: object - description: | - The HTTP request `PUT /consents/{ID}` is used by the PISP to update a Consent with a signed challenge and register a credential. - Called by a `PISP` to after signing a challenge. Sent to a DFSP for verification. + description: > + The HTTP request `PUT /consents/{ID}` is used by the PISP to update a + Consent with a signed challenge and register a credential. + + Called by a `PISP` to after signing a challenge. Sent to a DFSP for + verification. properties: status: $ref: '#/components/schemas/ConsentStatusIssued' @@ -3090,12 +3550,18 @@ components: VerifiedCredential: title: VerifiedCredential type: object - description: | + description: > A credential used to allow a user to prove their identity and access + to an account with a DFSP. - VerifiedCredential is a special formatting of Credential to allow us to be - more explicit about the `status` field - it should only ever be VERIFIED when + + VerifiedCredential is a special formatting of Credential to allow us to + be + + more explicit about the `status` field - it should only ever be VERIFIED + when + updating a credential. properties: credentialType: @@ -3113,9 +3579,12 @@ components: ConsentsIDPutResponseVerified: title: ConsentsIDPutResponseVerified type: object - description: | - The HTTP request `PUT /consents/{ID}` is used by the DFSP or Auth-Service to update a Consent object once it has been Verified. - Called by a `auth-service` to notify a DFSP that a credential has been verified and registered. + description: > + The HTTP request `PUT /consents/{ID}` is used by the DFSP or + Auth-Service to update a Consent object once it has been Verified. + + Called by a `auth-service` to notify a DFSP that a credential has been + verified and registered. properties: status: $ref: '#/components/schemas/ConsentStatusIssued' @@ -3180,14 +3649,19 @@ components: ParticipantsTypeIDPutResponse: title: ParticipantsTypeIDPutResponse type: object - description: The object sent in the PUT /participants/{Type}/{ID}/{SubId} and /participants/{Type}/{ID} callbacks. + description: >- + The object sent in the PUT /participants/{Type}/{ID}/{SubId} and + /participants/{Type}/{ID} callbacks. properties: fspId: $ref: '#/components/schemas/FspId' ParticipantsTypeIDSubIDPostRequest: title: ParticipantsTypeIDSubIDPostRequest 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. + 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: fspId: $ref: '#/components/schemas/FspId' @@ -3200,11 +3674,17 @@ components: ServicesServiceTypePutResponse: title: ServicesServiceTypePutResponse type: object - description: |- + description: >- Used by: Switch - The callback PUT /services/{ServiceType} is used to inform the client of a successful result of the service information lookup. + + The callback PUT /services/{ServiceType} is used to inform the client of + a successful result of the service information lookup. + Callback and data model information for GET /services/{ServiceType}: - Callback - PUT /services/{ServiceType} Error Callback - PUT /services/{ServiceType}/error Data Model - Empty body + + Callback - PUT /services/{ServiceType} Error Callback - PUT + /services/{ServiceType}/error Data Model - Empty body + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#31531-put-servicesservicetype properties: providers: @@ -3220,18 +3700,30 @@ components: ThirdpartyRequestsTransactionsPostRequest: title: ThirdpartyRequestsTransactionsPostRequest type: object - description: |- + description: >- Used by: PISP - The HTTP request POST /thirdpartyRequests/transactions is used to request the creation of a transaction request on the server for the transfer described in the request. - Callback and data model information for POST /thirdpartyRequests/transactions: - Callback - PUT /thirdpartyRequests/transactions/{ID} Error Callback - PUT /thirdpartyRequests/transactions/{ID}/error Data Model - See link below + + The HTTP request POST /thirdpartyRequests/transactions is used to + request the creation of a transaction request on the server for the + transfer described in the request. + + Callback and data model information for POST + /thirdpartyRequests/transactions: + + Callback - PUT /thirdpartyRequests/transactions/{ID} Error Callback - + PUT /thirdpartyRequests/transactions/{ID}/error Data Model - See link + below + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#31712-post-thirdpartyrequeststransactions properties: transactionRequestId: allOf: - $ref: '#/components/schemas/CorrelationId' - description: | - Common ID between the PISP and the Payer DFSP for the transaction request object. The ID should be reused for resends of the same transaction request. A new ID should be generated for each new transaction request. + description: > + Common ID between the PISP and the Payer DFSP for the transaction + request object. The ID should be reused for resends of the same + transaction request. A new ID should be generated for each new + transaction request. payee: allOf: - $ref: '#/components/schemas/Party' @@ -3259,8 +3751,10 @@ components: description: A memo that will be attached to the transaction. expiration: type: string - description: | - Date and time until when the transaction request is valid. It can be set to get a quick failure in case the peer FSP takes too long to respond. + description: > + Date and time until when the transaction request is valid. It can be + set to get a quick failure in case the peer FSP takes too long to + respond. example: '2016-05-24T08:38:08.699-04:00' extensionList: $ref: '#/components/schemas/ExtensionList' @@ -3275,9 +3769,15 @@ components: ThirdpartyRequestsTransactionsIDPutResponse: title: ThirdpartyRequestsTransactionsIDPutResponse type: object - description: |- + description: >- Used by: DFSP - After a PISP requests the creation of a Third Party Transaction request (POST /thirdpartyRequests/transactions) or the status of a previously created Third Party Transaction request (GET /thirdpartyRequests/transactions/{ID}), the DFSP will send this callback. + + After a PISP requests the creation of a Third Party Transaction request + (POST /thirdpartyRequests/transactions) or the status of a previously + created Third Party Transaction request (GET + /thirdpartyRequests/transactions/{ID}), the DFSP will send this + callback. + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#31721-put-thirdpartyrequeststransactionsid properties: transactionId: @@ -3290,11 +3790,20 @@ components: - transactionRequestState ThirdpartyRequestsAuthorizationsPostRequest: title: ThirdpartyRequestsAuthorizationsPostRequest - description: |- + description: >- Used by: DFSP - The HTTP request POST /thirdpartyRequests/authorizations is used to request the validation by a customer for the transfer described in the request. - Callback and data model information for POST /thirdpartyRequests/authorizations: - Callback - PUT /thirdpartyRequests/authorizations/{ID} Error Callback - PUT /thirdpartyRequests/authorizations/{ID}/error Data Model - See below url + + The HTTP request POST /thirdpartyRequests/authorizations is used to + request the validation by a customer for the transfer described in the + request. + + Callback and data model information for POST + /thirdpartyRequests/authorizations: + + Callback - PUT /thirdpartyRequests/authorizations/{ID} Error Callback - + PUT /thirdpartyRequests/authorizations/{ID}/error Data Model - See below + url + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#31612-post-thirdpartyrequestsauthorizations type: object properties: @@ -3308,19 +3817,27 @@ components: transferAmount: allOf: - $ref: '#/components/schemas/Money' - description: The amount that will be debited from the sending customer's account as a consequence of the transaction. + description: >- + The amount that will be debited from the sending customer's account + as a consequence of the transaction. payeeReceiveAmount: allOf: - $ref: '#/components/schemas/Money' - description: The amount that will be credited to the receiving customer's account as a consequence of the transaction. + description: >- + The amount that will be credited to the receiving customer's account + as a consequence of the transaction. fees: allOf: - $ref: '#/components/schemas/Money' - description: The amount of fees that the paying customer will be charged as part of the transaction. + description: >- + The amount of fees that the paying customer will be charged as part + of the transaction. payer: allOf: - $ref: '#/components/schemas/PartyIdInfo' - description: Information about the Payer type, id, sub-type/id, FSP Id in the proposed financial transaction. + description: >- + Information about the Payer type, id, sub-type/id, FSP Id in the + proposed financial transaction. payee: allOf: - $ref: '#/components/schemas/Party' @@ -3330,7 +3847,9 @@ components: expiration: allOf: - $ref: '#/components/schemas/DateTime' - description: The time by which the transfer must be completed, set by the payee DFSP. + description: >- + The time by which the transfer must be completed, set by the payee + DFSP. extensionList: $ref: '#/components/schemas/ExtensionList' required: @@ -3355,7 +3874,9 @@ components: ThirdpartyRequestsAuthorizationsIDPutResponseRejected: title: ThirdpartyRequestsAuthorizationsIDPutResponseRejected type: object - description: The object sent in the PUT /thirdpartyRequests/authorizations/{ID} callback. + description: >- + The object sent in the PUT /thirdpartyRequests/authorizations/{ID} + callback. properties: responseType: $ref: '#/components/schemas/AuthorizationResponseTypeRejected' @@ -3379,14 +3900,20 @@ components: FIDOPublicKeyCredentialAssertion: title: FIDOPublicKeyCredentialAssertion type: object - description: | + description: > A data model representing a FIDO Assertion result. + Derived from PublicKeyCredential Interface in WebAuthN. - The PublicKeyCredential interface represents the below fields with a Type of + + The PublicKeyCredential interface represents the below fields with a + Type of + Javascript ArrayBuffer. + For this API, we represent ArrayBuffers as base64 encoded utf-8 strings. + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#32128-fidopublickeycredentialassertion properties: id: @@ -3421,8 +3948,9 @@ components: maxLength: 512 signature: type: string - description: | - The signature generated by the private key associated with this credential. + description: > + The signature generated by the private key associated with this + credential. minLength: 59 maxLength: 256 userHandle: @@ -3463,7 +3991,9 @@ components: ThirdpartyRequestsAuthorizationsIDPutResponseFIDO: title: ThirdpartyRequestsAuthorizationsIDPutResponseFIDO type: object - description: The object sent in the PUT /thirdpartyRequests/authorizations/{ID} callback. + description: >- + The object sent in the PUT /thirdpartyRequests/authorizations/{ID} + callback. properties: responseType: $ref: '#/components/schemas/AuthorizationResponseTypeAccepted' @@ -3496,7 +4026,9 @@ components: ThirdpartyRequestsAuthorizationsIDPutResponseGeneric: title: ThirdpartyRequestsAuthorizationsIDPutResponseGeneric type: object - description: The object sent in the PUT /thirdpartyRequests/authorizations/{ID} callback. + description: >- + The object sent in the PUT /thirdpartyRequests/authorizations/{ID} + callback. properties: responseType: $ref: '#/components/schemas/AuthorizationResponseTypeAccepted' @@ -3522,8 +4054,10 @@ components: consentId: allOf: - $ref: '#/components/schemas/CorrelationId' - description: | - The id of the stored consent object that contains the credential with which to verify + description: > + The id of the stored consent object that contains the credential + with which to verify + the signed challenge against. signedPayloadType: $ref: '#/components/schemas/SignedPayloadTypeFIDO' @@ -3551,8 +4085,10 @@ components: consentId: allOf: - $ref: '#/components/schemas/CorrelationId' - description: | - The id of the stored consent object that contains the credential with which to verify + description: > + The id of the stored consent object that contains the credential + with which to verify + the signed challenge against. signedPayloadType: $ref: '#/components/schemas/SignedPayloadTypeGeneric' @@ -3571,15 +4107,24 @@ components: type: string enum: - VERIFIED - description: |- - The AuthenticationResponse enumeration describes the result of authenticating verification request. - Below are the allowed values for the enumeration AuthenticationResponse. - VERIFIED - The challenge was correctly signed. + description: >- + The AuthenticationResponse enumeration describes the result of + authenticating verification request. + + Below are the allowed values for the enumeration AuthenticationResponse. + - VERIFIED - The challenge was correctly signed. ThirdpartyRequestsVerificationsIDPutResponse: title: ThirdpartyRequestsVerificationsIDPutResponse type: object - description: |- + description: >- Used by: Auth Service - The callback PUT /thirdpartyRequests/verifications/{ID} is used to inform the client of the result of an authorization check. The {ID} in the URI should contain the authorizationRequestId which was used to request the check, or the {ID} that was used in the GET /thirdpartyRequests/verifications/{ID}. + + The callback PUT /thirdpartyRequests/verifications/{ID} is used to + inform the client of the result of an authorization check. The {ID} in + the URI should contain the authorizationRequestId which was used to + request the check, or the {ID} that was used in the GET + /thirdpartyRequests/verifications/{ID}. + https://github.com/mojaloop/documentation/blob/main/website/versioned_docs/v1.0.1/api/thirdparty/data-models.md#31821-put-thirdpartyrequestsverificationsid properties: authenticationResponse: @@ -3602,7 +4147,9 @@ components: schema: type: string required: true - description: The `Content-Type` header indicates the specific version of the API used to send the payload body. + description: >- + The `Content-Type` header indicates the specific version of the API used + to send the payload body. Date: name: Date in: header @@ -3616,69 +4163,107 @@ components: 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. + 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`. + + **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`). + 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 schema: type: string required: false - description: The `FSPIOP-Destination` header field is a non-HTTP standard field used by the API for HTTP header based routing of requests and responses to the destination. The field must be set by the original sender of the request if the destination is known (valid for all services except GET /parties) so that any entities between the client and the server do not need to parse the payload for routing purposes. If the destination is not known (valid for service GET /parties), the field should be left empty. + description: >- + The `FSPIOP-Destination` header field is a non-HTTP standard field used + by the API for HTTP header based routing of requests and responses to + the destination. The field must be set by the original sender of the + request if the destination is known (valid for all services except GET + /parties) so that any entities between the client and the server do not + need to parse the payload for routing purposes. If the destination is + not known (valid for service GET /parties), the field should be left + empty. FSPIOP-Encryption: name: FSPIOP-Encryption in: header schema: type: string required: false - 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. + 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-Signature: name: FSPIOP-Signature in: header schema: type: string required: false - description: The `FSPIOP-Signature` header field is a non-HTTP standard field used by the API for applying an end-to-end request signature. + 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-URI: name: FSPIOP-URI in: header schema: type: string required: false - description: The `FSPIOP-URI` header field is a non-HTTP standard field used by the API for signature verification, should contain the service URI. Required if signature verification is used, for more information, see [the API Signature document](https://github.com/mojaloop/docs/tree/main/Specification%20Document%20Set). + description: >- + The `FSPIOP-URI` header field is a non-HTTP standard field used by the + API for signature verification, should contain the service URI. 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-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). + 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 required: true schema: type: string - description: The `Accept` header field indicates the version of the API the client would like the server to use. + 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. + 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). + + **Note:** The API supports a maximum size of 5242880 bytes (5 + Megabytes). Type: name: Type in: path @@ -3791,12 +4376,17 @@ components: 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. + 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). + **Note:** The API supports a maximum size of 5242880 bytes (5 + Megabytes). Content-Type: schema: type: string required: true - description: The `Content-Type` header indicates the specific version of the API used to send the payload body. + description: >- + The `Content-Type` header indicates the specific version of the API used + to send the payload body. diff --git a/fspiop/v1_0/openapi3/components/schemas/PartiesTypeIDPutResponse.yaml b/fspiop/v1_0/openapi3/components/schemas/PartiesTypeIDPutResponse.yaml index 8cf169a8..d332e77f 100644 --- a/fspiop/v1_0/openapi3/components/schemas/PartiesTypeIDPutResponse.yaml +++ b/fspiop/v1_0/openapi3/components/schemas/PartiesTypeIDPutResponse.yaml @@ -4,6 +4,5 @@ description: 'The object sent in the PUT /parties/{Type}/{ID} callback.' properties: party: $ref: ./Party.yaml - description: Information regarding the requested Party. required: - party diff --git a/package-lock.json b/package-lock.json index 55615d5d..c788df96 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "@commitlint/cli": "^18.4.3", "@commitlint/config-conventional": "^18.4.3", "@redocly/cli": "^1.5.0", + "@redocly/openapi-cli": "^1.0.0-beta.94", "@types/jest": "^29.5.10", "@types/js-yaml": "^4.0.9", "@typescript-eslint/eslint-plugin": "^6.13.2", @@ -957,9 +958,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz", + "integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -1192,9 +1193,9 @@ } }, "node_modules/@commitlint/load/node_modules/@types/node": { - "version": "18.19.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.2.tgz", - "integrity": "sha512-6wzfBdbWpe8QykUkXBjtmO3zITA0A3FIjoy+in0Y2K4KrCiRhNYJIdwAPDffZ3G6GnaKaSLSEa9ZuORLfEoiwg==", + "version": "18.18.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.11.tgz", + "integrity": "sha512-c1vku6qnTeujJneYH94/4aq73XrVcsJe35UPyAsSok1ijiKrkRzK+AxQPSpNMUnC03roWBBwJx/9I8V7lQoxmA==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -2410,6 +2411,106 @@ "node": ">=12" } }, + "node_modules/@redocly/openapi-cli": { + "version": "1.0.0-beta.95", + "resolved": "https://registry.npmjs.org/@redocly/openapi-cli/-/openapi-cli-1.0.0-beta.95.tgz", + "integrity": "sha512-pl/OAeKh/psk6kF9SZjRieJK15T6T5GYcKVeBHvT7vtuhIBRBkrLC3bf3BhiMQx49BdSTB7Tk4/0LFPy0zr1MA==", + "deprecated": "This project has been renamed to @redocly/cli. Install using new package name instead.", + "dev": true, + "dependencies": { + "@redocly/openapi-core": "1.0.0-beta.95", + "@types/node": "^14.11.8", + "assert-node-version": "^1.0.3", + "chokidar": "^3.5.1", + "colorette": "^1.2.0", + "glob": "^7.1.6", + "glob-promise": "^3.4.0", + "handlebars": "^4.7.6", + "portfinder": "^1.0.26", + "simple-websocket": "^9.0.0", + "yargs": "17.0.1" + }, + "bin": { + "openapi": "bin/cli.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@redocly/openapi-cli/node_modules/@redocly/openapi-core": { + "version": "1.0.0-beta.95", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.95.tgz", + "integrity": "sha512-7Nnc4Obp/1lbrjNjD33oOnZCuoJa8awhBCEyyayPWGQFp1SkhjpZJnfnKkFuYbQzMjTIAvEeSp9DOQK/E0fgEA==", + "dev": true, + "dependencies": { + "@redocly/ajv": "^8.6.4", + "@types/node": "^14.11.8", + "colorette": "^1.2.0", + "js-levenshtein": "^1.1.6", + "js-yaml": "^4.1.0", + "lodash.isequal": "^4.5.0", + "minimatch": "^3.0.4", + "node-fetch": "^2.6.1", + "pluralize": "^8.0.0", + "yaml-ast-parser": "0.0.43" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@redocly/openapi-cli/node_modules/@types/node": { + "version": "14.18.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.18.tgz", + "integrity": "sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig==", + "dev": true + }, + "node_modules/@redocly/openapi-cli/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@redocly/openapi-cli/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@redocly/openapi-cli/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@redocly/openapi-cli/node_modules/yargs": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", + "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@redocly/openapi-core": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.5.0.tgz", @@ -2432,9 +2533,9 @@ } }, "node_modules/@redocly/openapi-core/node_modules/@types/node": { - "version": "14.18.63", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", - "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" + "version": "14.18.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.18.tgz", + "integrity": "sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig==" }, "node_modules/@redocly/openapi-core/node_modules/brace-expansion": { "version": "2.0.1", @@ -2704,6 +2805,16 @@ "@types/node": "*" } }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "node_modules/@types/graceful-fs": { "version": "4.1.6", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", @@ -2785,6 +2896,12 @@ "@types/node": "*" } }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, "node_modules/@types/minimist": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", @@ -2825,9 +2942,9 @@ "dev": true }, "node_modules/@types/stylis": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.3.tgz", - "integrity": "sha512-86XLCVEmWagiUEbr2AjSbeY4qHN9jMm3pgM3PuBYfLIbT0MpDSnA3GA/4W7KoH/C/eeK77kNaeIxZzjhKYIBgw==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.4.tgz", + "integrity": "sha512-36ZrGJ8fgtBr6nwNnuJ9jXIj+bn/pF6UoqmrQT7+Y99+tFFeHHsoR54+194dHdyhPjgbeoNz3Qru0oRt0l6ASQ==", "dev": true }, "node_modules/@types/yargs": { @@ -3420,6 +3537,28 @@ "node": ">=0.10.0" } }, + "node_modules/assert-node-version": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/assert-node-version/-/assert-node-version-1.0.3.tgz", + "integrity": "sha512-XcKBGJ1t0RrCcus9dQX57FER4PTEz/+Tee2jj+EdFIGyw5j8hwDNXZzgRYLQ916twVjSuA47adrZsSxLbpEX9A==", + "dev": true, + "dependencies": { + "expected-node-version": "^1.0.0", + "semver": "^5.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assert-node-version/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/async": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", @@ -5139,9 +5278,9 @@ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==" }, "node_modules/core-js": { - "version": "3.33.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.2.tgz", - "integrity": "sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==", + "version": "3.33.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.3.tgz", + "integrity": "sha512-lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw==", "dev": true, "hasInstallScript": true, "funding": { @@ -6876,6 +7015,15 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/expected-node-version": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/expected-node-version/-/expected-node-version-1.0.2.tgz", + "integrity": "sha1-uNIlub9nap6H4G29YVtS/J0eOGs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/exponential-backoff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", @@ -7195,9 +7343,9 @@ "dev": true }, "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -7636,6 +7784,21 @@ "node": ">= 6" } }, + "node_modules/glob-promise": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", + "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", + "dev": true, + "dependencies": { + "@types/glob": "*" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "glob": "*" + } + }, "node_modules/global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", @@ -10870,9 +11033,9 @@ } }, "node_modules/mobx": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.11.0.tgz", - "integrity": "sha512-qngYCmr0WJiFRSAtYe82DB7SbzvbhehkJjONs8ydynUwoazzUQHZdAlaJqUfks5j4HarhWsZrMRhV7HtSO9HOQ==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.12.0.tgz", + "integrity": "sha512-Mn6CN6meXEnMa0a5u6a5+RKrqRedHBhZGd15AWLk9O6uFY4KYHzImdt8JI8WODo1bjTSRnwXhJox+FCUZhCKCQ==", "dev": true, "funding": { "type": "opencollective", @@ -11714,9 +11877,9 @@ } }, "node_modules/openapi-sampler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.3.1.tgz", - "integrity": "sha512-Ert9mvc2tLPmmInwSyGZS+v4Ogu9/YoZuq9oP3EdUklg2cad6+IGndP9yqJJwbgdXwZibiq5fpv6vYujchdJFg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.4.0.tgz", + "integrity": "sha512-3FKJQCHAMG9T7RsRy9u5Ft4ERPq1QQmn77C8T3OSofYL9uur59AqychvQ0YQKijrqRwIkAbzkh+nQnAE3gjMVA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.7", @@ -12199,6 +12362,41 @@ "node": ">=10" } }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/portscanner": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", @@ -12214,9 +12412,9 @@ } }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "dev": true, "funding": [ { @@ -12233,7 +12431,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -15276,9 +15474,9 @@ } }, "node_modules/undici": { - "version": "5.28.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz", - "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==", + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz", + "integrity": "sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==", "dependencies": { "@fastify/busboy": "^2.0.0" }, @@ -16672,9 +16870,9 @@ } }, "@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz", + "integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==", "dev": true, "requires": { "regenerator-runtime": "^0.14.0" @@ -16860,9 +17058,9 @@ }, "dependencies": { "@types/node": { - "version": "18.19.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.2.tgz", - "integrity": "sha512-6wzfBdbWpe8QykUkXBjtmO3zITA0A3FIjoy+in0Y2K4KrCiRhNYJIdwAPDffZ3G6GnaKaSLSEa9ZuORLfEoiwg==", + "version": "18.18.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.11.tgz", + "integrity": "sha512-c1vku6qnTeujJneYH94/4aq73XrVcsJe35UPyAsSok1ijiKrkRzK+AxQPSpNMUnC03roWBBwJx/9I8V7lQoxmA==", "dev": true, "requires": { "undici-types": "~5.26.4" @@ -17802,6 +18000,89 @@ } } }, + "@redocly/openapi-cli": { + "version": "1.0.0-beta.95", + "resolved": "https://registry.npmjs.org/@redocly/openapi-cli/-/openapi-cli-1.0.0-beta.95.tgz", + "integrity": "sha512-pl/OAeKh/psk6kF9SZjRieJK15T6T5GYcKVeBHvT7vtuhIBRBkrLC3bf3BhiMQx49BdSTB7Tk4/0LFPy0zr1MA==", + "dev": true, + "requires": { + "@redocly/openapi-core": "1.0.0-beta.95", + "@types/node": "^14.11.8", + "assert-node-version": "^1.0.3", + "chokidar": "^3.5.1", + "colorette": "^1.2.0", + "glob": "^7.1.6", + "glob-promise": "^3.4.0", + "handlebars": "^4.7.6", + "portfinder": "^1.0.26", + "simple-websocket": "^9.0.0", + "yargs": "17.0.1" + }, + "dependencies": { + "@redocly/openapi-core": { + "version": "1.0.0-beta.95", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.95.tgz", + "integrity": "sha512-7Nnc4Obp/1lbrjNjD33oOnZCuoJa8awhBCEyyayPWGQFp1SkhjpZJnfnKkFuYbQzMjTIAvEeSp9DOQK/E0fgEA==", + "dev": true, + "requires": { + "@redocly/ajv": "^8.6.4", + "@types/node": "^14.11.8", + "colorette": "^1.2.0", + "js-levenshtein": "^1.1.6", + "js-yaml": "^4.1.0", + "lodash.isequal": "^4.5.0", + "minimatch": "^3.0.4", + "node-fetch": "^2.6.1", + "pluralize": "^8.0.0", + "yaml-ast-parser": "0.0.43" + } + }, + "@types/node": { + "version": "14.18.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.18.tgz", + "integrity": "sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "yargs": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", + "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + } + } + }, "@redocly/openapi-core": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.5.0.tgz", @@ -17820,9 +18101,9 @@ }, "dependencies": { "@types/node": { - "version": "14.18.63", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", - "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" + "version": "14.18.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.18.tgz", + "integrity": "sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig==" }, "brace-expansion": { "version": "2.0.1", @@ -18057,6 +18338,16 @@ "@types/node": "*" } }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "@types/graceful-fs": { "version": "4.1.6", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", @@ -18138,6 +18429,12 @@ "@types/node": "*" } }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, "@types/minimist": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", @@ -18178,9 +18475,9 @@ "dev": true }, "@types/stylis": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.3.tgz", - "integrity": "sha512-86XLCVEmWagiUEbr2AjSbeY4qHN9jMm3pgM3PuBYfLIbT0MpDSnA3GA/4W7KoH/C/eeK77kNaeIxZzjhKYIBgw==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.4.tgz", + "integrity": "sha512-36ZrGJ8fgtBr6nwNnuJ9jXIj+bn/pF6UoqmrQT7+Y99+tFFeHHsoR54+194dHdyhPjgbeoNz3Qru0oRt0l6ASQ==", "dev": true }, "@types/yargs": { @@ -18586,6 +18883,24 @@ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true }, + "assert-node-version": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/assert-node-version/-/assert-node-version-1.0.3.tgz", + "integrity": "sha512-XcKBGJ1t0RrCcus9dQX57FER4PTEz/+Tee2jj+EdFIGyw5j8hwDNXZzgRYLQ916twVjSuA47adrZsSxLbpEX9A==", + "dev": true, + "requires": { + "expected-node-version": "^1.0.0", + "semver": "^5.0.3" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, "async": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", @@ -19907,9 +20222,9 @@ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==" }, "core-js": { - "version": "3.33.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.2.tgz", - "integrity": "sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==", + "version": "3.33.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.3.tgz", + "integrity": "sha512-lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw==", "dev": true }, "core-util-is": { @@ -21121,6 +21436,12 @@ "jest-util": "^29.7.0" } }, + "expected-node-version": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/expected-node-version/-/expected-node-version-1.0.2.tgz", + "integrity": "sha1-uNIlub9nap6H4G29YVtS/J0eOGs=", + "dev": true + }, "exponential-backoff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", @@ -21377,9 +21698,9 @@ "dev": true }, "fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -21708,6 +22029,15 @@ "is-glob": "^4.0.1" } }, + "glob-promise": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", + "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", + "dev": true, + "requires": { + "@types/glob": "*" + } + }, "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", @@ -24090,9 +24420,9 @@ "dev": true }, "mobx": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.11.0.tgz", - "integrity": "sha512-qngYCmr0WJiFRSAtYe82DB7SbzvbhehkJjONs8ydynUwoazzUQHZdAlaJqUfks5j4HarhWsZrMRhV7HtSO9HOQ==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.12.0.tgz", + "integrity": "sha512-Mn6CN6meXEnMa0a5u6a5+RKrqRedHBhZGd15AWLk9O6uFY4KYHzImdt8JI8WODo1bjTSRnwXhJox+FCUZhCKCQ==", "dev": true }, "mobx-react": { @@ -24687,9 +25017,9 @@ } }, "openapi-sampler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.3.1.tgz", - "integrity": "sha512-Ert9mvc2tLPmmInwSyGZS+v4Ogu9/YoZuq9oP3EdUklg2cad6+IGndP9yqJJwbgdXwZibiq5fpv6vYujchdJFg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.4.0.tgz", + "integrity": "sha512-3FKJQCHAMG9T7RsRy9u5Ft4ERPq1QQmn77C8T3OSofYL9uur59AqychvQ0YQKijrqRwIkAbzkh+nQnAE3gjMVA==", "dev": true, "requires": { "@types/json-schema": "^7.0.7", @@ -25042,6 +25372,37 @@ "@babel/runtime": "^7.17.8" } }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + } + } + }, "portscanner": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", @@ -25053,12 +25414,12 @@ } }, "postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "dev": true, "requires": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -27344,9 +27705,9 @@ } }, "undici": { - "version": "5.28.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz", - "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==", + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz", + "integrity": "sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==", "requires": { "@fastify/busboy": "^2.0.0" } diff --git a/package.json b/package.json index dbb40b8d..acf694f4 100644 --- a/package.json +++ b/package.json @@ -7,27 +7,37 @@ "scripts": { "audit:fix": "npm audit fix", "audit:check": "npx audit-ci --config ./audit-ci.jsonc", - "build": "npm run build:openapi; npm run build:dto; npm run build:schemas; tsc -p ./tsconfig.build.json", - "build:dto": "npm run build:dto:v1.0; npm run build:dto:v1.1; npm run build:dto:v2.0; npm run build:dto:thirdparty; npm run build:dto:sdk-scheme-adapter;", - "build:schemas": "npm run build:schemas:sdk-scheme-adapter:backend; npm run build:schemas:sdk-scheme-adapter:outbound;", + "build": "npm run build:openapi; npm run build:dto; npm run build:schemas:v2.0.0; npm run build:schemas:v2.1.0; tsc -p ./tsconfig.build.json", + "build:dto": "npm run build:dto:v1.0; npm run build:dto:v1.1; npm run build:dto:v2.0; npm run build:dto:thirdparty; npm run build:dto:sdk-scheme-adapter:v2.0.0; npm run build:dto:sdk-scheme-adapter:v2.1.0;", + "build:schemas:v2.0.0": "npm run build:schemas:sdk-scheme-adapter:backend:v2.0.0; npm run build:schemas:sdk-scheme-adapter:outbound:v2.0.0;", + "build:schemas:v2.1.0": "npm run build:schemas:sdk-scheme-adapter:backend:v2.1.0; npm run build:schemas:sdk-scheme-adapter:outbound:v2.1.0;", "build:dto:v1.0": "openapi-typescript docs/fspiop-rest-v1.0-openapi3-snippets.yaml --output src/fspiop/v1_0/openapi.ts", "build:dto:v1.1": "openapi-typescript docs/fspiop-rest-v1.1-openapi3-snippets.yaml --output src/fspiop/v1_1/openapi.ts", "build:dto:v2.0": "openapi-typescript docs/fspiop-rest-v2.0-openapi3-snippets.yaml --output src/fspiop/v2_0/openapi.ts", "build:dto:thirdparty": "openapi-typescript docs/thirdparty-openapi3-snippets.yaml --output src/thirdparty/openapi.ts", - "build:dto:sdk-scheme-adapter": "npm run build:dto:sdk-scheme-adapter:backend; npm run build:dto:sdk-scheme-adapter:outbound;", - "build:dto:sdk-scheme-adapter:backend": "openapi-typescript docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml --output src/sdk-scheme-adapter/v2_0_0/backend/openapi.ts", - "build:dto:sdk-scheme-adapter:outbound": "openapi-typescript docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml --output src/sdk-scheme-adapter/v2_0_0/outbound/openapi.ts", - "build:openapi": "npm run build:v1.0; npm run build:v1.1; npm run build:refactor:fspiop:v1.1; npm run build:v2.0; npm run build:refactor:fspiop:v2.0; npm run build:thirdparty; npm run build:sdk-scheme-adapter:backend; npm run build:sdk-scheme-adapter:outbound;", + "build:dto:sdk-scheme-adapter:v2.0.0": "npm run build:dto:sdk-scheme-adapter:backend:v2.0.0; npm run build:dto:sdk-scheme-adapter:outbound:v2.0.0;", + "build:dto:sdk-scheme-adapter:v2.1.0": "npm run build:dto:sdk-scheme-adapter:backend:v2.1.0; npm run build:dto:sdk-scheme-adapter:outbound:v2.1.0;", + "build:dto:sdk-scheme-adapter:backend:v2.0.0": "openapi-typescript docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml --output src/sdk-scheme-adapter/v2_0_0/backend/openapi.ts", + "build:dto:sdk-scheme-adapter:outbound:v2.0.0": "openapi-typescript docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml --output src/sdk-scheme-adapter/v2_0_0/outbound/openapi.ts", + "build:dto:sdk-scheme-adapter:backend:v2.1.0": "openapi-typescript docs/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets.yaml --output src/sdk-scheme-adapter/v2_1_0/backend/openapi.ts", + "build:dto:sdk-scheme-adapter:outbound:v2.1.0": "openapi-typescript docs/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets.yaml --output src/sdk-scheme-adapter/v2_1_0/outbound/openapi.ts", + "build:openapi": "npm run build:v1.0; npm run build:v1.1; npm run build:refactor:fspiop:v1.1; npm run build:v2.0; npm run build:refactor:fspiop:v2.0; npm run build:thirdparty; npm run build:sdk-scheme-adapter:v2.0.0; npm run build:sdk-scheme-adapter:v2.1.0;", "build:v1.0": "openapi bundle --output docs/fspiop-rest-v1.0-openapi3-snippets.yaml --ext yaml fspiop/v1_0/openapi3/openapi.yaml && swagger-cli validate docs/fspiop-rest-v1.0-openapi3-snippets.yaml", "build:v1.1": "openapi bundle --output docs/fspiop-rest-v1.1-openapi3-snippets.yaml --ext yaml fspiop/v1_1/openapi3/openapi.yaml && swagger-cli validate docs/fspiop-rest-v1.1-openapi3-snippets.yaml", "build:v2.0": "openapi bundle --output docs/fspiop-rest-v2.0-openapi3-snippets.yaml --ext yaml fspiop/v2_0/openapi3/openapi.yaml && swagger-cli validate docs/fspiop-rest-v2.0-openapi3-snippets.yaml", "build:thirdparty": "openapi bundle --output docs/thirdparty-openapi3-snippets.yaml --ext yaml thirdparty/v1_0/openapi3/openapi.yaml && swagger-cli validate docs/thirdparty-openapi3-snippets.yaml", "build:thirdparty-dfsp": "swagger-cli bundle -o ./thirdparty/v1_0/openapi3/thirdparty-dfsp-api.yaml -t yaml ./thirdparty/v1_0/openapi3/thirdparty-dfsp-api.template.yaml", "build:thirdparty-pisp": "swagger-cli bundle -o ./thirdparty/v1_0/openapi3/thirdparty-pisp-api.yaml -t yaml ./thirdparty/v1_0/openapi3/thirdparty-pisp-api.template.yaml", - "build:sdk-scheme-adapter:backend": "openapi bundle --output docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml --ext yaml sdk-scheme-adapter/v2_0_0/backend/openapi.yaml && swagger-cli validate docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml", - "build:sdk-scheme-adapter:outbound": "openapi bundle --output docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml --ext yaml sdk-scheme-adapter/v2_0_0/outbound/openapi.yaml && swagger-cli validate docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml", - "build:schemas:sdk-scheme-adapter:backend": "npx ts-node --transpile-only src/scripts/json-schema-generator.ts docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml src/sdk-scheme-adapter/v2_0_0/backend", - "build:schemas:sdk-scheme-adapter:outbound": "npx ts-node --transpile-only src/scripts/json-schema-generator.ts docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml src/sdk-scheme-adapter/v2_0_0/outbound", + "build:sdk-scheme-adapter:v2.0.0": "npm run build:sdk-scheme-adapter:backend:v2.0.0; npm run build:sdk-scheme-adapter:outbound:v2.0.0;", + "build:sdk-scheme-adapter:v2.1.0": "npm run build:sdk-scheme-adapter:backend:v2.1.0; npm run build:sdk-scheme-adapter:outbound:v2.1.0;", + "build:sdk-scheme-adapter:backend:v2.0.0": "openapi bundle --output docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml --ext yaml sdk-scheme-adapter/v2_0_0/backend/openapi.yaml && swagger-cli validate docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml", + "build:sdk-scheme-adapter:outbound:v2.0.0": "openapi bundle --output docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml --ext yaml sdk-scheme-adapter/v2_0_0/outbound/openapi.yaml && swagger-cli validate docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml", + "build:sdk-scheme-adapter:backend:v2.1.0": "openapi bundle --output docs/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets.yaml --ext yaml sdk-scheme-adapter/v2_1_0/backend/openapi.yaml && swagger-cli validate docs/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets.yaml", + "build:sdk-scheme-adapter:outbound:v2.1.0": "openapi bundle --output docs/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets.yaml --ext yaml sdk-scheme-adapter/v2_1_0/outbound/openapi.yaml && swagger-cli validate docs/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets.yaml", + "build:schemas:sdk-scheme-adapter:backend:v2.0.0": "npx ts-node --transpile-only src/scripts/json-schema-generator.ts docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml src/sdk-scheme-adapter/v2_0_0/backend", + "build:schemas:sdk-scheme-adapter:outbound:v2.0.0": "npx ts-node --transpile-only src/scripts/json-schema-generator.ts docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml src/sdk-scheme-adapter/v2_0_0/outbound", + "build:schemas:sdk-scheme-adapter:backend:v2.1.0": "npx ts-node --transpile-only src/scripts/json-schema-generator.ts docs/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets.yaml src/sdk-scheme-adapter/v2_1_0/backend", + "build:schemas:sdk-scheme-adapter:outbound:v2.1.0": "npx ts-node --transpile-only src/scripts/json-schema-generator.ts docs/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets.yaml src/sdk-scheme-adapter/v2_1_0/outbound", "build:refactor:fspiop:v1.1": "npx ts-node --transpile-only src/scripts/openapi-refactor.ts docs/fspiop-rest-v1.1-openapi3-snippets.yaml docs/fspiop-rest-v1.1-openapi3-snippets.yaml", "build:refactor:fspiop:v2.0": "npx ts-node --transpile-only src/scripts/openapi-refactor.ts docs/fspiop-rest-v2.0-openapi3-snippets.yaml docs/fspiop-rest-v2.0-openapi3-snippets.yaml", "lint": "eslint --ext ts --ext js test src", @@ -80,6 +90,7 @@ "devDependencies": { "@commitlint/cli": "^18.4.3", "@commitlint/config-conventional": "^18.4.3", + "@redocly/openapi-cli": "^1.0.0-beta.94", "@redocly/cli": "^1.5.0", "@types/jest": "^29.5.10", "@types/js-yaml": "^4.0.9", diff --git a/sdk-scheme-adapter/v2_0_0/components/schemas/getPartiesResponse.yaml b/sdk-scheme-adapter/v2_0_0/components/schemas/getPartiesResponse.yaml index 091a2f7d..fed5f9a1 100644 --- a/sdk-scheme-adapter/v2_0_0/components/schemas/getPartiesResponse.yaml +++ b/sdk-scheme-adapter/v2_0_0/components/schemas/getPartiesResponse.yaml @@ -4,7 +4,6 @@ description: 'The object sent in the GET /parties/{Type}/{ID} callback.' properties: body: $ref: ./Party.yaml - description: Information regarding the requested Party. headers: type: object required: diff --git a/sdk-scheme-adapter/v2_0_0/components/schemas/partiesByIdResponse.yaml b/sdk-scheme-adapter/v2_0_0/components/schemas/partiesByIdResponse.yaml index 0f931cbe..220c8440 100644 --- a/sdk-scheme-adapter/v2_0_0/components/schemas/partiesByIdResponse.yaml +++ b/sdk-scheme-adapter/v2_0_0/components/schemas/partiesByIdResponse.yaml @@ -6,7 +6,6 @@ properties: properties: body: $ref: ./Party.yaml - description: Information regarding the requested Party. headers: type: object required: diff --git a/sdk-scheme-adapter/v2_0_0/components/schemas/requestToPayResponse.yaml b/sdk-scheme-adapter/v2_0_0/components/schemas/requestToPayResponse.yaml index 9518ac71..bc9a397a 100644 --- a/sdk-scheme-adapter/v2_0_0/components/schemas/requestToPayResponse.yaml +++ b/sdk-scheme-adapter/v2_0_0/components/schemas/requestToPayResponse.yaml @@ -32,9 +32,4 @@ properties: transactionRequestResponse: $ref: ./TransactionRequestResponse.yaml 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: ./transferError.yaml diff --git a/sdk-scheme-adapter/v2_0_0/components/schemas/requestToPayTransferResponse.yaml b/sdk-scheme-adapter/v2_0_0/components/schemas/requestToPayTransferResponse.yaml index d3d46711..b726bb72 100644 --- a/sdk-scheme-adapter/v2_0_0/components/schemas/requestToPayTransferResponse.yaml +++ b/sdk-scheme-adapter/v2_0_0/components/schemas/requestToPayTransferResponse.yaml @@ -69,9 +69,4 @@ properties: 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: ./transferError.yaml diff --git a/sdk-scheme-adapter/v2_0_0/components/schemas/simpleQuotesPostRequest.yaml b/sdk-scheme-adapter/v2_0_0/components/schemas/simpleQuotesPostRequest.yaml index 5aed76d3..495f775a 100644 --- a/sdk-scheme-adapter/v2_0_0/components/schemas/simpleQuotesPostRequest.yaml +++ b/sdk-scheme-adapter/v2_0_0/components/schemas/simpleQuotesPostRequest.yaml @@ -2,7 +2,6 @@ title: simpleQuotesPostRequest type: object properties: fspId: - title: destination DFSP requested to calculate the quote $ref: ./FspId.yaml quotesPostRequest: $ref: ./QuotesPostRequest.yaml diff --git a/sdk-scheme-adapter/v2_0_0/components/schemas/transferError.yaml b/sdk-scheme-adapter/v2_0_0/components/schemas/transferError.yaml index 1b0033b8..28e8b8c3 100644 --- a/sdk-scheme-adapter/v2_0_0/components/schemas/transferError.yaml +++ b/sdk-scheme-adapter/v2_0_0/components/schemas/transferError.yaml @@ -1,7 +1,8 @@ type: object description: >- - This object represents a Mojaloop API error received at any time during the - 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. properties: httpStatusCode: type: integer diff --git a/sdk-scheme-adapter/v2_0_0/components/schemas/transferResponse.yaml b/sdk-scheme-adapter/v2_0_0/components/schemas/transferResponse.yaml index a5aa35c8..a109242d 100644 --- a/sdk-scheme-adapter/v2_0_0/components/schemas/transferResponse.yaml +++ b/sdk-scheme-adapter/v2_0_0/components/schemas/transferResponse.yaml @@ -69,11 +69,6 @@ properties: 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: ./transferError.yaml skipPartyLookup: description: >- diff --git a/sdk-scheme-adapter/v2_1_0/backend/openapi.yaml b/sdk-scheme-adapter/v2_1_0/backend/openapi.yaml new file mode 100644 index 00000000..e9ebda41 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/backend/openapi.yaml @@ -0,0 +1,1494 @@ +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". + license: + name: Apache License Version 2.0, January 2004 + url: http://www.apache.org/licenses/ + version: 2.1.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. + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteResponse' + description: A response to the bulk quote request. + '400': + $ref: ../components/responses/400.yaml + '500': + $ref: ../components/responses/500.yaml + summary: Requests a bulk quote. + tags: + - BulkQuotes + /bulkQuotes/{idValue}: + get: + operationId: BackendBulkQuotesGet + parameters: + - $ref: '#/components/parameters/idValue' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/bulkQuoteResponse' + description: Response containing details of the requested bulk quote. + '400': + $ref: ../components/responses/400.yaml + '404': + $ref: ../components/responses/404.yaml + '500': + $ref: ../components/responses/500.yaml + 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.yaml' + requestBody: + content: + application/json: + schema: + $ref: '../components/schemas/bulkTransactionResponse.yaml' + responses: + '202': + description: Bulk transaction information successfully amended. + '400': + $ref: ../components/responses/400.yaml + '500': + $ref: ../components/responses/500.yaml + 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.yaml + '500': + $ref: ../components/responses/500.yaml + 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/bulkTransferResponse' + description: The bulk transfer was accepted. + '400': + $ref: ../components/responses/400.yaml + '500': + $ref: ../components/responses/500.yaml + 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/bulkTransferResponse' + description: Response containing details of the requested bulk transfer. + '400': + $ref: ../components/responses/400.yaml + '404': + $ref: ../components/responses/404.yaml + '500': + $ref: ../components/responses/500.yaml + summary: Requests information relating to a bulk transfer identified by the specified identifier value. + tags: + - BulkTransfers + /otp/{transactionRequestId}: + get: + operationId: BackendOtpGet + parameters: + - $ref: '#/components/parameters/transactionRequestId' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/otpDetails' + description: Response containing details of the OTP. + '400': + $ref: ../components/responses/400.yaml + '404': + $ref: ../components/responses/404.yaml + '500': + $ref: ../components/responses/500.yaml + 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/participantsResponse' + description: Response containing details of the requested party. + '400': + $ref: ../components/responses/400.yaml + '404': + $ref: ../components/responses/404.yaml + '500': + $ref: ../components/responses/500.yaml + 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/participantsResponse' + description: Response containing details of the requested party. + '400': + $ref: ../components/responses/400.yaml + '404': + $ref: ../components/responses/404.yaml + '500': + $ref: ../components/responses/500.yaml + 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: + 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: + - $ref: '#/components/parameters/idType' + - $ref: '#/components/parameters/idValue' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/transferParty' + description: Response containing details of the requested party. + '400': + $ref: ../components/responses/400.yaml + '404': + $ref: ../components/responses/404.yaml + '500': + $ref: ../components/responses/500.yaml + summary: Requests information relating to a transfer party identified by the specified identifier type and 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 + parameters: + - $ref: '#/components/parameters/idType' + - $ref: '#/components/parameters/idValue' + - $ref: '#/components/parameters/idSubValue' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/transferParty' + description: Response containing details of the requested party. + '400': + $ref: ../components/responses/400.yaml + '404': + $ref: ../components/responses/404.yaml + '500': + $ref: ../components/responses/500.yaml + summary: Requests information relating to a transfer party identified by the specified identifier type, value and subId value. + tags: + - Parties + /quoterequests: + post: + description: The HTTP request `POST /quoterequests` is used to request the creation of a quote for the provided financial transaction. + operationId: BackendQuoteRequest + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/quoteRequest' + description: Request for a transfer quotation. + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/quoteResponse' + description: A response to the transfer quotation request. + '400': + $ref: ../components/responses/400.yaml + '500': + $ref: ../components/responses/500.yaml + summary: Requests a quote for the specified transfer. + tags: + - Quotes + /transactionrequests: + post: + operationId: BackendTransactionRequest + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/transactionRequest' + description: Request for Transaction Request. + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/transactionRequestResponse' + description: A response to the transfer transaction request. + '400': + $ref: ../components/responses/400.yaml + '500': + $ref: ../components/responses/500.yaml + summary: Transaction request that supports pull based transfers. + tags: + - TransactionRequest + /transfers: + post: + description: The HTTP request `POST /transfers` is used to request the creation of a transfer for the transfer party. + operationId: BackendTransfersPost + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/transferRequest' + description: An incoming transfer request. + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/transferResponse' + description: The transfer was accepted. + '400': + $ref: ../components/responses/400.yaml + '500': + $ref: ../components/responses/500.yaml + summary: Transfers funds from an external account to an internal account. + tags: + - Transfers + /transfers/{transferId}: + 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 + parameters: + - $ref: '#/components/parameters/transferId' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/transferDetailsResponse' + description: The transfer was accepted. + '500': + $ref: ../components/responses/500.yaml + summary: Retrieves information for a specific transfer. + 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' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/fulfilNotification' + description: An incoming notification for fulfiled transfer. + responses: + '200': + description: The notification was accepted. + '500': + $ref: ../components/responses/500.yaml + summary: Receive notification for a specific transfer. + tags: + - Transfers + /fxQuotes: + $ref: 'paths/fxQuotes.yaml' + /fxTransfers: + $ref: 'paths/fxTransfers.yaml' + /fxTransfers/{commitRequestId}: + $ref: 'paths/fxTransfersById.yaml' +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 + + schemas: + DateOfBirth: + description: Date of Birth of the Party. + example: '1966-06-16' + 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)$ + title: DateofBirth (type Date) + type: string + FirstName: + description: First name of the Party (Name Type). + example: Henrik + maxLength: 128 + minLength: 1 + pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,128}$ + title: FirstName + type: string + FspId: + description: FSP identifier. + maxLength: 32 + minLength: 1 + title: FspId + type: string + IndividualQuote: + description: Data model for individual quote in a bulk quote request. + properties: + 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' + 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 + quoteId: + $ref: '#/components/schemas/quoteId' + subScenario: + $ref: '../components/schemas/TransactionSubScenario.yaml' + to: + $ref: '#/components/schemas/transferParty' + transactionId: + $ref: '#/components/schemas/transactionId' + transactionType: + $ref: '#/components/schemas/transactionType' + required: + - quoteId + - transactionId + - to + - amountType + - 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.yaml + quoteId: + $ref: '#/components/schemas/quoteId' + required: + - quoteId + - errorResponse + type: object + IndividualQuoteResultSuccess: + description: Data model for successful individual quote in a bulk quote response. + properties: + 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' + transferAmount: + $ref: '#/components/schemas/money' + transferAmountCurrency: + $ref: '#/components/schemas/currency' + required: + - quoteId + type: object + IndividualTransfer: + description: Data model for individual transfer in a bulk transfer request. + properties: + 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' + 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 + subScenario: + $ref: '../components/schemas/TransactionSubScenario.yaml' + to: + $ref: '#/components/schemas/transferParty' + transactionType: + $ref: '#/components/schemas/transactionType' + transferId: + $ref: '#/components/schemas/transferId' + required: + - transferId + - amount + - currency + type: object + IndividualTransferResult: + description: Data model for individual transfer in a bulk transfer response. + properties: + errorResponse: + $ref: ../components/schemas/errorResponse.yaml + extensionList: + $ref: '#/components/schemas/extensionList' + transferId: + $ref: '#/components/schemas/transferId' + required: + - transferId + type: object + LastName: + description: Last name of the Party (Name Type). + example: Karlsson + maxLength: 128 + minLength: 1 + pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,128}$ + title: LastName + type: string + MerchantClassificationCode: + 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. + pattern: ^[\d]{1,4}$ + title: MerchantClassificationCode + type: string + MiddleName: + description: Middle name of the Party (Name Type). + example: Johannes + maxLength: 128 + minLength: 1 + pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,128}$ + title: MiddleName + type: string + 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}$ + type: string + bulkQuoteRequest: + 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' + individualQuotes: + items: + $ref: '#/components/schemas/IndividualQuote' + maxItems: 1000 + minItems: 1 + type: array + required: + - bulkQuoteId + - 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: + 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 + required: + - bulkQuoteId + - individualQuoteResults + 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}$ + type: string + bulkTransferRequest: + properties: + bulkQuote: + $ref: '#/components/schemas/bulkQuoteResponse' + bulkTransferId: + $ref: '#/components/schemas/bulkTransferId' + from: + $ref: '#/components/schemas/transferParty' + individualTransfers: + items: + $ref: '#/components/schemas/IndividualTransfer' + maxItems: 1000 + minItems: 1 + type: array + required: + - bulkTransferId + - individualTransfers + type: object + bulkTransferResponse: + 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 + individualTransferResults: + 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 + 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 + 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.yaml' + 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.yaml' + payer: + $ref: '../components/schemas/Party.yaml' + 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.yaml' + to: + $ref: '#/components/schemas/transferParty' + transactionId: + $ref: '#/components/schemas/transactionId' + transactionType: + $ref: '#/components/schemas/transactionType' + transactionRequestId: + $ref: '#/components/schemas/transactionRequestId' + converter: + allOf: + - $ref: ../../../fspiop/v2_0/openapi3/components/schemas/CurrencyConverter.yaml + - 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: ../../../fspiop/v2_0/openapi3/components/schemas/FxRate.yaml + - 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. + 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.yaml' + authenticationType: + $ref: '../components/schemas/AuthenticationType.yaml' + 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.yaml' + 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.yaml' + 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' + supportedCurrencies: + type: array + description: Currencies in which the party can receive funds. + items: + $ref: '#/components/schemas/currency' + minItems: 0 + maxItems: 16 + kycInformation: + $ref: ../../../fspiop/v2_0/openapi3/components/schemas/KYCInformation.yaml + 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.yaml' + 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.yaml' + 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 \ No newline at end of file diff --git a/sdk-scheme-adapter/v2_1_0/backend/paths/fxQuotes.yaml b/sdk-scheme-adapter/v2_1_0/backend/paths/fxQuotes.yaml new file mode 100644 index 00000000..58721960 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/backend/paths/fxQuotes.yaml @@ -0,0 +1,26 @@ +post: + description: >- + The HTTP request `POST /fxQuotes` is used to ask an FXP backend to provide a quotation for a currency conversion. + summary: Calculate FX quote + tags: + - Fx + operationId: FxQuotesPost + requestBody: + description: Details of the FX quote request. + required: true + content: + application/json: + schema: + $ref: ../../components/schemas/FxQuotesPostBackendRequest.yaml + responses: + '200': + description: Successful response. + content: + application/json: + schema: + $ref: ../../components/schemas/FxQuotesPostBackendResponse.yaml + '400': + $ref: ../../components/responses/400.yaml + '500': + $ref: ../../components/responses/500.yaml + diff --git a/sdk-scheme-adapter/v2_1_0/backend/paths/fxTransfers.yaml b/sdk-scheme-adapter/v2_1_0/backend/paths/fxTransfers.yaml new file mode 100644 index 00000000..7622d68c --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/backend/paths/fxTransfers.yaml @@ -0,0 +1,25 @@ +post: + description: >- + The HTTP request `POST /fxTransfers` is used to ask an FXP backend to confirm the execution of an agreed currency conversion. + summary: Perform FX transfer + tags: + - Fx + operationId: FxTransfersPost + requestBody: + description: Details of the FX transfer request. + required: true + content: + application/json: + schema: + $ref: ../../components/schemas/FxTransfersPostBackendRequest.yaml + responses: + '200': + description: Successful response. + content: + application/json: + schema: + $ref: ../../components/schemas/FxTransfersPostBackendResponse.yaml + '400': + $ref: ../../components/responses/400.yaml + '500': + $ref: ../../components/responses/500.yaml diff --git a/sdk-scheme-adapter/v2_1_0/backend/paths/fxTransfersById.yaml b/sdk-scheme-adapter/v2_1_0/backend/paths/fxTransfersById.yaml new file mode 100644 index 00000000..b7afeb1e --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/backend/paths/fxTransfersById.yaml @@ -0,0 +1,21 @@ +put: + description: >- + The HTTP request `PUT /fxTransfers/{commitRequestId}` is used to notify an FXP backend about the status of currency conversion. + summary: FX Commit Notification + tags: + - Fx + operationId: FxTransfersById + requestBody: + description: Status of the FX transfer. + required: true + content: + application/json: + schema: + $ref: ../../components/schemas/FxTransfersPutBackendRequest.yaml + responses: + '200': + $ref: ../../components/responses/200.yaml + '400': + $ref: ../../components/responses/400.yaml + '500': + $ref: ../../components/responses/500.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/parameters/ID.yaml b/sdk-scheme-adapter/v2_1_0/components/parameters/ID.yaml new file mode 100644 index 00000000..820dc8df --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/parameters/ID.yaml @@ -0,0 +1,6 @@ +name: ID +in: path +required: true +schema: + type: string +description: The identifier value. diff --git a/sdk-scheme-adapter/v2_1_0/components/parameters/SubId.yaml b/sdk-scheme-adapter/v2_1_0/components/parameters/SubId.yaml new file mode 100644 index 00000000..97f6a86f --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/parameters/SubId.yaml @@ -0,0 +1,8 @@ +name: SubId +in: path +required: true +schema: + type: string +description: >- + A sub-identifier of the party identifier, or a sub-type of the party + identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`. diff --git a/sdk-scheme-adapter/v2_1_0/components/parameters/Type.yaml b/sdk-scheme-adapter/v2_1_0/components/parameters/Type.yaml new file mode 100644 index 00000000..bc6ae5b4 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/parameters/Type.yaml @@ -0,0 +1,6 @@ +name: Type +in: path +required: true +schema: + type: string +description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`. diff --git a/sdk-scheme-adapter/v2_1_0/components/parameters/bulkQuoteId.yaml b/sdk-scheme-adapter/v2_1_0/components/parameters/bulkQuoteId.yaml new file mode 100644 index 00000000..bd82b348 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/parameters/bulkQuoteId.yaml @@ -0,0 +1,8 @@ +name: bulkQuoteId +in: path +required: true +schema: + $ref: ../schemas/CorrelationId.yaml +description: >- + Identifier of the bulk transfer to continue as returned in the response to a + `POST /bulkTransfers` request. diff --git a/sdk-scheme-adapter/v2_1_0/components/parameters/bulkTransactionId.yaml b/sdk-scheme-adapter/v2_1_0/components/parameters/bulkTransactionId.yaml new file mode 100644 index 00000000..df38b78d --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/parameters/bulkTransactionId.yaml @@ -0,0 +1,8 @@ +name: bulkTransactionId +in: path +required: true +schema: + $ref: ../schemas/CorrelationId.yaml +description: >- + Identifier of the bulk transaction to continue as returned in the response to a + `POST /bulkTransaction` request. diff --git a/sdk-scheme-adapter/v2_1_0/components/parameters/bulkTransferId.yaml b/sdk-scheme-adapter/v2_1_0/components/parameters/bulkTransferId.yaml new file mode 100644 index 00000000..2d9e05ac --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/parameters/bulkTransferId.yaml @@ -0,0 +1,8 @@ +name: bulkTransferId +in: path +required: true +schema: + $ref: ../schemas/CorrelationId.yaml +description: >- + Identifier of the bulk transfer to continue as returned in the response to a + `POST /bulkTransfers` request. diff --git a/sdk-scheme-adapter/v2_1_0/components/parameters/transactionRequestId.yaml b/sdk-scheme-adapter/v2_1_0/components/parameters/transactionRequestId.yaml new file mode 100644 index 00000000..8c5893da --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/parameters/transactionRequestId.yaml @@ -0,0 +1,8 @@ +name: transactionRequestId +in: path +required: true +schema: + $ref: ../schemas/CorrelationId.yaml +description: >- + Identifier of the merchant request to pay to continue as returned in + the response to a `POST /requestToPay` request. diff --git a/sdk-scheme-adapter/v2_1_0/components/parameters/transferId.yaml b/sdk-scheme-adapter/v2_1_0/components/parameters/transferId.yaml new file mode 100644 index 00000000..dfb168fe --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/parameters/transferId.yaml @@ -0,0 +1,8 @@ +name: transferId +in: path +required: true +schema: + $ref: ../schemas/CorrelationId.yaml +description: >- + Identifier of the transfer to continue as returned in the response to a `POST + /transfers` request. diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/200.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/200.yaml new file mode 100644 index 00000000..76253e62 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/200.yaml @@ -0,0 +1 @@ +description: OK diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/400.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/400.yaml new file mode 100644 index 00000000..03d16ef7 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/400.yaml @@ -0,0 +1,5 @@ +description: Malformed or missing required headers or parameters. +content: + application/json: + schema: + $ref: ../schemas/errorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/404.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/404.yaml new file mode 100644 index 00000000..f00124cf --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/404.yaml @@ -0,0 +1,5 @@ +description: Not Found +content: + application/json: + schema: + $ref: ../schemas/errorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/500.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/500.yaml new file mode 100644 index 00000000..a9d3d99d --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/500.yaml @@ -0,0 +1,5 @@ +description: An error occurred processing the request. +content: + application/json: + schema: + $ref: ../schemas/errorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/accountsCreationCompleted.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/accountsCreationCompleted.yaml new file mode 100644 index 00000000..e861bd29 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/accountsCreationCompleted.yaml @@ -0,0 +1,5 @@ +description: Accounts creation completed +content: + application/json: + schema: + $ref: ../schemas/accountsResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/accountsCreationError.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/accountsCreationError.yaml new file mode 100644 index 00000000..3ca5a2ac --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/accountsCreationError.yaml @@ -0,0 +1,5 @@ +description: An error occurred creating accounts +content: + application/json: + schema: + $ref: ../schemas/errorAccountsResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/accountsCreationTimeout.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/accountsCreationTimeout.yaml new file mode 100644 index 00000000..73e82b73 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/accountsCreationTimeout.yaml @@ -0,0 +1,5 @@ +description: Timeout occurred creating accounts +content: + application/json: + schema: + $ref: ../schemas/errorAccountsResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteBadRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteBadRequest.yaml new file mode 100644 index 00000000..1ac1c8cc --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteBadRequest.yaml @@ -0,0 +1,5 @@ +description: Malformed or missing required body, headers or parameters +content: + application/json: + schema: + $ref: ../schemas/bulkQuoteErrorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteServerError.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteServerError.yaml new file mode 100644 index 00000000..79e5559f --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteServerError.yaml @@ -0,0 +1,5 @@ +description: An error occurred processing the bulk quote +content: + application/json: + schema: + $ref: ../schemas/bulkQuoteErrorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteSuccess.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteSuccess.yaml new file mode 100644 index 00000000..4eca647a --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteSuccess.yaml @@ -0,0 +1,5 @@ +description: Bulk quote completed successfully +content: + application/json: + schema: + $ref: ../schemas/bulkQuoteResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteTimeout.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteTimeout.yaml new file mode 100644 index 00000000..8ffd7cb6 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/bulkQuoteTimeout.yaml @@ -0,0 +1,5 @@ +description: Timeout occurred processing the bulk quote +content: + application/json: + schema: + $ref: ../schemas/bulkQuoteErrorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransactionAccepted.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransactionAccepted.yaml new file mode 100644 index 00000000..4bb98c12 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransactionAccepted.yaml @@ -0,0 +1 @@ +description: Bulk transfer accepted successfully diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransactionBadRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransactionBadRequest.yaml new file mode 100644 index 00000000..ae30b079 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransactionBadRequest.yaml @@ -0,0 +1,5 @@ +description: Malformed or missing required body, headers or parameters +content: + application/json: + schema: + $ref: ../schemas/bulkTransferErrorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransactionPutBadRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransactionPutBadRequest.yaml new file mode 100644 index 00000000..9cc84f59 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransactionPutBadRequest.yaml @@ -0,0 +1,7 @@ +description: Malformed or missing required body, headers or parameters +content: + application/json: + schema: + oneOf: + - $ref: ../schemas/bulkTransactionAcceptPartyErrorResponse.yaml + - $ref: ../schemas/bulkTransactionAcceptQuoteErrorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransferBadRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransferBadRequest.yaml new file mode 100644 index 00000000..ae30b079 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransferBadRequest.yaml @@ -0,0 +1,5 @@ +description: Malformed or missing required body, headers or parameters +content: + application/json: + schema: + $ref: ../schemas/bulkTransferErrorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransferStatusResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransferStatusResponse.yaml new file mode 100644 index 00000000..b9b03c37 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransferStatusResponse.yaml @@ -0,0 +1,16 @@ +type: object +required: +- bulkTransferId +- currentState +- fulfils +properties: + bulkTransferId: + $ref: ../schemas/CorrelationId.yaml + currentState: + $ref: ../schemas/bulkTransferStatus.yaml + fulfils: + type: array + minItems: 1 + maxItems: 1000 + items: + $ref: ../schemas/individualTransferFulfilment.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransferSuccess.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransferSuccess.yaml new file mode 100644 index 00000000..02ac2383 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/bulkTransferSuccess.yaml @@ -0,0 +1,5 @@ +description: Bulk transfer completed successfully +content: + application/json: + schema: + $ref: ../schemas/bulkTransferResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/errorResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/errorResponse.yaml new file mode 100644 index 00000000..175ca2d5 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/errorResponse.yaml @@ -0,0 +1,5 @@ +description: Internal Server Error +content: + application/json: + schema: + $ref: ../schemas/errorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/partiesByIdError404.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/partiesByIdError404.yaml new file mode 100644 index 00000000..a57b6915 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/partiesByIdError404.yaml @@ -0,0 +1,8 @@ +description: PartiesByIdError404 +content: + application/json: + schema: + type: object + properties: + errorInformation: + $ref: ../schemas/ErrorInformation.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/partiesByIdSuccess.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/partiesByIdSuccess.yaml new file mode 100644 index 00000000..8bd7286c --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/partiesByIdSuccess.yaml @@ -0,0 +1,5 @@ +description: PartiesByIdSuccess +content: + application/json: + schema: + $ref: ../schemas/partiesByIdResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/quotesPostSuccess.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/quotesPostSuccess.yaml new file mode 100644 index 00000000..576eefa8 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/quotesPostSuccess.yaml @@ -0,0 +1,5 @@ +description: sync response from POST /quotes +content: + application/json: + schema: + $ref: ../schemas/quotesPostResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/quotesServerError.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/quotesServerError.yaml new file mode 100644 index 00000000..f312ba98 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/quotesServerError.yaml @@ -0,0 +1,5 @@ +description: An error occurred processing the quotes request +content: + application/json: + schema: + $ref: ../schemas/errorQuotesResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/requestToPaySuccess.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/requestToPaySuccess.yaml new file mode 100644 index 00000000..2014ec8b --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/requestToPaySuccess.yaml @@ -0,0 +1,5 @@ +description: Request to Pay completed successfully +content: + application/json: + schema: + $ref: ../schemas/requestToPayResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/requestToPayTransferBadRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/requestToPayTransferBadRequest.yaml new file mode 100644 index 00000000..d22edd22 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/requestToPayTransferBadRequest.yaml @@ -0,0 +1,5 @@ +description: Malformed or missing required body, headers or parameters +content: + application/json: + schema: + $ref: ../schemas/errorTransferResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/requestToPayTransferSuccess.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/requestToPayTransferSuccess.yaml new file mode 100644 index 00000000..c5913578 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/requestToPayTransferSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer completed successfully +content: + application/json: + schema: + $ref: ../schemas/requestToPayTransferResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/servicesFXPSucess.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/servicesFXPSucess.yaml new file mode 100644 index 00000000..b71f1239 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/servicesFXPSucess.yaml @@ -0,0 +1,5 @@ +description: The response contains participants in a scheme who offer currency conversion services. If no participants offer these services, the return object will be blank. +content: + application/json: + schema: + $ref: ../../../../fspiop/v2_0/openapi3/components/schemas/ServicesFXPPutResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/simpleTransfersPostSuccess.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/simpleTransfersPostSuccess.yaml new file mode 100644 index 00000000..a474babf --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/simpleTransfersPostSuccess.yaml @@ -0,0 +1,5 @@ +description: sync response from POST /simpleTransfers +content: + application/json: + schema: + $ref: ../schemas/simpleTransfersPostResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/simpleTransfersServerError.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/simpleTransfersServerError.yaml new file mode 100644 index 00000000..4a250775 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/simpleTransfersServerError.yaml @@ -0,0 +1,5 @@ +description: An error occurred processing the simple transfers request +content: + application/json: + schema: + $ref: ../schemas/errorSimpleTransfersResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/transferBadRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/transferBadRequest.yaml new file mode 100644 index 00000000..d22edd22 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/transferBadRequest.yaml @@ -0,0 +1,5 @@ +description: Malformed or missing required body, headers or parameters +content: + application/json: + schema: + $ref: ../schemas/errorTransferResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/transferServerError.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/transferServerError.yaml new file mode 100644 index 00000000..af6acc48 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/transferServerError.yaml @@ -0,0 +1,5 @@ +description: An error occurred processing the transfer +content: + application/json: + schema: + $ref: ../schemas/errorTransferResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/transferSuccess.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/transferSuccess.yaml new file mode 100644 index 00000000..f6a20abf --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/transferSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer completed successfully +content: + application/json: + schema: + $ref: ../schemas/transferResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/responses/transferTimeout.yaml b/sdk-scheme-adapter/v2_1_0/components/responses/transferTimeout.yaml new file mode 100644 index 00000000..cb1191f4 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/responses/transferTimeout.yaml @@ -0,0 +1,5 @@ +description: Timeout occurred processing the transfer +content: + application/json: + schema: + $ref: ../schemas/errorTransferResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/Amount.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/Amount.yaml new file mode 100644 index 00000000..02a2007d --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/Amount.yaml @@ -0,0 +1,11 @@ +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' diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/AmountType.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/AmountType.yaml new file mode 100644 index 00000000..51d5fc9f --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/AmountType.yaml @@ -0,0 +1,14 @@ +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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/AuthenticationInfo.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/AuthenticationInfo.yaml new file mode 100644 index 00000000..4dfbbf7c --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/AuthenticationInfo.yaml @@ -0,0 +1,11 @@ +title: AuthenticationInfo +type: object +description: Data model for the complex type AuthenticationInfo. +properties: + authentication: + $ref: ./AuthenticationType.yaml + authenticationValue: + $ref: ./AuthenticationValue.yaml +required: + - authentication + - authenticationValue diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/AuthenticationType.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/AuthenticationType.yaml new file mode 100644 index 00000000..2c51bdc4 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/AuthenticationType.yaml @@ -0,0 +1,12 @@ +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/sdk-scheme-adapter/v2_1_0/components/schemas/AuthenticationValue.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/AuthenticationValue.yaml new file mode 100644 index 00000000..b835c447 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/AuthenticationValue.yaml @@ -0,0 +1,44 @@ +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. + + diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/AuthorizationIDPutResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/AuthorizationIDPutResponse.yaml new file mode 100644 index 00000000..9e9e339b --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/AuthorizationIDPutResponse.yaml @@ -0,0 +1,10 @@ +title: AuthorizationIDPutResponse +type: object +description: The object sent in the PUT /authorizations/{ID} callback. +properties: + authenticationInfo: + $ref: ./AuthenticationInfo.yaml + responseType: + $ref: ./AuthorizationResponseType.yaml +required: + - responseType diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/AuthorizationResponseType.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/AuthorizationResponseType.yaml new file mode 100644 index 00000000..9c5695aa --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/AuthorizationResponseType.yaml @@ -0,0 +1,12 @@ +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 \ No newline at end of file diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/BalanceOfPayments.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/BalanceOfPayments.yaml new file mode 100644 index 00000000..090256ad --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/BalanceOfPayments.yaml @@ -0,0 +1,9 @@ +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' diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/CorrelationId.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/CorrelationId.yaml new file mode 100644 index 00000000..ae363224 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/CorrelationId.yaml @@ -0,0 +1,10 @@ +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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/Currency.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/Currency.yaml new file mode 100644 index 00000000..af6abda1 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/Currency.yaml @@ -0,0 +1,174 @@ +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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/DateOfBirth.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/DateOfBirth.yaml new file mode 100644 index 00000000..cb1d4219 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/DateOfBirth.yaml @@ -0,0 +1,6 @@ +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' diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/DateTime.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/DateTime.yaml new file mode 100644 index 00000000..b573921f --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/DateTime.yaml @@ -0,0 +1,14 @@ +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' diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/ErrorCode.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/ErrorCode.yaml new file mode 100644 index 00000000..09dc367e --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/ErrorCode.yaml @@ -0,0 +1,11 @@ +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' diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/ErrorDescription.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/ErrorDescription.yaml new file mode 100644 index 00000000..76296032 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/ErrorDescription.yaml @@ -0,0 +1,5 @@ +title: ErrorDescription +type: string +minLength: 1 +maxLength: 128 +description: Error description string. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/ErrorInformation.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/ErrorInformation.yaml new file mode 100644 index 00000000..444377e0 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/ErrorInformation.yaml @@ -0,0 +1,13 @@ +title: ErrorInformation +type: object +description: Data model for the complex type ErrorInformation. +properties: + errorCode: + $ref: ./ErrorCode.yaml + errorDescription: + $ref: ./ErrorDescription.yaml + extensionList: + $ref: ./ExtensionList.yaml +required: + - errorCode + - errorDescription diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/Extension.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/Extension.yaml new file mode 100644 index 00000000..c4405431 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/Extension.yaml @@ -0,0 +1,11 @@ +title: Extension +type: object +description: Data model for the complex type Extension. +properties: + key: + $ref: ./ExtensionKey.yaml + value: + $ref: ./ExtensionValue.yaml +required: + - key + - value diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/ExtensionKey.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/ExtensionKey.yaml new file mode 100644 index 00000000..d5aaaf1b --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/ExtensionKey.yaml @@ -0,0 +1,5 @@ +title: ExtensionKey +type: string +minLength: 1 +maxLength: 32 +description: Extension key. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/ExtensionList.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/ExtensionList.yaml new file mode 100644 index 00000000..a1e83e32 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/ExtensionList.yaml @@ -0,0 +1,15 @@ +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: ./Extension.yaml + minItems: 1 + maxItems: 16 + description: Number of Extension elements. +required: + - extension diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/ExtensionValue.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/ExtensionValue.yaml new file mode 100644 index 00000000..858f8551 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/ExtensionValue.yaml @@ -0,0 +1,5 @@ +title: ExtensionValue +type: string +minLength: 1 +maxLength: 128 +description: Extension value. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/FirstName.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/FirstName.yaml new file mode 100644 index 00000000..de4acf4e --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/FirstName.yaml @@ -0,0 +1,9 @@ +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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/FspId.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/FspId.yaml new file mode 100644 index 00000000..bbfe14dc --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/FspId.yaml @@ -0,0 +1,5 @@ +title: FspId +type: string +minLength: 1 +maxLength: 32 +description: FSP identifier. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostBackendRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostBackendRequest.yaml new file mode 100644 index 00000000..daabe6c8 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostBackendRequest.yaml @@ -0,0 +1,16 @@ +title: FxQuotesPostBackendRequest +type: object +description: The object sent in the POST /fxQuotes request. +properties: + conversionRequestId: + allOf: + - $ref: ./CorrelationId.yaml + - description: An end-to-end identifier for the conversion quotation request. + conversionTerms: + allOf: + - $ref: ../../../../fspiop/v2_0/openapi3/components/schemas/FxConversion.yaml + - description: The terms of the currency conversion for which a quotation is sought. +required: + - conversionRequestId + - conversionTerms + diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostBackendResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostBackendResponse.yaml new file mode 100644 index 00000000..913db2fe --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostBackendResponse.yaml @@ -0,0 +1,14 @@ +title: FxQuotesPostBackendResponse +type: object +description: The object sent as a response for the POST /fxQuotes request. The terms under which the FXP will undertake the currency conversion proposed by the requester. +properties: + homeTransactionId: + description: Transaction ID for the FXP backend, used to reconcile transactions between the Switch and FXP backend systems. + type: string + conversionTerms: + allOf: + - $ref: ../../../../fspiop/v2_0/openapi3/components/schemas/FxConversion.yaml + - description: The terms under which the FXP will undertake the currency conversion proposed by the requester. + +required: + - conversionTerms diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostOutboundRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostOutboundRequest.yaml new file mode 100644 index 00000000..bf5ce376 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostOutboundRequest.yaml @@ -0,0 +1,19 @@ +title: FxQuotesPostOutboundRequest +type: object +description: The object sent in the POST /fxQuotes request. +properties: + homeTransactionId: + description: Transaction ID for the backend, used to reconcile transactions between the Switch and backend systems. + type: string + conversionRequestId: + allOf: + - $ref: ./CorrelationId.yaml + - description: An end-to-end identifier for the conversion quotation request. + conversionTerms: + allOf: + - $ref: ../../../../fspiop/v2_0/openapi3/components/schemas/FxConversion.yaml + - description: The terms of the currency conversion for which a quotation is sought. +required: + - conversionRequestId + - conversionTerms + diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostOutboundResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostOutboundResponse.yaml new file mode 100644 index 00000000..c9e0a21b --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/FxQuotesPostOutboundResponse.yaml @@ -0,0 +1,18 @@ +title: FxQuotesPostOutboundResponse +type: object +description: The object sent as a response for the POST /fxQuotes request. The terms under which the FXP will undertake the currency conversion proposed by the requester. +properties: + homeTransactionId: + description: Transaction ID for the FXP backend, used to reconcile transactions between the Switch and FXP backend systems. + type: string + condition: + allOf: + - $ref: ../../../../fspiop/v2_0/openapi3/components/schemas/IlpCondition.yaml + - description: The ILP condition for the conversion. + conversionTerms: + allOf: + - $ref: ../../../../fspiop/v2_0/openapi3/components/schemas/FxConversion.yaml + - description: The terms under which the FXP will undertake the currency conversion proposed by the requester. + +required: + - conversionTerms diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostBackendRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostBackendRequest.yaml new file mode 100644 index 00000000..f3eb472c --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostBackendRequest.yaml @@ -0,0 +1,28 @@ +title: FxTransfersPostBackendRequest +type: object +description: The object sent in the POST /fxTransfers request. +properties: + homeTransactionId: + description: Transaction ID for the FXP backend, used to reconcile transactions between the Switch and FXP backend systems. + type: string + commitRequestId: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/commitRequestId" + determiningTransferId: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/determiningTransferId" + initiatingFsp: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/initiatingFsp" + counterPartyFsp: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/counterPartyFsp" + sourceAmount: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/sourceAmount" + targetAmount: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/targetAmount" + condition: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/condition" + +required: + - commitRequestId + - initiatingFsp + - counterPartyFsp + - sourceAmount + - targetAmount diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostBackendResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostBackendResponse.yaml new file mode 100644 index 00000000..ceaa6415 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostBackendResponse.yaml @@ -0,0 +1,17 @@ +title: FxTransfersPostBackendResponse +type: object +description: 'The object sent as a response for the POST /fxTransfers request.' +properties: + homeTransactionId: + description: Transaction ID for the FXP backend, used to reconcile transactions between the Switch and FXP backend systems. + type: string + fulfilment: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersIDPutResponse.yaml#/properties/fulfilment" + completedTimestamp: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersIDPutResponse.yaml#/properties/completedTimestamp" + conversionState: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersIDPutResponse.yaml#/properties/conversionState" + extensionList: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersIDPutResponse.yaml#/properties/extensionList" +required: + - conversionState diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostOutboundRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostOutboundRequest.yaml new file mode 100644 index 00000000..4a6b6c33 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostOutboundRequest.yaml @@ -0,0 +1,28 @@ +title: FxTransfersPostOutboundRequest +type: object +description: The object sent in the POST /fxTransfers request. +properties: + homeTransactionId: + description: Transaction ID for the backend, used to reconcile transactions between the Switch and backend systems. + type: string + commitRequestId: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/commitRequestId" + determiningTransferId: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/determiningTransferId" + initiatingFsp: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/initiatingFsp" + counterPartyFsp: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/counterPartyFsp" + sourceAmount: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/sourceAmount" + targetAmount: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/targetAmount" + condition: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersPostRequest.yaml#/properties/condition" + +required: + - commitRequestId + - initiatingFsp + - counterPartyFsp + - sourceAmount + - targetAmount diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostOutboundResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostOutboundResponse.yaml new file mode 100644 index 00000000..62f54cc7 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPostOutboundResponse.yaml @@ -0,0 +1,17 @@ +title: FxTransfersPostOutboundResponse +type: object +description: 'The object sent as a response for the POST /fxTransfers request.' +properties: + homeTransactionId: + description: Transaction ID for the backend, used to reconcile transactions between the Switch and backend systems. + type: string + fulfilment: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersIDPutResponse.yaml#/properties/fulfilment" + completedTimestamp: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersIDPutResponse.yaml#/properties/completedTimestamp" + conversionState: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersIDPutResponse.yaml#/properties/conversionState" + extensionList: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersIDPutResponse.yaml#/properties/extensionList" +required: + - conversionState diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPutBackendRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPutBackendRequest.yaml new file mode 100644 index 00000000..90aba642 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/FxTransfersPutBackendRequest.yaml @@ -0,0 +1,17 @@ +title: FxTransfersPutBackendRequest +type: object +description: 'PUT /fxTransfers/{commitRequestId} object' +properties: + homeTransactionId: + description: Transaction ID for the FXP backend, used to reconcile transactions between the Switch and FXP backend systems. + type: string + fulfilment: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersIDPutResponse.yaml#/properties/fulfilment" + completedTimestamp: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersIDPutResponse.yaml#/properties/completedTimestamp" + conversionState: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersIDPutResponse.yaml#/properties/conversionState" + extensionList: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/FxTransfersIDPutResponse.yaml#/properties/extensionList" +required: + - conversionState diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/GeoCode.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/GeoCode.yaml new file mode 100644 index 00000000..fbe25628 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/GeoCode.yaml @@ -0,0 +1,13 @@ +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: ./Latitude.yaml + longitude: + $ref: ./Longitude.yaml +required: + - latitude + - longitude diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/IlpCondition.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/IlpCondition.yaml new file mode 100644 index 00000000..519e3a20 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/IlpCondition.yaml @@ -0,0 +1,5 @@ +title: IlpCondition +type: string +pattern: ^[A-Za-z0-9-_]{43}$ +maxLength: 48 +description: Condition that must be attached to the transfer by the Payer. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/IlpFulfilment.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/IlpFulfilment.yaml new file mode 100644 index 00000000..7633555d --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/IlpFulfilment.yaml @@ -0,0 +1,6 @@ +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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/IlpPacket.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/IlpPacket.yaml new file mode 100644 index 00000000..a76b3446 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/IlpPacket.yaml @@ -0,0 +1,8 @@ +title: IlpPacket +type: string +pattern: ^[A-Za-z0-9-_]+[=]{0,2}$ +minLength: 1 +maxLength: 32768 +description: Information for recipient (transport layer information). +example: >- + AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/LastName.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/LastName.yaml new file mode 100644 index 00000000..8d2ee868 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/LastName.yaml @@ -0,0 +1,9 @@ +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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/Latitude.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/Latitude.yaml new file mode 100644 index 00000000..616d4250 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/Latitude.yaml @@ -0,0 +1,7 @@ +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' diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/Longitude.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/Longitude.yaml new file mode 100644 index 00000000..7e2bc27f --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/Longitude.yaml @@ -0,0 +1,8 @@ +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' diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/MerchantClassificationCode.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/MerchantClassificationCode.yaml new file mode 100644 index 00000000..7cc2dee1 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/MerchantClassificationCode.yaml @@ -0,0 +1,7 @@ +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. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/MiddleName.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/MiddleName.yaml new file mode 100644 index 00000000..cb8a9c30 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/MiddleName.yaml @@ -0,0 +1,9 @@ +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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/Money.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/Money.yaml new file mode 100644 index 00000000..d3160767 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/Money.yaml @@ -0,0 +1,11 @@ +title: Money +type: object +description: Data model for the complex type Money. +properties: + currency: + $ref: ./Currency.yaml + amount: + $ref: ./Amount.yaml +required: + - currency + - amount diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/Name.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/Name.yaml new file mode 100644 index 00000000..a064ed90 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/Name.yaml @@ -0,0 +1,17 @@ +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. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/Note.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/Note.yaml new file mode 100644 index 00000000..e40ce060 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/Note.yaml @@ -0,0 +1,6 @@ +title: Note +type: string +minLength: 1 +maxLength: 128 +description: Memo assigned to transaction. +example: Note sent to Payee. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/Party.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/Party.yaml new file mode 100644 index 00000000..b6d682dd --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/Party.yaml @@ -0,0 +1,21 @@ +title: Party +type: object +description: Data model for the complex type Party. +properties: + partyIdInfo: + $ref: ./PartyIdInfo.yaml + merchantClassificationCode: + $ref: ./MerchantClassificationCode.yaml + name: + $ref: ./PartyName.yaml + personalInfo: + $ref: ../../../../fspiop/v2_0/openapi3/components/schemas/PartyPersonalInfo.yaml + supportedCurrencies: + type: array + description: Currencies in which the party can receive funds. + items: + $ref: ./Currency.yaml + minItems: 0 + maxItems: 16 +required: + - partyIdInfo diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/PartyComplexName.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/PartyComplexName.yaml new file mode 100644 index 00000000..c88bad58 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/PartyComplexName.yaml @@ -0,0 +1,10 @@ +title: PartyComplexName +type: object +description: Data model for the complex type PartyComplexName. +properties: + firstName: + $ref: ./FirstName.yaml + middleName: + $ref: ./MiddleName.yaml + lastName: + $ref: ./LastName.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/PartyIdInfo.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/PartyIdInfo.yaml new file mode 100644 index 00000000..1110bc03 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/PartyIdInfo.yaml @@ -0,0 +1,19 @@ +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: ./PartyIdType.yaml + partyIdentifier: + $ref: ./PartyIdentifier.yaml + partySubIdOrType: + $ref: ./PartySubIdOrType.yaml + fspId: + $ref: ./FspId.yaml + extensionList: + $ref: ./ExtensionList.yaml +required: + - partyIdType + - partyIdentifier diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/PartyIdType.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/PartyIdType.yaml new file mode 100644 index 00000000..5157a4ba --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/PartyIdType.yaml @@ -0,0 +1,54 @@ +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. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/PartyIdentifier.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/PartyIdentifier.yaml new file mode 100644 index 00000000..5487e6b6 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/PartyIdentifier.yaml @@ -0,0 +1,6 @@ +title: PartyIdentifier +type: string +minLength: 1 +maxLength: 128 +description: Identifier of the Party. +example: '16135551212' diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/PartyName.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/PartyName.yaml new file mode 100644 index 00000000..3b3fc863 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/PartyName.yaml @@ -0,0 +1,5 @@ +title: PartyName +type: string +minLength: 1 +maxLength: 128 +description: Name of the Party. Could be a real name or a nickname. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/PartyPersonalInfo.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/PartyPersonalInfo.yaml new file mode 100644 index 00000000..cb278d8d --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/PartyPersonalInfo.yaml @@ -0,0 +1,8 @@ +title: PartyPersonalInfo +type: object +description: Data model for the complex type PartyPersonalInfo. +properties: + complexName: + $ref: ./PartyComplexName.yaml + dateOfBirth: + $ref: ./DateOfBirth.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/PartySubIdOrType.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/PartySubIdOrType.yaml new file mode 100644 index 00000000..2f1fc9db --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/PartySubIdOrType.yaml @@ -0,0 +1,7 @@ +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. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/QuotesIDPutResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/QuotesIDPutResponse.yaml new file mode 100644 index 00000000..9493dcdc --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/QuotesIDPutResponse.yaml @@ -0,0 +1,27 @@ +title: QuotesIDPutResponse +type: object +description: The object sent in the PUT /quotes/{ID} callback. +properties: + transferAmount: + $ref: ./Money.yaml + payeeReceiveAmount: + $ref: ./Money.yaml + payeeFspFee: + $ref: ./Money.yaml + payeeFspCommission: + $ref: ./Money.yaml + expiration: + $ref: ./DateTime.yaml + geoCode: + $ref: ./GeoCode.yaml + ilpPacket: + $ref: ./IlpPacket.yaml + condition: + $ref: ./IlpCondition.yaml + extensionList: + $ref: ./ExtensionList.yaml +required: + - transferAmount + - expiration + - ilpPacket + - condition diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/QuotesPostRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/QuotesPostRequest.yaml new file mode 100644 index 00000000..cfbe563e --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/QuotesPostRequest.yaml @@ -0,0 +1,53 @@ +title: QuotesPostRequest +type: object +description: The object sent in the POST /quotes request. +properties: + quoteId: + $ref: ./CorrelationId.yaml + transactionId: + $ref: ./CorrelationId.yaml + transactionRequestId: + $ref: ./CorrelationId.yaml + payee: + $ref: ./Party.yaml + payer: + $ref: ./Party.yaml + amountType: + $ref: ./AmountType.yaml + amount: + $ref: ./Money.yaml + fees: + $ref: ./Money.yaml + transactionType: + $ref: ./TransactionType.yaml + converter: + allOf: + - $ref: ../../../../fspiop/v2_0/openapi3/components/schemas/CurrencyConverter.yaml + - 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: ../../../../fspiop/v2_0/openapi3/components/schemas/FxRate.yaml + - 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: ./GeoCode.yaml + note: + $ref: ./Note.yaml + expiration: + $ref: ./DateTime.yaml + extensionList: + $ref: ./ExtensionList.yaml +required: + - quoteId + - transactionId + - payee + - payer + - amountType + - amount + - transactionType diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/Refund.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/Refund.yaml new file mode 100644 index 00000000..38b3875c --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/Refund.yaml @@ -0,0 +1,10 @@ +title: Refund +type: object +description: Data model for the complex type Refund. +properties: + originalTransactionId: + $ref: ./CorrelationId.yaml + refundReason: + $ref: ./RefundReason.yaml +required: + - originalTransactionId diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/RefundReason.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/RefundReason.yaml new file mode 100644 index 00000000..8ba8fe78 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/RefundReason.yaml @@ -0,0 +1,6 @@ +title: RefundReason +type: string +minLength: 1 +maxLength: 128 +description: Reason for the refund. +example: Free text indicating reason for the refund. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionInitiator.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionInitiator.yaml new file mode 100644 index 00000000..ec80105d --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionInitiator.yaml @@ -0,0 +1,16 @@ +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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionInitiatorType.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionInitiatorType.yaml new file mode 100644 index 00000000..24c56e14 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionInitiatorType.yaml @@ -0,0 +1,14 @@ +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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionRequestResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionRequestResponse.yaml new file mode 100644 index 00000000..497f93a9 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionRequestResponse.yaml @@ -0,0 +1,20 @@ +title: TransactionRequestResponse +type: object +description: 'The object sent in the PUT /transactionRequests/{ID} callback.' +properties: + body: + type: object + properties: + transactionId: + $ref: ./CorrelationId.yaml + transactionRequestState: + $ref: ./TransactionRequestState.yaml + extensionList: + $ref: ./ExtensionList.yaml + required: + - transactionRequestState + headers: + type: object +required: + - body + - headers diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionRequestState.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionRequestState.yaml new file mode 100644 index 00000000..9e3126f8 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionRequestState.yaml @@ -0,0 +1,14 @@ +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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionScenario.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionScenario.yaml new file mode 100644 index 00000000..f2b10f8c --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionScenario.yaml @@ -0,0 +1,32 @@ +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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionSubScenario.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionSubScenario.yaml new file mode 100644 index 00000000..cb2fad8a --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionSubScenario.yaml @@ -0,0 +1,5 @@ +title: TransactionSubScenario +type: string +pattern: ^[A-Z_]{1,32}$ +description: Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type). +example: LOCALLY_DEFINED_SUBSCENARIO diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionType.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionType.yaml new file mode 100644 index 00000000..3da7d8aa --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/TransactionType.yaml @@ -0,0 +1,20 @@ +title: TransactionType +type: object +description: Data model for the complex type TransactionType. +properties: + scenario: + $ref: ./TransactionScenario.yaml + subScenario: + $ref: ./TransactionSubScenario.yaml + initiator: + $ref: ./TransactionInitiator.yaml + initiatorType: + $ref: ./TransactionInitiatorType.yaml + refundInfo: + $ref: ./Refund.yaml + balanceOfPayments: + $ref: ./BalanceOfPayments.yaml +required: + - scenario + - initiator + - initiatorType diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/TransferState.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/TransferState.yaml new file mode 100644 index 00000000..1427e78f --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/TransferState.yaml @@ -0,0 +1,19 @@ +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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/TransfersIDPutResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/TransfersIDPutResponse.yaml new file mode 100644 index 00000000..3fea06c4 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/TransfersIDPutResponse.yaml @@ -0,0 +1,14 @@ +title: TransfersIDPutResponse +type: object +description: The object sent in the PUT /transfers/{ID} callback. +properties: + fulfilment: + $ref: ./IlpFulfilment.yaml + completedTimestamp: + $ref: ./DateTime.yaml + transferState: + $ref: ./TransferState.yaml + extensionList: + $ref: ./ExtensionList.yaml +required: + - transferState diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/TransfersPostRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/TransfersPostRequest.yaml new file mode 100644 index 00000000..c4d8159c --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/TransfersPostRequest.yaml @@ -0,0 +1,28 @@ +title: TransfersPostRequest +type: object +description: The object sent in the POST /transfers request. +properties: + transferId: + $ref: ./CorrelationId.yaml + payeeFsp: + $ref: ./FspId.yaml + payerFsp: + $ref: ./FspId.yaml + amount: + $ref: ./Money.yaml + ilpPacket: + $ref: ./IlpPacket.yaml + condition: + $ref: ./IlpCondition.yaml + expiration: + $ref: ./DateTime.yaml + extensionList: + $ref: ./ExtensionList.yaml +required: + - transferId + - payeeFsp + - payerFsp + - amount + - ilpPacket + - condition + - expiration diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/accountCreationStatus.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/accountCreationStatus.yaml new file mode 100644 index 00000000..39654ab9 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/accountCreationStatus.yaml @@ -0,0 +1,15 @@ +type: array +items: + type: object + required: + - idType + - idValue + properties: + idType: + $ref: ./PartyIdType.yaml + idValue: + $ref: ./PartyIdentifier.yaml + idSubValue: + $ref: ./PartySubIdOrType.yaml + error: + $ref: ./errorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/accountsCreationState.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/accountsCreationState.yaml new file mode 100644 index 00000000..74230131 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/accountsCreationState.yaml @@ -0,0 +1,4 @@ +type: string +enum: + - ERROR_OCCURRED + - COMPLETED diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/accountsRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/accountsRequest.yaml new file mode 100644 index 00000000..8795a901 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/accountsRequest.yaml @@ -0,0 +1,16 @@ +type: array +items: + type: object + required: + - idType + - idValue + - currency + properties: + idType: + $ref: ./PartyIdType.yaml + idValue: + $ref: ./PartyIdentifier.yaml + idSubValue: + $ref: ./PartySubIdOrType.yaml + currency: + $ref: ./Currency.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/accountsResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/accountsResponse.yaml new file mode 100644 index 00000000..9745e80f --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/accountsResponse.yaml @@ -0,0 +1,23 @@ +type: object +required: + - accounts +properties: + modelId: + $ref: ./CorrelationId.yaml + accounts: + $ref: ./accountsRequest.yaml + response: + $ref: ./accountCreationStatus.yaml + currentState: + $ref: ./accountsCreationState.yaml + lastError: + $ref: ./transferError.yaml + postAccountsResponse: + type: object + required: + - body + properties: + body: + type: object + headers: + type: object diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/async2SyncCurrentState.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/async2SyncCurrentState.yaml new file mode 100644 index 00000000..2e1530dd --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/async2SyncCurrentState.yaml @@ -0,0 +1,5 @@ +type: string +enum: + - WAITING_FOR_ACTION + - COMPLETED + - ERROR_OCCURRED diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/autoAcceptPartyOption.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/autoAcceptPartyOption.yaml new file mode 100644 index 00000000..bc3a6caf --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/autoAcceptPartyOption.yaml @@ -0,0 +1,9 @@ +type: object +required: + - enabled +properties: + enabled: + type: boolean + enum: + - false + - true diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/autoAcceptQuote.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/autoAcceptQuote.yaml new file mode 100644 index 00000000..a88a3025 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/autoAcceptQuote.yaml @@ -0,0 +1,14 @@ +type: object +required: + - enabled +properties: + enabled: + type: boolean + enum: + - true + - false + perTransferFeeLimits: + type: array + minItems: 0 + items: + $ref: ./bulkPerTransferFeeLimit.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkPerTransferFeeLimit.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkPerTransferFeeLimit.yaml new file mode 100644 index 00000000..55f00886 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkPerTransferFeeLimit.yaml @@ -0,0 +1,9 @@ +type: object +required: + - currency + - amount +properties: + currency: + $ref: ./Currency.yaml + amount: + $ref: ./Amount.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteErrorResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteErrorResponse.yaml new file mode 100644 index 00000000..ea9e22ae --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteErrorResponse.yaml @@ -0,0 +1,8 @@ +allOf: + - $ref: ./errorResponse.yaml + - type: object + required: + - bulkQuoteState + properties: + bulkQuoteState: + $ref: ./bulkQuoteResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteRequest.yaml new file mode 100644 index 00000000..ad6f8aa5 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteRequest.yaml @@ -0,0 +1,24 @@ +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: ./CorrelationId.yaml + from: + $ref: ./transferParty.yaml + individualQuotes: + description: List of individual quotes in a bulk quote. + type: array + minItems: 1 + maxItems: 1000 + items: + $ref: ./individualQuote.yaml + extensions: + $ref: ./ExtensionList.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteResponse.yaml new file mode 100644 index 00000000..6c6e4409 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteResponse.yaml @@ -0,0 +1,26 @@ +type: object +required: + - bulkQuoteId + - individualQuoteResults + - currentState + - expiration +properties: + bulkQuoteId: + $ref: ./CorrelationId.yaml + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + expiration: + $ref: ./DateTime.yaml + extensionList: + $ref: ./ExtensionList.yaml + currentState: + $ref: ../schemas/bulkTransferStatus.yaml + individualQuoteResults: + type: array + maxItems: 1000 + items: + $ref: ./individualQuoteResult.yaml + description: List of individualQuoteResults in a bulk transfer response. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteStatus.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteStatus.yaml new file mode 100644 index 00000000..74230131 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteStatus.yaml @@ -0,0 +1,4 @@ +type: string +enum: + - ERROR_OCCURRED + - COMPLETED diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteStatusResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteStatusResponse.yaml new file mode 100644 index 00000000..2b93088e --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkQuoteStatusResponse.yaml @@ -0,0 +1,16 @@ +type: object +required: + - bulkQuoteId + - currentState + - individualQuotes +properties: + bulkQuoteId: + $ref: ./CorrelationId.yaml + currentState: + $ref: ./bulkQuoteStatus.yaml + individualQuotes: + type: array + minItems: 1 + maxItems: 1000 + items: + $ref: ./individualQuote.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionAcceptPartyErrorResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionAcceptPartyErrorResponse.yaml new file mode 100644 index 00000000..a7325ba4 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionAcceptPartyErrorResponse.yaml @@ -0,0 +1,10 @@ +allOf: + - $ref: ./errorResponse.yaml + - type: object + required: + - bulkTransferState + properties: + bulkTransferState: + allOf: + - $ref: ./bulkTransactionContinuationAcceptParty.yaml + - $ref: ./partyError.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionAcceptQuoteErrorResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionAcceptQuoteErrorResponse.yaml new file mode 100644 index 00000000..c4843d43 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionAcceptQuoteErrorResponse.yaml @@ -0,0 +1,10 @@ +allOf: + - $ref: ./errorResponse.yaml + - type: object + required: + - bulkTansferState + properties: + bulkTransferState: + allOf: + - $ref: ./bulkTransactionContinuationAcceptQuote.yaml + - $ref: ./quoteError.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionContinuationAcceptParty.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionContinuationAcceptParty.yaml new file mode 100644 index 00000000..881c0f71 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionContinuationAcceptParty.yaml @@ -0,0 +1,17 @@ +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: ./bulkTransactionIndividualTransferAccept.yaml + - $ref: ./transferContinuationAcceptParty.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionContinuationAcceptQuote.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionContinuationAcceptQuote.yaml new file mode 100644 index 00000000..94cccc41 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionContinuationAcceptQuote.yaml @@ -0,0 +1,13 @@ +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: ./bulkTransactionIndividualTransferAccept.yaml + - $ref: ./transferContinuationAcceptQuote.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionIndividualTransfer.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionIndividualTransfer.yaml new file mode 100644 index 00000000..826dde98 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionIndividualTransfer.yaml @@ -0,0 +1,34 @@ +title: BulkTransactionIndividualTransfer +type: object +description: Data model for the complex type 'bulkTransactionIndividualTransfer'. +properties: + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + to: + $ref: ./Party.yaml + reference: + description: Payer Loan reference + type: string + amountType: + $ref: ./AmountType.yaml + currency: + $ref: ./Currency.yaml + amount: + $ref: ./Amount.yaml + note: + $ref: ./Note.yaml + quoteExtensions: + $ref: ./ExtensionList.yaml + transferExtensions: + $ref: ./ExtensionList.yaml + lastError: + $ref: ./transferError.yaml +required: + - homeTransactionId + - to + - amountType + - currency + - amount diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionIndividualTransferAccept.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionIndividualTransferAccept.yaml new file mode 100644 index 00000000..3430e10f --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionIndividualTransferAccept.yaml @@ -0,0 +1,7 @@ +type: object +description: Data model for the 'individualTransfer' while accepting party or quote. +properties: + transferId: + $ref: ./CorrelationId.yaml +required: + - transferId diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionIndividualTransferResult.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionIndividualTransferResult.yaml new file mode 100644 index 00000000..5d5dc7f3 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionIndividualTransferResult.yaml @@ -0,0 +1,38 @@ +type: object +required: + - homeTransactionId +properties: + transferId: + $ref: ./CorrelationId.yaml + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + transactionId: + $ref: ./CorrelationId.yaml + to: + $ref: ./Party.yaml + reference: + description: Payer Loan reference + type: string + amountType: + $ref: ./AmountType.yaml + currency: + $ref: ./Currency.yaml + amount: + $ref: ./Amount.yaml + note: + $ref: ./Note.yaml + quoteId: + $ref: ./CorrelationId.yaml + quoteResponse: + $ref: ./individualQuoteResult.yaml + fulfil: + $ref: ./individualTransferResult.yaml + quoteExtensions: + $ref: ./ExtensionList.yaml + transferExtensions: + $ref: ./ExtensionList.yaml + lastError: + $ref: ./transferError.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionOptions.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionOptions.yaml new file mode 100644 index 00000000..43c2056d --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionOptions.yaml @@ -0,0 +1,35 @@ +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: ./autoAcceptPartyOption.yaml + 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: ./autoAcceptQuote.yaml + 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: ./DateTime.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionRequest.yaml new file mode 100644 index 00000000..bd75eef2 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionRequest.yaml @@ -0,0 +1,27 @@ +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: ./CorrelationId.yaml + options: + $ref: ./bulkTransactionOptions.yaml + from: + $ref: ./Party.yaml + individualTransfers: + description: List of individual transfers in a bulk transfer. + type: array + minItems: 1 + items: + $ref: ./bulkTransactionIndividualTransfer.yaml + extensions: + $ref: ./ExtensionList.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionResponse.yaml new file mode 100644 index 00000000..1e995193 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionResponse.yaml @@ -0,0 +1,27 @@ +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: ./CorrelationId.yaml + currentState: + $ref: ./bulkTransactionStatus.yaml + options: + $ref: ./bulkTransactionOptions.yaml + individualTransferResults: + description: List of individual transfer result in a bulk transfer response. + type: array + minItems: 1 + items: + $ref: ./bulkTransactionIndividualTransferResult.yaml + extensions: + $ref: ./ExtensionList.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionStatus.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionStatus.yaml new file mode 100644 index 00000000..ded37995 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransactionStatus.yaml @@ -0,0 +1,6 @@ +type: string +enum: + - ERROR_OCCURRED + - WAITING_FOR_PARTY_ACCEPTANCE + - WAITING_FOR_QUOTE_ACCEPTANCE + - COMPLETED diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferErrorResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferErrorResponse.yaml new file mode 100644 index 00000000..3cbd4770 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferErrorResponse.yaml @@ -0,0 +1,8 @@ +allOf: + - $ref: ./errorResponse.yaml + - type: object + required: + - bulkTransferState + properties: + bulkTransferState: + $ref: ./bulkTransferResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferRequest.yaml new file mode 100644 index 00000000..6187efcc --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferRequest.yaml @@ -0,0 +1,28 @@ +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: ./CorrelationId.yaml + bulkQuoteId: + $ref: ./CorrelationId.yaml + from: + $ref: ./transferParty.yaml + individualTransfers: + description: List of individual transfers in a bulk transfer. + type: array + minItems: 1 + maxItems: 1000 + items: + $ref: ./individualTransfer.yaml + extensions: + $ref: ./ExtensionList.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferResponse.yaml new file mode 100644 index 00000000..ef69deae --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferResponse.yaml @@ -0,0 +1,29 @@ +type: object +required: +- bulkTransferId +- individualTransferResults +- currentState +properties: + bulkTransferId: + $ref: ./CorrelationId.yaml + bulkQuoteId: + $ref: ./CorrelationId.yaml + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + bulkTransferState: + $ref: ./TransferState.yaml + completedTimestamp: + $ref: ./DateTime.yaml + extensionList: + $ref: ./ExtensionList.yaml + currentState: + $ref: ../schemas/bulkTransferStatus.yaml + individualTransferResults: + type: array + maxItems: 1000 + items: + $ref: ./individualTransferResult.yaml + description: List of individual transfer result in a bulk transfer response. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferStatus.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferStatus.yaml new file mode 100644 index 00000000..74230131 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/bulkTransferStatus.yaml @@ -0,0 +1,4 @@ +type: string +enum: + - ERROR_OCCURRED + - COMPLETED diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/errorAccountsResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/errorAccountsResponse.yaml new file mode 100644 index 00000000..68020fbc --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/errorAccountsResponse.yaml @@ -0,0 +1,8 @@ +allOf: + - $ref: ./errorResponse.yaml + - type: object + required: + - executionState + properties: + executionState: + $ref: ./accountsResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/errorQuotesResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/errorQuotesResponse.yaml new file mode 100644 index 00000000..256ecdd3 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/errorQuotesResponse.yaml @@ -0,0 +1,3 @@ +allOf: + - $ref: ./errorResponse.yaml + - type: object diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/errorResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/errorResponse.yaml new file mode 100644 index 00000000..6626b851 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/errorResponse.yaml @@ -0,0 +1,10 @@ +type: object +properties: + statusCode: + type: string + description: | + Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code. + Otherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message. + message: + type: string + description: Error message text. diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/errorSimpleTransfersResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/errorSimpleTransfersResponse.yaml new file mode 100644 index 00000000..256ecdd3 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/errorSimpleTransfersResponse.yaml @@ -0,0 +1,3 @@ +allOf: + - $ref: ./errorResponse.yaml + - type: object diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/errorTransferResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/errorTransferResponse.yaml new file mode 100644 index 00000000..bd4b79d8 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/errorTransferResponse.yaml @@ -0,0 +1,8 @@ +allOf: + - $ref: ./errorResponse.yaml + - type: object + required: + - transferState + properties: + transferState: + $ref: ./transferResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/extensionListEmptiable.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/extensionListEmptiable.yaml new file mode 100644 index 00000000..9cccb409 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/extensionListEmptiable.yaml @@ -0,0 +1,5 @@ +type: array +items: + $ref: ./Extension.yaml +minItems: 0 +maxItems: 16 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/getPartiesResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/getPartiesResponse.yaml new file mode 100644 index 00000000..fed5f9a1 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/getPartiesResponse.yaml @@ -0,0 +1,11 @@ +title: getPartiesResponse +type: object +description: 'The object sent in the GET /parties/{Type}/{ID} callback.' +properties: + body: + $ref: ./Party.yaml + headers: + type: object +required: + - body + - headers diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/individualQuote.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/individualQuote.yaml new file mode 100644 index 00000000..ec3c45f7 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/individualQuote.yaml @@ -0,0 +1,29 @@ +title: IndividualQuote +type: object +description: Data model for the complex type 'individualQuote'. +properties: + quoteId: + $ref: ./CorrelationId.yaml + to: + $ref: ./transferParty.yaml + amountType: + $ref: ./AmountType.yaml + currency: + $ref: ./Currency.yaml + amount: + $ref: ./Amount.yaml + transactionType: + $ref: ./transferTransactionType.yaml + subScenario: + $ref: ./TransactionSubScenario.yaml + note: + $ref: ./Note.yaml + extensions: + $ref: ./ExtensionList.yaml +required: + - quoteId + - to + - amountType + - currency + - transactionType + - amount diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/individualQuoteResult.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/individualQuoteResult.yaml new file mode 100644 index 00000000..cf15ad35 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/individualQuoteResult.yaml @@ -0,0 +1,25 @@ +type: object +properties: + quoteId: + $ref: ./CorrelationId.yaml + transferAmount: + $ref: ./Money.yaml + payeeReceiveAmount: + $ref: ./Money.yaml + payeeFspFee: + $ref: ./Money.yaml + payeeFspCommission: + $ref: ./Money.yaml + geoCode: + $ref: ./GeoCode.yaml + ilpPacket: + $ref: ./IlpPacket.yaml + condition: + $ref: ./IlpCondition.yaml + extensionList: + $ref: ./ExtensionList.yaml + lastError: + $ref: ./quoteError.yaml +required: + - quoteId + diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/individualTransfer.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/individualTransfer.yaml new file mode 100644 index 00000000..c6aafc63 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/individualTransfer.yaml @@ -0,0 +1,34 @@ +title: IndividualTransfer +type: object +description: Data model for the complex type 'individualTransfer'. +properties: + transferId: + $ref: ./CorrelationId.yaml + to: + $ref: ./transferParty.yaml + amountType: + $ref: ./AmountType.yaml + currency: + $ref: ./Currency.yaml + amount: + $ref: ./Amount.yaml + transactionType: + $ref: ./transferTransactionType.yaml + subScenario: + $ref: ./TransactionSubScenario.yaml + ilpPacket: + $ref: ./IlpPacket.yaml + condition: + $ref: ./IlpCondition.yaml + note: + $ref: ./Note.yaml + extensions: + $ref: ./ExtensionList.yaml +required: + - transferId + - to + - amountType + - currency + - amount + - ilpPacket + - condition diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/individualTransferFulfilment.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/individualTransferFulfilment.yaml new file mode 100644 index 00000000..9b9bd575 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/individualTransferFulfilment.yaml @@ -0,0 +1,9 @@ +type: object +description: >- + A Mojaloop API transfer fulfilment for individual transfers in a bulk + transfer +properties: + fulfilment: + $ref: ./IlpFulfilment.yaml + extensionList: + $ref: ./ExtensionList.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/individualTransferResult.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/individualTransferResult.yaml new file mode 100644 index 00000000..042ffb21 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/individualTransferResult.yaml @@ -0,0 +1,14 @@ +type: object +required: + - transferId +properties: + transferId: + $ref: ./CorrelationId.yaml + fulfilment: + $ref: ./IlpFulfilment.yaml + extensionList: + $ref: ./ExtensionList.yaml + transferState: + $ref: ./TransferState.yaml + lastError: + $ref: ./transferError.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/mojaloopError.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/mojaloopError.yaml new file mode 100644 index 00000000..283097da --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/mojaloopError.yaml @@ -0,0 +1,4 @@ +type: object +properties: + errorInformation: + $ref: ./ErrorInformation.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/partiesByIdResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/partiesByIdResponse.yaml new file mode 100644 index 00000000..220c8440 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/partiesByIdResponse.yaml @@ -0,0 +1,18 @@ +title: partiesByIdResponse +type: object +description: GET /parties/{Type}/{ID} response object +properties: + party: + properties: + body: + $ref: ./Party.yaml + headers: + type: object + required: + - body + - headers + currentState: + $ref: ./async2SyncCurrentState.yaml +required: + - party + - currentState diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/partyError.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/partyError.yaml new file mode 100644 index 00000000..092f8b21 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/partyError.yaml @@ -0,0 +1,12 @@ +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: ./mojaloopError.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/quoteError.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/quoteError.yaml new file mode 100644 index 00000000..0f43f59e --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/quoteError.yaml @@ -0,0 +1,12 @@ +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: ./mojaloopError.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/quotesPostResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/quotesPostResponse.yaml new file mode 100644 index 00000000..8b59dc7e --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/quotesPostResponse.yaml @@ -0,0 +1,48 @@ +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: ./Money.yaml + payeeReceiveAmount: + $ref: ./Money.yaml + payeeFspFee: + $ref: ./Money.yaml + payeeFspCommission: + $ref: ./Money.yaml + 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: ./GeoCode.yaml + ilpPacket: + $ref: ./IlpPacket.yaml + condition: + $ref: ./IlpCondition.yaml + extensionList: + $ref: ./ExtensionList.yaml + required: + - transferAmount + - expiration + - ilpPacket + - condition + headers: + type: object + required: + - body + - headers + currentState: + $ref: ./async2SyncCurrentState.yaml +required: + - quotes + - currentState diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayRequest.yaml new file mode 100644 index 00000000..975eb9bf --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayRequest.yaml @@ -0,0 +1,32 @@ +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: ./transferParty.yaml + to: + $ref: ./transferParty.yaml + amountType: + $ref: ./AmountType.yaml + currency: + $ref: ./Currency.yaml + amount: + $ref: ./Amount.yaml + transactionType: + $ref: ./TransactionScenario.yaml + subScenario: + $ref: ./TransactionSubScenario.yaml + authenticationType: + $ref: './AuthenticationType.yaml' + diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayResponse.yaml new file mode 100644 index 00000000..bc9a397a --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayResponse.yaml @@ -0,0 +1,35 @@ +type: object +required: + - transactionRequestId + - from + - to + - amountType + - currency + - amount + - transactionType + - currentState +properties: + transactionRequestId: + $ref: ./CorrelationId.yaml + from: + $ref: ./transferParty.yaml + to: + $ref: ./transferParty.yaml + amountType: + $ref: ./AmountType.yaml + currency: + $ref: ./Currency.yaml + amount: + $ref: ./Amount.yaml + transactionType: + $ref: ./TransactionScenario.yaml + subScenario: + $ref: ./TransactionSubScenario.yaml + currentState: + $ref: ./requestToPayStatus.yaml + getPartiesResponse: + $ref: ./getPartiesResponse.yaml + transactionRequestResponse: + $ref: ./TransactionRequestResponse.yaml + lastError: + $ref: ./transferError.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayStatus.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayStatus.yaml new file mode 100644 index 00000000..fcf72654 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayStatus.yaml @@ -0,0 +1,5 @@ +type: string +enum: + - ERROR_OCCURRED + - WAITING_FOR_PARTY_ACCEPTANCE + - COMPLETED diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayTransferRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayTransferRequest.yaml new file mode 100644 index 00000000..637158e4 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayTransferRequest.yaml @@ -0,0 +1,42 @@ +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: ./CorrelationId.yaml + from: + $ref: ./transferParty.yaml + to: + $ref: ./transferParty.yaml + amountType: + $ref: ./AmountType.yaml + currency: + $ref: ./Currency.yaml + amount: + $ref: ./Amount.yaml + scenario: + $ref: ./TransactionScenario.yaml + subScenario: + $ref: ./TransactionSubScenario.yaml + initiator: + $ref: ./TransactionInitiator.yaml + initiatorType: + $ref: ./TransactionInitiatorType.yaml + note: + $ref: ./Note.yaml + authenticationType: + $ref: './AuthenticationType.yaml' \ No newline at end of file diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayTransferResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayTransferResponse.yaml new file mode 100644 index 00000000..b726bb72 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/requestToPayTransferResponse.yaml @@ -0,0 +1,72 @@ +type: object +required: + - transactionRequestId + - from + - to + - amountType + - currency + - amount + - transactionType +properties: + transferId: + $ref: ./CorrelationId.yaml + homeR2PTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + transactionRequestId: + $ref: ./CorrelationId.yaml + from: + $ref: ./transferParty.yaml + to: + $ref: ./transferParty.yaml + amountType: + $ref: ./AmountType.yaml + currency: + $ref: ./Currency.yaml + amount: + $ref: ./Amount.yaml + transactionType: + $ref: ./transferTransactionType.yaml + note: + $ref: ./Note.yaml + currentState: + $ref: ./transferStatus.yaml + quoteId: + $ref: ./CorrelationId.yaml + quoteResponse: + type: object + required: + - body + properties: + body: + $ref: ./QuotesIDPutResponse.yaml + 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: ./AuthorizationIDPutResponse.yaml + headers: + type: object + fulfil: + type: object + required: + - body + properties: + body: + $ref: ./TransfersIDPutResponse.yaml + headers: + type: object + lastError: + $ref: ./transferError.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/simpleQuotesPostRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/simpleQuotesPostRequest.yaml new file mode 100644 index 00000000..495f775a --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/simpleQuotesPostRequest.yaml @@ -0,0 +1,10 @@ +title: simpleQuotesPostRequest +type: object +properties: + fspId: + $ref: ./FspId.yaml + quotesPostRequest: + $ref: ./QuotesPostRequest.yaml +required: + - fspId + - quotesPostRequest diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/simpleTransfersPostRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/simpleTransfersPostRequest.yaml new file mode 100644 index 00000000..a05ee385 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/simpleTransfersPostRequest.yaml @@ -0,0 +1,10 @@ +title: SimpleTransfersPostRequest +type: object +properties: + fspId: + $ref: ./FspId.yaml + transfersPostRequest: + $ref: ./TransfersPostRequest.yaml +required: + - fspId + - transfersPostRequest diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/simpleTransfersPostResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/simpleTransfersPostResponse.yaml new file mode 100644 index 00000000..93cd94e7 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/simpleTransfersPostResponse.yaml @@ -0,0 +1,17 @@ +title: SimpleTransfersPostResponse +type: object +properties: + transfer: + properties: + body: + $ref: ./TransfersIDPutResponse.yaml + headers: + type: object + required: + - body + - headers + currentState: + $ref: ./async2SyncCurrentState.yaml +required: + - transfer + - currentState diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptConversion.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptConversion.yaml new file mode 100644 index 00000000..7333798f --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptConversion.yaml @@ -0,0 +1,9 @@ +type: object +required: + - acceptConversion +properties: + acceptConversion: + type: boolean + enum: + - true + - false diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptOTP.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptOTP.yaml new file mode 100644 index 00000000..23ad4e61 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptOTP.yaml @@ -0,0 +1,9 @@ +type: object +required: + - acceptOTP +properties: + acceptOTP: + type: boolean + enum: + - true + - false diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptParty.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptParty.yaml new file mode 100644 index 00000000..9a3f6b9f --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptParty.yaml @@ -0,0 +1,9 @@ +type: object +required: + - acceptParty +properties: + acceptParty: + type: boolean + enum: + - true + - false diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptQuote.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptQuote.yaml new file mode 100644 index 00000000..106fae46 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/transferContinuationAcceptQuote.yaml @@ -0,0 +1,9 @@ +type: object +required: + - acceptQuote +properties: + acceptQuote: + type: boolean + enum: + - true + - false diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/transferError.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/transferError.yaml new file mode 100644 index 00000000..1b0033b8 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/transferError.yaml @@ -0,0 +1,12 @@ +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: ./mojaloopError.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/transferParty.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/transferParty.yaml new file mode 100644 index 00000000..02e237d0 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/transferParty.yaml @@ -0,0 +1,38 @@ +type: object +required: + - idType + - idValue +properties: + type: + $ref: ./TransactionInitiatorType.yaml + idType: + $ref: ./PartyIdType.yaml + idValue: + $ref: ./PartyIdentifier.yaml + idSubValue: + $ref: ./PartySubIdOrType.yaml + displayName: + $ref: ./Name.yaml + firstName: + $ref: ./FirstName.yaml + middleName: + $ref: ./MiddleName.yaml + lastName: + $ref: ./LastName.yaml + dateOfBirth: + $ref: ./DateOfBirth.yaml + merchantClassificationCode: + $ref: ./MerchantClassificationCode.yaml + fspId: + $ref: ./FspId.yaml + supportedCurrencies: + type: array + description: Currencies in which the party can receive funds. + items: + $ref: ./Currency.yaml + minItems: 0 + maxItems: 16 + kycInformation: + $ref: "../../../../fspiop/v2_0/openapi3/components/schemas/PartyPersonalInfo.yaml#/properties/kycInformation" + extensionList: + $ref: ./extensionListEmptiable.yaml diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/transferRequest.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/transferRequest.yaml new file mode 100644 index 00000000..7b61f62b --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/transferRequest.yaml @@ -0,0 +1,41 @@ +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: ./transferParty.yaml + to: + $ref: ./transferParty.yaml + amountType: + $ref: ./AmountType.yaml + currency: + $ref: ./Currency.yaml + amount: + $ref: ./Amount.yaml + transactionType: + $ref: ./transferTransactionType.yaml + subScenario: + $ref: ./TransactionSubScenario.yaml + note: + $ref: ./Note.yaml + quoteRequestExtensions: + $ref: ./extensionListEmptiable.yaml + transferRequestExtensions: + $ref: ./extensionListEmptiable.yaml + 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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/transferResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/transferResponse.yaml new file mode 100644 index 00000000..79fac396 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/transferResponse.yaml @@ -0,0 +1,93 @@ +type: object +required: + - homeTransactionId + - from + - to + - amountType + - currency + - amount + - transactionType +properties: + transferId: + $ref: ./CorrelationId.yaml + homeTransactionId: + type: string + description: >- + Transaction ID from the DFSP backend, used to reconcile transactions + between the Switch and DFSP backend systems. + from: + $ref: ./transferParty.yaml + to: + $ref: ./transferParty.yaml + amountType: + $ref: ./AmountType.yaml + currency: + $ref: ./Currency.yaml + amount: + $ref: ./Amount.yaml + transactionType: + $ref: ./transferTransactionType.yaml + subScenario: + $ref: ./TransactionSubScenario.yaml + note: + $ref: ./Note.yaml + currentState: + $ref: ./transferStatus.yaml + quoteId: + $ref: ./CorrelationId.yaml + getPartiesResponse: + type: object + required: + - body + properties: + body: + type: object + headers: + type: object + quoteResponse: + type: object + required: + - body + properties: + body: + $ref: ./QuotesIDPutResponse.yaml + 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. + conversionRequestId: + $ref: ./CorrelationId.yaml + fxQuotesResponse: + type: object + required: + - body + properties: + body: + $ref: ./FxQuotesPostOutboundResponse.yaml + headers: + type: object + fxQuotesResponseSource: + type: string + description: > + FXPID of the entity that supplied the fxQuotes response. + fulfil: + type: object + required: + - body + properties: + body: + $ref: ./TransfersIDPutResponse.yaml + headers: + type: object + lastError: + $ref: ./transferError.yaml + 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 diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/transferStatus.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/transferStatus.yaml new file mode 100644 index 00000000..f82e7c76 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/transferStatus.yaml @@ -0,0 +1,7 @@ +type: string +enum: + - ERROR_OCCURRED + - WAITING_FOR_PARTY_ACCEPTANCE + - WAITING_FOR_QUOTE_ACCEPTANCE + - WAITING_FOR_CONVERSION_ACCEPTANCE + - COMPLETED diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/transferStatusResponse.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/transferStatusResponse.yaml new file mode 100644 index 00000000..b55b1a92 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/transferStatusResponse.yaml @@ -0,0 +1,19 @@ +type: object +required: + - transferId + - currentState + - fulfil +properties: + transferId: + $ref: ./CorrelationId.yaml + currentState: + $ref: ./transferStatus.yaml + fulfil: + type: object + required: + - body + properties: + body: + $ref: ./TransfersIDPutResponse.yaml + headers: + type: object diff --git a/sdk-scheme-adapter/v2_1_0/components/schemas/transferTransactionType.yaml b/sdk-scheme-adapter/v2_1_0/components/schemas/transferTransactionType.yaml new file mode 100644 index 00000000..27524c06 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/components/schemas/transferTransactionType.yaml @@ -0,0 +1,5 @@ +title: transferTransactionType +type: string +enum: + - TRANSFER +description: Type of transaction. diff --git a/sdk-scheme-adapter/v2_1_0/outbound/openapi.yaml b/sdk-scheme-adapter/v2_1_0/outbound/openapi.yaml new file mode 100644 index 00000000..e806ea93 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/openapi.yaml @@ -0,0 +1,66 @@ +openapi: 3.0.1 +info: + title: Mojaloop SDK Outbound Scheme Adapter API + description: > + Specification for the Mojaloop SDK Scheme Adapter Outbound Transfers API + + + This API can be used by DFSP backends to simplify the process of sending + funds to other parties within a Mojaloop scheme. + + + Please see other documentation on + https://github.com/mojaloop/sdk-scheme-adapter for more information. + + + **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/main/LICENSE.md + version: 2.1.0 +paths: + /: + $ref: paths.yaml + /accounts: + $ref: paths/accounts.yaml + /bulkQuotes: + $ref: paths/bulkQuotes.yaml + /bulkQuotes/{bulkQuoteId}: + $ref: paths/bulkQuotes_bulkQuoteId.yaml + /bulkTransactions: + $ref: paths/bulkTransactions.yaml + /bulkTransactions/{bulkTransactionId}: + $ref: paths/bulkTransactions_bulkTransactionId.yaml + /bulkTransfers: + $ref: paths/bulkTransfers.yaml + /bulkTransfers/{bulkTransferId}: + $ref: paths/bulkTransfers_bulkTransferId.yaml + /parties/{Type}/{ID}: + $ref: paths/parties_Type_ID.yaml + /parties/{Type}/{ID}/{SubId}: + $ref: paths/parties_Type_ID_SubId.yaml + /quotes: + $ref: paths/quotes.yaml + /requestToPay: + $ref: paths/requestToPay.yaml + /requestToPay/{transactionRequestId}: + $ref: paths/requestToPay_transactionRequestId.yaml + /requestToPayTransfer: + $ref: paths/requestToPayTransfer.yaml + /requestToPayTransfer/{transactionRequestId}: + $ref: paths/requestToPayTransfer_transactionRequestId.yaml + /simpleTransfers: + $ref: paths/simpleTransfers.yaml + /transfers: + $ref: paths/transfers.yaml + /transfers/{transferId}: + $ref: paths/transfers_transferId.yaml + /services/FXP: + $ref: 'paths/services_FXP.yaml' + /services/FXP/{SourceCurrency}/{TargetCurrency}: + $ref: 'paths/services_FXP_SourceCurrency_TargetCurrency.yaml' + /fxQuotes: + $ref: 'paths/fxQuotes.yaml' + /fxTransfers: + $ref: 'paths/fxTransfers.yaml' \ No newline at end of file diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths.yaml new file mode 100644 index 00000000..a8e5212c --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths.yaml @@ -0,0 +1,12 @@ +get: + summary: Health check endpoint + description: >- + This endpoint allows a user of the SDK scheme adapter to check the outbound + transfers service is listening. + tags: + - Health + responses: + '200': + description: >- + Returns empty body if the scheme adapter outbound transfers service is + running. diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/accounts.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/accounts.yaml new file mode 100644 index 00000000..1c19e786 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/accounts.yaml @@ -0,0 +1,26 @@ +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 + tags: + - Accounts + requestBody: + description: Identities list request body + content: + application/json: + schema: + $ref: ../../components/schemas/accountsRequest.yaml + required: true + responses: + '200': + $ref: ../../components/responses/accountsCreationCompleted.yaml + '400': + $ref: ../../components/responses/accountsCreationError.yaml + '500': + $ref: ../../components/responses/accountsCreationError.yaml + '504': + $ref: ../../components/responses/accountsCreationTimeout.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkQuotes.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkQuotes.yaml new file mode 100644 index 00000000..04d0c886 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkQuotes.yaml @@ -0,0 +1,23 @@ +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. + tags: + - BulkQuotes + requestBody: + description: Bulk quote request body + content: + application/json: + schema: + $ref: ../../components/schemas/bulkQuoteRequest.yaml + required: true + responses: + '200': + $ref: ../../components/responses/bulkQuoteSuccess.yaml + '400': + $ref: ../../components/responses/bulkQuoteBadRequest.yaml + '500': + $ref: ../../components/responses/bulkQuoteServerError.yaml + '504': + $ref: ../../components/responses/bulkQuoteTimeout.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkQuotes_bulkQuoteId.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkQuotes_bulkQuoteId.yaml new file mode 100644 index 00000000..4d51a08c --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkQuotes_bulkQuoteId.yaml @@ -0,0 +1,24 @@ +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 + parameters: + - $ref: ../../components/parameters/bulkQuoteId.yaml + responses: + '200': + description: Bulk quote information successfully retrieved + content: + application/json: + schema: + $ref: ../../components/schemas/bulkQuoteStatusResponse.yaml + '500': + description: An error occurred processing the bulk quote + content: + application/json: + schema: + $ref: ../../components/schemas/errorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransactions.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransactions.yaml new file mode 100644 index 00000000..7f1f82c9 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransactions.yaml @@ -0,0 +1,21 @@ +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.yaml + required: true + responses: + '202': + $ref: ../../components/responses/bulkTransactionAccepted.yaml + '400': + $ref: ../../components/responses/bulkTransferBadRequest.yaml + '500': + $ref: ../../components/responses/errorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransactions_bulkTransactionId.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransactions_bulkTransactionId.yaml new file mode 100644 index 00000000..e3840056 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransactions_bulkTransactionId.yaml @@ -0,0 +1,33 @@ +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.yaml + requestBody: + description: Bulk transaction request body + content: + application/json: + schema: + oneOf: + - $ref: ../../components/schemas/bulkTransactionContinuationAcceptParty.yaml + - $ref: ../../components/schemas/bulkTransactionContinuationAcceptQuote.yaml + required: true + responses: + '202': + description: Bulk transaction information successfully amended + '400': + $ref: ../../components/responses/bulkTransactionPutBadRequest.yaml + '500': + description: An error occurred processing the bulk transaction + content: + application/json: + schema: + $ref: ../../components/schemas/errorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransfers.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransfers.yaml new file mode 100644 index 00000000..e9d24d78 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransfers.yaml @@ -0,0 +1,21 @@ +post: + summary: Sends money from one account to multiple accounts + description: > + The HTTP request `POST /bulkTransfers` is used to request the movement of + funds from payer DFSP to payees' DFSP. + tags: + - BulkTransfers + requestBody: + description: Bulk transfer request body + content: + application/json: + schema: + $ref: ../../components/schemas/bulkTransferRequest.yaml + required: true + responses: + '200': + $ref: ../../components/responses/bulkTransferSuccess.yaml + '400': + $ref: ../../components/responses/bulkTransferBadRequest.yaml + '500': + $ref: ../../components/responses/errorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransfers_bulkTransferId.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransfers_bulkTransferId.yaml new file mode 100644 index 00000000..57f8badf --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/bulkTransfers_bulkTransferId.yaml @@ -0,0 +1,24 @@ +get: + summary: Retrieves information for a specific bulk transfer + description: >- + 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 + parameters: + - $ref: ../../components/parameters/bulkTransferId.yaml + responses: + '200': + description: Bulk transfer information successfully retrieved + content: + application/json: + schema: + $ref: ../../components/responses/bulkTransferStatusResponse.yaml + '500': + description: An error occurred processing the bulk transfer + content: + application/json: + schema: + $ref: ../../components/schemas/errorResponse.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/fxQuotes.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/fxQuotes.yaml new file mode 100644 index 00000000..23a206ea --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/fxQuotes.yaml @@ -0,0 +1,26 @@ +post: + description: >- + The HTTP request `POST /fxQuotes` is used to ask to provide a quotation for a currency conversion. + summary: Calculate FX quote + tags: + - Fx + operationId: FxQuotesPost + requestBody: + description: Details of the FX quote request. + required: true + content: + application/json: + schema: + $ref: ../../components/schemas/FxQuotesPostOutboundRequest.yaml + responses: + '200': + description: Successful response. + content: + application/json: + schema: + $ref: ../../components/schemas/FxQuotesPostOutboundResponse.yaml + '400': + $ref: ../../components/responses/400.yaml + '500': + $ref: ../../components/responses/500.yaml + diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/fxTransfers.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/fxTransfers.yaml new file mode 100644 index 00000000..fe16bda7 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/fxTransfers.yaml @@ -0,0 +1,25 @@ +post: + description: >- + The HTTP request `POST /fxTransfers` is used to ask to confirm the execution of an agreed currency conversion. + summary: Perform FX transfer + tags: + - Fx + operationId: FxTransfersPost + requestBody: + description: Details of the FX transfer request. + required: true + content: + application/json: + schema: + $ref: ../../components/schemas/FxTransfersPostOutboundRequest.yaml + responses: + '200': + description: Successful response. + content: + application/json: + schema: + $ref: ../../components/schemas/FxTransfersPostOutboundResponse.yaml + '400': + $ref: ../../components/responses/400.yaml + '500': + $ref: ../../components/responses/500.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/parties_Type_ID.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/parties_Type_ID.yaml new file mode 100644 index 00000000..74cbfbc5 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/parties_Type_ID.yaml @@ -0,0 +1,18 @@ +parameters: + - $ref: ../../components/parameters/Type.yaml + - $ref: ../../components/parameters/ID.yaml +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.yaml + '404': + $ref: ../../components/responses/partiesByIdError404.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/parties_Type_ID_SubId.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/parties_Type_ID_SubId.yaml new file mode 100644 index 00000000..bb2c5860 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/parties_Type_ID_SubId.yaml @@ -0,0 +1,19 @@ +parameters: + - $ref: ../../components/parameters/Type.yaml + - $ref: ../../components/parameters/ID.yaml + - $ref: ../../components/parameters/SubId.yaml +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.yaml + '404': + $ref: ../../components/responses/partiesByIdError404.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/quotes.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/quotes.yaml new file mode 100644 index 00000000..68c78de2 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/quotes.yaml @@ -0,0 +1,18 @@ +post: + summary: Quotes endpoint + description: is used to request quotes from other DFSP + tags: + - quotes + operationId: QuotesPost + requestBody: + description: Quotes request payload + content: + application/json: + schema: + $ref: ../../components/schemas/simpleQuotesPostRequest.yaml + required: true + responses: + '200': + $ref: ../../components/responses/quotesPostSuccess.yaml + '500': + $ref: ../../components/responses/quotesServerError.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPay.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPay.yaml new file mode 100644 index 00000000..90edc62c --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPay.yaml @@ -0,0 +1,22 @@ +post: + summary: Receiver requesting funds from Sender + description: > + The HTTP request `POST /requestToPay` is used to support Pull Funds pattern + where in a receiver can request for funds from the Sender. + + The underlying API has two stages: + + 1. Party lookup. This facilitates a check by the sending party that the destination party is correct before proceeding with a money movement. + 2. Transaction Request. This request enables a Payee to request Payer to send electronic funds to the Payee. + tags: + - RequestToPay + requestBody: + description: RequestToPay request body + content: + application/json: + schema: + $ref: ../../components/schemas/requestToPayRequest.yaml + required: true + responses: + '200': + $ref: ../../components/responses/requestToPaySuccess.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPayTransfer.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPayTransfer.yaml new file mode 100644 index 00000000..19876c17 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPayTransfer.yaml @@ -0,0 +1,57 @@ +post: + summary: >- + Used to trigger funds from customer fsp account to merchant fsp account. + This is a follow-up request to requestToPay. + description: > + The HTTP request `POST /requestToPayTransfer` 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. Quotation. This facilitates the exchange of fee information and the construction of a cryptographic "contract" between payee and payer DFSPs before funds are transferred. + 2. Authorization. This facilitates getting OTP from payee DFSP. + 3. Transfer. The enactment of the previously agreed "contract" + + This method has several modes of operation. + + - 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 otp, 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 variable `AUTO_ACCEPT_OTP` is set to `"false"` this + method will terminate and return the otp when it has been received from the + payee DFSP. + If the payer 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: + - RequestToPayTransfer + requestBody: + description: Request To Pay Transfer request body + content: + application/json: + schema: + $ref: ../../components/schemas/requestToPayTransferRequest.yaml + required: true + responses: + '200': + $ref: ../../components/responses/requestToPayTransferSuccess.yaml + '400': + $ref: ../../components/responses/requestToPayTransferBadRequest.yaml + '500': + $ref: ../../components/responses/transferServerError.yaml + '504': + $ref: ../../components/responses/transferTimeout.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPayTransfer_transactionRequestId.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPayTransfer_transactionRequestId.yaml new file mode 100644 index 00000000..9e157366 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPayTransfer_transactionRequestId.yaml @@ -0,0 +1,34 @@ +put: + summary: >- + 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 otp stage. + + + The request body should contain either the "acceptOTP" or "acceptQuote" + property set to `true` as required to continue the transfer. + + + See the description of the `POST /requestToPayTransfer` HTTP method for more + information on modes of transfer. + tags: + - RequestToPayTransferID + requestBody: + content: + application/json: + schema: + oneOf: + - $ref: ../../components/schemas/transferContinuationAcceptQuote.yaml + - $ref: ../../components/schemas/transferContinuationAcceptOTP.yaml + parameters: + - $ref: ../../components/parameters/transactionRequestId.yaml + responses: + '200': + $ref: ../../components/responses/transferSuccess.yaml + '500': + $ref: ../../components/responses/transferServerError.yaml + '504': + $ref: ../../components/responses/transferTimeout.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPay_transactionRequestId.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPay_transactionRequestId.yaml new file mode 100644 index 00000000..65fc4c12 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/requestToPay_transactionRequestId.yaml @@ -0,0 +1,29 @@ +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.yaml + parameters: + - $ref: ../../components/parameters/transactionRequestId.yaml + responses: + '200': + $ref: ../../components/responses/requestToPaySuccess.yaml + '500': + $ref: ../../components/responses/transferServerError.yaml + '504': + $ref: ../../components/responses/transferTimeout.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/services_FXP.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/services_FXP.yaml new file mode 100644 index 00000000..453ed576 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/services_FXP.yaml @@ -0,0 +1,15 @@ +get: + description: >- + The HTTP request `GET /services/FXP` is used to request information about the participants in a scheme who offer currency conversion services. + summary: Obtain a list of the DFSPs in the scheme who provide FXP service + tags: + - servicesFXP + operationId: ServicesFXPGet + responses: + '200': + $ref: ../../components/responses/servicesFXPSucess.yaml + '400': + $ref: ../../components/responses/400.yaml + '500': + $ref: ../../components/responses/500.yaml + diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/services_FXP_SourceCurrency_TargetCurrency.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/services_FXP_SourceCurrency_TargetCurrency.yaml new file mode 100644 index 00000000..250444ec --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/services_FXP_SourceCurrency_TargetCurrency.yaml @@ -0,0 +1,18 @@ +get: + description: >- + The HTTP request `GET /services/FXP/{SourceCurrency}/{TargetCurrency}` is used to request information about the participants in a scheme who offer currency conversion services in a particular currency corridor. + The required corridor is specified by giving the ISO 4217 currency code for the SourceCurrency and the TargetCurrency. + summary: Obtain a list of the DFSPs in the scheme who provide FXP service + tags: + - servicesFXP + operationId: ServicesFXPSourceCurrencyTargetCurrencyGet + parameters: + - $ref: ../../../../fspiop/v2_0/openapi3/components/parameters/SourceCurrency.yaml + - $ref: ../../../../fspiop/v2_0/openapi3/components/parameters/TargetCurrency.yaml + responses: + '200': + $ref: ../../components/responses/servicesFXPSucess.yaml + '400': + $ref: ../../components/responses/400.yaml + '500': + $ref: ../../components/responses/500.yaml \ No newline at end of file diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/simpleTransfers.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/simpleTransfers.yaml new file mode 100644 index 00000000..c38d4271 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/simpleTransfers.yaml @@ -0,0 +1,18 @@ +post: + summary: Simple Transfers endpoint + description: is used to request a transfer + tags: + - transfers + operationId: SimpleTransfersPost + requestBody: + description: Simple Transfer request payload + content: + application/json: + schema: + $ref: ../../components/schemas/simpleTransfersPostRequest.yaml + required: true + responses: + '200': + $ref: ../../components/responses/simpleTransfersPostSuccess.yaml + '500': + $ref: ../../components/responses/simpleTransfersServerError.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/transfers.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/transfers.yaml new file mode 100644 index 00000000..31df03d8 --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/transfers.yaml @@ -0,0 +1,55 @@ +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... + tags: + - Transfers + requestBody: + description: Transfer request body + content: + application/json: + schema: + $ref: ../../components/schemas/transferRequest.yaml + required: true + responses: + '200': + $ref: ../../components/responses/transferSuccess.yaml + '400': + $ref: ../../components/responses/transferBadRequest.yaml + '500': + $ref: ../../components/responses/transferServerError.yaml + '504': + $ref: ../../components/responses/transferTimeout.yaml diff --git a/sdk-scheme-adapter/v2_1_0/outbound/paths/transfers_transferId.yaml b/sdk-scheme-adapter/v2_1_0/outbound/paths/transfers_transferId.yaml new file mode 100644 index 00000000..6130368a --- /dev/null +++ b/sdk-scheme-adapter/v2_1_0/outbound/paths/transfers_transferId.yaml @@ -0,0 +1,59 @@ +put: + summary: >- + Continues a transfer that has paused at the quote stage in order to accept + or reject payee party and/or quote and/or conversion + 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 and/or currency conversion stage. + + + The request body should contain either the "acceptParty" or "acceptQuote" or "acceptConversion" + 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 + requestBody: + content: + application/json: + schema: + oneOf: + - $ref: ../../components/schemas/transferContinuationAcceptParty.yaml + - $ref: ../../components/schemas/transferContinuationAcceptQuote.yaml + - $ref: ../../components/schemas/transferContinuationAcceptConversion.yaml + parameters: + - $ref: ../../components/parameters/transferId.yaml + responses: + '200': + $ref: ../../components/responses/transferSuccess.yaml + '500': + $ref: ../../components/responses/transferServerError.yaml + '504': + $ref: ../../components/responses/transferTimeout.yaml +get: + summary: Retrieves information for a specific transfer + 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. + tags: + - Transfers + parameters: + - $ref: ../../components/parameters/transferId.yaml + responses: + '200': + description: Transfer information successfully retrieved + content: + application/json: + schema: + $ref: ../../components/schemas/transferStatusResponse.yaml + '500': + description: An error occurred processing the transfer + content: + application/json: + schema: + $ref: ../../components/schemas/errorResponse.yaml diff --git a/src/fspiop/v1_0/openapi.ts b/src/fspiop/v1_0/openapi.ts index 1231ae2f..1cb8cadd 100644 --- a/src/fspiop/v1_0/openapi.ts +++ b/src/fspiop/v1_0/openapi.ts @@ -1172,7 +1172,6 @@ export interface components { * @description The object sent in the PUT /parties/{Type}/{ID} callback. */ PartiesTypeIDPutResponse: { - /** @description Information regarding the requested Party. */ party: components["schemas"]["Party"]; }; /** diff --git a/src/sdk-scheme-adapter/v2_0_0/backend/json-schemas.json b/src/sdk-scheme-adapter/v2_0_0/backend/json-schemas.json index 79342553..b2c04db5 100644 --- a/src/sdk-scheme-adapter/v2_0_0/backend/json-schemas.json +++ b/src/sdk-scheme-adapter/v2_0_0/backend/json-schemas.json @@ -5324,7 +5324,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -13304,7 +13304,7 @@ }, "transferError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -13459,7 +13459,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -14951,7 +14951,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -15116,7 +15116,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -16900,7 +16900,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -17065,7 +17065,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", diff --git a/src/sdk-scheme-adapter/v2_0_0/backend/openapi.ts b/src/sdk-scheme-adapter/v2_0_0/backend/openapi.ts index 835b1524..96be522f 100644 --- a/src/sdk-scheme-adapter/v2_0_0/backend/openapi.ts +++ b/src/sdk-scheme-adapter/v2_0_0/backend/openapi.ts @@ -790,7 +790,7 @@ export interface components { * @enum {string} */ TransferState: "RECEIVED" | "RESERVED" | "COMMITTED" | "ABORTED"; - /** @description This object represents a Mojaloop API error received at any time during the transfer process */ + /** @description 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. */ transferError: { /** @description The HTTP status code returned to the caller. This is the same as the actual HTTP status code returned with the response. */ httpStatusCode?: number; diff --git a/src/sdk-scheme-adapter/v2_0_0/outbound/json-schemas.json b/src/sdk-scheme-adapter/v2_0_0/outbound/json-schemas.json index 79de2b3b..ee7f611a 100644 --- a/src/sdk-scheme-adapter/v2_0_0/outbound/json-schemas.json +++ b/src/sdk-scheme-adapter/v2_0_0/outbound/json-schemas.json @@ -733,7 +733,7 @@ }, "transferError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -1105,7 +1105,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -1514,7 +1514,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -8169,7 +8169,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -9155,7 +9155,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -9383,7 +9383,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -9636,7 +9636,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -9914,7 +9914,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -16418,7 +16418,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -18958,7 +18958,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -20570,7 +20570,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", @@ -23004,7 +23004,7 @@ }, "lastError": { "type": "object", - "description": "This object represents a Mojaloop API error received at any time during the transfer process", + "description": "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.", "properties": { "httpStatusCode": { "type": "integer", diff --git a/src/sdk-scheme-adapter/v2_0_0/outbound/openapi.ts b/src/sdk-scheme-adapter/v2_0_0/outbound/openapi.ts index 7bede657..3f70a371 100644 --- a/src/sdk-scheme-adapter/v2_0_0/outbound/openapi.ts +++ b/src/sdk-scheme-adapter/v2_0_0/outbound/openapi.ts @@ -539,7 +539,7 @@ export interface components { mojaloopError: { errorInformation?: components["schemas"]["ErrorInformation"]; }; - /** @description This object represents a Mojaloop API error received at any time during the transfer process */ + /** @description 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. */ transferError: { /** @description The HTTP status code returned to the caller. This is the same as the actual HTTP status code returned with the response. */ httpStatusCode?: number; @@ -984,7 +984,6 @@ export interface components { */ partiesByIdResponse: { party: { - /** @description Information regarding the requested Party. */ body: components["schemas"]["Party"]; headers: Record; }; @@ -1064,7 +1063,6 @@ export interface components { }; /** simpleQuotesPostRequest */ simpleQuotesPostRequest: { - /** destination DFSP requested to calculate the quote */ fspId: components["schemas"]["FspId"]; quotesPostRequest: components["schemas"]["QuotesPostRequest"]; }; @@ -1124,7 +1122,6 @@ export interface components { * @description The object sent in the GET /parties/{Type}/{ID} callback. */ getPartiesResponse: { - /** @description Information regarding the requested Party. */ body: components["schemas"]["Party"]; headers: Record; }; @@ -1163,7 +1160,6 @@ export interface components { currentState: components["schemas"]["requestToPayStatus"]; getPartiesResponse?: components["schemas"]["getPartiesResponse"]; transactionRequestResponse?: components["schemas"]["TransactionRequestResponse"]; - /** @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. */ lastError?: components["schemas"]["transferError"]; }; /** @enum {string} */ @@ -1221,7 +1217,6 @@ export interface components { body: components["schemas"]["TransfersIDPutResponse"]; headers?: Record; }; - /** @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. */ lastError?: components["schemas"]["transferError"]; /** @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. */ skipPartyLookup?: boolean; @@ -1312,7 +1307,6 @@ export interface components { body: components["schemas"]["TransfersIDPutResponse"]; headers?: Record; }; - /** @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. */ lastError?: components["schemas"]["transferError"]; }; transferContinuationAcceptOTP: { diff --git a/src/sdk-scheme-adapter/v2_1_0/backend/json-schemas.json b/src/sdk-scheme-adapter/v2_1_0/backend/json-schemas.json index 18e26966..5f02031f 100644 --- a/src/sdk-scheme-adapter/v2_1_0/backend/json-schemas.json +++ b/src/sdk-scheme-adapter/v2_1_0/backend/json-schemas.json @@ -675,6 +675,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -2100,6 +2108,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -2669,6 +2685,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -3351,6 +3375,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -5213,6 +5245,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -5870,6 +5910,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -6903,6 +6951,14 @@ "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, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } } }, @@ -7242,6 +7298,14 @@ "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, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } } }, @@ -8205,6 +8269,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -8526,6 +8598,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -8578,11 +8658,195 @@ "sourceAmount": { "allOf": [ { - "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" + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] }, { "description": "The amount of the transfer in the source currency." @@ -8592,48 +8856,232 @@ "targetAmount": { "allOf": [ { - "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" - }, - { - "description": "The amount of the transfer in the target currency." - } - ] - } - }, - "required": [ - "sourceAmount", - "targetAmount" - ] - }, - { - "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." - } - ] - } - }, - "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": { - "description": "An ISO-8601 formatted timestamp.", + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the transfer in the target currency." + } + ] + } + }, + "required": [ + "sourceAmount", + "targetAmount" + ] + }, + { + "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." + } + ] + } + }, + "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": { + "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" }, @@ -9854,6 +10302,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -10163,6 +10619,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -10775,6 +11239,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -11062,6 +11534,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -11366,6 +11846,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -11821,6 +12309,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -12171,6 +12667,14 @@ "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, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } } }, @@ -12510,6 +13014,14 @@ "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, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } } }, @@ -13821,6 +14333,14 @@ }, "minItems": 0, "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } }, "required": [ @@ -13936,6 +14456,14 @@ "transactionRequestState" ] }, + "KYCInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, "TransactionSubScenario": { "title": "TransactionSubScenario", "type": "string", @@ -15114,6 +15642,14 @@ "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, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } } }, @@ -15269,7 +15805,15 @@ "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, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + } } }, "supportedCurrencies": { @@ -17328,6 +17872,14 @@ "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, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } } }, @@ -19456,6 +20008,14 @@ "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, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" } } }, @@ -21177,11 +21737,195 @@ "sourceAmount": { "allOf": [ { - "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" + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] }, { "description": "The amount of the transfer in the source currency." @@ -21191,58 +21935,242 @@ "targetAmount": { "allOf": [ { - "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" - }, - { - "description": "The amount of the transfer in the target currency." - } - ] - } - }, - "required": [ - "sourceAmount", - "targetAmount" - ] - }, - "AuthenticationType": { - "title": "AuthenticationType", - "type": "string", - "enum": [ - "OTP", - "QRCODE", - "U2F" - ], - "description": "Below are the allowed values for the enumeration AuthenticationType.\n- OTP - One-time password generated by the Payer FSP.\n- QRCODE - QR code used as One Time Password.\n- U2F - U2F is a new addition isolated to Thirdparty stream.", - "example": "OTP" - }, - "FxMoney": { - "title": "FxMoney", - "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.", - "properties": { - "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", + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the transfer in the target currency." + } + ] + } + }, + "required": [ + "sourceAmount", + "targetAmount" + ] + }, + "AuthenticationType": { + "title": "AuthenticationType", + "type": "string", + "enum": [ + "OTP", + "QRCODE", + "U2F" + ], + "description": "Below are the allowed values for the enumeration AuthenticationType.\n- OTP - One-time password generated by the Payer FSP.\n- QRCODE - QR code used as One Time Password.\n- U2F - U2F is a new addition isolated to Thirdparty stream.", + "example": "OTP" + }, + "FxMoney": { + "title": "FxMoney", + "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.", + "properties": { + "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", @@ -21423,25 +22351,393 @@ "sourceAmount": { "allOf": [ { - "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" - }, - { - "description": "The amount of the charge which is being levied, expressed in the source currency." - } - ] - }, - "targetAmount": { - "allOf": [ - { - "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" + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the charge which is being levied, expressed in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] }, { "description": "The amount of the charge which is being levied, expressed in the target currency." @@ -21956,11 +23252,195 @@ "sourceAmount": { "allOf": [ { - "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" + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] }, { "description": "The amount of the charge which is being levied, expressed in the source currency." @@ -21970,11 +23450,195 @@ "targetAmount": { "allOf": [ { - "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" + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] }, { "description": "The amount of the charge which is being levied, expressed in the target currency." @@ -22572,11 +24236,195 @@ "sourceAmount": { "allOf": [ { - "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" + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] }, { "description": "The amount of the charge which is being levied, expressed in the source currency." @@ -22586,11 +24434,195 @@ "targetAmount": { "allOf": [ { - "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" + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] }, { "description": "The amount of the charge which is being levied, expressed in the target currency." @@ -22672,7 +24704,7 @@ }, "required": [ "conversionRequestId", - "conversion" + "conversionTerms" ] }, "FxQuotesPostBackendResponse": { @@ -23189,11 +25221,195 @@ "sourceAmount": { "allOf": [ { - "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" + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] }, { "description": "The amount of the charge which is being levied, expressed in the source currency." @@ -23203,11 +25419,195 @@ "targetAmount": { "allOf": [ { - "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" + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] }, { "description": "The amount of the charge which is being levied, expressed in the target currency." @@ -23281,14 +25681,480 @@ "expiration" ] }, - { - "description": "The terms under which the FXP will undertake the currency conversion proposed by the requester." + { + "description": "The terms under which the FXP will undertake the currency conversion proposed by the requester." + } + ] + } + }, + "required": [ + "conversionTerms" + ] + }, + "commitRequestId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "An end-to-end identifier for the confirmation request." + } + ] + }, + "determiningTransferId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "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": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "Identifier for the FSP who is requesting a currency conversion." + } + ] + }, + "counterPartyFsp": { + "allOf": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "Identifier for the FXP who is performing the currency conversion." + } + ] + }, + "sourceAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" } + }, + "required": [ + "currency", + "amount" ] + }, + { + "description": "The amount being offered for conversion by the requesting FSP." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount which the FXP is to credit to the requesting FSP in the target currency." + } + ] + }, + "condition": { + "allOf": [ + { + "title": "IlpCondition", + "type": "string", + "pattern": "^[A-Za-z0-9-_]{43}$", + "maxLength": 48, + "description": "Condition that must be attached to the transfer by the Payer." + }, + { + "description": "ILP condition received by the requesting FSP when the quote was approved." } - }, - "required": [ - "conversionTerms" ] }, "FxTransfersPostBackendRequest": { @@ -23314,7 +26180,7 @@ } ] }, - "determiningTransactionId": { + "determiningTransferId": { "allOf": [ { "title": "CorrelationId", @@ -23328,7 +26194,7 @@ } ] }, - "requestingFsp": { + "initiatingFsp": { "allOf": [ { "title": "FspId", @@ -23342,7 +26208,7 @@ } ] }, - "respondingFxp": { + "counterPartyFsp": { "allOf": [ { "title": "FspId", @@ -23769,12 +26635,60 @@ }, "required": [ "commitRequestId", - "requestingFsp", - "respondingFxp", + "initiatingFsp", + "counterPartyFsp", "sourceAmount", "targetAmount" ] }, + "fulfilment": { + "allOf": [ + { + "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" + }, + { + "description": "The fulfilment of the condition specified for the currency conversion. Mandatory if the conversion has been executed successfully." + } + ] + }, + "completedTimestamp": { + "allOf": [ + { + "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" + }, + { + "description": "Time and date when the conversion was executed." + } + ] + }, + "conversionState": { + "allOf": [ + { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + { + "description": "The current status of the conversion request." + } + ] + }, "FxTransfersPostBackendResponse": { "title": "FxTransfersPostBackendResponse", "type": "object", diff --git a/src/sdk-scheme-adapter/v2_1_0/backend/openapi.ts b/src/sdk-scheme-adapter/v2_1_0/backend/openapi.ts new file mode 100644 index 00000000..d09faaa2 --- /dev/null +++ b/src/sdk-scheme-adapter/v2_1_0/backend/openapi.ts @@ -0,0 +1,1484 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + + +export interface paths { + "/": { + /** Health check endpoint. */ + get: operations["BackendHealthCheck"]; + }; + "/bulkQuotes": { + /** Requests a bulk quote. */ + post: operations["BackendBulkQuotesPost"]; + }; + "/bulkQuotes/{idValue}": { + /** Requests information relating to a bulk quote identified by the specified identifier value. */ + get: operations["BackendBulkQuotesGet"]; + }; + "/bulkTransactions/{bulkTransactionId}": { + /** + * Callbacks for 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. + */ + put: operations["BackendBulkTransactionsPut"]; + }; + "/requestToPay/{transactionRequestId}": { + /** + * Callback for the requestToPay request. + * @description It is used to notify the DFSP backend about the status of the requestToPayTransfer. + */ + put: operations["RequestToPayPut"]; + }; + "/bulkTransfers": { + /** Execute bulk transfer of funds from an external account to internal accounts. */ + post: operations["BackendBulkTransfersPost"]; + }; + "/bulkTransfers/{idValue}": { + /** Requests information relating to a bulk transfer identified by the specified identifier value. */ + get: operations["BackendBulkTransfersGet"]; + }; + "/otp/{transactionRequestId}": { + /** Requests OTP. */ + get: operations["BackendOtpGet"]; + }; + "/participants/{idType}/{idValue}": { + /** + * Asks for the identifier (fspId) of the scheme participant (FSP) that can handle transfers for the specified identifier type and value. + * @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. + */ + get: operations["BackendParticipantsGetByTypeAndID"]; + }; + "/participants/{idType}/{idValue}/{idSubValue}": { + /** + * Asks for the identifier (fspId) of the scheme participant (FSP) that can handle transfers for the specified identifier type and value. + * @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. + */ + get: operations["BackendParticipantsGetByTypeIDAndSubId"]; + }; + "/parties/{idType}/{idValue}": { + /** + * Requests information relating to a transfer party identified by the specified identifier type and value. + * @description The HTTP request `GET /parties/{idType}/{idValue}` is used to look up information regarding the requested transfer party, identified by `{idType}` and `{idValue}`. + */ + get: operations["BackendPartiesGetByTypeAndID"]; + }; + "/parties/{idType}/{idValue}/{idSubValue}": { + /** + * Requests information relating to a transfer party identified by the specified identifier type, value and subId value. + * @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}`. + */ + get: operations["BackendPartiesGetByTypeIdAndSubId"]; + }; + "/quoterequests": { + /** + * Requests a quote for the specified transfer. + * @description The HTTP request `POST /quoterequests` is used to request the creation of a quote for the provided financial transaction. + */ + post: operations["BackendQuoteRequest"]; + }; + "/transactionrequests": { + /** Transaction request that supports pull based transfers. */ + post: operations["BackendTransactionRequest"]; + }; + "/transfers": { + /** + * Transfers funds from an external account to an internal account. + * @description The HTTP request `POST /transfers` is used to request the creation of a transfer for the transfer party. + */ + post: operations["BackendTransfersPost"]; + }; + "/transfers/{transferId}": { + /** + * Retrieves information for a specific transfer. + * @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. + */ + get: operations["BackendTransfersGet"]; + /** + * 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. + */ + put: operations["BackendTransfersPut"]; + }; + "/fxQuotes": { + /** + * Calculate FX quote + * @description The HTTP request `POST /fxQuotes` is used to ask an FXP backend to provide a quotation for a currency conversion. + */ + post: operations["FxQuotesPost"]; + }; + "/fxTransfers": { + /** + * Perform FX transfer + * @description The HTTP request `POST /fxTransfers` is used to ask an FXP backend to confirm the execution of an agreed currency conversion. + */ + post: operations["FxTransfersPost"]; + }; + "/fxTransfers/{commitRequestId}": { + /** + * FX Commit Notification + * @description The HTTP request `PUT /fxTransfers/{commitRequestId}` is used to notify an FXP backend about the status of currency conversion. + */ + put: operations["FxTransfersById"]; + }; +} + +export type webhooks = Record; + +export interface components { + schemas: { + /** + * DateofBirth (type Date) + * @description Date of Birth of the Party. + * @example 1966-06-16 + */ + DateOfBirth: string; + /** + * FirstName + * @description First name of the Party (Name Type). + * @example Henrik + */ + FirstName: string; + /** + * FspId + * @description FSP identifier. + */ + FspId: string; + /** @description Data model for individual quote in a bulk quote request. */ + IndividualQuote: { + amount: components["schemas"]["money"]; + amountType: components["schemas"]["amountType"]; + currency: components["schemas"]["currency"]; + feesAmount?: components["schemas"]["money"]; + feesCurrency?: components["schemas"]["currency"]; + initiator: components["schemas"]["initiator"]; + initiatorType: components["schemas"]["initiatorType"]; + /** @description An optional note associated with the quote. */ + note?: string; + quoteId: components["schemas"]["quoteId"]; + subScenario?: components["schemas"]["TransactionSubScenario"]; + to: components["schemas"]["transferParty"]; + transactionId: components["schemas"]["transactionId"]; + transactionType: components["schemas"]["transactionType"]; + }; + /** @description Data model for failed individual quote in a bulk quote response. */ + IndividualQuoteResultFailed: { + errorResponse: components["schemas"]["errorResponse"]; + quoteId: components["schemas"]["quoteId"]; + }; + /** @description Data model for successful individual quote in a bulk quote response. */ + IndividualQuoteResultSuccess: { + payeeFspCommissionAmount?: components["schemas"]["money"]; + payeeFspCommissionAmountCurrency?: components["schemas"]["currency"]; + payeeFspFeeAmount?: components["schemas"]["money"]; + payeeFspFeeAmountCurrency?: components["schemas"]["currency"]; + payeeReceiveAmount?: components["schemas"]["money"]; + payeeReceiveAmountCurrency?: components["schemas"]["currency"]; + quoteId: components["schemas"]["quoteId"]; + transferAmount?: components["schemas"]["money"]; + transferAmountCurrency?: components["schemas"]["currency"]; + }; + /** @description Data model for individual transfer in a bulk transfer request. */ + IndividualTransfer: { + amount: components["schemas"]["money"]; + amountType?: components["schemas"]["amountType"]; + currency: components["schemas"]["currency"]; + feesAmount?: components["schemas"]["money"]; + feesCurrency?: components["schemas"]["currency"]; + initiator?: components["schemas"]["initiator"]; + initiatorType?: components["schemas"]["initiatorType"]; + /** @description An optional note associated with the quote. */ + note?: string; + subScenario?: components["schemas"]["TransactionSubScenario"]; + to?: components["schemas"]["transferParty"]; + transactionType?: components["schemas"]["transactionType"]; + transferId: components["schemas"]["transferId"]; + }; + /** @description Data model for individual transfer in a bulk transfer response. */ + IndividualTransferResult: { + errorResponse?: components["schemas"]["errorResponse"]; + extensionList?: components["schemas"]["extensionList"]; + transferId: components["schemas"]["transferId"]; + }; + /** + * LastName + * @description Last name of the Party (Name Type). + * @example Karlsson + */ + LastName: string; + /** + * MerchantClassificationCode + * @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. + */ + MerchantClassificationCode: string; + /** + * MiddleName + * @description Middle name of the Party (Name Type). + * @example Johannes + */ + MiddleName: string; + /** @description Object containing Amount and Currency of the transfer. */ + amountCurrency: { + amount: components["schemas"]["money"]; + currency: components["schemas"]["currency"]; + }; + /** @enum {string} */ + amountType: "SEND" | "RECEIVE"; + /** @description A Mojaloop API bulk quote identifier (UUID). */ + bulkQuoteId: string; + /** @description A request for a bulk quote. */ + bulkQuoteRequest: { + bulkQuoteId: components["schemas"]["bulkQuoteId"]; + expiration?: components["schemas"]["timestamp"]; + from: components["schemas"]["transferParty"]; + geoCode?: components["schemas"]["geoCode"]; + individualQuotes: components["schemas"]["IndividualQuote"][]; + }; + /** @description A response to a request for a bulk quote. */ + bulkQuoteResponse: { + bulkQuoteId: components["schemas"]["bulkQuoteId"]; + expiration?: components["schemas"]["timestamp"]; + /** @description Fees for each individual transaction, if any of them are charged per transaction. */ + individualQuoteResults: (components["schemas"]["IndividualQuoteResultSuccess"] | components["schemas"]["IndividualQuoteResultFailed"])[]; + }; + /** @description A Mojaloop API transfer identifier (UUID). */ + bulkTransferId: string; + bulkTransferRequest: { + bulkQuote?: components["schemas"]["bulkQuoteResponse"]; + bulkTransferId: components["schemas"]["bulkTransferId"]; + from?: components["schemas"]["transferParty"]; + individualTransfers: components["schemas"]["IndividualTransfer"][]; + }; + bulkTransferResponse: { + bulkTransferId?: components["schemas"]["bulkTransferId"]; + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems. */ + homeTransactionId: string; + individualTransferResults?: components["schemas"]["IndividualTransferResult"][]; + }; + /** @enum {string} */ + currency: "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"; + /** @description Date of birth in the form YYYY-MM-DD. */ + dateOfBirth: 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. + */ + errorCode: string; + /** + * ErrorDescription + * @description Error description string. + */ + errorDescription: string; + /** + * ErrorInformation + * @description A Mojaloop API error information construct. + */ + errorInformation: { + errorCode: components["schemas"]["errorCode"]; + errorDescription: components["schemas"]["errorDescription"]; + extensionList?: components["schemas"]["extensionListComplex"]; + }; + extensionItem: { + key?: string; + value?: string; + }; + extensionList: components["schemas"]["extensionItem"][]; + /** @description Data model for the complex type ExtensionList. */ + extensionListComplex: { + /** @description Number of Extension elements. */ + extension: components["schemas"]["extensionItem"][]; + }; + /** @description FSP identifier. */ + fspId: string; + /** + * TransfersIDPatchResponse + * @description PUT /transfers/{transferId} object. + */ + fulfilNotification: { + currentState?: components["schemas"]["transferStatus"]; + /** @enum {string} */ + direction?: "INBOUND"; + finalNotification?: { + completedTimestamp: components["schemas"]["timestamp"]; + extensionList?: components["schemas"]["extensionList"]; + transferState: components["schemas"]["transferState"]; + }; + fulfil?: { + body?: Record; + headers?: Record; + }; + initiatedTimestamp?: components["schemas"]["timestamp"]; + lastError?: components["schemas"]["transferError"]; + prepare?: { + body?: Record; + headers?: Record; + }; + quote?: { + fulfilment?: string; + internalRequest?: Record; + mojaloopResponse?: Record; + request?: Record; + response?: Record; + }; + quoteRequest?: { + body?: Record; + headers?: Record; + }; + quoteResponse?: { + body?: Record; + headers?: Record; + }; + transferId?: components["schemas"]["transferId"]; + }; + /** @description This object may represent a number of different error object types and so its properties may vary significantly. */ + generalError: Record; + /** @description Indicates the geographic location from where the transaction was initiated. */ + geoCode: { + latitude: components["schemas"]["latitude"]; + longitude: components["schemas"]["longitude"]; + }; + idSubValue: string; + /** @enum {string} */ + idType: "MSISDN" | "ACCOUNT_NO" | "EMAIL" | "PERSONAL_ID" | "BUSINESS" | "DEVICE" | "ACCOUNT_ID" | "IBAN" | "ALIAS"; + /** @description Identifier of the party. */ + idValue: string; + /** @description Object containing transfer object. */ + ilpPacketData: { + amount: components["schemas"]["amountCurrency"]; + payee: components["schemas"]["Party"]; + payer: components["schemas"]["Party"]; + quoteId: components["schemas"]["quoteId"]; + transactionId: components["schemas"]["transactionId"]; + transactionType: components["schemas"]["transactionTypeObject"]; + }; + /** @enum {string} */ + initiator: "PAYER" | "PAYEE"; + /** @enum {string} */ + initiatorType: "CONSUMER" | "AGENT" | "BUSINESS" | "DEVICE"; + /** @description The API data type Latitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons. */ + latitude: string; + /** @description The API data type Longitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons. */ + longitude: string; + money: string; + otpDetails: { + /** @description OTP value. */ + otpValue: string; + }; + participantsResponse: { + fspId?: components["schemas"]["fspId"]; + }; + /** @enum {string} */ + payerType: "CONSUMER" | "AGENT" | "BUSINESS" | "DEVICE"; + /** @description A Mojaloop API quote identifier (UUID). */ + quoteId: string; + /** @description A request for a quote for transfer from the DFSP backend. */ + quoteRequest: { + /** @description Linked homeR2PTransactionId which was generated as part of POST /requestToPay to SDK incase of requestToPay transfer. */ + homeR2PTransactionId?: string; + amount: components["schemas"]["money"]; + amountType: components["schemas"]["amountType"]; + currency: components["schemas"]["currency"]; + expiration?: components["schemas"]["timestamp"]; + extensionList?: components["schemas"]["extensionList"]; + feesAmount?: components["schemas"]["money"]; + feesCurrency?: components["schemas"]["currency"]; + from: components["schemas"]["transferParty"]; + geoCode?: components["schemas"]["geoCode"]; + initiator: components["schemas"]["initiator"]; + initiatorType: components["schemas"]["initiatorType"]; + /** @description An optional note associated with the requested transfer. */ + note?: string; + quoteId: components["schemas"]["quoteId"]; + subScenario?: components["schemas"]["TransactionSubScenario"]; + to: components["schemas"]["transferParty"]; + transactionId: components["schemas"]["transactionId"]; + transactionType: components["schemas"]["transactionType"]; + transactionRequestId?: components["schemas"]["transactionRequestId"]; + converter?: components["schemas"]["CurrencyConverter"]; + currencyConversion?: components["schemas"]["FxRate"]; + }; + /** @description A response to a request for a quote. */ + quoteResponse: { + expiration?: components["schemas"]["timestamp"]; + extensionList?: components["schemas"]["extensionList"]; + geoCode?: components["schemas"]["geoCode"]; + payeeFspCommissionAmount?: components["schemas"]["money"]; + payeeFspCommissionAmountCurrency?: components["schemas"]["currency"]; + payeeFspFeeAmount?: components["schemas"]["money"]; + payeeFspFeeAmountCurrency?: components["schemas"]["currency"]; + payeeReceiveAmount?: components["schemas"]["money"]; + payeeReceiveAmountCurrency?: components["schemas"]["currency"]; + quoteId: components["schemas"]["quoteId"]; + transactionId: components["schemas"]["transactionId"]; + transferAmount: components["schemas"]["money"]; + transferAmountCurrency: components["schemas"]["currency"]; + }; + /** @enum {string} */ + scenario: "TRANSFER"; + /** @description An ISO-8601 formatted timestamp. */ + timestamp: string; + /** @description ID of the transaction, the ID is decided by the Payer FSP during the creation of the quote. */ + transactionId: string; + /** @description A request for a pull based transfer. */ + transactionRequest: { + amount: components["schemas"]["money"]; + currency: components["schemas"]["currency"]; + expiration?: components["schemas"]["timestamp"]; + from: components["schemas"]["transferParty"]; + geoCode?: components["schemas"]["geoCode"]; + initiator: components["schemas"]["initiator"]; + initiatorType: components["schemas"]["initiatorType"]; + /** @description An optional note associated with the requested transfer. */ + note?: string; + to: components["schemas"]["transferParty"]; + transactionRequestId: components["schemas"]["transactionRequestId"]; + transactionType: components["schemas"]["transactionType"]; + subScenario?: components["schemas"]["TransactionSubScenario"]; + authenticationType?: components["schemas"]["AuthenticationType"]; + }; + /** @description A Mojaloop API transaction request identifier (UUID). */ + transactionRequestId: string; + /** @description A response to a request for a quote. */ + transactionRequestResponse: { + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeR2PTransactionId?: string; + transactionId: components["schemas"]["transactionId"]; + transactionRequestState: components["schemas"]["transactionRequestState"]; + }; + /** @enum {string} */ + transactionRequestState: "RECEIVED" | "PENDING" | "ACCEPTED" | "REJECTED"; + /** + * transactionSubScenario + * @description Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type). Based on FSPIOP TransactionSubScenario. + * @example LOCALLY_DEFINED_SUBSCENARIO + */ + transactionSubScenario: string; + /** @enum {string} */ + transactionType: "TRANSFER" | "DEPOSIT" | "PAYMENT"; + /** @description Object containing transfer object. */ + transactionTypeObject: { + initiator: components["schemas"]["initiator"]; + initiatorType: components["schemas"]["initiatorType"]; + scenario: components["schemas"]["scenario"]; + subScenario?: components["schemas"]["TransactionSubScenario"]; + }; + transferDetailsResponse: { + amount: components["schemas"]["money"]; + amountType: components["schemas"]["amountType"]; + currency: components["schemas"]["currency"]; + extensions?: components["schemas"]["extensionList"]; + from: components["schemas"]["transferParty"]; + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeTransactionId: string; + note?: string; + subScenario?: components["schemas"]["TransactionSubScenario"]; + timestamp: components["schemas"]["timestamp"]; + to: components["schemas"]["transferParty"]; + transactionType: components["schemas"]["transactionType"]; + transferState: components["schemas"]["transferState"]; + }; + /** @description A Mojaloop API transfer identifier (UUID). */ + transferId: string; + transferParty: { + dateOfBirth?: components["schemas"]["dateOfBirth"]; + /** @description Display name of the sender, if known. */ + displayName?: string; + extensionList?: components["schemas"]["extensionList"]; + /** @description Party first name. */ + firstName?: string; + /** @description Mojaloop scheme FSPID of the DFSP which owns the party account. */ + fspId?: string; + idSubValue?: components["schemas"]["idSubValue"]; + idType: components["schemas"]["idType"]; + /** @description The identifier string used to identify the sender. */ + idValue: string; + /** @description Party last name. */ + lastName?: string; + /** @description Up to 4 digits specifying the sender's merchant classification, if known and applicable. */ + merchantClassificationCode?: string; + /** @description Party middle name. */ + middleName?: string; + type?: components["schemas"]["payerType"]; + /** @description Currencies in which the party can receive funds. */ + supportedCurrencies?: components["schemas"]["currency"][]; + kycInformation?: components["schemas"]["KYCInformation"]; + }; + transferRequest: { + /** @description Linked homeR2PTransactionId which was generated as part of POST /requestToPay to SDK incase of requestToPay transfer. */ + homeR2PTransactionId?: string; + amount: components["schemas"]["money"]; + amountType: components["schemas"]["amountType"]; + currency: components["schemas"]["currency"]; + from: components["schemas"]["transferParty"]; + ilpPacket: { + data: components["schemas"]["ilpPacketData"]; + }; + note?: string; + quote: components["schemas"]["quoteResponse"]; + quoteRequestExtensions?: components["schemas"]["extensionList"]; + subScenario?: components["schemas"]["TransactionSubScenario"]; + to: components["schemas"]["transferParty"]; + transactionType: components["schemas"]["transactionType"]; + transferId: components["schemas"]["transferId"]; + transactionRequestId?: components["schemas"]["transactionRequestId"]; + }; + transferResponse: { + completedTimestamp?: components["schemas"]["timestamp"]; + fulfilment?: components["schemas"]["IlpFulfilment"]; + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeTransactionId: string; + transferState?: components["schemas"]["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 {string} + */ + transferState: "RECEIVED" | "RESERVED" | "COMMITTED" | "ABORTED"; + /** @enum {string} */ + transferStatus: "ERROR_OCCURRED" | "WAITING_FOR_PARTY_ACCEPTANCE" | "WAITING_FOR_QUOTE_ACCEPTANCE" | "COMPLETED"; + /** @description Callback for requestToPay. */ + requestToPayCallback: { + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeR2PTransactionId?: string; + transactionRequestState: components["schemas"]["transactionRequestState"]; + }; + /** + * KYCInformation + * @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" + * } + * } + */ + KYCInformation: string; + /** + * TransactionSubScenario + * @description Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type). + * @example LOCALLY_DEFINED_SUBSCENARIO + */ + TransactionSubScenario: string; + errorResponse: { + /** + * @description Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code. + * Otherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message. + */ + statusCode?: string; + /** @description Error message text. */ + message?: string; + }; + /** + * CorrelationId + * @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 + */ + CorrelationId: string; + /** @enum {string} */ + bulkTransactionStatus: "ERROR_OCCURRED" | "WAITING_FOR_PARTY_ACCEPTANCE" | "WAITING_FOR_QUOTE_ACCEPTANCE" | "COMPLETED"; + autoAcceptPartyOption: { + /** @enum {boolean} */ + enabled: false | true; + }; + /** + * 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. + * @enum {string} + */ + Currency: "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 + * @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 + */ + Amount: string; + bulkPerTransferFeeLimit: { + currency: components["schemas"]["Currency"]; + amount: components["schemas"]["Amount"]; + }; + autoAcceptQuote: { + /** @enum {boolean} */ + enabled: true | false; + perTransferFeeLimits?: components["schemas"]["bulkPerTransferFeeLimit"][]; + }; + /** + * DateTime + * @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 + */ + DateTime: string; + bulkTransactionOptions: { + /** @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. */ + onlyValidateParty?: boolean; + autoAcceptParty: components["schemas"]["autoAcceptPartyOption"]; + /** @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. */ + autoAcceptQuote: components["schemas"]["autoAcceptQuote"]; + /** @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. */ + skipPartyLookup?: boolean; + /** @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 */ + synchronous?: boolean; + bulkExpiration: components["schemas"]["DateTime"]; + }; + /** + * PartyIdType + * @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. + * @enum {string} + */ + PartyIdType: "MSISDN" | "EMAIL" | "PERSONAL_ID" | "BUSINESS" | "DEVICE" | "ACCOUNT_ID" | "IBAN" | "ALIAS"; + /** + * PartyIdentifier + * @description Identifier of the Party. + * @example 16135551212 + */ + PartyIdentifier: string; + /** + * PartySubIdOrType + * @description Either a sub-identifier of a PartyIdentifier, or a sub-type of the PartyIdType, normally a PersonalIdentifierType. + */ + PartySubIdOrType: string; + /** + * ExtensionKey + * @description Extension key. + */ + ExtensionKey: string; + /** + * ExtensionValue + * @description Extension value. + */ + ExtensionValue: string; + /** + * Extension + * @description Data model for the complex type Extension. + */ + Extension: { + key: components["schemas"]["ExtensionKey"]; + value: components["schemas"]["ExtensionValue"]; + }; + /** + * ExtensionList + * @description Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment. + */ + ExtensionList: { + /** @description Number of Extension elements. */ + extension: components["schemas"]["Extension"][]; + }; + /** + * PartyIdInfo + * @description Data model for the complex type PartyIdInfo. An ExtensionList element has been added to this reqeust in version v1.1 + */ + PartyIdInfo: { + partyIdType: components["schemas"]["PartyIdType"]; + partyIdentifier: components["schemas"]["PartyIdentifier"]; + partySubIdOrType?: components["schemas"]["PartySubIdOrType"]; + fspId?: components["schemas"]["FspId"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + /** + * PartyName + * @description Name of the Party. Could be a real name or a nickname. + */ + PartyName: string; + /** + * PartyComplexName + * @description Data model for the complex type PartyComplexName. + */ + PartyComplexName: { + firstName?: components["schemas"]["FirstName"]; + middleName?: components["schemas"]["MiddleName"]; + lastName?: components["schemas"]["LastName"]; + }; + /** + * PartyPersonalInfo + * @description Data model for the complex type PartyPersonalInfo. + */ + PartyPersonalInfo: { + complexName?: components["schemas"]["PartyComplexName"]; + dateOfBirth?: components["schemas"]["DateOfBirth"]; + kycInformation?: components["schemas"]["KYCInformation"]; + }; + /** + * Party + * @description Data model for the complex type Party. + */ + Party: { + partyIdInfo: components["schemas"]["PartyIdInfo"]; + merchantClassificationCode?: components["schemas"]["MerchantClassificationCode"]; + name?: components["schemas"]["PartyName"]; + personalInfo?: components["schemas"]["PartyPersonalInfo"]; + /** @description Currencies in which the party can receive funds. */ + supportedCurrencies?: components["schemas"]["Currency"][]; + }; + /** + * AmountType + * @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 + * @enum {string} + */ + AmountType: "SEND" | "RECEIVE"; + /** + * Note + * @description Memo assigned to transaction. + * @example Note sent to Payee. + */ + Note: string; + /** + * Money + * @description Data model for the complex type Money. + */ + Money: { + currency: components["schemas"]["Currency"]; + amount: components["schemas"]["Amount"]; + }; + /** + * 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. + * @example +45.4215 + */ + Latitude: 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. + * @example +75.6972 + */ + Longitude: string; + /** + * GeoCode + * @description Data model for the complex type GeoCode. Indicates the geographic location from where the transaction was initiated. + */ + GeoCode: { + latitude: components["schemas"]["Latitude"]; + longitude: components["schemas"]["Longitude"]; + }; + /** + * IlpPacket + * @description Information for recipient (transport layer information). + * @example AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA + */ + IlpPacket: string; + /** + * IlpCondition + * @description Condition that must be attached to the transfer by the Payer. + */ + IlpCondition: 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) represent the specific error. + * @example 5100 + */ + ErrorCode: string; + /** + * ErrorDescription + * @description Error description string. + */ + ErrorDescription: string; + /** + * ErrorInformation + * @description Data model for the complex type ErrorInformation. + */ + ErrorInformation: { + errorCode: components["schemas"]["ErrorCode"]; + errorDescription: components["schemas"]["ErrorDescription"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + mojaloopError: { + errorInformation?: components["schemas"]["ErrorInformation"]; + }; + /** @description This object represents a Mojaloop API error received at any time during the quote process */ + quoteError: { + /** @description The HTTP status code returned to the caller. This is the same as the actual HTTP status code returned with the response. */ + httpStatusCode?: number; + mojaloopError?: components["schemas"]["mojaloopError"]; + }; + individualQuoteResult: { + quoteId: components["schemas"]["CorrelationId"]; + transferAmount?: components["schemas"]["Money"]; + payeeReceiveAmount?: components["schemas"]["Money"]; + payeeFspFee?: components["schemas"]["Money"]; + payeeFspCommission?: components["schemas"]["Money"]; + geoCode?: components["schemas"]["GeoCode"]; + ilpPacket?: components["schemas"]["IlpPacket"]; + condition?: components["schemas"]["IlpCondition"]; + extensionList?: components["schemas"]["ExtensionList"]; + lastError?: components["schemas"]["quoteError"]; + }; + /** + * IlpFulfilment + * @description Fulfilment that must be attached to the transfer by the Payee. + * @example WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8 + */ + IlpFulfilment: string; + /** + * TransferState + * @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 + * @enum {string} + */ + TransferState: "RECEIVED" | "RESERVED" | "COMMITTED" | "ABORTED"; + /** @description This object represents a Mojaloop API error received at any time during the transfer process */ + transferError: { + /** @description The HTTP status code returned to the caller. This is the same as the actual HTTP status code returned with the response. */ + httpStatusCode?: number; + mojaloopError?: components["schemas"]["mojaloopError"]; + }; + individualTransferResult: { + transferId: components["schemas"]["CorrelationId"]; + fulfilment?: components["schemas"]["IlpFulfilment"]; + extensionList?: components["schemas"]["ExtensionList"]; + transferState?: components["schemas"]["TransferState"]; + lastError?: components["schemas"]["transferError"]; + }; + bulkTransactionIndividualTransferResult: { + transferId?: components["schemas"]["CorrelationId"]; + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeTransactionId: string; + transactionId?: components["schemas"]["CorrelationId"]; + to?: components["schemas"]["Party"]; + /** @description Payer Loan reference */ + reference?: string; + amountType?: components["schemas"]["AmountType"]; + currency?: components["schemas"]["Currency"]; + amount?: components["schemas"]["Amount"]; + note?: components["schemas"]["Note"]; + quoteId?: components["schemas"]["CorrelationId"]; + quoteResponse?: components["schemas"]["individualQuoteResult"]; + fulfil?: components["schemas"]["individualTransferResult"]; + quoteExtensions?: components["schemas"]["ExtensionList"]; + transferExtensions?: components["schemas"]["ExtensionList"]; + lastError?: components["schemas"]["transferError"]; + }; + /** BulkTransactionResponse */ + bulkTransactionResponse: { + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + bulkHomeTransactionID: string; + bulkTransactionId: components["schemas"]["CorrelationId"]; + currentState: components["schemas"]["bulkTransactionStatus"]; + options?: components["schemas"]["bulkTransactionOptions"]; + /** @description List of individual transfer result in a bulk transfer response. */ + individualTransferResults: components["schemas"]["bulkTransactionIndividualTransferResult"][]; + extensions?: components["schemas"]["ExtensionList"]; + }; + /** + * CurrencyConverter + * @description 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. + * @enum {string} + */ + CurrencyConverter: "PAYER" | "PAYEE"; + /** + * FxRate + * @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. + */ + FxRate: { + sourceAmount: components["schemas"]["Money"]; + targetAmount: components["schemas"]["Money"]; + }; + /** + * AuthenticationType + * @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 + * @enum {string} + */ + AuthenticationType: "OTP" | "QRCODE" | "U2F"; + /** + * FxMoney + * @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. + */ + FxMoney: { + currency: components["schemas"]["Currency"]; + amount?: components["schemas"]["Amount"]; + }; + /** + * FxCharge + * @description An FXP will be able to specify a charge which it proposes to levy on the currency conversion operation using a FxCharge object. + */ + FxCharge: { + /** @description A description of the charge which is being levied. */ + chargeType: string; + sourceAmount?: components["schemas"]["Money"]; + targetAmount?: components["schemas"]["Money"]; + }; + /** + * FxConversion + * @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. + */ + FxConversion: { + conversionId: components["schemas"]["CorrelationId"]; + determiningTransferId?: components["schemas"]["CorrelationId"]; + initiatingFsp: components["schemas"]["FspId"]; + counterPartyFsp: components["schemas"]["FspId"]; + amountType: components["schemas"]["AmountType"]; + sourceAmount: components["schemas"]["FxMoney"]; + targetAmount: components["schemas"]["FxMoney"]; + expiration: components["schemas"]["DateTime"]; + /** @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. */ + charges?: components["schemas"]["FxCharge"][]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + /** + * FxQuotesPostBackendRequest + * @description The object sent in the POST /fxQuotes request. + */ + FxQuotesPostBackendRequest: { + conversionRequestId: components["schemas"]["CorrelationId"]; + conversionTerms: components["schemas"]["FxConversion"]; + }; + /** + * FxQuotesPostBackendResponse + * @description The object sent as a response for the POST /fxQuotes request. The terms under which the FXP will undertake the currency conversion proposed by the requester. + */ + FxQuotesPostBackendResponse: { + /** @description Transaction ID for the FXP backend, used to reconcile transactions between the Switch and FXP backend systems. */ + homeTransactionId?: string; + conversionTerms: components["schemas"]["FxConversion"]; + }; + commitRequestId: components["schemas"]["CorrelationId"]; + determiningTransferId: components["schemas"]["CorrelationId"]; + initiatingFsp: components["schemas"]["FspId"]; + counterPartyFsp: components["schemas"]["FspId"]; + sourceAmount: components["schemas"]["Money"]; + targetAmount: components["schemas"]["Money"]; + condition: components["schemas"]["IlpCondition"]; + /** + * FxTransfersPostBackendRequest + * @description The object sent in the POST /fxTransfers request. + */ + FxTransfersPostBackendRequest: { + /** @description Transaction ID for the FXP backend, used to reconcile transactions between the Switch and FXP backend systems. */ + homeTransactionId?: string; + commitRequestId: components["schemas"]["commitRequestId"]; + determiningTransferId?: components["schemas"]["determiningTransferId"]; + initiatingFsp: components["schemas"]["initiatingFsp"]; + counterPartyFsp: components["schemas"]["counterPartyFsp"]; + sourceAmount: components["schemas"]["sourceAmount"]; + targetAmount: components["schemas"]["targetAmount"]; + condition?: components["schemas"]["condition"]; + }; + fulfilment: components["schemas"]["IlpFulfilment"]; + completedTimestamp: components["schemas"]["DateTime"]; + conversionState: components["schemas"]["TransferState"]; + /** + * FxTransfersPostBackendResponse + * @description The object sent as a response for the POST /fxTransfers request. + */ + FxTransfersPostBackendResponse: { + /** @description Transaction ID for the FXP backend, used to reconcile transactions between the Switch and FXP backend systems. */ + homeTransactionId?: string; + fulfilment?: components["schemas"]["fulfilment"]; + completedTimestamp?: components["schemas"]["completedTimestamp"]; + conversionState: components["schemas"]["conversionState"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + /** + * FxTransfersPutBackendRequest + * @description PUT /fxTransfers/{commitRequestId} object + */ + FxTransfersPutBackendRequest: { + /** @description Transaction ID for the FXP backend, used to reconcile transactions between the Switch and FXP backend systems. */ + homeTransactionId?: string; + fulfilment?: components["schemas"]["fulfilment"]; + completedTimestamp?: components["schemas"]["completedTimestamp"]; + conversionState: components["schemas"]["conversionState"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: never; + }; + /** @description Malformed or missing required headers or parameters. */ + 400: { + content: { + "application/json": components["schemas"]["errorResponse"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["errorResponse"]; + }; + }; + /** @description An error occurred processing the request. */ + 500: { + content: { + "application/json": components["schemas"]["errorResponse"]; + }; + }; + }; + parameters: { + /** @description A sub-identifier of the party identifier, or a sub-type of the party identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`. */ + idSubValue: string; + /** @description The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`. */ + idType: string; + /** @description The identifier value. */ + idValue: string; + transactionRequestId: components["schemas"]["transactionRequestId"]; + transferId: string; + /** @description Identifier of the bulk transaction to continue as returned in the response to a `POST /bulkTransaction` request. */ + bulkTransactionId: components["schemas"]["CorrelationId"]; + }; + requestBodies: never; + headers: never; + pathItems: never; +} + +export type $defs = Record; + +export type external = Record; + +export interface operations { + + /** Health check endpoint. */ + BackendHealthCheck: { + responses: { + /** @description Returns empty body if the service is running. */ + 200: { + content: never; + }; + }; + }; + /** Requests a bulk quote. */ + BackendBulkQuotesPost: { + /** @description Incoming request for a bulk quotation. */ + requestBody?: { + content: { + "application/json": components["schemas"]["bulkQuoteRequest"]; + }; + }; + responses: { + /** @description A response to the bulk quote request. */ + 200: { + content: { + "application/json": components["schemas"]["bulkQuoteResponse"]; + }; + }; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; + /** Requests information relating to a bulk quote identified by the specified identifier value. */ + BackendBulkQuotesGet: { + parameters: { + path: { + idValue: components["parameters"]["idValue"]; + }; + }; + responses: { + /** @description Response containing details of the requested bulk quote. */ + 200: { + content: { + "application/json": components["schemas"]["bulkQuoteResponse"]; + }; + }; + 400: components["responses"]["400"]; + 404: components["responses"]["404"]; + 500: components["responses"]["500"]; + }; + }; + /** + * Callbacks for 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. + */ + BackendBulkTransactionsPut: { + parameters: { + path: { + bulkTransactionId: components["parameters"]["bulkTransactionId"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["bulkTransactionResponse"]; + }; + }; + responses: { + /** @description Bulk transaction information successfully amended. */ + 202: { + content: never; + }; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; + /** + * Callback for the requestToPay request. + * @description It is used to notify the DFSP backend about the status of the requestToPayTransfer. + */ + RequestToPayPut: { + parameters: { + path: { + transactionRequestId: components["parameters"]["transactionRequestId"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["requestToPayCallback"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: never; + }; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; + /** Execute bulk transfer of funds from an external account to internal accounts. */ + BackendBulkTransfersPost: { + /** @description An incoming bulk transfer request. */ + requestBody?: { + content: { + "application/json": components["schemas"]["bulkTransferRequest"]; + }; + }; + responses: { + /** @description The bulk transfer was accepted. */ + 200: { + content: { + "application/json": components["schemas"]["bulkTransferResponse"]; + }; + }; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; + /** Requests information relating to a bulk transfer identified by the specified identifier value. */ + BackendBulkTransfersGet: { + parameters: { + path: { + idValue: components["parameters"]["idValue"]; + }; + }; + responses: { + /** @description Response containing details of the requested bulk transfer. */ + 200: { + content: { + "application/json": components["schemas"]["bulkTransferResponse"]; + }; + }; + 400: components["responses"]["400"]; + 404: components["responses"]["404"]; + 500: components["responses"]["500"]; + }; + }; + /** Requests OTP. */ + BackendOtpGet: { + parameters: { + path: { + transactionRequestId: components["parameters"]["transactionRequestId"]; + }; + }; + responses: { + /** @description Response containing details of the OTP. */ + 200: { + content: { + "application/json": components["schemas"]["otpDetails"]; + }; + }; + 400: components["responses"]["400"]; + 404: components["responses"]["404"]; + 500: components["responses"]["500"]; + }; + }; + /** + * Asks for the identifier (fspId) of the scheme participant (FSP) that can handle transfers for the specified identifier type and value. + * @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. + */ + BackendParticipantsGetByTypeAndID: { + parameters: { + path: { + idType: components["parameters"]["idType"]; + idValue: components["parameters"]["idValue"]; + }; + }; + responses: { + /** @description Response containing details of the requested party. */ + 200: { + content: { + "application/json": components["schemas"]["participantsResponse"]; + }; + }; + 400: components["responses"]["400"]; + 404: components["responses"]["404"]; + 500: components["responses"]["500"]; + }; + }; + /** + * Asks for the identifier (fspId) of the scheme participant (FSP) that can handle transfers for the specified identifier type and value. + * @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. + */ + BackendParticipantsGetByTypeIDAndSubId: { + parameters: { + path: { + idType: components["parameters"]["idType"]; + idValue: components["parameters"]["idValue"]; + idSubValue: components["parameters"]["idSubValue"]; + }; + }; + responses: { + /** @description Response containing details of the requested party. */ + 200: { + content: { + "application/json": components["schemas"]["participantsResponse"]; + }; + }; + 400: components["responses"]["400"]; + 404: components["responses"]["404"]; + 500: components["responses"]["500"]; + }; + }; + /** + * Requests information relating to a transfer party identified by the specified identifier type and value. + * @description The HTTP request `GET /parties/{idType}/{idValue}` is used to look up information regarding the requested transfer party, identified by `{idType}` and `{idValue}`. + */ + BackendPartiesGetByTypeAndID: { + parameters: { + path: { + idType: components["parameters"]["idType"]; + idValue: components["parameters"]["idValue"]; + }; + }; + responses: { + /** @description Response containing details of the requested party. */ + 200: { + content: { + "application/json": components["schemas"]["transferParty"]; + }; + }; + 400: components["responses"]["400"]; + 404: components["responses"]["404"]; + 500: components["responses"]["500"]; + }; + }; + /** + * Requests information relating to a transfer party identified by the specified identifier type, value and subId value. + * @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}`. + */ + BackendPartiesGetByTypeIdAndSubId: { + parameters: { + path: { + idType: components["parameters"]["idType"]; + idValue: components["parameters"]["idValue"]; + idSubValue: components["parameters"]["idSubValue"]; + }; + }; + responses: { + /** @description Response containing details of the requested party. */ + 200: { + content: { + "application/json": components["schemas"]["transferParty"]; + }; + }; + 400: components["responses"]["400"]; + 404: components["responses"]["404"]; + 500: components["responses"]["500"]; + }; + }; + /** + * Requests a quote for the specified transfer. + * @description The HTTP request `POST /quoterequests` is used to request the creation of a quote for the provided financial transaction. + */ + BackendQuoteRequest: { + /** @description Request for a transfer quotation. */ + requestBody?: { + content: { + "application/json": components["schemas"]["quoteRequest"]; + }; + }; + responses: { + /** @description A response to the transfer quotation request. */ + 200: { + content: { + "application/json": components["schemas"]["quoteResponse"]; + }; + }; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; + /** Transaction request that supports pull based transfers. */ + BackendTransactionRequest: { + /** @description Request for Transaction Request. */ + requestBody?: { + content: { + "application/json": components["schemas"]["transactionRequest"]; + }; + }; + responses: { + /** @description A response to the transfer transaction request. */ + 200: { + content: { + "application/json": components["schemas"]["transactionRequestResponse"]; + }; + }; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; + /** + * Transfers funds from an external account to an internal account. + * @description The HTTP request `POST /transfers` is used to request the creation of a transfer for the transfer party. + */ + BackendTransfersPost: { + /** @description An incoming transfer request. */ + requestBody?: { + content: { + "application/json": components["schemas"]["transferRequest"]; + }; + }; + responses: { + /** @description The transfer was accepted. */ + 200: { + content: { + "application/json": components["schemas"]["transferResponse"]; + }; + }; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; + /** + * Retrieves information for a specific transfer. + * @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. + */ + BackendTransfersGet: { + parameters: { + path: { + transferId: components["parameters"]["transferId"]; + }; + }; + responses: { + /** @description The transfer was accepted. */ + 200: { + content: { + "application/json": components["schemas"]["transferDetailsResponse"]; + }; + }; + 500: components["responses"]["500"]; + }; + }; + /** + * 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. + */ + BackendTransfersPut: { + parameters: { + path: { + transferId: components["parameters"]["transferId"]; + }; + }; + /** @description An incoming notification for fulfiled transfer. */ + requestBody?: { + content: { + "application/json": components["schemas"]["fulfilNotification"]; + }; + }; + responses: { + /** @description The notification was accepted. */ + 200: { + content: never; + }; + 500: components["responses"]["500"]; + }; + }; + /** + * Calculate FX quote + * @description The HTTP request `POST /fxQuotes` is used to ask an FXP backend to provide a quotation for a currency conversion. + */ + FxQuotesPost: { + /** @description Details of the FX quote request. */ + requestBody: { + content: { + "application/json": components["schemas"]["FxQuotesPostBackendRequest"]; + }; + }; + responses: { + /** @description Successful response. */ + 200: { + content: { + "application/json": components["schemas"]["FxQuotesPostBackendResponse"]; + }; + }; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; + /** + * Perform FX transfer + * @description The HTTP request `POST /fxTransfers` is used to ask an FXP backend to confirm the execution of an agreed currency conversion. + */ + FxTransfersPost: { + /** @description Details of the FX transfer request. */ + requestBody: { + content: { + "application/json": components["schemas"]["FxTransfersPostBackendRequest"]; + }; + }; + responses: { + /** @description Successful response. */ + 200: { + content: { + "application/json": components["schemas"]["FxTransfersPostBackendResponse"]; + }; + }; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; + /** + * FX Commit Notification + * @description The HTTP request `PUT /fxTransfers/{commitRequestId}` is used to notify an FXP backend about the status of currency conversion. + */ + FxTransfersById: { + /** @description Status of the FX transfer. */ + requestBody: { + content: { + "application/json": components["schemas"]["FxTransfersPutBackendRequest"]; + }; + }; + responses: { + 200: components["responses"]["200"]; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; +} diff --git a/src/sdk-scheme-adapter/v2_1_0/backend/schemas.ts b/src/sdk-scheme-adapter/v2_1_0/backend/schemas.ts new file mode 100644 index 00000000..897a2741 --- /dev/null +++ b/src/sdk-scheme-adapter/v2_1_0/backend/schemas.ts @@ -0,0 +1,137 @@ +/* eslint-disable @typescript-eslint/no-namespace */ + +/** This file is generated by json-schema-generator.js program **/ + +import JsonSchemas from './json-schemas.json' + +export namespace Schemas { + export const DateOfBirth = JsonSchemas.DateOfBirth + export const FirstName = JsonSchemas.FirstName + export const FspId = JsonSchemas.FspId + export const IndividualQuote = JsonSchemas.IndividualQuote + export const IndividualQuoteResultFailed = JsonSchemas.IndividualQuoteResultFailed + export const IndividualQuoteResultSuccess = JsonSchemas.IndividualQuoteResultSuccess + export const IndividualTransfer = JsonSchemas.IndividualTransfer + export const IndividualTransferResult = JsonSchemas.IndividualTransferResult + export const LastName = JsonSchemas.LastName + export const MerchantClassificationCode = JsonSchemas.MerchantClassificationCode + export const MiddleName = JsonSchemas.MiddleName + export const amountCurrency = JsonSchemas.amountCurrency + export const amountType = JsonSchemas.amountType + export const bulkQuoteId = JsonSchemas.bulkQuoteId + export const bulkQuoteRequest = JsonSchemas.bulkQuoteRequest + export const bulkQuoteResponse = JsonSchemas.bulkQuoteResponse + export const bulkTransferId = JsonSchemas.bulkTransferId + export const bulkTransferRequest = JsonSchemas.bulkTransferRequest + export const bulkTransferResponse = JsonSchemas.bulkTransferResponse + export const currency = JsonSchemas.currency + export const dateOfBirth = JsonSchemas.dateOfBirth + export const errorCode = JsonSchemas.errorCode + export const errorDescription = JsonSchemas.errorDescription + export const errorInformation = JsonSchemas.errorInformation + export const extensionItem = JsonSchemas.extensionItem + export const extensionList = JsonSchemas.extensionList + export const extensionListComplex = JsonSchemas.extensionListComplex + export const fspId = JsonSchemas.fspId + export const fulfilNotification = JsonSchemas.fulfilNotification + export const generalError = JsonSchemas.generalError + export const geoCode = JsonSchemas.geoCode + export const idSubValue = JsonSchemas.idSubValue + export const idType = JsonSchemas.idType + export const idValue = JsonSchemas.idValue + export const ilpPacketData = JsonSchemas.ilpPacketData + export const initiator = JsonSchemas.initiator + export const initiatorType = JsonSchemas.initiatorType + export const latitude = JsonSchemas.latitude + export const longitude = JsonSchemas.longitude + export const money = JsonSchemas.money + export const otpDetails = JsonSchemas.otpDetails + export const participantsResponse = JsonSchemas.participantsResponse + export const payerType = JsonSchemas.payerType + export const quoteId = JsonSchemas.quoteId + export const quoteRequest = JsonSchemas.quoteRequest + export const quoteResponse = JsonSchemas.quoteResponse + export const scenario = JsonSchemas.scenario + export const timestamp = JsonSchemas.timestamp + export const transactionId = JsonSchemas.transactionId + export const transactionRequest = JsonSchemas.transactionRequest + export const transactionRequestId = JsonSchemas.transactionRequestId + export const transactionRequestResponse = JsonSchemas.transactionRequestResponse + export const transactionRequestState = JsonSchemas.transactionRequestState + export const transactionSubScenario = JsonSchemas.transactionSubScenario + export const transactionType = JsonSchemas.transactionType + export const transactionTypeObject = JsonSchemas.transactionTypeObject + export const transferDetailsResponse = JsonSchemas.transferDetailsResponse + export const transferId = JsonSchemas.transferId + export const transferParty = JsonSchemas.transferParty + export const transferRequest = JsonSchemas.transferRequest + export const transferResponse = JsonSchemas.transferResponse + export const transferState = JsonSchemas.transferState + export const transferStatus = JsonSchemas.transferStatus + export const requestToPayCallback = JsonSchemas.requestToPayCallback + export const KYCInformation = JsonSchemas.KYCInformation + export const TransactionSubScenario = JsonSchemas.TransactionSubScenario + export const errorResponse = JsonSchemas.errorResponse + export const CorrelationId = JsonSchemas.CorrelationId + export const bulkTransactionStatus = JsonSchemas.bulkTransactionStatus + export const autoAcceptPartyOption = JsonSchemas.autoAcceptPartyOption + export const Currency = JsonSchemas.Currency + export const Amount = JsonSchemas.Amount + export const bulkPerTransferFeeLimit = JsonSchemas.bulkPerTransferFeeLimit + export const autoAcceptQuote = JsonSchemas.autoAcceptQuote + export const DateTime = JsonSchemas.DateTime + export const bulkTransactionOptions = JsonSchemas.bulkTransactionOptions + export const PartyIdType = JsonSchemas.PartyIdType + export const PartyIdentifier = JsonSchemas.PartyIdentifier + export const PartySubIdOrType = JsonSchemas.PartySubIdOrType + export const ExtensionKey = JsonSchemas.ExtensionKey + export const ExtensionValue = JsonSchemas.ExtensionValue + export const Extension = JsonSchemas.Extension + export const ExtensionList = JsonSchemas.ExtensionList + export const PartyIdInfo = JsonSchemas.PartyIdInfo + export const PartyName = JsonSchemas.PartyName + export const PartyComplexName = JsonSchemas.PartyComplexName + export const PartyPersonalInfo = JsonSchemas.PartyPersonalInfo + export const Party = JsonSchemas.Party + export const AmountType = JsonSchemas.AmountType + export const Note = JsonSchemas.Note + export const Money = JsonSchemas.Money + export const Latitude = JsonSchemas.Latitude + export const Longitude = JsonSchemas.Longitude + export const GeoCode = JsonSchemas.GeoCode + export const IlpPacket = JsonSchemas.IlpPacket + export const IlpCondition = JsonSchemas.IlpCondition + export const ErrorCode = JsonSchemas.ErrorCode + export const ErrorDescription = JsonSchemas.ErrorDescription + export const ErrorInformation = JsonSchemas.ErrorInformation + export const mojaloopError = JsonSchemas.mojaloopError + export const quoteError = JsonSchemas.quoteError + export const individualQuoteResult = JsonSchemas.individualQuoteResult + export const IlpFulfilment = JsonSchemas.IlpFulfilment + export const TransferState = JsonSchemas.TransferState + export const transferError = JsonSchemas.transferError + export const individualTransferResult = JsonSchemas.individualTransferResult + export const bulkTransactionIndividualTransferResult = JsonSchemas.bulkTransactionIndividualTransferResult + export const bulkTransactionResponse = JsonSchemas.bulkTransactionResponse + export const CurrencyConverter = JsonSchemas.CurrencyConverter + export const FxRate = JsonSchemas.FxRate + export const AuthenticationType = JsonSchemas.AuthenticationType + export const FxMoney = JsonSchemas.FxMoney + export const FxCharge = JsonSchemas.FxCharge + export const FxConversion = JsonSchemas.FxConversion + export const FxQuotesPostBackendRequest = JsonSchemas.FxQuotesPostBackendRequest + export const FxQuotesPostBackendResponse = JsonSchemas.FxQuotesPostBackendResponse + export const commitRequestId = JsonSchemas.commitRequestId + export const determiningTransferId = JsonSchemas.determiningTransferId + export const initiatingFsp = JsonSchemas.initiatingFsp + export const counterPartyFsp = JsonSchemas.counterPartyFsp + export const sourceAmount = JsonSchemas.sourceAmount + export const targetAmount = JsonSchemas.targetAmount + export const condition = JsonSchemas.condition + export const FxTransfersPostBackendRequest = JsonSchemas.FxTransfersPostBackendRequest + export const fulfilment = JsonSchemas.fulfilment + export const completedTimestamp = JsonSchemas.completedTimestamp + export const conversionState = JsonSchemas.conversionState + export const FxTransfersPostBackendResponse = JsonSchemas.FxTransfersPostBackendResponse + export const FxTransfersPutBackendRequest = JsonSchemas.FxTransfersPutBackendRequest +} diff --git a/src/sdk-scheme-adapter/v2_1_0/backend/types.ts b/src/sdk-scheme-adapter/v2_1_0/backend/types.ts new file mode 100644 index 00000000..31aa9056 --- /dev/null +++ b/src/sdk-scheme-adapter/v2_1_0/backend/types.ts @@ -0,0 +1,137 @@ +/* eslint-disable @typescript-eslint/no-namespace */ + +/** This file is generated by json-schema-generator.js program **/ + +import { components } from './openapi' + +export namespace Types { + export type DateOfBirth = components['schemas']['DateOfBirth'] + export type FirstName = components['schemas']['FirstName'] + export type FspId = components['schemas']['FspId'] + export type IndividualQuote = components['schemas']['IndividualQuote'] + export type IndividualQuoteResultFailed = components['schemas']['IndividualQuoteResultFailed'] + export type IndividualQuoteResultSuccess = components['schemas']['IndividualQuoteResultSuccess'] + export type IndividualTransfer = components['schemas']['IndividualTransfer'] + export type IndividualTransferResult = components['schemas']['IndividualTransferResult'] + export type LastName = components['schemas']['LastName'] + export type MerchantClassificationCode = components['schemas']['MerchantClassificationCode'] + export type MiddleName = components['schemas']['MiddleName'] + export type amountCurrency = components['schemas']['amountCurrency'] + export type amountType = components['schemas']['amountType'] + export type bulkQuoteId = components['schemas']['bulkQuoteId'] + export type bulkQuoteRequest = components['schemas']['bulkQuoteRequest'] + export type bulkQuoteResponse = components['schemas']['bulkQuoteResponse'] + export type bulkTransferId = components['schemas']['bulkTransferId'] + export type bulkTransferRequest = components['schemas']['bulkTransferRequest'] + export type bulkTransferResponse = components['schemas']['bulkTransferResponse'] + export type currency = components['schemas']['currency'] + export type dateOfBirth = components['schemas']['dateOfBirth'] + export type errorCode = components['schemas']['errorCode'] + export type errorDescription = components['schemas']['errorDescription'] + export type errorInformation = components['schemas']['errorInformation'] + export type extensionItem = components['schemas']['extensionItem'] + export type extensionList = components['schemas']['extensionList'] + export type extensionListComplex = components['schemas']['extensionListComplex'] + export type fspId = components['schemas']['fspId'] + export type fulfilNotification = components['schemas']['fulfilNotification'] + export type generalError = components['schemas']['generalError'] + export type geoCode = components['schemas']['geoCode'] + export type idSubValue = components['schemas']['idSubValue'] + export type idType = components['schemas']['idType'] + export type idValue = components['schemas']['idValue'] + export type ilpPacketData = components['schemas']['ilpPacketData'] + export type initiator = components['schemas']['initiator'] + export type initiatorType = components['schemas']['initiatorType'] + export type latitude = components['schemas']['latitude'] + export type longitude = components['schemas']['longitude'] + export type money = components['schemas']['money'] + export type otpDetails = components['schemas']['otpDetails'] + export type participantsResponse = components['schemas']['participantsResponse'] + export type payerType = components['schemas']['payerType'] + export type quoteId = components['schemas']['quoteId'] + export type quoteRequest = components['schemas']['quoteRequest'] + export type quoteResponse = components['schemas']['quoteResponse'] + export type scenario = components['schemas']['scenario'] + export type timestamp = components['schemas']['timestamp'] + export type transactionId = components['schemas']['transactionId'] + export type transactionRequest = components['schemas']['transactionRequest'] + export type transactionRequestId = components['schemas']['transactionRequestId'] + export type transactionRequestResponse = components['schemas']['transactionRequestResponse'] + export type transactionRequestState = components['schemas']['transactionRequestState'] + export type transactionSubScenario = components['schemas']['transactionSubScenario'] + export type transactionType = components['schemas']['transactionType'] + export type transactionTypeObject = components['schemas']['transactionTypeObject'] + export type transferDetailsResponse = components['schemas']['transferDetailsResponse'] + export type transferId = components['schemas']['transferId'] + export type transferParty = components['schemas']['transferParty'] + export type transferRequest = components['schemas']['transferRequest'] + export type transferResponse = components['schemas']['transferResponse'] + export type transferState = components['schemas']['transferState'] + export type transferStatus = components['schemas']['transferStatus'] + export type requestToPayCallback = components['schemas']['requestToPayCallback'] + export type KYCInformation = components['schemas']['KYCInformation'] + export type TransactionSubScenario = components['schemas']['TransactionSubScenario'] + export type errorResponse = components['schemas']['errorResponse'] + export type CorrelationId = components['schemas']['CorrelationId'] + export type bulkTransactionStatus = components['schemas']['bulkTransactionStatus'] + export type autoAcceptPartyOption = components['schemas']['autoAcceptPartyOption'] + export type Currency = components['schemas']['Currency'] + export type Amount = components['schemas']['Amount'] + export type bulkPerTransferFeeLimit = components['schemas']['bulkPerTransferFeeLimit'] + export type autoAcceptQuote = components['schemas']['autoAcceptQuote'] + export type DateTime = components['schemas']['DateTime'] + export type bulkTransactionOptions = components['schemas']['bulkTransactionOptions'] + export type PartyIdType = components['schemas']['PartyIdType'] + export type PartyIdentifier = components['schemas']['PartyIdentifier'] + export type PartySubIdOrType = components['schemas']['PartySubIdOrType'] + export type ExtensionKey = components['schemas']['ExtensionKey'] + export type ExtensionValue = components['schemas']['ExtensionValue'] + export type Extension = components['schemas']['Extension'] + export type ExtensionList = components['schemas']['ExtensionList'] + export type PartyIdInfo = components['schemas']['PartyIdInfo'] + export type PartyName = components['schemas']['PartyName'] + export type PartyComplexName = components['schemas']['PartyComplexName'] + export type PartyPersonalInfo = components['schemas']['PartyPersonalInfo'] + export type Party = components['schemas']['Party'] + export type AmountType = components['schemas']['AmountType'] + export type Note = components['schemas']['Note'] + export type Money = components['schemas']['Money'] + export type Latitude = components['schemas']['Latitude'] + export type Longitude = components['schemas']['Longitude'] + export type GeoCode = components['schemas']['GeoCode'] + export type IlpPacket = components['schemas']['IlpPacket'] + export type IlpCondition = components['schemas']['IlpCondition'] + export type ErrorCode = components['schemas']['ErrorCode'] + export type ErrorDescription = components['schemas']['ErrorDescription'] + export type ErrorInformation = components['schemas']['ErrorInformation'] + export type mojaloopError = components['schemas']['mojaloopError'] + export type quoteError = components['schemas']['quoteError'] + export type individualQuoteResult = components['schemas']['individualQuoteResult'] + export type IlpFulfilment = components['schemas']['IlpFulfilment'] + export type TransferState = components['schemas']['TransferState'] + export type transferError = components['schemas']['transferError'] + export type individualTransferResult = components['schemas']['individualTransferResult'] + export type bulkTransactionIndividualTransferResult = components['schemas']['bulkTransactionIndividualTransferResult'] + export type bulkTransactionResponse = components['schemas']['bulkTransactionResponse'] + export type CurrencyConverter = components['schemas']['CurrencyConverter'] + export type FxRate = components['schemas']['FxRate'] + export type AuthenticationType = components['schemas']['AuthenticationType'] + export type FxMoney = components['schemas']['FxMoney'] + export type FxCharge = components['schemas']['FxCharge'] + export type FxConversion = components['schemas']['FxConversion'] + export type FxQuotesPostBackendRequest = components['schemas']['FxQuotesPostBackendRequest'] + export type FxQuotesPostBackendResponse = components['schemas']['FxQuotesPostBackendResponse'] + export type commitRequestId = components['schemas']['commitRequestId'] + export type determiningTransferId = components['schemas']['determiningTransferId'] + export type initiatingFsp = components['schemas']['initiatingFsp'] + export type counterPartyFsp = components['schemas']['counterPartyFsp'] + export type sourceAmount = components['schemas']['sourceAmount'] + export type targetAmount = components['schemas']['targetAmount'] + export type condition = components['schemas']['condition'] + export type FxTransfersPostBackendRequest = components['schemas']['FxTransfersPostBackendRequest'] + export type fulfilment = components['schemas']['fulfilment'] + export type completedTimestamp = components['schemas']['completedTimestamp'] + export type conversionState = components['schemas']['conversionState'] + export type FxTransfersPostBackendResponse = components['schemas']['FxTransfersPostBackendResponse'] + export type FxTransfersPutBackendRequest = components['schemas']['FxTransfersPutBackendRequest'] +} diff --git a/src/sdk-scheme-adapter/v2_1_0/outbound/json-schemas.json b/src/sdk-scheme-adapter/v2_1_0/outbound/json-schemas.json new file mode 100644 index 00000000..de9bcdfe --- /dev/null +++ b/src/sdk-scheme-adapter/v2_1_0/outbound/json-schemas.json @@ -0,0 +1,38718 @@ +{ + "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.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "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" + ] + }, + "accountsRequest": { + "type": "array", + "items": { + "type": "object", + "required": [ + "idType", + "idValue", + "currency" + ], + "properties": { + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "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" + ] + } + } + } + }, + "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" + }, + "errorResponse": { + "type": "object", + "properties": { + "statusCode": { + "type": "string", + "description": "Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.\nOtherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.\n" + }, + "message": { + "type": "string", + "description": "Error message text." + } + } + }, + "accountCreationStatus": { + "type": "array", + "items": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "error": { + "type": "object", + "properties": { + "statusCode": { + "type": "string", + "description": "Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.\nOtherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.\n" + }, + "message": { + "type": "string", + "description": "Error message text." + } + } + } + } + } + }, + "accountsCreationState": { + "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", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Error description string." + }, + "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": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "ErrorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + }, + "mojaloopError": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + }, + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + }, + "accountsResponse": { + "type": "object", + "required": [ + "accounts" + ], + "properties": { + "modelId": { + "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" + }, + "accounts": { + "type": "array", + "items": { + "type": "object", + "required": [ + "idType", + "idValue", + "currency" + ], + "properties": { + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "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" + ] + } + } + } + }, + "response": { + "type": "array", + "items": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "error": { + "type": "object", + "properties": { + "statusCode": { + "type": "string", + "description": "Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.\nOtherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.\n" + }, + "message": { + "type": "string", + "description": "Error message text." + } + } + } + } + } + }, + "currentState": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "COMPLETED" + ] + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + }, + "postAccountsResponse": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object" + }, + "headers": { + "type": "object" + } + } + } + } + }, + "errorAccountsResponse": { + "allOf": [ + { + "type": "object", + "properties": { + "statusCode": { + "type": "string", + "description": "Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.\nOtherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.\n" + }, + "message": { + "type": "string", + "description": "Error message text." + } + } + }, + { + "type": "object", + "required": [ + "executionState" + ], + "properties": { + "executionState": { + "type": "object", + "required": [ + "accounts" + ], + "properties": { + "modelId": { + "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" + }, + "accounts": { + "type": "array", + "items": { + "type": "object", + "required": [ + "idType", + "idValue", + "currency" + ], + "properties": { + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "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" + ] + } + } + } + }, + "response": { + "type": "array", + "items": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "error": { + "type": "object", + "properties": { + "statusCode": { + "type": "string", + "description": "Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.\nOtherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.\n" + }, + "message": { + "type": "string", + "description": "Error message text." + } + } + } + } + } + }, + "currentState": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "COMPLETED" + ] + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + }, + "postAccountsResponse": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object" + }, + "headers": { + "type": "object" + } + } + } + } + } + } + } + ] + }, + "TransactionInitiatorType": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- 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.\n\nRegular 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 ( ).\n\n**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." + }, + "KYCInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionListEmptiable": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "transferParty": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "AmountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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", + "description": "Data model for the complex type 'individualQuote'.", + "properties": { + "quoteId": { + "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" + }, + "to": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "transactionType": { + "title": "transferTransactionType", + "type": "string", + "enum": [ + "TRANSFER" + ], + "description": "Type of transaction." + }, + "subScenario": { + "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." + }, + "extensions": { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "quoteId", + "to", + "amountType", + "currency", + "transactionType", + "amount" + ] + }, + "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": { + "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" + }, + "from": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "individualQuotes": { + "description": "List of individual quotes in a bulk quote.", + "type": "array", + "minItems": 1, + "maxItems": 1000, + "items": { + "title": "IndividualQuote", + "type": "object", + "description": "Data model for the complex type 'individualQuote'.", + "properties": { + "quoteId": { + "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" + }, + "to": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "transactionType": { + "title": "transferTransactionType", + "type": "string", + "enum": [ + "TRANSFER" + ], + "description": "Type of transaction." + }, + "subScenario": { + "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." + }, + "extensions": { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "quoteId", + "to", + "amountType", + "currency", + "transactionType", + "amount" + ] + } + }, + "extensions": { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + } + }, + "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": { + "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" + } + }, + "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": { + "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" + } + }, + "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", + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + }, + "individualQuoteResult": { + "type": "object", + "properties": { + "quoteId": { + "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" + }, + "transferAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeReceiveAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspFee": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspCommission": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "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": { + "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" + } + }, + "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" + }, + "condition": { + "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", + "description": "Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment.", + "properties": { + "extension": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + } + }, + "required": [ + "quoteId" + ] + }, + "bulkQuoteResponse": { + "type": "object", + "required": [ + "bulkQuoteId", + "individualQuoteResults", + "currentState", + "expiration" + ], + "properties": { + "bulkQuoteId": { + "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" + }, + "homeTransactionId": { + "type": "string", + "description": "Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems." + }, + "expiration": { + "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" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "currentState": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "COMPLETED" + ] + }, + "individualQuoteResults": { + "type": "array", + "maxItems": 1000, + "items": { + "type": "object", + "properties": { + "quoteId": { + "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" + }, + "transferAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeReceiveAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspFee": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspCommission": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "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": { + "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" + } + }, + "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" + }, + "condition": { + "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", + "description": "Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment.", + "properties": { + "extension": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + } + }, + "required": [ + "quoteId" + ] + }, + "description": "List of individualQuoteResults in a bulk transfer response." + } + } + }, + "bulkQuoteErrorResponse": { + "allOf": [ + { + "type": "object", + "properties": { + "statusCode": { + "type": "string", + "description": "Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.\nOtherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.\n" + }, + "message": { + "type": "string", + "description": "Error message text." + } + } + }, + { + "type": "object", + "required": [ + "bulkQuoteState" + ], + "properties": { + "bulkQuoteState": { + "type": "object", + "required": [ + "bulkQuoteId", + "individualQuoteResults", + "currentState", + "expiration" + ], + "properties": { + "bulkQuoteId": { + "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" + }, + "homeTransactionId": { + "type": "string", + "description": "Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems." + }, + "expiration": { + "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" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "currentState": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "COMPLETED" + ] + }, + "individualQuoteResults": { + "type": "array", + "maxItems": 1000, + "items": { + "type": "object", + "properties": { + "quoteId": { + "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" + }, + "transferAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeReceiveAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspFee": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspCommission": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "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": { + "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" + } + }, + "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" + }, + "condition": { + "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", + "description": "Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment.", + "properties": { + "extension": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + } + }, + "required": [ + "quoteId" + ] + }, + "description": "List of individualQuoteResults in a bulk transfer response." + } + } + } + } + } + ] + }, + "bulkQuoteStatus": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "COMPLETED" + ] + }, + "bulkQuoteStatusResponse": { + "type": "object", + "required": [ + "bulkQuoteId", + "currentState", + "individualQuotes" + ], + "properties": { + "bulkQuoteId": { + "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" + }, + "currentState": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "COMPLETED" + ] + }, + "individualQuotes": { + "type": "array", + "minItems": 1, + "maxItems": 1000, + "items": { + "title": "IndividualQuote", + "type": "object", + "description": "Data model for the complex type 'individualQuote'.", + "properties": { + "quoteId": { + "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" + }, + "to": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "transactionType": { + "title": "transferTransactionType", + "type": "string", + "enum": [ + "TRANSFER" + ], + "description": "Type of transaction." + }, + "subScenario": { + "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." + }, + "extensions": { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "quoteId", + "to", + "amountType", + "currency", + "transactionType", + "amount" + ] + } + } + } + }, + "autoAcceptPartyOption": { + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "enum": [ + false, + true + ] + } + } + }, + "bulkPerTransferFeeLimit": { + "type": "object", + "required": [ + "currency", + "amount" + ], + "properties": { + "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" + } + } + }, + "autoAcceptQuote": { + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "enum": [ + true, + false + ] + }, + "perTransferFeeLimits": { + "type": "array", + "minItems": 0, + "items": { + "type": "object", + "required": [ + "currency", + "amount" + ], + "properties": { + "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" + } + } + } + } + } + }, + "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": { + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "enum": [ + false, + true + ] + } + } + }, + "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": [ + { + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "enum": [ + true, + false + ] + }, + "perTransferFeeLimits": { + "type": "array", + "minItems": 0, + "items": { + "type": "object", + "required": [ + "currency", + "amount" + ], + "properties": { + "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" + } + } + } + } + } + } + ] + }, + "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": { + "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" + } + } + }, + "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": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "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": { + "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" + } + } + }, + "PartyPersonalInfo": { + "title": "PartyPersonalInfo", + "type": "object", + "description": "Data model for the complex type PartyPersonalInfo.", + "properties": { + "complexName": { + "title": "PartyComplexName", + "type": "object", + "description": "Data model for the complex type PartyComplexName.", + "properties": { + "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" + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + } + } + }, + "Party": { + "title": "Party", + "type": "object", + "description": "Data model for the complex type Party.", + "properties": { + "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": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "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." + }, + "name": { + "title": "PartyName", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Name of the Party. Could be a real name or a nickname." + }, + "personalInfo": { + "title": "PartyPersonalInfo", + "type": "object", + "description": "Data model for the complex type PartyPersonalInfo.", + "properties": { + "complexName": { + "title": "PartyComplexName", + "type": "object", + "description": "Data model for the complex type PartyComplexName.", + "properties": { + "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" + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + } + } + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + } + }, + "required": [ + "partyIdInfo" + ] + }, + "bulkTransactionIndividualTransfer": { + "title": "BulkTransactionIndividualTransfer", + "type": "object", + "description": "Data model for the complex type 'bulkTransactionIndividualTransfer'.", + "properties": { + "homeTransactionId": { + "type": "string", + "description": "Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems." + }, + "to": { + "title": "Party", + "type": "object", + "description": "Data model for the complex type Party.", + "properties": { + "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": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "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." + }, + "name": { + "title": "PartyName", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Name of the Party. Could be a real name or a nickname." + }, + "personalInfo": { + "title": "PartyPersonalInfo", + "type": "object", + "description": "Data model for the complex type PartyPersonalInfo.", + "properties": { + "complexName": { + "title": "PartyComplexName", + "type": "object", + "description": "Data model for the complex type PartyComplexName.", + "properties": { + "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" + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + } + } + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + } + }, + "required": [ + "partyIdInfo" + ] + }, + "reference": { + "description": "Payer Loan reference", + "type": "string" + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "note": { + "title": "Note", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Memo assigned to transaction.", + "example": "Note sent to Payee." + }, + "quoteExtensions": { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "transferExtensions": { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + } + }, + "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": { + "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" + }, + "options": { + "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": { + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "enum": [ + false, + true + ] + } + } + }, + "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": [ + { + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "enum": [ + true, + false + ] + }, + "perTransferFeeLimits": { + "type": "array", + "minItems": 0, + "items": { + "type": "object", + "required": [ + "currency", + "amount" + ], + "properties": { + "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" + } + } + } + } + } + } + ] + }, + "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": { + "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" + } + } + }, + "from": { + "title": "Party", + "type": "object", + "description": "Data model for the complex type Party.", + "properties": { + "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": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "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." + }, + "name": { + "title": "PartyName", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Name of the Party. Could be a real name or a nickname." + }, + "personalInfo": { + "title": "PartyPersonalInfo", + "type": "object", + "description": "Data model for the complex type PartyPersonalInfo.", + "properties": { + "complexName": { + "title": "PartyComplexName", + "type": "object", + "description": "Data model for the complex type PartyComplexName.", + "properties": { + "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" + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + } + } + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + } + }, + "required": [ + "partyIdInfo" + ] + }, + "individualTransfers": { + "description": "List of individual transfers in a bulk transfer.", + "type": "array", + "minItems": 1, + "items": { + "title": "BulkTransactionIndividualTransfer", + "type": "object", + "description": "Data model for the complex type 'bulkTransactionIndividualTransfer'.", + "properties": { + "homeTransactionId": { + "type": "string", + "description": "Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems." + }, + "to": { + "title": "Party", + "type": "object", + "description": "Data model for the complex type Party.", + "properties": { + "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": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "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." + }, + "name": { + "title": "PartyName", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Name of the Party. Could be a real name or a nickname." + }, + "personalInfo": { + "title": "PartyPersonalInfo", + "type": "object", + "description": "Data model for the complex type PartyPersonalInfo.", + "properties": { + "complexName": { + "title": "PartyComplexName", + "type": "object", + "description": "Data model for the complex type PartyComplexName.", + "properties": { + "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" + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + } + } + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + } + }, + "required": [ + "partyIdInfo" + ] + }, + "reference": { + "description": "Payer Loan reference", + "type": "string" + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "note": { + "title": "Note", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Memo assigned to transaction.", + "example": "Note sent to Payee." + }, + "quoteExtensions": { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "transferExtensions": { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + } + }, + "required": [ + "homeTransactionId", + "to", + "amountType", + "currency", + "amount" + ] + } + }, + "extensions": { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + } + }, + "TransferState": { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- 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": { + "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" + }, + "fulfilment": { + "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" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "transferState": { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + } + } + }, + "bulkTransferResponse": { + "type": "object", + "required": [ + "bulkTransferId", + "individualTransferResults", + "currentState" + ], + "properties": { + "bulkTransferId": { + "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" + }, + "bulkQuoteId": { + "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" + }, + "homeTransactionId": { + "type": "string", + "description": "Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems." + }, + "bulkTransferState": { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + "completedTimestamp": { + "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" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "currentState": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "COMPLETED" + ] + }, + "individualTransferResults": { + "type": "array", + "maxItems": 1000, + "items": { + "type": "object", + "required": [ + "transferId" + ], + "properties": { + "transferId": { + "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" + }, + "fulfilment": { + "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" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "transferState": { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + } + } + }, + "description": "List of individual transfer result in a bulk transfer response." + } + } + }, + "bulkTransferErrorResponse": { + "allOf": [ + { + "type": "object", + "properties": { + "statusCode": { + "type": "string", + "description": "Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.\nOtherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.\n" + }, + "message": { + "type": "string", + "description": "Error message text." + } + } + }, + { + "type": "object", + "required": [ + "bulkTransferState" + ], + "properties": { + "bulkTransferState": { + "type": "object", + "required": [ + "bulkTransferId", + "individualTransferResults", + "currentState" + ], + "properties": { + "bulkTransferId": { + "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" + }, + "bulkQuoteId": { + "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" + }, + "homeTransactionId": { + "type": "string", + "description": "Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems." + }, + "bulkTransferState": { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + "completedTimestamp": { + "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" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "currentState": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "COMPLETED" + ] + }, + "individualTransferResults": { + "type": "array", + "maxItems": 1000, + "items": { + "type": "object", + "required": [ + "transferId" + ], + "properties": { + "transferId": { + "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" + }, + "fulfilment": { + "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" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + "transferState": { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + } + } + }, + "description": "List of individual transfer result in a bulk transfer response." + } + } + } + } + } + ] + }, + "bulkTransactionIndividualTransferAccept": { + "type": "object", + "description": "Data model for the 'individualTransfer' while accepting party or quote.", + "properties": { + "transferId": { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + } + }, + "required": [ + "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": [ + { + "type": "object", + "description": "Data model for the 'individualTransfer' while accepting party or quote.", + "properties": { + "transferId": { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + } + }, + "required": [ + "transferId" + ] + }, + { + "type": "object", + "required": [ + "acceptParty" + ], + "properties": { + "acceptParty": { + "type": "boolean", + "enum": [ + true, + false + ] + } + } + } + ] + } + } + } + }, + "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": [ + { + "type": "object", + "description": "Data model for the 'individualTransfer' while accepting party or quote.", + "properties": { + "transferId": { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + } + }, + "required": [ + "transferId" + ] + }, + { + "type": "object", + "required": [ + "acceptQuote" + ], + "properties": { + "acceptQuote": { + "type": "boolean", + "enum": [ + true, + false + ] + } + } + } + ] + } + } + } + }, + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + }, + "bulkTransactionAcceptPartyErrorResponse": { + "allOf": [ + { + "type": "object", + "properties": { + "statusCode": { + "type": "string", + "description": "Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.\nOtherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.\n" + }, + "message": { + "type": "string", + "description": "Error message text." + } + } + }, + { + "type": "object", + "required": [ + "bulkTransferState" + ], + "properties": { + "bulkTransferState": { + "allOf": [ + { + "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": [ + { + "type": "object", + "description": "Data model for the 'individualTransfer' while accepting party or quote.", + "properties": { + "transferId": { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + } + }, + "required": [ + "transferId" + ] + }, + { + "type": "object", + "required": [ + "acceptParty" + ], + "properties": { + "acceptParty": { + "type": "boolean", + "enum": [ + true, + false + ] + } + } + } + ] + } + } + } + }, + { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + } + ] + } + } + } + ] + }, + "bulkTransactionAcceptQuoteErrorResponse": { + "allOf": [ + { + "type": "object", + "properties": { + "statusCode": { + "type": "string", + "description": "Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.\nOtherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.\n" + }, + "message": { + "type": "string", + "description": "Error message text." + } + } + }, + { + "type": "object", + "required": [ + "bulkTansferState" + ], + "properties": { + "bulkTransferState": { + "allOf": [ + { + "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": [ + { + "type": "object", + "description": "Data model for the 'individualTransfer' while accepting party or quote.", + "properties": { + "transferId": { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + } + }, + "required": [ + "transferId" + ] + }, + { + "type": "object", + "required": [ + "acceptQuote" + ], + "properties": { + "acceptQuote": { + "type": "boolean", + "enum": [ + true, + false + ] + } + } + } + ] + } + } + } + }, + { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + } + ] + } + } + } + ] + }, + "individualTransfer": { + "title": "IndividualTransfer", + "type": "object", + "description": "Data model for the complex type 'individualTransfer'.", + "properties": { + "transferId": { + "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" + }, + "to": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "transactionType": { + "title": "transferTransactionType", + "type": "string", + "enum": [ + "TRANSFER" + ], + "description": "Type of transaction." + }, + "subScenario": { + "title": "TransactionSubScenario", + "type": "string", + "pattern": "^[A-Z_]{1,32}$", + "description": "Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type).", + "example": "LOCALLY_DEFINED_SUBSCENARIO" + }, + "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" + }, + "condition": { + "title": "IlpCondition", + "type": "string", + "pattern": "^[A-Za-z0-9-_]{43}$", + "maxLength": 48, + "description": "Condition that must be attached to the transfer by the Payer." + }, + "note": { + "title": "Note", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Memo assigned to transaction.", + "example": "Note sent to Payee." + }, + "extensions": { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "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": { + "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" + }, + "bulkQuoteId": { + "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" + }, + "from": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "individualTransfers": { + "description": "List of individual transfers in a bulk transfer.", + "type": "array", + "minItems": 1, + "maxItems": 1000, + "items": { + "title": "IndividualTransfer", + "type": "object", + "description": "Data model for the complex type 'individualTransfer'.", + "properties": { + "transferId": { + "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" + }, + "to": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "transactionType": { + "title": "transferTransactionType", + "type": "string", + "enum": [ + "TRANSFER" + ], + "description": "Type of transaction." + }, + "subScenario": { + "title": "TransactionSubScenario", + "type": "string", + "pattern": "^[A-Z_]{1,32}$", + "description": "Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type).", + "example": "LOCALLY_DEFINED_SUBSCENARIO" + }, + "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" + }, + "condition": { + "title": "IlpCondition", + "type": "string", + "pattern": "^[A-Za-z0-9-_]{43}$", + "maxLength": 48, + "description": "Condition that must be attached to the transfer by the Payer." + }, + "note": { + "title": "Note", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Memo assigned to transaction.", + "example": "Note sent to Payee." + }, + "extensions": { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferId", + "to", + "amountType", + "currency", + "amount", + "ilpPacket", + "condition" + ] + } + }, + "extensions": { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + } + }, + "individualTransferFulfilment": { + "type": "object", + "description": "A Mojaloop API transfer fulfilment for individual transfers in a bulk transfer", + "properties": { + "fulfilment": { + "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" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + } + }, + "bulkTransferStatusResponse": { + "type": "object", + "required": [ + "bulkTransferId", + "currentState", + "fulfils" + ], + "properties": { + "bulkTransferId": { + "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" + }, + "currentState": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "COMPLETED" + ] + }, + "fulfils": { + "type": "array", + "minItems": 1, + "maxItems": 1000, + "items": { + "type": "object", + "description": "A Mojaloop API transfer fulfilment for individual transfers in a bulk transfer", + "properties": { + "fulfilment": { + "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" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + } + } + } + } + }, + "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": { + "title": "Party", + "type": "object", + "description": "Data model for the complex type Party.", + "properties": { + "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": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "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." + }, + "name": { + "title": "PartyName", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Name of the Party. Could be a real name or a nickname." + }, + "personalInfo": { + "title": "PartyPersonalInfo", + "type": "object", + "description": "Data model for the complex type PartyPersonalInfo.", + "properties": { + "complexName": { + "title": "PartyComplexName", + "type": "object", + "description": "Data model for the complex type PartyComplexName.", + "properties": { + "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" + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + } + } + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + } + }, + "required": [ + "partyIdInfo" + ] + }, + "headers": { + "type": "object" + } + }, + "required": [ + "body", + "headers" + ] + }, + "currentState": { + "type": "string", + "enum": [ + "WAITING_FOR_ACTION", + "COMPLETED", + "ERROR_OCCURRED" + ] + } + }, + "required": [ + "party", + "currentState" + ] + }, + "TransactionScenario": { + "title": "TransactionScenario", + "type": "string", + "enum": [ + "DEPOSIT", + "WITHDRAWAL", + "TRANSFER", + "PAYMENT", + "REFUND" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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.\n- TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to Consumer) transaction.\n- 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.\n- 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.\n- 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.\n- 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": { + "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" + }, + "refundReason": { + "title": "RefundReason", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Reason for the refund.", + "example": "Free text indicating reason for the refund." + } + }, + "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": { + "title": "TransactionScenario", + "type": "string", + "enum": [ + "DEPOSIT", + "WITHDRAWAL", + "TRANSFER", + "PAYMENT", + "REFUND" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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.\n- TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to Consumer) transaction.\n- 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.\n- REFUND - Used for performing a refund of transaction.", + "example": "DEPOSIT" + }, + "subScenario": { + "title": "TransactionSubScenario", + "type": "string", + "pattern": "^[A-Z_]{1,32}$", + "description": "Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type).", + "example": "LOCALLY_DEFINED_SUBSCENARIO" + }, + "initiator": { + "title": "TransactionInitiator", + "type": "string", + "enum": [ + "PAYER", + "PAYEE" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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" + }, + "initiatorType": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "refundInfo": { + "title": "Refund", + "type": "object", + "description": "Data model for the complex type Refund.", + "properties": { + "originalTransactionId": { + "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" + }, + "refundReason": { + "title": "RefundReason", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Reason for the refund.", + "example": "Free text indicating reason for the refund." + } + }, + "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" + } + }, + "required": [ + "scenario", + "initiator", + "initiatorType" + ] + }, + "CurrencyConverter": { + "title": "CurrencyConverter", + "type": "string", + "enum": [ + "PAYER", + "PAYEE" + ], + "description": "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": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the transfer in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the transfer in the target currency." + } + ] + } + }, + "required": [ + "sourceAmount", + "targetAmount" + ] + }, + "QuotesPostRequest": { + "title": "QuotesPostRequest", + "type": "object", + "description": "The object sent in the POST /quotes request.", + "properties": { + "quoteId": { + "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" + }, + "transactionId": { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + "transactionRequestId": { + "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" + }, + "payee": { + "title": "Party", + "type": "object", + "description": "Data model for the complex type Party.", + "properties": { + "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": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "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." + }, + "name": { + "title": "PartyName", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Name of the Party. Could be a real name or a nickname." + }, + "personalInfo": { + "title": "PartyPersonalInfo", + "type": "object", + "description": "Data model for the complex type PartyPersonalInfo.", + "properties": { + "complexName": { + "title": "PartyComplexName", + "type": "object", + "description": "Data model for the complex type PartyComplexName.", + "properties": { + "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" + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + } + } + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + } + }, + "required": [ + "partyIdInfo" + ] + }, + "payer": { + "title": "Party", + "type": "object", + "description": "Data model for the complex type Party.", + "properties": { + "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": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "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." + }, + "name": { + "title": "PartyName", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Name of the Party. Could be a real name or a nickname." + }, + "personalInfo": { + "title": "PartyPersonalInfo", + "type": "object", + "description": "Data model for the complex type PartyPersonalInfo.", + "properties": { + "complexName": { + "title": "PartyComplexName", + "type": "object", + "description": "Data model for the complex type PartyComplexName.", + "properties": { + "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" + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + } + } + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + } + }, + "required": [ + "partyIdInfo" + ] + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "fees": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "transactionType": { + "title": "TransactionType", + "type": "object", + "description": "Data model for the complex type TransactionType.", + "properties": { + "scenario": { + "title": "TransactionScenario", + "type": "string", + "enum": [ + "DEPOSIT", + "WITHDRAWAL", + "TRANSFER", + "PAYMENT", + "REFUND" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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.\n- TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to Consumer) transaction.\n- 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.\n- REFUND - Used for performing a refund of transaction.", + "example": "DEPOSIT" + }, + "subScenario": { + "title": "TransactionSubScenario", + "type": "string", + "pattern": "^[A-Z_]{1,32}$", + "description": "Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type).", + "example": "LOCALLY_DEFINED_SUBSCENARIO" + }, + "initiator": { + "title": "TransactionInitiator", + "type": "string", + "enum": [ + "PAYER", + "PAYEE" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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" + }, + "initiatorType": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "refundInfo": { + "title": "Refund", + "type": "object", + "description": "Data model for the complex type Refund.", + "properties": { + "originalTransactionId": { + "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" + }, + "refundReason": { + "title": "RefundReason", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Reason for the refund.", + "example": "Free text indicating reason for the refund." + } + }, + "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" + } + }, + "required": [ + "scenario", + "initiator", + "initiatorType" + ] + }, + "converter": { + "allOf": [ + { + "title": "CurrencyConverter", + "type": "string", + "enum": [ + "PAYER", + "PAYEE" + ], + "description": "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." + }, + { + "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": [ + { + "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": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the transfer in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the transfer in the target currency." + } + ] + } + }, + "required": [ + "sourceAmount", + "targetAmount" + ] + }, + { + "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": { + "title": "GeoCode", + "type": "object", + "description": "Data model for the complex type GeoCode. Indicates the geographic location from where the transaction was initiated.", + "properties": { + "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" + } + }, + "required": [ + "latitude", + "longitude" + ] + }, + "note": { + "title": "Note", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Memo assigned to transaction.", + "example": "Note sent to Payee." + }, + "expiration": { + "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" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "quoteId", + "transactionId", + "payee", + "payer", + "amountType", + "amount", + "transactionType" + ] + }, + "simpleQuotesPostRequest": { + "title": "simpleQuotesPostRequest", + "type": "object", + "properties": { + "fspId": { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + "quotesPostRequest": { + "title": "QuotesPostRequest", + "type": "object", + "description": "The object sent in the POST /quotes request.", + "properties": { + "quoteId": { + "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" + }, + "transactionId": { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + "transactionRequestId": { + "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" + }, + "payee": { + "title": "Party", + "type": "object", + "description": "Data model for the complex type Party.", + "properties": { + "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": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "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." + }, + "name": { + "title": "PartyName", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Name of the Party. Could be a real name or a nickname." + }, + "personalInfo": { + "title": "PartyPersonalInfo", + "type": "object", + "description": "Data model for the complex type PartyPersonalInfo.", + "properties": { + "complexName": { + "title": "PartyComplexName", + "type": "object", + "description": "Data model for the complex type PartyComplexName.", + "properties": { + "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" + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + } + } + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + } + }, + "required": [ + "partyIdInfo" + ] + }, + "payer": { + "title": "Party", + "type": "object", + "description": "Data model for the complex type Party.", + "properties": { + "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": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "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." + }, + "name": { + "title": "PartyName", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Name of the Party. Could be a real name or a nickname." + }, + "personalInfo": { + "title": "PartyPersonalInfo", + "type": "object", + "description": "Data model for the complex type PartyPersonalInfo.", + "properties": { + "complexName": { + "title": "PartyComplexName", + "type": "object", + "description": "Data model for the complex type PartyComplexName.", + "properties": { + "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" + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + } + } + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + } + }, + "required": [ + "partyIdInfo" + ] + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "fees": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "transactionType": { + "title": "TransactionType", + "type": "object", + "description": "Data model for the complex type TransactionType.", + "properties": { + "scenario": { + "title": "TransactionScenario", + "type": "string", + "enum": [ + "DEPOSIT", + "WITHDRAWAL", + "TRANSFER", + "PAYMENT", + "REFUND" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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.\n- TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to Consumer) transaction.\n- 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.\n- REFUND - Used for performing a refund of transaction.", + "example": "DEPOSIT" + }, + "subScenario": { + "title": "TransactionSubScenario", + "type": "string", + "pattern": "^[A-Z_]{1,32}$", + "description": "Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type).", + "example": "LOCALLY_DEFINED_SUBSCENARIO" + }, + "initiator": { + "title": "TransactionInitiator", + "type": "string", + "enum": [ + "PAYER", + "PAYEE" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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" + }, + "initiatorType": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "refundInfo": { + "title": "Refund", + "type": "object", + "description": "Data model for the complex type Refund.", + "properties": { + "originalTransactionId": { + "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" + }, + "refundReason": { + "title": "RefundReason", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Reason for the refund.", + "example": "Free text indicating reason for the refund." + } + }, + "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" + } + }, + "required": [ + "scenario", + "initiator", + "initiatorType" + ] + }, + "converter": { + "allOf": [ + { + "title": "CurrencyConverter", + "type": "string", + "enum": [ + "PAYER", + "PAYEE" + ], + "description": "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." + }, + { + "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": [ + { + "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": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the transfer in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the transfer in the target currency." + } + ] + } + }, + "required": [ + "sourceAmount", + "targetAmount" + ] + }, + { + "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": { + "title": "GeoCode", + "type": "object", + "description": "Data model for the complex type GeoCode. Indicates the geographic location from where the transaction was initiated.", + "properties": { + "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" + } + }, + "required": [ + "latitude", + "longitude" + ] + }, + "note": { + "title": "Note", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Memo assigned to transaction.", + "example": "Note sent to Payee." + }, + "expiration": { + "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" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "quoteId", + "transactionId", + "payee", + "payer", + "amountType", + "amount", + "transactionType" + ] + } + }, + "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": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeReceiveAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspFee": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspCommission": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "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": { + "title": "GeoCode", + "type": "object", + "description": "Data model for the complex type GeoCode. Indicates the geographic location from where the transaction was initiated.", + "properties": { + "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" + } + }, + "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" + }, + "condition": { + "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", + "description": "Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment.", + "properties": { + "extension": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferAmount", + "expiration", + "ilpPacket", + "condition" + ] + }, + "headers": { + "type": "object" + } + }, + "required": [ + "body", + "headers" + ] + }, + "currentState": { + "type": "string", + "enum": [ + "WAITING_FOR_ACTION", + "COMPLETED", + "ERROR_OCCURRED" + ] + } + }, + "required": [ + "quotes", + "currentState" + ] + }, + "errorQuotesResponse": { + "allOf": [ + { + "type": "object", + "properties": { + "statusCode": { + "type": "string", + "description": "Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.\nOtherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.\n" + }, + "message": { + "type": "string", + "description": "Error message text." + } + } + }, + { + "type": "object" + } + ] + }, + "AuthenticationType": { + "title": "AuthenticationType", + "type": "string", + "enum": [ + "OTP", + "QRCODE", + "U2F" + ], + "description": "Below are the allowed values for the enumeration AuthenticationType.\n- OTP - One-time password generated by the Payer FSP.\n- QRCODE - QR code used as One Time Password.\n- 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": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "to": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "transactionType": { + "title": "TransactionScenario", + "type": "string", + "enum": [ + "DEPOSIT", + "WITHDRAWAL", + "TRANSFER", + "PAYMENT", + "REFUND" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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.\n- TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to Consumer) transaction.\n- 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.\n- REFUND - Used for performing a refund of transaction.", + "example": "DEPOSIT" + }, + "subScenario": { + "title": "TransactionSubScenario", + "type": "string", + "pattern": "^[A-Z_]{1,32}$", + "description": "Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type).", + "example": "LOCALLY_DEFINED_SUBSCENARIO" + }, + "authenticationType": { + "title": "AuthenticationType", + "type": "string", + "enum": [ + "OTP", + "QRCODE", + "U2F" + ], + "description": "Below are the allowed values for the enumeration AuthenticationType.\n- OTP - One-time password generated by the Payer FSP.\n- QRCODE - QR code used as One Time Password.\n- U2F - U2F is a new addition isolated to Thirdparty stream.", + "example": "OTP" + } + } + }, + "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": { + "title": "Party", + "type": "object", + "description": "Data model for the complex type Party.", + "properties": { + "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": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "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." + }, + "name": { + "title": "PartyName", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Name of the Party. Could be a real name or a nickname." + }, + "personalInfo": { + "title": "PartyPersonalInfo", + "type": "object", + "description": "Data model for the complex type PartyPersonalInfo.", + "properties": { + "complexName": { + "title": "PartyComplexName", + "type": "object", + "description": "Data model for the complex type PartyComplexName.", + "properties": { + "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" + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + } + } + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + } + }, + "required": [ + "partyIdInfo" + ] + }, + "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.\n- RECEIVED - Payer FSP has received the transaction from the Payee FSP.\n- PENDING - Payer FSP has sent the transaction request to the Payer.\n- ACCEPTED - Payer has approved the transaction.\n- 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": { + "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" + }, + "transactionRequestState": { + "title": "TransactionRequestState", + "type": "string", + "enum": [ + "RECEIVED", + "PENDING", + "ACCEPTED", + "REJECTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Payer FSP has received the transaction from the Payee FSP.\n- PENDING - Payer FSP has sent the transaction request to the Payer.\n- ACCEPTED - Payer has approved the transaction.\n- REJECTED - Payer has rejected the transaction.", + "example": "RECEIVED" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transactionRequestState" + ] + }, + "headers": { + "type": "object" + } + }, + "required": [ + "body", + "headers" + ] + }, + "requestToPayResponse": { + "type": "object", + "required": [ + "transactionRequestId", + "from", + "to", + "amountType", + "currency", + "amount", + "transactionType", + "currentState" + ], + "properties": { + "transactionRequestId": { + "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" + }, + "from": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "to": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "transactionType": { + "title": "TransactionScenario", + "type": "string", + "enum": [ + "DEPOSIT", + "WITHDRAWAL", + "TRANSFER", + "PAYMENT", + "REFUND" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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.\n- TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to Consumer) transaction.\n- 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.\n- REFUND - Used for performing a refund of transaction.", + "example": "DEPOSIT" + }, + "subScenario": { + "title": "TransactionSubScenario", + "type": "string", + "pattern": "^[A-Z_]{1,32}$", + "description": "Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type).", + "example": "LOCALLY_DEFINED_SUBSCENARIO" + }, + "currentState": { + "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": { + "title": "Party", + "type": "object", + "description": "Data model for the complex type Party.", + "properties": { + "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": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "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." + }, + "name": { + "title": "PartyName", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Name of the Party. Could be a real name or a nickname." + }, + "personalInfo": { + "title": "PartyPersonalInfo", + "type": "object", + "description": "Data model for the complex type PartyPersonalInfo.", + "properties": { + "complexName": { + "title": "PartyComplexName", + "type": "object", + "description": "Data model for the complex type PartyComplexName.", + "properties": { + "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" + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + } + } + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + } + }, + "required": [ + "partyIdInfo" + ] + }, + "headers": { + "type": "object" + } + }, + "required": [ + "body", + "headers" + ] + }, + "transactionRequestResponse": { + "title": "TransactionRequestResponse", + "type": "object", + "description": "The object sent in the PUT /transactionRequests/{ID} callback.", + "properties": { + "body": { + "type": "object", + "properties": { + "transactionId": { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + "transactionRequestState": { + "title": "TransactionRequestState", + "type": "string", + "enum": [ + "RECEIVED", + "PENDING", + "ACCEPTED", + "REJECTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Payer FSP has received the transaction from the Payee FSP.\n- PENDING - Payer FSP has sent the transaction request to the Payer.\n- ACCEPTED - Payer has approved the transaction.\n- REJECTED - Payer has rejected the transaction.", + "example": "RECEIVED" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transactionRequestState" + ] + }, + "headers": { + "type": "object" + } + }, + "required": [ + "body", + "headers" + ] + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + } + } + }, + "transferStatus": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "WAITING_FOR_PARTY_ACCEPTANCE", + "WAITING_FOR_QUOTE_ACCEPTANCE", + "WAITING_FOR_CONVERSION_ACCEPTANCE", + "COMPLETED" + ] + }, + "QuotesIDPutResponse": { + "title": "QuotesIDPutResponse", + "type": "object", + "description": "The object sent in the PUT /quotes/{ID} callback.", + "properties": { + "transferAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeReceiveAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspFee": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspCommission": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "expiration": { + "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" + }, + "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": { + "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" + } + }, + "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" + }, + "condition": { + "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", + "description": "Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment.", + "properties": { + "extension": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferAmount", + "expiration", + "ilpPacket", + "condition" + ] + }, + "FxMoney": { + "title": "FxMoney", + "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.", + "properties": { + "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" + } + }, + "required": [ + "currency" + ] + }, + "FxCharge": { + "title": "FxCharge", + "type": "object", + "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": { + "chargeType": { + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "A description of the charge which is being levied." + }, + "sourceAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the charge which is being levied, expressed in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the charge which is being levied, expressed in the target currency." + } + ] + } + }, + "required": [ + "chargeType" + ] + }, + "FxConversion": { + "title": "FxConversion", + "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.", + "properties": { + "conversionId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "An end-to-end identifier for the conversion request." + } + ] + }, + "determiningTransferId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "The transaction ID of the transfer on whose success this currency conversion depends." + } + ] + }, + "initiatingFsp": { + "allOf": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "The id of the participant who is requesting a currency conversion." + } + ] + }, + "counterPartyFsp": { + "allOf": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "The ID of the FXP performing the conversion." + } + ] + }, + "amountType": { + "allOf": [ + { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + { + "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": [ + { + "title": "FxMoney", + "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.", + "properties": { + "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" + } + }, + "required": [ + "currency" + ] + }, + { + "description": "The amount to be converted, expressed in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "FxMoney", + "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.", + "properties": { + "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" + } + }, + "required": [ + "currency" + ] + }, + { + "description": "The converted amount, expressed in the target currency." + } + ] + }, + "expiration": { + "allOf": [ + { + "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" + }, + { + "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": { + "title": "FxCharge", + "type": "object", + "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": { + "chargeType": { + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "A description of the charge which is being levied." + }, + "sourceAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the charge which is being levied, expressed in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the charge which is being levied, expressed in the target currency." + } + ] + } + }, + "required": [ + "chargeType" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "extensionList": { + "allOf": [ + { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + { + "description": "The extension list for the currency conversion request." + } + ] + } + }, + "required": [ + "conversionId", + "initiatingFsp", + "counterPartyFsp", + "amountType", + "sourceAmount", + "targetAmount", + "expiration" + ] + }, + "FxQuotesPostOutboundResponse": { + "title": "FxQuotesPostOutboundResponse", + "type": "object", + "description": "The object sent as a response for the POST /fxQuotes request. The terms under which the FXP will undertake the currency conversion proposed by the requester.", + "properties": { + "homeTransactionId": { + "description": "Transaction ID for the FXP backend, used to reconcile transactions between the Switch and FXP backend systems.", + "type": "string" + }, + "condition": { + "allOf": [ + { + "title": "IlpCondition", + "type": "string", + "pattern": "^[A-Za-z0-9-_]{43}$", + "maxLength": 48, + "description": "Condition that must be attached to the transfer by the Payer." + }, + { + "description": "The ILP condition for the conversion." + } + ] + }, + "conversionTerms": { + "allOf": [ + { + "title": "FxConversion", + "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.", + "properties": { + "conversionId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "An end-to-end identifier for the conversion request." + } + ] + }, + "determiningTransferId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "The transaction ID of the transfer on whose success this currency conversion depends." + } + ] + }, + "initiatingFsp": { + "allOf": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "The id of the participant who is requesting a currency conversion." + } + ] + }, + "counterPartyFsp": { + "allOf": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "The ID of the FXP performing the conversion." + } + ] + }, + "amountType": { + "allOf": [ + { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + { + "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": [ + { + "title": "FxMoney", + "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.", + "properties": { + "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" + } + }, + "required": [ + "currency" + ] + }, + { + "description": "The amount to be converted, expressed in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "FxMoney", + "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.", + "properties": { + "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" + } + }, + "required": [ + "currency" + ] + }, + { + "description": "The converted amount, expressed in the target currency." + } + ] + }, + "expiration": { + "allOf": [ + { + "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" + }, + { + "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": { + "title": "FxCharge", + "type": "object", + "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": { + "chargeType": { + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "A description of the charge which is being levied." + }, + "sourceAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the charge which is being levied, expressed in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the charge which is being levied, expressed in the target currency." + } + ] + } + }, + "required": [ + "chargeType" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "extensionList": { + "allOf": [ + { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + { + "description": "The extension list for the currency conversion request." + } + ] + } + }, + "required": [ + "conversionId", + "initiatingFsp", + "counterPartyFsp", + "amountType", + "sourceAmount", + "targetAmount", + "expiration" + ] + }, + { + "description": "The terms under which the FXP will undertake the currency conversion proposed by the requester." + } + ] + } + }, + "required": [ + "conversionTerms" + ] + }, + "TransfersIDPutResponse": { + "title": "TransfersIDPutResponse", + "type": "object", + "description": "The object sent in the PUT /transfers/{ID} callback.", + "properties": { + "fulfilment": { + "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" + }, + "completedTimestamp": { + "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" + }, + "transferState": { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferState" + ] + }, + "transferResponse": { + "type": "object", + "required": [ + "homeTransactionId", + "from", + "to", + "amountType", + "currency", + "amount", + "transactionType" + ], + "properties": { + "transferId": { + "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" + }, + "homeTransactionId": { + "type": "string", + "description": "Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems." + }, + "from": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "to": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "transactionType": { + "title": "transferTransactionType", + "type": "string", + "enum": [ + "TRANSFER" + ], + "description": "Type of transaction." + }, + "subScenario": { + "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." + }, + "currentState": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "WAITING_FOR_PARTY_ACCEPTANCE", + "WAITING_FOR_QUOTE_ACCEPTANCE", + "WAITING_FOR_CONVERSION_ACCEPTANCE", + "COMPLETED" + ] + }, + "quoteId": { + "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" + }, + "getPartiesResponse": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object" + }, + "headers": { + "type": "object" + } + } + }, + "quoteResponse": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "title": "QuotesIDPutResponse", + "type": "object", + "description": "The object sent in the PUT /quotes/{ID} callback.", + "properties": { + "transferAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeReceiveAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspFee": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspCommission": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "expiration": { + "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" + }, + "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": { + "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" + } + }, + "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" + }, + "condition": { + "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", + "description": "Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment.", + "properties": { + "extension": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferAmount", + "expiration", + "ilpPacket", + "condition" + ] + }, + "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.\n" + }, + "conversionRequestId": { + "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" + }, + "fxQuotesResponse": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "title": "FxQuotesPostOutboundResponse", + "type": "object", + "description": "The object sent as a response for the POST /fxQuotes request. The terms under which the FXP will undertake the currency conversion proposed by the requester.", + "properties": { + "homeTransactionId": { + "description": "Transaction ID for the FXP backend, used to reconcile transactions between the Switch and FXP backend systems.", + "type": "string" + }, + "condition": { + "allOf": [ + { + "title": "IlpCondition", + "type": "string", + "pattern": "^[A-Za-z0-9-_]{43}$", + "maxLength": 48, + "description": "Condition that must be attached to the transfer by the Payer." + }, + { + "description": "The ILP condition for the conversion." + } + ] + }, + "conversionTerms": { + "allOf": [ + { + "title": "FxConversion", + "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.", + "properties": { + "conversionId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "An end-to-end identifier for the conversion request." + } + ] + }, + "determiningTransferId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "The transaction ID of the transfer on whose success this currency conversion depends." + } + ] + }, + "initiatingFsp": { + "allOf": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "The id of the participant who is requesting a currency conversion." + } + ] + }, + "counterPartyFsp": { + "allOf": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "The ID of the FXP performing the conversion." + } + ] + }, + "amountType": { + "allOf": [ + { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + { + "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": [ + { + "title": "FxMoney", + "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.", + "properties": { + "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" + } + }, + "required": [ + "currency" + ] + }, + { + "description": "The amount to be converted, expressed in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "FxMoney", + "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.", + "properties": { + "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" + } + }, + "required": [ + "currency" + ] + }, + { + "description": "The converted amount, expressed in the target currency." + } + ] + }, + "expiration": { + "allOf": [ + { + "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" + }, + { + "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": { + "title": "FxCharge", + "type": "object", + "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": { + "chargeType": { + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "A description of the charge which is being levied." + }, + "sourceAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the charge which is being levied, expressed in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the charge which is being levied, expressed in the target currency." + } + ] + } + }, + "required": [ + "chargeType" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "extensionList": { + "allOf": [ + { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + { + "description": "The extension list for the currency conversion request." + } + ] + } + }, + "required": [ + "conversionId", + "initiatingFsp", + "counterPartyFsp", + "amountType", + "sourceAmount", + "targetAmount", + "expiration" + ] + }, + { + "description": "The terms under which the FXP will undertake the currency conversion proposed by the requester." + } + ] + } + }, + "required": [ + "conversionTerms" + ] + }, + "headers": { + "type": "object" + } + } + }, + "fxQuotesResponseSource": { + "type": "string", + "description": "FXPID of the entity that supplied the fxQuotes response.\n" + }, + "fulfil": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "title": "TransfersIDPutResponse", + "type": "object", + "description": "The object sent in the PUT /transfers/{ID} callback.", + "properties": { + "fulfilment": { + "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" + }, + "completedTimestamp": { + "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" + }, + "transferState": { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferState" + ] + }, + "headers": { + "type": "object" + } + } + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + }, + "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": [ + { + "type": "object", + "properties": { + "statusCode": { + "type": "string", + "description": "Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.\nOtherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.\n" + }, + "message": { + "type": "string", + "description": "Error message text." + } + } + }, + { + "type": "object", + "required": [ + "transferState" + ], + "properties": { + "transferState": { + "type": "object", + "required": [ + "homeTransactionId", + "from", + "to", + "amountType", + "currency", + "amount", + "transactionType" + ], + "properties": { + "transferId": { + "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" + }, + "homeTransactionId": { + "type": "string", + "description": "Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems." + }, + "from": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "to": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "transactionType": { + "title": "transferTransactionType", + "type": "string", + "enum": [ + "TRANSFER" + ], + "description": "Type of transaction." + }, + "subScenario": { + "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." + }, + "currentState": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "WAITING_FOR_PARTY_ACCEPTANCE", + "WAITING_FOR_QUOTE_ACCEPTANCE", + "WAITING_FOR_CONVERSION_ACCEPTANCE", + "COMPLETED" + ] + }, + "quoteId": { + "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" + }, + "getPartiesResponse": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object" + }, + "headers": { + "type": "object" + } + } + }, + "quoteResponse": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "title": "QuotesIDPutResponse", + "type": "object", + "description": "The object sent in the PUT /quotes/{ID} callback.", + "properties": { + "transferAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeReceiveAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspFee": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspCommission": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "expiration": { + "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" + }, + "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": { + "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" + } + }, + "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" + }, + "condition": { + "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", + "description": "Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment.", + "properties": { + "extension": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferAmount", + "expiration", + "ilpPacket", + "condition" + ] + }, + "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.\n" + }, + "conversionRequestId": { + "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" + }, + "fxQuotesResponse": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "title": "FxQuotesPostOutboundResponse", + "type": "object", + "description": "The object sent as a response for the POST /fxQuotes request. The terms under which the FXP will undertake the currency conversion proposed by the requester.", + "properties": { + "homeTransactionId": { + "description": "Transaction ID for the FXP backend, used to reconcile transactions between the Switch and FXP backend systems.", + "type": "string" + }, + "condition": { + "allOf": [ + { + "title": "IlpCondition", + "type": "string", + "pattern": "^[A-Za-z0-9-_]{43}$", + "maxLength": 48, + "description": "Condition that must be attached to the transfer by the Payer." + }, + { + "description": "The ILP condition for the conversion." + } + ] + }, + "conversionTerms": { + "allOf": [ + { + "title": "FxConversion", + "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.", + "properties": { + "conversionId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "An end-to-end identifier for the conversion request." + } + ] + }, + "determiningTransferId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "The transaction ID of the transfer on whose success this currency conversion depends." + } + ] + }, + "initiatingFsp": { + "allOf": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "The id of the participant who is requesting a currency conversion." + } + ] + }, + "counterPartyFsp": { + "allOf": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "The ID of the FXP performing the conversion." + } + ] + }, + "amountType": { + "allOf": [ + { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + { + "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": [ + { + "title": "FxMoney", + "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.", + "properties": { + "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" + } + }, + "required": [ + "currency" + ] + }, + { + "description": "The amount to be converted, expressed in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "FxMoney", + "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.", + "properties": { + "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" + } + }, + "required": [ + "currency" + ] + }, + { + "description": "The converted amount, expressed in the target currency." + } + ] + }, + "expiration": { + "allOf": [ + { + "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" + }, + { + "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": { + "title": "FxCharge", + "type": "object", + "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": { + "chargeType": { + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "A description of the charge which is being levied." + }, + "sourceAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the charge which is being levied, expressed in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the charge which is being levied, expressed in the target currency." + } + ] + } + }, + "required": [ + "chargeType" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "extensionList": { + "allOf": [ + { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + { + "description": "The extension list for the currency conversion request." + } + ] + } + }, + "required": [ + "conversionId", + "initiatingFsp", + "counterPartyFsp", + "amountType", + "sourceAmount", + "targetAmount", + "expiration" + ] + }, + { + "description": "The terms under which the FXP will undertake the currency conversion proposed by the requester." + } + ] + } + }, + "required": [ + "conversionTerms" + ] + }, + "headers": { + "type": "object" + } + } + }, + "fxQuotesResponseSource": { + "type": "string", + "description": "FXPID of the entity that supplied the fxQuotes response.\n" + }, + "fulfil": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "title": "TransfersIDPutResponse", + "type": "object", + "description": "The object sent in the PUT /transfers/{ID} callback.", + "properties": { + "fulfilment": { + "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" + }, + "completedTimestamp": { + "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" + }, + "transferState": { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferState" + ] + }, + "headers": { + "type": "object" + } + } + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + }, + "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" + } + } + } + } + } + ] + }, + "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": { + "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" + }, + "from": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "to": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "scenario": { + "title": "TransactionScenario", + "type": "string", + "enum": [ + "DEPOSIT", + "WITHDRAWAL", + "TRANSFER", + "PAYMENT", + "REFUND" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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.\n- TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to Consumer) transaction.\n- 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.\n- REFUND - Used for performing a refund of transaction.", + "example": "DEPOSIT" + }, + "subScenario": { + "title": "TransactionSubScenario", + "type": "string", + "pattern": "^[A-Z_]{1,32}$", + "description": "Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type).", + "example": "LOCALLY_DEFINED_SUBSCENARIO" + }, + "initiator": { + "title": "TransactionInitiator", + "type": "string", + "enum": [ + "PAYER", + "PAYEE" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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" + }, + "initiatorType": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "note": { + "title": "Note", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Memo assigned to transaction.", + "example": "Note sent to Payee." + }, + "authenticationType": { + "title": "AuthenticationType", + "type": "string", + "enum": [ + "OTP", + "QRCODE", + "U2F" + ], + "description": "Below are the allowed values for the enumeration AuthenticationType.\n- OTP - One-time password generated by the Payer FSP.\n- QRCODE - QR code used as One Time Password.\n- U2F - U2F is a new addition isolated to Thirdparty stream.", + "example": "OTP" + } + } + }, + "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.\n", + "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.\n" + }, + "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": { + "title": "AuthenticationType", + "type": "string", + "enum": [ + "OTP", + "QRCODE", + "U2F" + ], + "description": "Below are the allowed values for the enumeration AuthenticationType.\n- OTP - One-time password generated by the Payer FSP.\n- QRCODE - QR code used as One Time Password.\n- U2F - U2F is a new addition isolated to Thirdparty stream.", + "example": "OTP" + }, + "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.\n", + "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.\n" + }, + "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." + } + }, + "required": [ + "authentication", + "authenticationValue" + ] + }, + "AuthorizationResponseType": { + "title": "AuthorizationResponseType", + "type": "string", + "enum": [ + "ENTERED", + "REJECTED", + "RESEND" + ], + "description": "Below are the allowed values for the enumeration.\n- ENTERED - Consumer entered the authentication value.\n- REJECTED - Consumer rejected the transaction.\n- 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": { + "title": "AuthenticationInfo", + "type": "object", + "description": "Data model for the complex type AuthenticationInfo.", + "properties": { + "authentication": { + "title": "AuthenticationType", + "type": "string", + "enum": [ + "OTP", + "QRCODE", + "U2F" + ], + "description": "Below are the allowed values for the enumeration AuthenticationType.\n- OTP - One-time password generated by the Payer FSP.\n- QRCODE - QR code used as One Time Password.\n- U2F - U2F is a new addition isolated to Thirdparty stream.", + "example": "OTP" + }, + "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.\n", + "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.\n" + }, + "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." + } + }, + "required": [ + "authentication", + "authenticationValue" + ] + }, + "responseType": { + "title": "AuthorizationResponseType", + "type": "string", + "enum": [ + "ENTERED", + "REJECTED", + "RESEND" + ], + "description": "Below are the allowed values for the enumeration.\n- ENTERED - Consumer entered the authentication value.\n- REJECTED - Consumer rejected the transaction.\n- RESEND - Consumer requested to resend the authentication value.", + "example": "ENTERED" + } + }, + "required": [ + "responseType" + ] + }, + "requestToPayTransferResponse": { + "type": "object", + "required": [ + "transactionRequestId", + "from", + "to", + "amountType", + "currency", + "amount", + "transactionType" + ], + "properties": { + "transferId": { + "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" + }, + "homeR2PTransactionId": { + "type": "string", + "description": "Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems." + }, + "transactionRequestId": { + "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" + }, + "from": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "to": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "transactionType": { + "title": "transferTransactionType", + "type": "string", + "enum": [ + "TRANSFER" + ], + "description": "Type of transaction." + }, + "note": { + "title": "Note", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Memo assigned to transaction.", + "example": "Note sent to Payee." + }, + "currentState": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "WAITING_FOR_PARTY_ACCEPTANCE", + "WAITING_FOR_QUOTE_ACCEPTANCE", + "WAITING_FOR_CONVERSION_ACCEPTANCE", + "COMPLETED" + ] + }, + "quoteId": { + "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" + }, + "quoteResponse": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "title": "QuotesIDPutResponse", + "type": "object", + "description": "The object sent in the PUT /quotes/{ID} callback.", + "properties": { + "transferAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeReceiveAmount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspFee": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "payeeFspCommission": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "expiration": { + "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" + }, + "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": { + "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" + } + }, + "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" + }, + "condition": { + "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", + "description": "Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment.", + "properties": { + "extension": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferAmount", + "expiration", + "ilpPacket", + "condition" + ] + }, + "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.\n" + }, + "authorizationResponse": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "title": "AuthorizationIDPutResponse", + "type": "object", + "description": "The object sent in the PUT /authorizations/{ID} callback.", + "properties": { + "authenticationInfo": { + "title": "AuthenticationInfo", + "type": "object", + "description": "Data model for the complex type AuthenticationInfo.", + "properties": { + "authentication": { + "title": "AuthenticationType", + "type": "string", + "enum": [ + "OTP", + "QRCODE", + "U2F" + ], + "description": "Below are the allowed values for the enumeration AuthenticationType.\n- OTP - One-time password generated by the Payer FSP.\n- QRCODE - QR code used as One Time Password.\n- U2F - U2F is a new addition isolated to Thirdparty stream.", + "example": "OTP" + }, + "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.\n", + "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.\n" + }, + "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." + } + }, + "required": [ + "authentication", + "authenticationValue" + ] + }, + "responseType": { + "title": "AuthorizationResponseType", + "type": "string", + "enum": [ + "ENTERED", + "REJECTED", + "RESEND" + ], + "description": "Below are the allowed values for the enumeration.\n- ENTERED - Consumer entered the authentication value.\n- REJECTED - Consumer rejected the transaction.\n- RESEND - Consumer requested to resend the authentication value.", + "example": "ENTERED" + } + }, + "required": [ + "responseType" + ] + }, + "headers": { + "type": "object" + } + } + }, + "fulfil": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "title": "TransfersIDPutResponse", + "type": "object", + "description": "The object sent in the PUT /transfers/{ID} callback.", + "properties": { + "fulfilment": { + "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" + }, + "completedTimestamp": { + "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" + }, + "transferState": { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferState" + ] + }, + "headers": { + "type": "object" + } + } + }, + "lastError": { + "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": { + "type": "object", + "properties": { + "errorInformation": { + "title": "ErrorInformation", + "type": "object", + "description": "Data model for the complex type ErrorInformation.", + "properties": { + "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." + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "errorCode", + "errorDescription" + ] + } + } + } + } + } + } + }, + "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": { + "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" + }, + "payeeFsp": { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + "payerFsp": { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + "amount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "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" + }, + "condition": { + "title": "IlpCondition", + "type": "string", + "pattern": "^[A-Za-z0-9-_]{43}$", + "maxLength": 48, + "description": "Condition that must be attached to the transfer by the Payer." + }, + "expiration": { + "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" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferId", + "payeeFsp", + "payerFsp", + "amount", + "ilpPacket", + "condition", + "expiration" + ] + }, + "simpleTransfersPostRequest": { + "title": "SimpleTransfersPostRequest", + "type": "object", + "properties": { + "fspId": { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + "transfersPostRequest": { + "title": "TransfersPostRequest", + "type": "object", + "description": "The object sent in the POST /transfers request.", + "properties": { + "transferId": { + "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" + }, + "payeeFsp": { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + "payerFsp": { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + "amount": { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + "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" + }, + "condition": { + "title": "IlpCondition", + "type": "string", + "pattern": "^[A-Za-z0-9-_]{43}$", + "maxLength": 48, + "description": "Condition that must be attached to the transfer by the Payer." + }, + "expiration": { + "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" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferId", + "payeeFsp", + "payerFsp", + "amount", + "ilpPacket", + "condition", + "expiration" + ] + } + }, + "required": [ + "fspId", + "transfersPostRequest" + ] + }, + "simpleTransfersPostResponse": { + "title": "SimpleTransfersPostResponse", + "type": "object", + "properties": { + "transfer": { + "properties": { + "body": { + "title": "TransfersIDPutResponse", + "type": "object", + "description": "The object sent in the PUT /transfers/{ID} callback.", + "properties": { + "fulfilment": { + "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" + }, + "completedTimestamp": { + "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" + }, + "transferState": { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferState" + ] + }, + "headers": { + "type": "object" + } + }, + "required": [ + "body", + "headers" + ] + }, + "currentState": { + "type": "string", + "enum": [ + "WAITING_FOR_ACTION", + "COMPLETED", + "ERROR_OCCURRED" + ] + } + }, + "required": [ + "transfer", + "currentState" + ] + }, + "errorSimpleTransfersResponse": { + "allOf": [ + { + "type": "object", + "properties": { + "statusCode": { + "type": "string", + "description": "Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.\nOtherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.\n" + }, + "message": { + "type": "string", + "description": "Error message text." + } + } + }, + { + "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": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "to": { + "type": "object", + "required": [ + "idType", + "idValue" + ], + "properties": { + "type": { + "title": "TransactionInitiatorType", + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ], + "description": "Below are the allowed values for the enumeration.\n- CONSUMER - Consumer is the initiator of the transaction.\n- AGENT - Agent is the initiator of the transaction.\n- BUSINESS - Business is the initiator of the transaction.\n- DEVICE - Device is the initiator of the transaction.", + "example": "CONSUMER" + }, + "idType": { + "title": "PartyIdType", + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ], + "description": "Below are the allowed values for the enumeration.\n- 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.\n- 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).\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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." + }, + "idValue": { + "title": "PartyIdentifier", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier of the Party.", + "example": "16135551212" + }, + "idSubValue": { + "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." + }, + "displayName": { + "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.\n\nRegular 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 ( ).\n\n**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." + }, + "supportedCurrencies": { + "type": "array", + "description": "Currencies in which the party can receive funds.", + "items": { + "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" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "kycInformation": { + "title": "KYCInformation", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "KYC information for the party in a form mandated by an individual scheme.", + "example": "{\n \"metadata\": {\n \"format\": \"JSON\",\n \"version\": \"1.0\",\n \"description\": \"Data containing KYC Information\"\n },\n \"data\": {\n \"name\": \"John Doe\",\n \"dob\": \"1980-05-15\",\n \"gender\": \"Male\",\n \"address\": \"123 Main Street, Anytown, USA\",\n \"email\": \"johndoe@example.com\",\n \"phone\": \"+1 555-123-4567\",\n \"nationality\": \"US\",\n \"passport_number\": \"AB1234567\",\n \"issue_date\": \"2010-02-20\",\n \"expiry_date\": \"2025-02-20\",\n \"bank_account_number\": \"1234567890\",\n \"bank_name\": \"Example Bank\",\n \"employer\": \"ABC Company\",\n \"occupation\": \"Software Engineer\",\n \"income\": \"$80,000 per year\",\n \"marital_status\": \"Single\",\n \"dependents\": 0,\n \"risk_level\": \"Low\"\n }\n}" + }, + "extensionList": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + } + } + }, + "amountType": { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + "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" + }, + "transactionType": { + "title": "transferTransactionType", + "type": "string", + "enum": [ + "TRANSFER" + ], + "description": "Type of transaction." + }, + "subScenario": { + "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." + }, + "quoteRequestExtensions": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "transferRequestExtensions": { + "type": "array", + "items": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "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": { + "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" + }, + "currentState": { + "type": "string", + "enum": [ + "ERROR_OCCURRED", + "WAITING_FOR_PARTY_ACCEPTANCE", + "WAITING_FOR_QUOTE_ACCEPTANCE", + "WAITING_FOR_CONVERSION_ACCEPTANCE", + "COMPLETED" + ] + }, + "fulfil": { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "title": "TransfersIDPutResponse", + "type": "object", + "description": "The object sent in the PUT /transfers/{ID} callback.", + "properties": { + "fulfilment": { + "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" + }, + "completedTimestamp": { + "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" + }, + "transferState": { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "transferState" + ] + }, + "headers": { + "type": "object" + } + } + } + } + }, + "transferContinuationAcceptConversion": { + "type": "object", + "required": [ + "acceptConversion" + ], + "properties": { + "acceptConversion": { + "type": "boolean", + "enum": [ + true, + false + ] + } + } + }, + "ServicesFXPPutResponse": { + "title": "ServicesFXPPutResponse", + "type": "object", + "description": "The object sent in the PUT /services/FXP callback.", + "properties": { + "providers": { + "type": "array", + "description": "The FSP Id(s) of the participant(s) who offer currency conversion services.", + "items": { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + "minItems": 0, + "maxItems": 16 + } + }, + "required": [ + "providers" + ] + }, + "FxQuotesPostOutboundRequest": { + "title": "FxQuotesPostOutboundRequest", + "type": "object", + "description": "The object sent in the POST /fxQuotes request.", + "properties": { + "homeTransactionId": { + "description": "Transaction ID for the backend, used to reconcile transactions between the Switch and backend systems.", + "type": "string" + }, + "conversionRequestId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "An end-to-end identifier for the conversion quotation request." + } + ] + }, + "conversionTerms": { + "allOf": [ + { + "title": "FxConversion", + "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.", + "properties": { + "conversionId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "An end-to-end identifier for the conversion request." + } + ] + }, + "determiningTransferId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "The transaction ID of the transfer on whose success this currency conversion depends." + } + ] + }, + "initiatingFsp": { + "allOf": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "The id of the participant who is requesting a currency conversion." + } + ] + }, + "counterPartyFsp": { + "allOf": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "The ID of the FXP performing the conversion." + } + ] + }, + "amountType": { + "allOf": [ + { + "title": "AmountType", + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ], + "description": "Below are the allowed values for the enumeration AmountType.\n- SEND - Amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees.\n- 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" + }, + { + "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": [ + { + "title": "FxMoney", + "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.", + "properties": { + "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" + } + }, + "required": [ + "currency" + ] + }, + { + "description": "The amount to be converted, expressed in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "FxMoney", + "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.", + "properties": { + "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" + } + }, + "required": [ + "currency" + ] + }, + { + "description": "The converted amount, expressed in the target currency." + } + ] + }, + "expiration": { + "allOf": [ + { + "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" + }, + { + "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": { + "title": "FxCharge", + "type": "object", + "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": { + "chargeType": { + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "A description of the charge which is being levied." + }, + "sourceAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the charge which is being levied, expressed in the source currency." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount of the charge which is being levied, expressed in the target currency." + } + ] + } + }, + "required": [ + "chargeType" + ] + }, + "minItems": 0, + "maxItems": 16 + }, + "extensionList": { + "allOf": [ + { + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + }, + { + "description": "The extension list for the currency conversion request." + } + ] + } + }, + "required": [ + "conversionId", + "initiatingFsp", + "counterPartyFsp", + "amountType", + "sourceAmount", + "targetAmount", + "expiration" + ] + }, + { + "description": "The terms of the currency conversion for which a quotation is sought." + } + ] + } + }, + "required": [ + "conversionRequestId", + "conversionTerms" + ] + }, + "commitRequestId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "An end-to-end identifier for the confirmation request." + } + ] + }, + "determiningTransferId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "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": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "Identifier for the FSP who is requesting a currency conversion." + } + ] + }, + "counterPartyFsp": { + "allOf": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "Identifier for the FXP who is performing the currency conversion." + } + ] + }, + "sourceAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount being offered for conversion by the requesting FSP." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount which the FXP is to credit to the requesting FSP in the target currency." + } + ] + }, + "condition": { + "allOf": [ + { + "title": "IlpCondition", + "type": "string", + "pattern": "^[A-Za-z0-9-_]{43}$", + "maxLength": 48, + "description": "Condition that must be attached to the transfer by the Payer." + }, + { + "description": "ILP condition received by the requesting FSP when the quote was approved." + } + ] + }, + "FxTransfersPostOutboundRequest": { + "title": "FxTransfersPostOutboundRequest", + "type": "object", + "description": "The object sent in the POST /fxTransfers request.", + "properties": { + "homeTransactionId": { + "description": "Transaction ID for the backend, used to reconcile transactions between the Switch and backend systems.", + "type": "string" + }, + "commitRequestId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "An end-to-end identifier for the confirmation request." + } + ] + }, + "determiningTransferId": { + "allOf": [ + { + "title": "CorrelationId", + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", + "description": "Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).", + "example": "b51ec534-ee48-4575-b6a9-ead2955b8069" + }, + { + "description": "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": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "Identifier for the FSP who is requesting a currency conversion." + } + ] + }, + "counterPartyFsp": { + "allOf": [ + { + "title": "FspId", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "FSP identifier." + }, + { + "description": "Identifier for the FXP who is performing the currency conversion." + } + ] + }, + "sourceAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount being offered for conversion by the requesting FSP." + } + ] + }, + "targetAmount": { + "allOf": [ + { + "title": "Money", + "type": "object", + "description": "Data model for the complex type Money.", + "properties": { + "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" + } + }, + "required": [ + "currency", + "amount" + ] + }, + { + "description": "The amount which the FXP is to credit to the requesting FSP in the target currency." + } + ] + }, + "condition": { + "allOf": [ + { + "title": "IlpCondition", + "type": "string", + "pattern": "^[A-Za-z0-9-_]{43}$", + "maxLength": 48, + "description": "Condition that must be attached to the transfer by the Payer." + }, + { + "description": "ILP condition received by the requesting FSP when the quote was approved." + } + ] + } + }, + "required": [ + "commitRequestId", + "initiatingFsp", + "counterPartyFsp", + "sourceAmount", + "targetAmount" + ] + }, + "fulfilment": { + "allOf": [ + { + "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" + }, + { + "description": "The fulfilment of the condition specified for the currency conversion. Mandatory if the conversion has been executed successfully." + } + ] + }, + "completedTimestamp": { + "allOf": [ + { + "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" + }, + { + "description": "Time and date when the conversion was executed." + } + ] + }, + "conversionState": { + "allOf": [ + { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + { + "description": "The current status of the conversion request." + } + ] + }, + "FxTransfersPostOutboundResponse": { + "title": "FxTransfersPostOutboundResponse", + "type": "object", + "description": "The object sent as a response for the POST /fxTransfers request.", + "properties": { + "homeTransactionId": { + "description": "Transaction ID for the backend, used to reconcile transactions between the Switch and backend systems.", + "type": "string" + }, + "fulfilment": { + "allOf": [ + { + "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" + }, + { + "description": "The fulfilment of the condition specified for the currency conversion. Mandatory if the conversion has been executed successfully." + } + ] + }, + "completedTimestamp": { + "allOf": [ + { + "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" + }, + { + "description": "Time and date when the conversion was executed." + } + ] + }, + "conversionState": { + "allOf": [ + { + "title": "TransferState", + "type": "string", + "enum": [ + "RECEIVED", + "RESERVED", + "COMMITTED", + "ABORTED" + ], + "description": "Below are the allowed values for the enumeration.\n- RECEIVED - Next ledger has received the transfer.\n- RESERVED - Next ledger has reserved the transfer.\n- COMMITTED - Next ledger has successfully performed the transfer.\n- ABORTED - Next ledger has aborted the transfer due to a rejection or failure to perform the transfer.", + "example": "RESERVED" + }, + { + "description": "The current status of the conversion request." + } + ] + }, + "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": { + "title": "Extension", + "type": "object", + "description": "Data model for the complex type Extension.", + "properties": { + "key": { + "title": "ExtensionKey", + "type": "string", + "minLength": 1, + "maxLength": 32, + "description": "Extension key." + }, + "value": { + "title": "ExtensionValue", + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Extension value." + } + }, + "required": [ + "key", + "value" + ] + }, + "minItems": 1, + "maxItems": 16, + "description": "Number of Extension elements." + } + }, + "required": [ + "extension" + ] + } + }, + "required": [ + "conversionState" + ] + } +} \ No newline at end of file diff --git a/src/sdk-scheme-adapter/v2_1_0/outbound/openapi.ts b/src/sdk-scheme-adapter/v2_1_0/outbound/openapi.ts new file mode 100644 index 00000000..06a06d6d --- /dev/null +++ b/src/sdk-scheme-adapter/v2_1_0/outbound/openapi.ts @@ -0,0 +1,1905 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + + +export interface paths { + "/": { + /** + * Health check endpoint + * @description This endpoint allows a user of the SDK scheme adapter to check the outbound transfers service is listening. + */ + get: { + responses: { + /** @description Returns empty body if the scheme adapter outbound transfers service is running. */ + 200: { + content: never; + }; + }; + }; + }; + "/accounts": { + /** + * 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 + */ + post: { + /** @description Identities list request body */ + requestBody: { + content: { + "application/json": components["schemas"]["accountsRequest"]; + }; + }; + responses: { + 200: components["responses"]["accountsCreationCompleted"]; + 400: components["responses"]["accountsCreationError"]; + 500: components["responses"]["accountsCreationError"]; + 504: components["responses"]["accountsCreationTimeout"]; + }; + }; + }; + "/bulkQuotes": { + /** + * 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. + */ + post: { + /** @description Bulk quote request body */ + requestBody: { + content: { + "application/json": components["schemas"]["bulkQuoteRequest"]; + }; + }; + responses: { + 200: components["responses"]["bulkQuoteSuccess"]; + 400: components["responses"]["bulkQuoteBadRequest"]; + 500: components["responses"]["bulkQuoteServerError"]; + 504: components["responses"]["bulkQuoteTimeout"]; + }; + }; + }; + "/bulkQuotes/{bulkQuoteId}": { + /** + * 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. + */ + get: { + parameters: { + path: { + bulkQuoteId: components["parameters"]["bulkQuoteId"]; + }; + }; + responses: { + /** @description Bulk quote information successfully retrieved */ + 200: { + content: { + "application/json": components["schemas"]["bulkQuoteStatusResponse"]; + }; + }; + /** @description An error occurred processing the bulk quote */ + 500: { + content: { + "application/json": components["schemas"]["errorResponse"]; + }; + }; + }; + }; + }; + "/bulkTransactions": { + /** + * 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. + */ + post: { + /** @description Bulk transfer request body */ + requestBody: { + content: { + "application/json": components["schemas"]["bulkTransactionRequest"]; + }; + }; + responses: { + 202: components["responses"]["bulkTransactionAccepted"]; + 400: components["responses"]["bulkTransferBadRequest"]; + 500: components["responses"]["errorResponse"]; + }; + }; + }; + "/bulkTransactions/{bulkTransactionId}": { + /** + * 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. + */ + put: { + parameters: { + path: { + bulkTransactionId: components["parameters"]["bulkTransactionId"]; + }; + }; + /** @description Bulk transaction request body */ + requestBody: { + content: { + "application/json": components["schemas"]["bulkTransactionContinuationAcceptParty"] | components["schemas"]["bulkTransactionContinuationAcceptQuote"]; + }; + }; + responses: { + /** @description Bulk transaction information successfully amended */ + 202: { + content: never; + }; + 400: components["responses"]["bulkTransactionPutBadRequest"]; + /** @description An error occurred processing the bulk transaction */ + 500: { + content: { + "application/json": components["schemas"]["errorResponse"]; + }; + }; + }; + }; + }; + "/bulkTransfers": { + /** + * Sends money from one account to multiple accounts + * @description The HTTP request `POST /bulkTransfers` is used to request the movement of funds from payer DFSP to payees' DFSP. + */ + post: { + /** @description Bulk transfer request body */ + requestBody: { + content: { + "application/json": components["schemas"]["bulkTransferRequest"]; + }; + }; + responses: { + 200: components["responses"]["bulkTransferSuccess"]; + 400: components["responses"]["bulkTransferBadRequest"]; + 500: components["responses"]["errorResponse"]; + }; + }; + }; + "/bulkTransfers/{bulkTransferId}": { + /** + * Retrieves information for a specific bulk transfer + * @description 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. + */ + get: { + parameters: { + path: { + bulkTransferId: components["parameters"]["bulkTransferId"]; + }; + }; + responses: { + /** @description Bulk transfer information successfully retrieved */ + 200: { + content: { + "application/json": components["schemas"]["bulkTransferStatusResponse"]; + }; + }; + /** @description An error occurred processing the bulk transfer */ + 500: { + content: { + "application/json": components["schemas"]["errorResponse"]; + }; + }; + }; + }; + }; + "/parties/{Type}/{ID}": { + /** + * PartiesByTypeAndID + * @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). + */ + get: operations["PartiesByTypeAndID"]; + parameters: { + path: { + Type: components["parameters"]["Type"]; + ID: components["parameters"]["ID"]; + }; + }; + }; + "/parties/{Type}/{ID}/{SubId}": { + /** + * PartiesSubIdByTypeAndID + * @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). + */ + get: operations["PartiesSubIdByTypeAndID"]; + parameters: { + path: { + Type: components["parameters"]["Type"]; + ID: components["parameters"]["ID"]; + SubId: components["parameters"]["SubId"]; + }; + }; + }; + "/quotes": { + /** + * Quotes endpoint + * @description is used to request quotes from other DFSP + */ + post: operations["QuotesPost"]; + }; + "/requestToPay": { + /** + * Receiver requesting funds from Sender + * @description The HTTP request `POST /requestToPay` is used to support Pull Funds pattern where in a receiver can request for funds from the Sender. + * The underlying API has two stages: + * + * 1. Party lookup. This facilitates a check by the sending party that the destination party is correct before proceeding with a money movement. + * 2. Transaction Request. This request enables a Payee to request Payer to send electronic funds to the Payee. + */ + post: { + /** @description RequestToPay request body */ + requestBody: { + content: { + "application/json": components["schemas"]["requestToPayRequest"]; + }; + }; + responses: { + 200: components["responses"]["requestToPaySuccess"]; + }; + }; + }; + "/requestToPay/{transactionRequestId}": { + /** + * 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. + */ + put: { + parameters: { + path: { + transactionRequestId: components["parameters"]["transactionRequestId"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["transferContinuationAcceptParty"]; + }; + }; + responses: { + 200: components["responses"]["requestToPaySuccess"]; + 500: components["responses"]["transferServerError"]; + 504: components["responses"]["transferTimeout"]; + }; + }; + }; + "/requestToPayTransfer": { + /** + * Used to trigger funds from customer fsp account to merchant fsp account. This is a follow-up request to requestToPay. + * @description The HTTP request `POST /requestToPayTransfer` 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. Quotation. This facilitates the exchange of fee information and the construction of a cryptographic "contract" between payee and payer DFSPs before funds are transferred. + * 2. Authorization. This facilitates getting OTP from payee DFSP. + * 3. Transfer. The enactment of the previously agreed "contract" + * + * This method has several modes of operation. + * - 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 otp, 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 variable `AUTO_ACCEPT_OTP` is set to `"false"` this method will terminate and return the otp when it has been received from the payee DFSP. + * If the payer 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... + */ + post: { + /** @description Request To Pay Transfer request body */ + requestBody: { + content: { + "application/json": components["schemas"]["requestToPayTransferRequest"]; + }; + }; + responses: { + 200: components["responses"]["requestToPayTransferSuccess"]; + 400: components["responses"]["requestToPayTransferBadRequest"]; + 500: components["responses"]["transferServerError"]; + 504: components["responses"]["transferTimeout"]; + }; + }; + }; + "/requestToPayTransfer/{transactionRequestId}": { + /** + * 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 otp stage. + * + * The request body should contain either the "acceptOTP" or "acceptQuote" property set to `true` as required to continue the transfer. + * + * See the description of the `POST /requestToPayTransfer` HTTP method for more information on modes of transfer. + */ + put: { + parameters: { + path: { + transactionRequestId: components["parameters"]["transactionRequestId"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["transferContinuationAcceptQuote"] | components["schemas"]["transferContinuationAcceptOTP"]; + }; + }; + responses: { + 200: components["responses"]["transferSuccess"]; + 500: components["responses"]["transferServerError"]; + 504: components["responses"]["transferTimeout"]; + }; + }; + }; + "/simpleTransfers": { + /** + * Simple Transfers endpoint + * @description is used to request a transfer + */ + post: operations["SimpleTransfersPost"]; + }; + "/transfers": { + /** + * 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... + */ + post: { + /** @description Transfer request body */ + requestBody: { + content: { + "application/json": components["schemas"]["transferRequest"]; + }; + }; + responses: { + 200: components["responses"]["transferSuccess"]; + 400: components["responses"]["transferBadRequest"]; + 500: components["responses"]["transferServerError"]; + 504: components["responses"]["transferTimeout"]; + }; + }; + }; + "/transfers/{transferId}": { + /** + * Retrieves information for a specific transfer + * @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. + */ + get: { + parameters: { + path: { + transferId: components["parameters"]["transferId"]; + }; + }; + responses: { + /** @description Transfer information successfully retrieved */ + 200: { + content: { + "application/json": components["schemas"]["transferStatusResponse"]; + }; + }; + /** @description An error occurred processing the transfer */ + 500: { + content: { + "application/json": components["schemas"]["errorResponse"]; + }; + }; + }; + }; + /** + * Continues a transfer that has paused at the quote stage in order to accept or reject payee party and/or quote and/or conversion + * @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 and/or currency conversion stage. + * + * The request body should contain either the "acceptParty" or "acceptQuote" or "acceptConversion" 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. + */ + put: { + parameters: { + path: { + transferId: components["parameters"]["transferId"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["transferContinuationAcceptParty"] | components["schemas"]["transferContinuationAcceptQuote"] | components["schemas"]["transferContinuationAcceptConversion"]; + }; + }; + responses: { + 200: components["responses"]["transferSuccess"]; + 500: components["responses"]["transferServerError"]; + 504: components["responses"]["transferTimeout"]; + }; + }; + }; + "/services/FXP": { + /** + * Obtain a list of the DFSPs in the scheme who provide FXP service + * @description The HTTP request `GET /services/FXP` is used to request information about the participants in a scheme who offer currency conversion services. + */ + get: operations["ServicesFXPGet"]; + }; + "/services/FXP/{SourceCurrency}/{TargetCurrency}": { + /** + * Obtain a list of the DFSPs in the scheme who provide FXP service + * @description The HTTP request `GET /services/FXP/{SourceCurrency}/{TargetCurrency}` is used to request information about the participants in a scheme who offer currency conversion services in a particular currency corridor. The required corridor is specified by giving the ISO 4217 currency code for the SourceCurrency and the TargetCurrency. + */ + get: operations["ServicesFXPSourceCurrencyTargetCurrencyGet"]; + }; + "/fxQuotes": { + /** + * Calculate FX quote + * @description The HTTP request `POST /fxQuotes` is used to ask to provide a quotation for a currency conversion. + */ + post: operations["FxQuotesPost"]; + }; + "/fxTransfers": { + /** + * Perform FX transfer + * @description The HTTP request `POST /fxTransfers` is used to ask to confirm the execution of an agreed currency conversion. + */ + post: operations["FxTransfersPost"]; + }; +} + +export type webhooks = Record; + +export interface components { + schemas: { + /** + * PartyIdType + * @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. + * @enum {string} + */ + PartyIdType: "MSISDN" | "EMAIL" | "PERSONAL_ID" | "BUSINESS" | "DEVICE" | "ACCOUNT_ID" | "IBAN" | "ALIAS"; + /** + * PartyIdentifier + * @description Identifier of the Party. + * @example 16135551212 + */ + PartyIdentifier: string; + /** + * PartySubIdOrType + * @description Either a sub-identifier of a PartyIdentifier, or a sub-type of the PartyIdType, normally a PersonalIdentifierType. + */ + PartySubIdOrType: string; + /** + * 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. + * @enum {string} + */ + Currency: "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"; + accountsRequest: { + idType: components["schemas"]["PartyIdType"]; + idValue: components["schemas"]["PartyIdentifier"]; + idSubValue?: components["schemas"]["PartySubIdOrType"]; + currency: components["schemas"]["Currency"]; + }[]; + /** + * CorrelationId + * @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 + */ + CorrelationId: string; + errorResponse: { + /** + * @description Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code. + * Otherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message. + */ + statusCode?: string; + /** @description Error message text. */ + message?: string; + }; + accountCreationStatus: { + idType: components["schemas"]["PartyIdType"]; + idValue: components["schemas"]["PartyIdentifier"]; + idSubValue?: components["schemas"]["PartySubIdOrType"]; + error?: components["schemas"]["errorResponse"]; + }[]; + /** @enum {string} */ + accountsCreationState: "ERROR_OCCURRED" | "COMPLETED"; + /** + * 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) represent the specific error. + * @example 5100 + */ + ErrorCode: string; + /** + * ErrorDescription + * @description Error description string. + */ + ErrorDescription: string; + /** + * ExtensionKey + * @description Extension key. + */ + ExtensionKey: string; + /** + * ExtensionValue + * @description Extension value. + */ + ExtensionValue: string; + /** + * Extension + * @description Data model for the complex type Extension. + */ + Extension: { + key: components["schemas"]["ExtensionKey"]; + value: components["schemas"]["ExtensionValue"]; + }; + /** + * ExtensionList + * @description Data model for the complex type ExtensionList. An optional list of extensions, specific to deployment. + */ + ExtensionList: { + /** @description Number of Extension elements. */ + extension: components["schemas"]["Extension"][]; + }; + /** + * ErrorInformation + * @description Data model for the complex type ErrorInformation. + */ + ErrorInformation: { + errorCode: components["schemas"]["ErrorCode"]; + errorDescription: components["schemas"]["ErrorDescription"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + mojaloopError: { + errorInformation?: components["schemas"]["ErrorInformation"]; + }; + /** @description This object represents a Mojaloop API error received at any time during the transfer process */ + transferError: { + /** @description The HTTP status code returned to the caller. This is the same as the actual HTTP status code returned with the response. */ + httpStatusCode?: number; + mojaloopError?: components["schemas"]["mojaloopError"]; + }; + accountsResponse: { + modelId?: components["schemas"]["CorrelationId"]; + accounts: components["schemas"]["accountsRequest"]; + response?: components["schemas"]["accountCreationStatus"]; + currentState?: components["schemas"]["accountsCreationState"]; + lastError?: components["schemas"]["transferError"]; + postAccountsResponse?: { + body: Record; + headers?: Record; + }; + }; + errorAccountsResponse: components["schemas"]["errorResponse"] & { + executionState: components["schemas"]["accountsResponse"]; + }; + /** + * TransactionInitiatorType + * @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 + * @enum {string} + */ + TransactionInitiatorType: "CONSUMER" | "AGENT" | "BUSINESS" | "DEVICE"; + /** + * Name + * @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. + */ + Name: string; + /** + * FirstName + * @description First name of the Party (Name Type). + * @example Henrik + */ + FirstName: string; + /** + * MiddleName + * @description Middle name of the Party (Name Type). + * @example Johannes + */ + MiddleName: string; + /** + * LastName + * @description Last name of the Party (Name Type). + * @example Karlsson + */ + LastName: string; + /** + * DateofBirth (type Date) + * @description Date of Birth of the Party. + * @example 1966-06-16 + */ + DateOfBirth: string; + /** + * MerchantClassificationCode + * @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. + */ + MerchantClassificationCode: string; + /** + * FspId + * @description FSP identifier. + */ + FspId: string; + /** + * KYCInformation + * @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" + * } + * } + */ + KYCInformation: string; + extensionListEmptiable: components["schemas"]["Extension"][]; + transferParty: { + type?: components["schemas"]["TransactionInitiatorType"]; + idType: components["schemas"]["PartyIdType"]; + idValue: components["schemas"]["PartyIdentifier"]; + idSubValue?: components["schemas"]["PartySubIdOrType"]; + displayName?: components["schemas"]["Name"]; + firstName?: components["schemas"]["FirstName"]; + middleName?: components["schemas"]["MiddleName"]; + lastName?: components["schemas"]["LastName"]; + dateOfBirth?: components["schemas"]["DateOfBirth"]; + merchantClassificationCode?: components["schemas"]["MerchantClassificationCode"]; + fspId?: components["schemas"]["FspId"]; + /** @description Currencies in which the party can receive funds. */ + supportedCurrencies?: components["schemas"]["Currency"][]; + kycInformation?: components["schemas"]["KYCInformation"]; + extensionList?: components["schemas"]["extensionListEmptiable"]; + }; + /** + * AmountType + * @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 + * @enum {string} + */ + AmountType: "SEND" | "RECEIVE"; + /** + * Amount + * @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 + */ + Amount: string; + /** + * transferTransactionType + * @description Type of transaction. + * @enum {string} + */ + transferTransactionType: "TRANSFER"; + /** + * TransactionSubScenario + * @description Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type). + * @example LOCALLY_DEFINED_SUBSCENARIO + */ + TransactionSubScenario: string; + /** + * Note + * @description Memo assigned to transaction. + * @example Note sent to Payee. + */ + Note: string; + /** + * IndividualQuote + * @description Data model for the complex type 'individualQuote'. + */ + individualQuote: { + quoteId: components["schemas"]["CorrelationId"]; + to: components["schemas"]["transferParty"]; + amountType: components["schemas"]["AmountType"]; + currency: components["schemas"]["Currency"]; + amount: components["schemas"]["Amount"]; + transactionType: components["schemas"]["transferTransactionType"]; + subScenario?: components["schemas"]["TransactionSubScenario"]; + note?: components["schemas"]["Note"]; + extensions?: components["schemas"]["ExtensionList"]; + }; + bulkQuoteRequest: { + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeTransactionId: string; + bulkQuoteId?: components["schemas"]["CorrelationId"]; + from: components["schemas"]["transferParty"]; + /** @description List of individual quotes in a bulk quote. */ + individualQuotes: components["schemas"]["individualQuote"][]; + extensions?: components["schemas"]["ExtensionList"]; + }; + /** + * DateTime + * @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 + */ + DateTime: string; + /** @enum {string} */ + bulkTransferStatus: "ERROR_OCCURRED" | "COMPLETED"; + /** + * Money + * @description Data model for the complex type Money. + */ + Money: { + currency: components["schemas"]["Currency"]; + amount: components["schemas"]["Amount"]; + }; + /** + * 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. + * @example +45.4215 + */ + Latitude: 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. + * @example +75.6972 + */ + Longitude: string; + /** + * GeoCode + * @description Data model for the complex type GeoCode. Indicates the geographic location from where the transaction was initiated. + */ + GeoCode: { + latitude: components["schemas"]["Latitude"]; + longitude: components["schemas"]["Longitude"]; + }; + /** + * IlpPacket + * @description Information for recipient (transport layer information). + * @example AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA + */ + IlpPacket: string; + /** + * IlpCondition + * @description Condition that must be attached to the transfer by the Payer. + */ + IlpCondition: string; + /** @description This object represents a Mojaloop API error received at any time during the quote process */ + quoteError: { + /** @description The HTTP status code returned to the caller. This is the same as the actual HTTP status code returned with the response. */ + httpStatusCode?: number; + mojaloopError?: components["schemas"]["mojaloopError"]; + }; + individualQuoteResult: { + quoteId: components["schemas"]["CorrelationId"]; + transferAmount?: components["schemas"]["Money"]; + payeeReceiveAmount?: components["schemas"]["Money"]; + payeeFspFee?: components["schemas"]["Money"]; + payeeFspCommission?: components["schemas"]["Money"]; + geoCode?: components["schemas"]["GeoCode"]; + ilpPacket?: components["schemas"]["IlpPacket"]; + condition?: components["schemas"]["IlpCondition"]; + extensionList?: components["schemas"]["ExtensionList"]; + lastError?: components["schemas"]["quoteError"]; + }; + bulkQuoteResponse: { + bulkQuoteId: components["schemas"]["CorrelationId"]; + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeTransactionId?: string; + expiration: components["schemas"]["DateTime"]; + extensionList?: components["schemas"]["ExtensionList"]; + currentState: components["schemas"]["bulkTransferStatus"]; + /** @description List of individualQuoteResults in a bulk transfer response. */ + individualQuoteResults: components["schemas"]["individualQuoteResult"][]; + }; + bulkQuoteErrorResponse: components["schemas"]["errorResponse"] & { + bulkQuoteState: components["schemas"]["bulkQuoteResponse"]; + }; + /** @enum {string} */ + bulkQuoteStatus: "ERROR_OCCURRED" | "COMPLETED"; + bulkQuoteStatusResponse: { + bulkQuoteId: components["schemas"]["CorrelationId"]; + currentState: components["schemas"]["bulkQuoteStatus"]; + individualQuotes: components["schemas"]["individualQuote"][]; + }; + autoAcceptPartyOption: { + /** @enum {boolean} */ + enabled: false | true; + }; + bulkPerTransferFeeLimit: { + currency: components["schemas"]["Currency"]; + amount: components["schemas"]["Amount"]; + }; + autoAcceptQuote: { + /** @enum {boolean} */ + enabled: true | false; + perTransferFeeLimits?: components["schemas"]["bulkPerTransferFeeLimit"][]; + }; + bulkTransactionOptions: { + /** @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. */ + onlyValidateParty?: boolean; + autoAcceptParty: components["schemas"]["autoAcceptPartyOption"]; + /** @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. */ + autoAcceptQuote: components["schemas"]["autoAcceptQuote"]; + /** @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. */ + skipPartyLookup?: boolean; + /** @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 */ + synchronous?: boolean; + bulkExpiration: components["schemas"]["DateTime"]; + }; + /** + * PartyIdInfo + * @description Data model for the complex type PartyIdInfo. An ExtensionList element has been added to this reqeust in version v1.1 + */ + PartyIdInfo: { + partyIdType: components["schemas"]["PartyIdType"]; + partyIdentifier: components["schemas"]["PartyIdentifier"]; + partySubIdOrType?: components["schemas"]["PartySubIdOrType"]; + fspId?: components["schemas"]["FspId"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + /** + * PartyName + * @description Name of the Party. Could be a real name or a nickname. + */ + PartyName: string; + /** + * PartyComplexName + * @description Data model for the complex type PartyComplexName. + */ + PartyComplexName: { + firstName?: components["schemas"]["FirstName"]; + middleName?: components["schemas"]["MiddleName"]; + lastName?: components["schemas"]["LastName"]; + }; + /** + * PartyPersonalInfo + * @description Data model for the complex type PartyPersonalInfo. + */ + PartyPersonalInfo: { + complexName?: components["schemas"]["PartyComplexName"]; + dateOfBirth?: components["schemas"]["DateOfBirth"]; + kycInformation?: components["schemas"]["KYCInformation"]; + }; + /** + * Party + * @description Data model for the complex type Party. + */ + Party: { + partyIdInfo: components["schemas"]["PartyIdInfo"]; + merchantClassificationCode?: components["schemas"]["MerchantClassificationCode"]; + name?: components["schemas"]["PartyName"]; + personalInfo?: components["schemas"]["PartyPersonalInfo"]; + /** @description Currencies in which the party can receive funds. */ + supportedCurrencies?: components["schemas"]["Currency"][]; + }; + /** + * BulkTransactionIndividualTransfer + * @description Data model for the complex type 'bulkTransactionIndividualTransfer'. + */ + bulkTransactionIndividualTransfer: { + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeTransactionId: string; + to: components["schemas"]["Party"]; + /** @description Payer Loan reference */ + reference?: string; + amountType: components["schemas"]["AmountType"]; + currency: components["schemas"]["Currency"]; + amount: components["schemas"]["Amount"]; + note?: components["schemas"]["Note"]; + quoteExtensions?: components["schemas"]["ExtensionList"]; + transferExtensions?: components["schemas"]["ExtensionList"]; + lastError?: components["schemas"]["transferError"]; + }; + bulkTransactionRequest: { + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + bulkHomeTransactionID: string; + bulkTransactionId: components["schemas"]["CorrelationId"]; + options: components["schemas"]["bulkTransactionOptions"]; + from: components["schemas"]["Party"]; + /** @description List of individual transfers in a bulk transfer. */ + individualTransfers: components["schemas"]["bulkTransactionIndividualTransfer"][]; + extensions?: components["schemas"]["ExtensionList"]; + }; + /** + * TransferState + * @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 + * @enum {string} + */ + TransferState: "RECEIVED" | "RESERVED" | "COMMITTED" | "ABORTED"; + /** + * IlpFulfilment + * @description Fulfilment that must be attached to the transfer by the Payee. + * @example WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8 + */ + IlpFulfilment: string; + individualTransferResult: { + transferId: components["schemas"]["CorrelationId"]; + fulfilment?: components["schemas"]["IlpFulfilment"]; + extensionList?: components["schemas"]["ExtensionList"]; + transferState?: components["schemas"]["TransferState"]; + lastError?: components["schemas"]["transferError"]; + }; + bulkTransferResponse: { + bulkTransferId: components["schemas"]["CorrelationId"]; + bulkQuoteId?: components["schemas"]["CorrelationId"]; + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeTransactionId?: string; + bulkTransferState?: components["schemas"]["TransferState"]; + completedTimestamp?: components["schemas"]["DateTime"]; + extensionList?: components["schemas"]["ExtensionList"]; + currentState: components["schemas"]["bulkTransferStatus"]; + /** @description List of individual transfer result in a bulk transfer response. */ + individualTransferResults: components["schemas"]["individualTransferResult"][]; + }; + bulkTransferErrorResponse: components["schemas"]["errorResponse"] & { + bulkTransferState: components["schemas"]["bulkTransferResponse"]; + }; + /** @description Data model for the 'individualTransfer' while accepting party or quote. */ + bulkTransactionIndividualTransferAccept: { + transferId: components["schemas"]["CorrelationId"]; + }; + transferContinuationAcceptParty: { + /** @enum {boolean} */ + acceptParty: true | false; + }; + /** @description The object sent back as confirmation of payee parties when autoAcceptParty is false. */ + bulkTransactionContinuationAcceptParty: { + /** @description List of individual transfers in a bulk transfer with accept party information. */ + individualTransfers: (components["schemas"]["bulkTransactionIndividualTransferAccept"] & components["schemas"]["transferContinuationAcceptParty"])[]; + }; + transferContinuationAcceptQuote: { + /** @enum {boolean} */ + acceptQuote: true | false; + }; + /** @description The object sent back as confirmation of quotes when autoAcceptQuotes is false. */ + bulkTransactionContinuationAcceptQuote: { + /** @description List of individual transfers in a bulk transfer. */ + individualTransfers: (components["schemas"]["bulkTransactionIndividualTransferAccept"] & components["schemas"]["transferContinuationAcceptQuote"])[]; + }; + /** @description This object represents a Mojaloop API error received at any time during the party discovery process */ + partyError: { + /** @description The HTTP status code returned to the caller. This is the same as the actual HTTP status code returned with the response. */ + httpStatusCode?: number; + mojaloopError?: components["schemas"]["mojaloopError"]; + }; + bulkTransactionAcceptPartyErrorResponse: components["schemas"]["errorResponse"] & ({ + bulkTransferState: components["schemas"]["bulkTransactionContinuationAcceptParty"] & components["schemas"]["partyError"]; + }); + bulkTransactionAcceptQuoteErrorResponse: components["schemas"]["errorResponse"] & ({ + bulkTransferState?: components["schemas"]["bulkTransactionContinuationAcceptQuote"] & components["schemas"]["quoteError"]; + }); + /** + * IndividualTransfer + * @description Data model for the complex type 'individualTransfer'. + */ + individualTransfer: { + transferId: components["schemas"]["CorrelationId"]; + to: components["schemas"]["transferParty"]; + amountType: components["schemas"]["AmountType"]; + currency: components["schemas"]["Currency"]; + amount: components["schemas"]["Amount"]; + transactionType?: components["schemas"]["transferTransactionType"]; + subScenario?: components["schemas"]["TransactionSubScenario"]; + ilpPacket: components["schemas"]["IlpPacket"]; + condition: components["schemas"]["IlpCondition"]; + note?: components["schemas"]["Note"]; + extensions?: components["schemas"]["ExtensionList"]; + }; + bulkTransferRequest: { + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeTransactionId: string; + bulkTransferId: components["schemas"]["CorrelationId"]; + bulkQuoteId: components["schemas"]["CorrelationId"]; + from: components["schemas"]["transferParty"]; + /** @description List of individual transfers in a bulk transfer. */ + individualTransfers: components["schemas"]["individualTransfer"][]; + extensions?: components["schemas"]["ExtensionList"]; + }; + /** @description A Mojaloop API transfer fulfilment for individual transfers in a bulk transfer */ + individualTransferFulfilment: { + fulfilment?: components["schemas"]["IlpFulfilment"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + bulkTransferStatusResponse: { + bulkTransferId: components["schemas"]["CorrelationId"]; + currentState: components["schemas"]["bulkTransferStatus"]; + fulfils: components["schemas"]["individualTransferFulfilment"][]; + }; + /** @enum {string} */ + async2SyncCurrentState: "WAITING_FOR_ACTION" | "COMPLETED" | "ERROR_OCCURRED"; + /** + * partiesByIdResponse + * @description GET /parties/{Type}/{ID} response object + */ + partiesByIdResponse: { + party: { + body: components["schemas"]["Party"]; + headers: Record; + }; + currentState: components["schemas"]["async2SyncCurrentState"]; + }; + /** + * TransactionScenario + * @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 + * @enum {string} + */ + TransactionScenario: "DEPOSIT" | "WITHDRAWAL" | "TRANSFER" | "PAYMENT" | "REFUND"; + /** + * TransactionInitiator + * @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 + * @enum {string} + */ + TransactionInitiator: "PAYER" | "PAYEE"; + /** + * RefundReason + * @description Reason for the refund. + * @example Free text indicating reason for the refund. + */ + RefundReason: string; + /** + * Refund + * @description Data model for the complex type Refund. + */ + Refund: { + originalTransactionId: components["schemas"]["CorrelationId"]; + refundReason?: components["schemas"]["RefundReason"]; + }; + /** + * BalanceOfPayments + * @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 + */ + BalanceOfPayments: string; + /** + * TransactionType + * @description Data model for the complex type TransactionType. + */ + TransactionType: { + scenario: components["schemas"]["TransactionScenario"]; + subScenario?: components["schemas"]["TransactionSubScenario"]; + initiator: components["schemas"]["TransactionInitiator"]; + initiatorType: components["schemas"]["TransactionInitiatorType"]; + refundInfo?: components["schemas"]["Refund"]; + balanceOfPayments?: components["schemas"]["BalanceOfPayments"]; + }; + /** + * CurrencyConverter + * @description 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. + * @enum {string} + */ + CurrencyConverter: "PAYER" | "PAYEE"; + /** + * FxRate + * @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. + */ + FxRate: { + sourceAmount: components["schemas"]["Money"]; + targetAmount: components["schemas"]["Money"]; + }; + /** + * QuotesPostRequest + * @description The object sent in the POST /quotes request. + */ + QuotesPostRequest: { + quoteId: components["schemas"]["CorrelationId"]; + transactionId: components["schemas"]["CorrelationId"]; + transactionRequestId?: components["schemas"]["CorrelationId"]; + payee: components["schemas"]["Party"]; + payer: components["schemas"]["Party"]; + amountType: components["schemas"]["AmountType"]; + amount: components["schemas"]["Money"]; + fees?: components["schemas"]["Money"]; + transactionType: components["schemas"]["TransactionType"]; + converter?: components["schemas"]["CurrencyConverter"]; + currencyConversion?: components["schemas"]["FxRate"]; + geoCode?: components["schemas"]["GeoCode"]; + note?: components["schemas"]["Note"]; + expiration?: components["schemas"]["DateTime"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + /** simpleQuotesPostRequest */ + simpleQuotesPostRequest: { + fspId: components["schemas"]["FspId"]; + quotesPostRequest: components["schemas"]["QuotesPostRequest"]; + }; + /** QuotesPostResponse */ + quotesPostResponse: { + /** + * QuotesIDPutResponse + * @description The object sent in the PUT /quotes/{ID} callback. + */ + quotes: { + body: { + transferAmount: components["schemas"]["Money"]; + payeeReceiveAmount?: components["schemas"]["Money"]; + payeeFspFee?: components["schemas"]["Money"]; + payeeFspCommission?: components["schemas"]["Money"]; + /** + * @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 + */ + expiration: string; + geoCode?: components["schemas"]["GeoCode"]; + ilpPacket: components["schemas"]["IlpPacket"]; + condition: components["schemas"]["IlpCondition"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + headers: Record; + }; + currentState: components["schemas"]["async2SyncCurrentState"]; + }; + errorQuotesResponse: components["schemas"]["errorResponse"] & Record; + /** + * AuthenticationType + * @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 + * @enum {string} + */ + AuthenticationType: "OTP" | "QRCODE" | "U2F"; + requestToPayRequest: { + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeR2PTransactionId: string; + from: components["schemas"]["transferParty"]; + to: components["schemas"]["transferParty"]; + amountType: components["schemas"]["AmountType"]; + currency: components["schemas"]["Currency"]; + amount: components["schemas"]["Amount"]; + transactionType: components["schemas"]["TransactionScenario"]; + subScenario?: components["schemas"]["TransactionSubScenario"]; + authenticationType?: components["schemas"]["AuthenticationType"]; + }; + /** @enum {string} */ + requestToPayStatus: "ERROR_OCCURRED" | "WAITING_FOR_PARTY_ACCEPTANCE" | "COMPLETED"; + /** + * getPartiesResponse + * @description The object sent in the GET /parties/{Type}/{ID} callback. + */ + getPartiesResponse: { + body: components["schemas"]["Party"]; + headers: Record; + }; + /** + * TransactionRequestState + * @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 + * @enum {string} + */ + TransactionRequestState: "RECEIVED" | "PENDING" | "ACCEPTED" | "REJECTED"; + /** + * TransactionRequestResponse + * @description The object sent in the PUT /transactionRequests/{ID} callback. + */ + TransactionRequestResponse: { + body: { + transactionId?: components["schemas"]["CorrelationId"]; + transactionRequestState: components["schemas"]["TransactionRequestState"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + headers: Record; + }; + requestToPayResponse: { + transactionRequestId: components["schemas"]["CorrelationId"]; + from: components["schemas"]["transferParty"]; + to: components["schemas"]["transferParty"]; + amountType: components["schemas"]["AmountType"]; + currency: components["schemas"]["Currency"]; + amount: components["schemas"]["Amount"]; + transactionType: components["schemas"]["TransactionScenario"]; + subScenario?: components["schemas"]["TransactionSubScenario"]; + currentState: components["schemas"]["requestToPayStatus"]; + getPartiesResponse?: components["schemas"]["getPartiesResponse"]; + transactionRequestResponse?: components["schemas"]["TransactionRequestResponse"]; + lastError?: components["schemas"]["transferError"]; + }; + /** @enum {string} */ + transferStatus: "ERROR_OCCURRED" | "WAITING_FOR_PARTY_ACCEPTANCE" | "WAITING_FOR_QUOTE_ACCEPTANCE" | "WAITING_FOR_CONVERSION_ACCEPTANCE" | "COMPLETED"; + /** + * QuotesIDPutResponse + * @description The object sent in the PUT /quotes/{ID} callback. + */ + QuotesIDPutResponse: { + transferAmount: components["schemas"]["Money"]; + payeeReceiveAmount?: components["schemas"]["Money"]; + payeeFspFee?: components["schemas"]["Money"]; + payeeFspCommission?: components["schemas"]["Money"]; + expiration: components["schemas"]["DateTime"]; + geoCode?: components["schemas"]["GeoCode"]; + ilpPacket: components["schemas"]["IlpPacket"]; + condition: components["schemas"]["IlpCondition"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + /** + * FxMoney + * @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. + */ + FxMoney: { + currency: components["schemas"]["Currency"]; + amount?: components["schemas"]["Amount"]; + }; + /** + * FxCharge + * @description An FXP will be able to specify a charge which it proposes to levy on the currency conversion operation using a FxCharge object. + */ + FxCharge: { + /** @description A description of the charge which is being levied. */ + chargeType: string; + sourceAmount?: components["schemas"]["Money"]; + targetAmount?: components["schemas"]["Money"]; + }; + /** + * FxConversion + * @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. + */ + FxConversion: { + conversionId: components["schemas"]["CorrelationId"]; + determiningTransferId?: components["schemas"]["CorrelationId"]; + initiatingFsp: components["schemas"]["FspId"]; + counterPartyFsp: components["schemas"]["FspId"]; + amountType: components["schemas"]["AmountType"]; + sourceAmount: components["schemas"]["FxMoney"]; + targetAmount: components["schemas"]["FxMoney"]; + expiration: components["schemas"]["DateTime"]; + /** @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. */ + charges?: components["schemas"]["FxCharge"][]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + /** + * FxQuotesPostOutboundResponse + * @description The object sent as a response for the POST /fxQuotes request. The terms under which the FXP will undertake the currency conversion proposed by the requester. + */ + FxQuotesPostOutboundResponse: { + /** @description Transaction ID for the FXP backend, used to reconcile transactions between the Switch and FXP backend systems. */ + homeTransactionId?: string; + condition?: components["schemas"]["IlpCondition"]; + conversionTerms: components["schemas"]["FxConversion"]; + }; + /** + * TransfersIDPutResponse + * @description The object sent in the PUT /transfers/{ID} callback. + */ + TransfersIDPutResponse: { + fulfilment?: components["schemas"]["IlpFulfilment"]; + completedTimestamp?: components["schemas"]["DateTime"]; + transferState: components["schemas"]["TransferState"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + transferResponse: { + transferId?: components["schemas"]["CorrelationId"]; + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeTransactionId: string; + from: components["schemas"]["transferParty"]; + to: components["schemas"]["transferParty"]; + amountType: components["schemas"]["AmountType"]; + currency: components["schemas"]["Currency"]; + amount: components["schemas"]["Amount"]; + transactionType: components["schemas"]["transferTransactionType"]; + subScenario?: components["schemas"]["TransactionSubScenario"]; + note?: components["schemas"]["Note"]; + currentState?: components["schemas"]["transferStatus"]; + quoteId?: components["schemas"]["CorrelationId"]; + getPartiesResponse?: { + body: Record; + headers?: Record; + }; + quoteResponse?: { + body: components["schemas"]["QuotesIDPutResponse"]; + headers?: Record; + }; + /** @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. */ + quoteResponseSource?: string; + conversionRequestId?: components["schemas"]["CorrelationId"]; + fxQuotesResponse?: { + body: components["schemas"]["FxQuotesPostOutboundResponse"]; + headers?: Record; + }; + /** @description FXPID of the entity that supplied the fxQuotes response. */ + fxQuotesResponseSource?: string; + fulfil?: { + body: components["schemas"]["TransfersIDPutResponse"]; + headers?: Record; + }; + lastError?: components["schemas"]["transferError"]; + /** @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. */ + skipPartyLookup?: boolean; + }; + errorTransferResponse: components["schemas"]["errorResponse"] & { + transferState: components["schemas"]["transferResponse"]; + }; + requestToPayTransferRequest: { + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeR2PTransactionId: string; + transactionRequestId: components["schemas"]["CorrelationId"]; + from: components["schemas"]["transferParty"]; + to: components["schemas"]["transferParty"]; + amountType: components["schemas"]["AmountType"]; + currency: components["schemas"]["Currency"]; + amount: components["schemas"]["Amount"]; + scenario: components["schemas"]["TransactionScenario"]; + subScenario?: components["schemas"]["TransactionSubScenario"]; + initiator: components["schemas"]["TransactionInitiator"]; + initiatorType: components["schemas"]["TransactionInitiatorType"]; + note?: components["schemas"]["Note"]; + authenticationType?: components["schemas"]["AuthenticationType"]; + }; + /** + * AuthenticationValue + * @description Contains the authentication value. The format depends on the authentication type used in the AuthenticationInfo complex type. + */ + AuthenticationValue: string | { + /** @description U2F challenge-response, where payer FSP verifies if the response provided by end-user device matches the previously registered key. */ + pinValue: string; + /** + * Integer + * @description Sequential counter used for cloning detection. Present only for U2F authentication. + */ + counter: string; + }; + /** + * AuthenticationInfo + * @description Data model for the complex type AuthenticationInfo. + */ + AuthenticationInfo: { + authentication: components["schemas"]["AuthenticationType"]; + authenticationValue: components["schemas"]["AuthenticationValue"]; + }; + /** + * AuthorizationResponseType + * @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 + * @enum {string} + */ + AuthorizationResponseType: "ENTERED" | "REJECTED" | "RESEND"; + /** + * AuthorizationIDPutResponse + * @description The object sent in the PUT /authorizations/{ID} callback. + */ + AuthorizationIDPutResponse: { + authenticationInfo?: components["schemas"]["AuthenticationInfo"]; + responseType: components["schemas"]["AuthorizationResponseType"]; + }; + requestToPayTransferResponse: { + transferId?: components["schemas"]["CorrelationId"]; + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeR2PTransactionId?: string; + transactionRequestId: components["schemas"]["CorrelationId"]; + from: components["schemas"]["transferParty"]; + to: components["schemas"]["transferParty"]; + amountType: components["schemas"]["AmountType"]; + currency: components["schemas"]["Currency"]; + amount: components["schemas"]["Amount"]; + transactionType: components["schemas"]["transferTransactionType"]; + note?: components["schemas"]["Note"]; + currentState?: components["schemas"]["transferStatus"]; + quoteId?: components["schemas"]["CorrelationId"]; + quoteResponse?: { + body: components["schemas"]["QuotesIDPutResponse"]; + headers?: Record; + }; + /** @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. */ + quoteResponseSource?: string; + authorizationResponse?: { + body: components["schemas"]["AuthorizationIDPutResponse"]; + headers?: Record; + }; + fulfil?: { + body: components["schemas"]["TransfersIDPutResponse"]; + headers?: Record; + }; + lastError?: components["schemas"]["transferError"]; + }; + transferContinuationAcceptOTP: { + /** @enum {boolean} */ + acceptOTP: true | false; + }; + /** + * TransfersPostRequest + * @description The object sent in the POST /transfers request. + */ + TransfersPostRequest: { + transferId: components["schemas"]["CorrelationId"]; + payeeFsp: components["schemas"]["FspId"]; + payerFsp: components["schemas"]["FspId"]; + amount: components["schemas"]["Money"]; + ilpPacket: components["schemas"]["IlpPacket"]; + condition: components["schemas"]["IlpCondition"]; + expiration: components["schemas"]["DateTime"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + /** SimpleTransfersPostRequest */ + simpleTransfersPostRequest: { + fspId: components["schemas"]["FspId"]; + transfersPostRequest: components["schemas"]["TransfersPostRequest"]; + }; + /** SimpleTransfersPostResponse */ + simpleTransfersPostResponse: { + transfer: { + body: components["schemas"]["TransfersIDPutResponse"]; + headers: Record; + }; + currentState: components["schemas"]["async2SyncCurrentState"]; + }; + errorSimpleTransfersResponse: components["schemas"]["errorResponse"] & Record; + transferRequest: { + /** @description Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems. */ + homeTransactionId: string; + from: components["schemas"]["transferParty"]; + to: components["schemas"]["transferParty"]; + amountType: components["schemas"]["AmountType"]; + currency: components["schemas"]["Currency"]; + amount: components["schemas"]["Amount"]; + transactionType: components["schemas"]["transferTransactionType"]; + subScenario?: components["schemas"]["TransactionSubScenario"]; + note?: components["schemas"]["Note"]; + quoteRequestExtensions?: components["schemas"]["extensionListEmptiable"]; + transferRequestExtensions?: components["schemas"]["extensionListEmptiable"]; + /** @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. */ + skipPartyLookup?: boolean; + }; + transferStatusResponse: { + transferId: components["schemas"]["CorrelationId"]; + currentState: components["schemas"]["transferStatus"]; + fulfil: { + body: components["schemas"]["TransfersIDPutResponse"]; + headers?: Record; + }; + }; + transferContinuationAcceptConversion: { + /** @enum {boolean} */ + acceptConversion: true | false; + }; + /** + * ServicesFXPPutResponse + * @description The object sent in the PUT /services/FXP callback. + */ + ServicesFXPPutResponse: { + /** @description The FSP Id(s) of the participant(s) who offer currency conversion services. */ + providers: components["schemas"]["FspId"][]; + }; + /** + * FxQuotesPostOutboundRequest + * @description The object sent in the POST /fxQuotes request. + */ + FxQuotesPostOutboundRequest: { + /** @description Transaction ID for the backend, used to reconcile transactions between the Switch and backend systems. */ + homeTransactionId?: string; + conversionRequestId: components["schemas"]["CorrelationId"]; + conversionTerms: components["schemas"]["FxConversion"]; + }; + commitRequestId: components["schemas"]["CorrelationId"]; + determiningTransferId: components["schemas"]["CorrelationId"]; + initiatingFsp: components["schemas"]["FspId"]; + counterPartyFsp: components["schemas"]["FspId"]; + sourceAmount: components["schemas"]["Money"]; + targetAmount: components["schemas"]["Money"]; + condition: components["schemas"]["IlpCondition"]; + /** + * FxTransfersPostOutboundRequest + * @description The object sent in the POST /fxTransfers request. + */ + FxTransfersPostOutboundRequest: { + /** @description Transaction ID for the backend, used to reconcile transactions between the Switch and backend systems. */ + homeTransactionId?: string; + commitRequestId: components["schemas"]["commitRequestId"]; + determiningTransferId?: components["schemas"]["determiningTransferId"]; + initiatingFsp: components["schemas"]["initiatingFsp"]; + counterPartyFsp: components["schemas"]["counterPartyFsp"]; + sourceAmount: components["schemas"]["sourceAmount"]; + targetAmount: components["schemas"]["targetAmount"]; + condition?: components["schemas"]["condition"]; + }; + fulfilment: components["schemas"]["IlpFulfilment"]; + completedTimestamp: components["schemas"]["DateTime"]; + conversionState: components["schemas"]["TransferState"]; + /** + * FxTransfersPostOutboundResponse + * @description The object sent as a response for the POST /fxTransfers request. + */ + FxTransfersPostOutboundResponse: { + /** @description Transaction ID for the backend, used to reconcile transactions between the Switch and backend systems. */ + homeTransactionId?: string; + fulfilment?: components["schemas"]["fulfilment"]; + completedTimestamp?: components["schemas"]["completedTimestamp"]; + conversionState: components["schemas"]["conversionState"]; + extensionList?: components["schemas"]["ExtensionList"]; + }; + }; + responses: { + /** @description Malformed or missing required headers or parameters. */ + 400: { + content: { + "application/json": components["schemas"]["errorResponse"]; + }; + }; + /** @description An error occurred processing the request. */ + 500: { + content: { + "application/json": components["schemas"]["errorResponse"]; + }; + }; + /** @description Accounts creation completed */ + accountsCreationCompleted: { + content: { + "application/json": components["schemas"]["accountsResponse"]; + }; + }; + /** @description An error occurred creating accounts */ + accountsCreationError: { + content: { + "application/json": components["schemas"]["errorAccountsResponse"]; + }; + }; + /** @description Timeout occurred creating accounts */ + accountsCreationTimeout: { + content: { + "application/json": components["schemas"]["errorAccountsResponse"]; + }; + }; + /** @description Bulk quote completed successfully */ + bulkQuoteSuccess: { + content: { + "application/json": components["schemas"]["bulkQuoteResponse"]; + }; + }; + /** @description Malformed or missing required body, headers or parameters */ + bulkQuoteBadRequest: { + content: { + "application/json": components["schemas"]["bulkQuoteErrorResponse"]; + }; + }; + /** @description An error occurred processing the bulk quote */ + bulkQuoteServerError: { + content: { + "application/json": components["schemas"]["bulkQuoteErrorResponse"]; + }; + }; + /** @description Timeout occurred processing the bulk quote */ + bulkQuoteTimeout: { + content: { + "application/json": components["schemas"]["bulkQuoteErrorResponse"]; + }; + }; + /** @description Bulk transfer accepted successfully */ + bulkTransactionAccepted: { + content: never; + }; + /** @description Malformed or missing required body, headers or parameters */ + bulkTransferBadRequest: { + content: { + "application/json": components["schemas"]["bulkTransferErrorResponse"]; + }; + }; + /** @description Internal Server Error */ + errorResponse: { + content: { + "application/json": components["schemas"]["errorResponse"]; + }; + }; + /** @description Malformed or missing required body, headers or parameters */ + bulkTransactionPutBadRequest: { + content: { + "application/json": components["schemas"]["bulkTransactionAcceptPartyErrorResponse"] | components["schemas"]["bulkTransactionAcceptQuoteErrorResponse"]; + }; + }; + /** @description Bulk transfer completed successfully */ + bulkTransferSuccess: { + content: { + "application/json": components["schemas"]["bulkTransferResponse"]; + }; + }; + /** @description PartiesByIdSuccess */ + partiesByIdSuccess: { + content: { + "application/json": components["schemas"]["partiesByIdResponse"]; + }; + }; + /** @description PartiesByIdError404 */ + partiesByIdError404: { + content: { + "application/json": { + errorInformation?: components["schemas"]["ErrorInformation"]; + }; + }; + }; + /** @description sync response from POST /quotes */ + quotesPostSuccess: { + content: { + "application/json": components["schemas"]["quotesPostResponse"]; + }; + }; + /** @description An error occurred processing the quotes request */ + quotesServerError: { + content: { + "application/json": components["schemas"]["errorQuotesResponse"]; + }; + }; + /** @description Request to Pay completed successfully */ + requestToPaySuccess: { + content: { + "application/json": components["schemas"]["requestToPayResponse"]; + }; + }; + /** @description An error occurred processing the transfer */ + transferServerError: { + content: { + "application/json": components["schemas"]["errorTransferResponse"]; + }; + }; + /** @description Timeout occurred processing the transfer */ + transferTimeout: { + content: { + "application/json": components["schemas"]["errorTransferResponse"]; + }; + }; + /** @description Transfer completed successfully */ + requestToPayTransferSuccess: { + content: { + "application/json": components["schemas"]["requestToPayTransferResponse"]; + }; + }; + /** @description Malformed or missing required body, headers or parameters */ + requestToPayTransferBadRequest: { + content: { + "application/json": components["schemas"]["errorTransferResponse"]; + }; + }; + /** @description Transfer completed successfully */ + transferSuccess: { + content: { + "application/json": components["schemas"]["transferResponse"]; + }; + }; + /** @description sync response from POST /simpleTransfers */ + simpleTransfersPostSuccess: { + content: { + "application/json": components["schemas"]["simpleTransfersPostResponse"]; + }; + }; + /** @description An error occurred processing the simple transfers request */ + simpleTransfersServerError: { + content: { + "application/json": components["schemas"]["errorSimpleTransfersResponse"]; + }; + }; + /** @description Malformed or missing required body, headers or parameters */ + transferBadRequest: { + content: { + "application/json": components["schemas"]["errorTransferResponse"]; + }; + }; + /** @description The response contains participants in a scheme who offer currency conversion services. If no participants offer these services, the return object will be blank. */ + servicesFXPSucess: { + content: { + "application/json": components["schemas"]["ServicesFXPPutResponse"]; + }; + }; + }; + parameters: { + /** @description Identifier of the bulk transfer to continue as returned in the response to a `POST /bulkTransfers` request. */ + bulkQuoteId: components["schemas"]["CorrelationId"]; + /** @description Identifier of the bulk transaction to continue as returned in the response to a `POST /bulkTransaction` request. */ + bulkTransactionId: components["schemas"]["CorrelationId"]; + /** @description Identifier of the bulk transfer to continue as returned in the response to a `POST /bulkTransfers` request. */ + bulkTransferId: components["schemas"]["CorrelationId"]; + /** @description The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`. */ + Type: string; + /** @description The identifier value. */ + ID: string; + /** @description A sub-identifier of the party identifier, or a sub-type of the party identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`. */ + SubId: string; + /** @description Identifier of the merchant request to pay to continue as returned in the response to a `POST /requestToPay` request. */ + transactionRequestId: components["schemas"]["CorrelationId"]; + /** @description Identifier of the transfer to continue as returned in the response to a `POST /transfers` request. */ + transferId: components["schemas"]["CorrelationId"]; + /** @description ISO 4217 currency code for the source currency. */ + SourceCurrency: string; + /** @description ISO 4217 currency code for the target currency. */ + TargetCurrency: string; + }; + requestBodies: never; + headers: never; + pathItems: never; +} + +export type $defs = Record; + +export type external = Record; + +export interface operations { + + /** + * PartiesByTypeAndID + * @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). + */ + PartiesByTypeAndID: { + parameters: { + path: { + Type: components["parameters"]["Type"]; + ID: components["parameters"]["ID"]; + }; + }; + responses: { + 200: components["responses"]["partiesByIdSuccess"]; + 404: components["responses"]["partiesByIdError404"]; + }; + }; + /** + * PartiesSubIdByTypeAndID + * @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). + */ + PartiesSubIdByTypeAndID: { + parameters: { + path: { + Type: components["parameters"]["Type"]; + ID: components["parameters"]["ID"]; + SubId: components["parameters"]["SubId"]; + }; + }; + responses: { + 200: components["responses"]["partiesByIdSuccess"]; + 404: components["responses"]["partiesByIdError404"]; + }; + }; + /** + * Quotes endpoint + * @description is used to request quotes from other DFSP + */ + QuotesPost: { + /** @description Quotes request payload */ + requestBody: { + content: { + "application/json": components["schemas"]["simpleQuotesPostRequest"]; + }; + }; + responses: { + 200: components["responses"]["quotesPostSuccess"]; + 500: components["responses"]["quotesServerError"]; + }; + }; + /** + * Simple Transfers endpoint + * @description is used to request a transfer + */ + SimpleTransfersPost: { + /** @description Simple Transfer request payload */ + requestBody: { + content: { + "application/json": components["schemas"]["simpleTransfersPostRequest"]; + }; + }; + responses: { + 200: components["responses"]["simpleTransfersPostSuccess"]; + 500: components["responses"]["simpleTransfersServerError"]; + }; + }; + /** + * Obtain a list of the DFSPs in the scheme who provide FXP service + * @description The HTTP request `GET /services/FXP` is used to request information about the participants in a scheme who offer currency conversion services. + */ + ServicesFXPGet: { + responses: { + 200: components["responses"]["servicesFXPSucess"]; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; + /** + * Obtain a list of the DFSPs in the scheme who provide FXP service + * @description The HTTP request `GET /services/FXP/{SourceCurrency}/{TargetCurrency}` is used to request information about the participants in a scheme who offer currency conversion services in a particular currency corridor. The required corridor is specified by giving the ISO 4217 currency code for the SourceCurrency and the TargetCurrency. + */ + ServicesFXPSourceCurrencyTargetCurrencyGet: { + parameters: { + path: { + SourceCurrency: components["parameters"]["SourceCurrency"]; + TargetCurrency: components["parameters"]["TargetCurrency"]; + }; + }; + responses: { + 200: components["responses"]["servicesFXPSucess"]; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; + /** + * Calculate FX quote + * @description The HTTP request `POST /fxQuotes` is used to ask to provide a quotation for a currency conversion. + */ + FxQuotesPost: { + /** @description Details of the FX quote request. */ + requestBody: { + content: { + "application/json": components["schemas"]["FxQuotesPostOutboundRequest"]; + }; + }; + responses: { + /** @description Successful response. */ + 200: { + content: { + "application/json": components["schemas"]["FxQuotesPostOutboundResponse"]; + }; + }; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; + /** + * Perform FX transfer + * @description The HTTP request `POST /fxTransfers` is used to ask to confirm the execution of an agreed currency conversion. + */ + FxTransfersPost: { + /** @description Details of the FX transfer request. */ + requestBody: { + content: { + "application/json": components["schemas"]["FxTransfersPostOutboundRequest"]; + }; + }; + responses: { + /** @description Successful response. */ + 200: { + content: { + "application/json": components["schemas"]["FxTransfersPostOutboundResponse"]; + }; + }; + 400: components["responses"]["400"]; + 500: components["responses"]["500"]; + }; + }; +} diff --git a/src/sdk-scheme-adapter/v2_1_0/outbound/schemas.ts b/src/sdk-scheme-adapter/v2_1_0/outbound/schemas.ts new file mode 100644 index 00000000..9b2bddbf --- /dev/null +++ b/src/sdk-scheme-adapter/v2_1_0/outbound/schemas.ts @@ -0,0 +1,146 @@ +/* eslint-disable @typescript-eslint/no-namespace */ + +/** This file is generated by json-schema-generator.js program **/ + +import JsonSchemas from './json-schemas.json' + +export namespace Schemas { + export const PartyIdType = JsonSchemas.PartyIdType + export const PartyIdentifier = JsonSchemas.PartyIdentifier + export const PartySubIdOrType = JsonSchemas.PartySubIdOrType + export const Currency = JsonSchemas.Currency + export const accountsRequest = JsonSchemas.accountsRequest + export const CorrelationId = JsonSchemas.CorrelationId + export const errorResponse = JsonSchemas.errorResponse + export const accountCreationStatus = JsonSchemas.accountCreationStatus + export const accountsCreationState = JsonSchemas.accountsCreationState + export const ErrorCode = JsonSchemas.ErrorCode + export const ErrorDescription = JsonSchemas.ErrorDescription + export const ExtensionKey = JsonSchemas.ExtensionKey + export const ExtensionValue = JsonSchemas.ExtensionValue + export const Extension = JsonSchemas.Extension + export const ExtensionList = JsonSchemas.ExtensionList + export const ErrorInformation = JsonSchemas.ErrorInformation + export const mojaloopError = JsonSchemas.mojaloopError + export const transferError = JsonSchemas.transferError + export const accountsResponse = JsonSchemas.accountsResponse + export const errorAccountsResponse = JsonSchemas.errorAccountsResponse + export const TransactionInitiatorType = JsonSchemas.TransactionInitiatorType + export const Name = JsonSchemas.Name + export const FirstName = JsonSchemas.FirstName + export const MiddleName = JsonSchemas.MiddleName + export const LastName = JsonSchemas.LastName + export const DateOfBirth = JsonSchemas.DateOfBirth + export const MerchantClassificationCode = JsonSchemas.MerchantClassificationCode + export const FspId = JsonSchemas.FspId + export const KYCInformation = JsonSchemas.KYCInformation + export const extensionListEmptiable = JsonSchemas.extensionListEmptiable + export const transferParty = JsonSchemas.transferParty + export const AmountType = JsonSchemas.AmountType + export const Amount = JsonSchemas.Amount + export const transferTransactionType = JsonSchemas.transferTransactionType + export const TransactionSubScenario = JsonSchemas.TransactionSubScenario + export const Note = JsonSchemas.Note + export const individualQuote = JsonSchemas.individualQuote + export const bulkQuoteRequest = JsonSchemas.bulkQuoteRequest + export const DateTime = JsonSchemas.DateTime + export const bulkTransferStatus = JsonSchemas.bulkTransferStatus + export const Money = JsonSchemas.Money + export const Latitude = JsonSchemas.Latitude + export const Longitude = JsonSchemas.Longitude + export const GeoCode = JsonSchemas.GeoCode + export const IlpPacket = JsonSchemas.IlpPacket + export const IlpCondition = JsonSchemas.IlpCondition + export const quoteError = JsonSchemas.quoteError + export const individualQuoteResult = JsonSchemas.individualQuoteResult + export const bulkQuoteResponse = JsonSchemas.bulkQuoteResponse + export const bulkQuoteErrorResponse = JsonSchemas.bulkQuoteErrorResponse + export const bulkQuoteStatus = JsonSchemas.bulkQuoteStatus + export const bulkQuoteStatusResponse = JsonSchemas.bulkQuoteStatusResponse + export const autoAcceptPartyOption = JsonSchemas.autoAcceptPartyOption + export const bulkPerTransferFeeLimit = JsonSchemas.bulkPerTransferFeeLimit + export const autoAcceptQuote = JsonSchemas.autoAcceptQuote + export const bulkTransactionOptions = JsonSchemas.bulkTransactionOptions + export const PartyIdInfo = JsonSchemas.PartyIdInfo + export const PartyName = JsonSchemas.PartyName + export const PartyComplexName = JsonSchemas.PartyComplexName + export const PartyPersonalInfo = JsonSchemas.PartyPersonalInfo + export const Party = JsonSchemas.Party + export const bulkTransactionIndividualTransfer = JsonSchemas.bulkTransactionIndividualTransfer + export const bulkTransactionRequest = JsonSchemas.bulkTransactionRequest + export const TransferState = JsonSchemas.TransferState + export const IlpFulfilment = JsonSchemas.IlpFulfilment + export const individualTransferResult = JsonSchemas.individualTransferResult + export const bulkTransferResponse = JsonSchemas.bulkTransferResponse + export const bulkTransferErrorResponse = JsonSchemas.bulkTransferErrorResponse + export const bulkTransactionIndividualTransferAccept = JsonSchemas.bulkTransactionIndividualTransferAccept + export const transferContinuationAcceptParty = JsonSchemas.transferContinuationAcceptParty + export const bulkTransactionContinuationAcceptParty = JsonSchemas.bulkTransactionContinuationAcceptParty + export const transferContinuationAcceptQuote = JsonSchemas.transferContinuationAcceptQuote + export const bulkTransactionContinuationAcceptQuote = JsonSchemas.bulkTransactionContinuationAcceptQuote + export const partyError = JsonSchemas.partyError + export const bulkTransactionAcceptPartyErrorResponse = JsonSchemas.bulkTransactionAcceptPartyErrorResponse + export const bulkTransactionAcceptQuoteErrorResponse = JsonSchemas.bulkTransactionAcceptQuoteErrorResponse + export const individualTransfer = JsonSchemas.individualTransfer + export const bulkTransferRequest = JsonSchemas.bulkTransferRequest + export const individualTransferFulfilment = JsonSchemas.individualTransferFulfilment + export const bulkTransferStatusResponse = JsonSchemas.bulkTransferStatusResponse + export const async2SyncCurrentState = JsonSchemas.async2SyncCurrentState + export const partiesByIdResponse = JsonSchemas.partiesByIdResponse + export const TransactionScenario = JsonSchemas.TransactionScenario + export const TransactionInitiator = JsonSchemas.TransactionInitiator + export const RefundReason = JsonSchemas.RefundReason + export const Refund = JsonSchemas.Refund + export const BalanceOfPayments = JsonSchemas.BalanceOfPayments + export const TransactionType = JsonSchemas.TransactionType + export const CurrencyConverter = JsonSchemas.CurrencyConverter + export const FxRate = JsonSchemas.FxRate + export const QuotesPostRequest = JsonSchemas.QuotesPostRequest + export const simpleQuotesPostRequest = JsonSchemas.simpleQuotesPostRequest + export const quotesPostResponse = JsonSchemas.quotesPostResponse + export const errorQuotesResponse = JsonSchemas.errorQuotesResponse + export const AuthenticationType = JsonSchemas.AuthenticationType + export const requestToPayRequest = JsonSchemas.requestToPayRequest + export const requestToPayStatus = JsonSchemas.requestToPayStatus + export const getPartiesResponse = JsonSchemas.getPartiesResponse + export const TransactionRequestState = JsonSchemas.TransactionRequestState + export const TransactionRequestResponse = JsonSchemas.TransactionRequestResponse + export const requestToPayResponse = JsonSchemas.requestToPayResponse + export const transferStatus = JsonSchemas.transferStatus + export const QuotesIDPutResponse = JsonSchemas.QuotesIDPutResponse + export const FxMoney = JsonSchemas.FxMoney + export const FxCharge = JsonSchemas.FxCharge + export const FxConversion = JsonSchemas.FxConversion + export const FxQuotesPostOutboundResponse = JsonSchemas.FxQuotesPostOutboundResponse + export const TransfersIDPutResponse = JsonSchemas.TransfersIDPutResponse + export const transferResponse = JsonSchemas.transferResponse + export const errorTransferResponse = JsonSchemas.errorTransferResponse + export const requestToPayTransferRequest = JsonSchemas.requestToPayTransferRequest + export const AuthenticationValue = JsonSchemas.AuthenticationValue + export const AuthenticationInfo = JsonSchemas.AuthenticationInfo + export const AuthorizationResponseType = JsonSchemas.AuthorizationResponseType + export const AuthorizationIDPutResponse = JsonSchemas.AuthorizationIDPutResponse + export const requestToPayTransferResponse = JsonSchemas.requestToPayTransferResponse + export const transferContinuationAcceptOTP = JsonSchemas.transferContinuationAcceptOTP + export const TransfersPostRequest = JsonSchemas.TransfersPostRequest + export const simpleTransfersPostRequest = JsonSchemas.simpleTransfersPostRequest + export const simpleTransfersPostResponse = JsonSchemas.simpleTransfersPostResponse + export const errorSimpleTransfersResponse = JsonSchemas.errorSimpleTransfersResponse + export const transferRequest = JsonSchemas.transferRequest + export const transferStatusResponse = JsonSchemas.transferStatusResponse + export const transferContinuationAcceptConversion = JsonSchemas.transferContinuationAcceptConversion + export const ServicesFXPPutResponse = JsonSchemas.ServicesFXPPutResponse + export const FxQuotesPostOutboundRequest = JsonSchemas.FxQuotesPostOutboundRequest + export const commitRequestId = JsonSchemas.commitRequestId + export const determiningTransferId = JsonSchemas.determiningTransferId + export const initiatingFsp = JsonSchemas.initiatingFsp + export const counterPartyFsp = JsonSchemas.counterPartyFsp + export const sourceAmount = JsonSchemas.sourceAmount + export const targetAmount = JsonSchemas.targetAmount + export const condition = JsonSchemas.condition + export const FxTransfersPostOutboundRequest = JsonSchemas.FxTransfersPostOutboundRequest + export const fulfilment = JsonSchemas.fulfilment + export const completedTimestamp = JsonSchemas.completedTimestamp + export const conversionState = JsonSchemas.conversionState + export const FxTransfersPostOutboundResponse = JsonSchemas.FxTransfersPostOutboundResponse +} diff --git a/src/sdk-scheme-adapter/v2_1_0/outbound/types.ts b/src/sdk-scheme-adapter/v2_1_0/outbound/types.ts new file mode 100644 index 00000000..85e7d3b7 --- /dev/null +++ b/src/sdk-scheme-adapter/v2_1_0/outbound/types.ts @@ -0,0 +1,146 @@ +/* eslint-disable @typescript-eslint/no-namespace */ + +/** This file is generated by json-schema-generator.js program **/ + +import { components } from './openapi' + +export namespace Types { + export type PartyIdType = components['schemas']['PartyIdType'] + export type PartyIdentifier = components['schemas']['PartyIdentifier'] + export type PartySubIdOrType = components['schemas']['PartySubIdOrType'] + export type Currency = components['schemas']['Currency'] + export type accountsRequest = components['schemas']['accountsRequest'] + export type CorrelationId = components['schemas']['CorrelationId'] + export type errorResponse = components['schemas']['errorResponse'] + export type accountCreationStatus = components['schemas']['accountCreationStatus'] + export type accountsCreationState = components['schemas']['accountsCreationState'] + export type ErrorCode = components['schemas']['ErrorCode'] + export type ErrorDescription = components['schemas']['ErrorDescription'] + export type ExtensionKey = components['schemas']['ExtensionKey'] + export type ExtensionValue = components['schemas']['ExtensionValue'] + export type Extension = components['schemas']['Extension'] + export type ExtensionList = components['schemas']['ExtensionList'] + export type ErrorInformation = components['schemas']['ErrorInformation'] + export type mojaloopError = components['schemas']['mojaloopError'] + export type transferError = components['schemas']['transferError'] + export type accountsResponse = components['schemas']['accountsResponse'] + export type errorAccountsResponse = components['schemas']['errorAccountsResponse'] + export type TransactionInitiatorType = components['schemas']['TransactionInitiatorType'] + export type Name = components['schemas']['Name'] + export type FirstName = components['schemas']['FirstName'] + export type MiddleName = components['schemas']['MiddleName'] + export type LastName = components['schemas']['LastName'] + export type DateOfBirth = components['schemas']['DateOfBirth'] + export type MerchantClassificationCode = components['schemas']['MerchantClassificationCode'] + export type FspId = components['schemas']['FspId'] + export type KYCInformation = components['schemas']['KYCInformation'] + export type extensionListEmptiable = components['schemas']['extensionListEmptiable'] + export type transferParty = components['schemas']['transferParty'] + export type AmountType = components['schemas']['AmountType'] + export type Amount = components['schemas']['Amount'] + export type transferTransactionType = components['schemas']['transferTransactionType'] + export type TransactionSubScenario = components['schemas']['TransactionSubScenario'] + export type Note = components['schemas']['Note'] + export type individualQuote = components['schemas']['individualQuote'] + export type bulkQuoteRequest = components['schemas']['bulkQuoteRequest'] + export type DateTime = components['schemas']['DateTime'] + export type bulkTransferStatus = components['schemas']['bulkTransferStatus'] + export type Money = components['schemas']['Money'] + export type Latitude = components['schemas']['Latitude'] + export type Longitude = components['schemas']['Longitude'] + export type GeoCode = components['schemas']['GeoCode'] + export type IlpPacket = components['schemas']['IlpPacket'] + export type IlpCondition = components['schemas']['IlpCondition'] + export type quoteError = components['schemas']['quoteError'] + export type individualQuoteResult = components['schemas']['individualQuoteResult'] + export type bulkQuoteResponse = components['schemas']['bulkQuoteResponse'] + export type bulkQuoteErrorResponse = components['schemas']['bulkQuoteErrorResponse'] + export type bulkQuoteStatus = components['schemas']['bulkQuoteStatus'] + export type bulkQuoteStatusResponse = components['schemas']['bulkQuoteStatusResponse'] + export type autoAcceptPartyOption = components['schemas']['autoAcceptPartyOption'] + export type bulkPerTransferFeeLimit = components['schemas']['bulkPerTransferFeeLimit'] + export type autoAcceptQuote = components['schemas']['autoAcceptQuote'] + export type bulkTransactionOptions = components['schemas']['bulkTransactionOptions'] + export type PartyIdInfo = components['schemas']['PartyIdInfo'] + export type PartyName = components['schemas']['PartyName'] + export type PartyComplexName = components['schemas']['PartyComplexName'] + export type PartyPersonalInfo = components['schemas']['PartyPersonalInfo'] + export type Party = components['schemas']['Party'] + export type bulkTransactionIndividualTransfer = components['schemas']['bulkTransactionIndividualTransfer'] + export type bulkTransactionRequest = components['schemas']['bulkTransactionRequest'] + export type TransferState = components['schemas']['TransferState'] + export type IlpFulfilment = components['schemas']['IlpFulfilment'] + export type individualTransferResult = components['schemas']['individualTransferResult'] + export type bulkTransferResponse = components['schemas']['bulkTransferResponse'] + export type bulkTransferErrorResponse = components['schemas']['bulkTransferErrorResponse'] + export type bulkTransactionIndividualTransferAccept = components['schemas']['bulkTransactionIndividualTransferAccept'] + export type transferContinuationAcceptParty = components['schemas']['transferContinuationAcceptParty'] + export type bulkTransactionContinuationAcceptParty = components['schemas']['bulkTransactionContinuationAcceptParty'] + export type transferContinuationAcceptQuote = components['schemas']['transferContinuationAcceptQuote'] + export type bulkTransactionContinuationAcceptQuote = components['schemas']['bulkTransactionContinuationAcceptQuote'] + export type partyError = components['schemas']['partyError'] + export type bulkTransactionAcceptPartyErrorResponse = components['schemas']['bulkTransactionAcceptPartyErrorResponse'] + export type bulkTransactionAcceptQuoteErrorResponse = components['schemas']['bulkTransactionAcceptQuoteErrorResponse'] + export type individualTransfer = components['schemas']['individualTransfer'] + export type bulkTransferRequest = components['schemas']['bulkTransferRequest'] + export type individualTransferFulfilment = components['schemas']['individualTransferFulfilment'] + export type bulkTransferStatusResponse = components['schemas']['bulkTransferStatusResponse'] + export type async2SyncCurrentState = components['schemas']['async2SyncCurrentState'] + export type partiesByIdResponse = components['schemas']['partiesByIdResponse'] + export type TransactionScenario = components['schemas']['TransactionScenario'] + export type TransactionInitiator = components['schemas']['TransactionInitiator'] + export type RefundReason = components['schemas']['RefundReason'] + export type Refund = components['schemas']['Refund'] + export type BalanceOfPayments = components['schemas']['BalanceOfPayments'] + export type TransactionType = components['schemas']['TransactionType'] + export type CurrencyConverter = components['schemas']['CurrencyConverter'] + export type FxRate = components['schemas']['FxRate'] + export type QuotesPostRequest = components['schemas']['QuotesPostRequest'] + export type simpleQuotesPostRequest = components['schemas']['simpleQuotesPostRequest'] + export type quotesPostResponse = components['schemas']['quotesPostResponse'] + export type errorQuotesResponse = components['schemas']['errorQuotesResponse'] + export type AuthenticationType = components['schemas']['AuthenticationType'] + export type requestToPayRequest = components['schemas']['requestToPayRequest'] + export type requestToPayStatus = components['schemas']['requestToPayStatus'] + export type getPartiesResponse = components['schemas']['getPartiesResponse'] + export type TransactionRequestState = components['schemas']['TransactionRequestState'] + export type TransactionRequestResponse = components['schemas']['TransactionRequestResponse'] + export type requestToPayResponse = components['schemas']['requestToPayResponse'] + export type transferStatus = components['schemas']['transferStatus'] + export type QuotesIDPutResponse = components['schemas']['QuotesIDPutResponse'] + export type FxMoney = components['schemas']['FxMoney'] + export type FxCharge = components['schemas']['FxCharge'] + export type FxConversion = components['schemas']['FxConversion'] + export type FxQuotesPostOutboundResponse = components['schemas']['FxQuotesPostOutboundResponse'] + export type TransfersIDPutResponse = components['schemas']['TransfersIDPutResponse'] + export type transferResponse = components['schemas']['transferResponse'] + export type errorTransferResponse = components['schemas']['errorTransferResponse'] + export type requestToPayTransferRequest = components['schemas']['requestToPayTransferRequest'] + export type AuthenticationValue = components['schemas']['AuthenticationValue'] + export type AuthenticationInfo = components['schemas']['AuthenticationInfo'] + export type AuthorizationResponseType = components['schemas']['AuthorizationResponseType'] + export type AuthorizationIDPutResponse = components['schemas']['AuthorizationIDPutResponse'] + export type requestToPayTransferResponse = components['schemas']['requestToPayTransferResponse'] + export type transferContinuationAcceptOTP = components['schemas']['transferContinuationAcceptOTP'] + export type TransfersPostRequest = components['schemas']['TransfersPostRequest'] + export type simpleTransfersPostRequest = components['schemas']['simpleTransfersPostRequest'] + export type simpleTransfersPostResponse = components['schemas']['simpleTransfersPostResponse'] + export type errorSimpleTransfersResponse = components['schemas']['errorSimpleTransfersResponse'] + export type transferRequest = components['schemas']['transferRequest'] + export type transferStatusResponse = components['schemas']['transferStatusResponse'] + export type transferContinuationAcceptConversion = components['schemas']['transferContinuationAcceptConversion'] + export type ServicesFXPPutResponse = components['schemas']['ServicesFXPPutResponse'] + export type FxQuotesPostOutboundRequest = components['schemas']['FxQuotesPostOutboundRequest'] + export type commitRequestId = components['schemas']['commitRequestId'] + export type determiningTransferId = components['schemas']['determiningTransferId'] + export type initiatingFsp = components['schemas']['initiatingFsp'] + export type counterPartyFsp = components['schemas']['counterPartyFsp'] + export type sourceAmount = components['schemas']['sourceAmount'] + export type targetAmount = components['schemas']['targetAmount'] + export type condition = components['schemas']['condition'] + export type FxTransfersPostOutboundRequest = components['schemas']['FxTransfersPostOutboundRequest'] + export type fulfilment = components['schemas']['fulfilment'] + export type completedTimestamp = components['schemas']['completedTimestamp'] + export type conversionState = components['schemas']['conversionState'] + export type FxTransfersPostOutboundResponse = components['schemas']['FxTransfersPostOutboundResponse'] +}