UNPKG

@mojaloop/central-services-shared

Version:
1,439 lines 70.5 kB
openapi: 3.0.0 info: title: >- Transaction Requests related parts of Open API for FSP Interoperability (FSPIOP) (Implementation Friendly Version) version: "1.0-oas3" description: >- Based on API Definition.docx updated on 2018-03-13 Version 1.0. 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) paths: /health: get: tags: - health - sampled responses: '200': $ref: '#/components/responses/ResponseHealth200' '400': $ref: '#/components/responses/ErrorResponse400' '401': $ref: '#/components/responses/ErrorResponse401' '403': $ref: '#/components/responses/ErrorResponse403' '404': $ref: '#/components/responses/ErrorResponse404' '405': $ref: '#/components/responses/ErrorResponse405' '406': $ref: '#/components/responses/ErrorResponse406' '501': $ref: '#/components/responses/ErrorResponse501' '503': $ref: '#/components/responses/ErrorResponse503' operationId: HealthGet summary: Get Server description: >- The HTTP request GET /health is used to return the current status of the API. /fakeHealth: get: tags: - fakeHealth responses: '200': $ref: '#/components/responses/ResponseHealth200' '400': $ref: '#/components/responses/ErrorResponse400' '401': $ref: '#/components/responses/ErrorResponse401' '403': $ref: '#/components/responses/ErrorResponse403' '404': $ref: '#/components/responses/ErrorResponse404' '405': $ref: '#/components/responses/ErrorResponse405' '406': $ref: '#/components/responses/ErrorResponse406' '501': $ref: '#/components/responses/ErrorResponse501' '503': $ref: '#/components/responses/ErrorResponse503' operationId: FakeHealth summary: FakeHealth Server description: >- The HTTP request GET /FakeHealth is used to return the current status of the API. /transactionRequests: post: tags: - 'transactionRequests' - 'sampled' parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/Content-Length' - $ref: '#/components/parameters/Content-Type' - $ref: '#/components/parameters/Date' - $ref: '#/components/parameters/X-Forwarded-For' - $ref: '#/components/parameters/FSPIOP-Source' - $ref: '#/components/parameters/FSPIOP-Destination' - $ref: '#/components/parameters/FSPIOP-Encryption' - $ref: '#/components/parameters/FSPIOP-Signature' - $ref: '#/components/parameters/FSPIOP-URI' - $ref: '#/components/parameters/FSPIOP-HTTP-Method' responses: '202': $ref: '#/components/responses/Response202' '400': $ref: '#/components/responses/ErrorResponse400' '401': $ref: '#/components/responses/ErrorResponse401' '403': $ref: '#/components/responses/ErrorResponse403' '404': $ref: '#/components/responses/ErrorResponse404' '405': $ref: '#/components/responses/ErrorResponse405' '406': $ref: '#/components/responses/ErrorResponse406' '501': $ref: '#/components/responses/ErrorResponse501' '503': $ref: '#/components/responses/ErrorResponse503' operationId: TransactionRequests summary: TransactionRequests description: >- The HTTP request POST /transactionRequests is used to request the creation of a transaction request for the provided financial transaction in the server. x-examples: application/json: “transactionRequestId”: “b51ec534-ee48-4575-b6a9-ead2955b8069” “payee”: partyIdInfo: “partyIdType”: “PERSONAL_ID” “partyIdentifier”: “16135551212” “partySubIdOrType”: “DRIVING_LICENSE” “fspId”: “1234” merchantClassificationCode: '4321' “name”: “Justin Trudeau” “personalInfo”: “complexName”: “firstName”: “Justin” “middleName”: “Pierre” “lastName”: “Trudeau” “dateOfBirth”: “1971-12-25” “payer”: “partyIdType”: “PERSONAL_ID” “partyIdentifier”: “16135551212” “partySubIdOrType”: “DRIVING_LICENSE” “fspId”: “1234” “amount”: “currency”: “USD” “amount”: “123.45” “transactionType”: “scenario”: “DEPOSIT” “subScenario”: “locally defined sub-scenario” “initiator”: “PAYEE” “initiatorType”: “CONSUMER” “refundInfo”: “originalTransactionId”: “b51ec534-ee48-4575-b6a9-ead2955b8069” “refundReason”: “free text indicating reason for the refund” “balanceOfPayments”: “123” “note”: “Free-text memo” “geoCode”: “latitude”: “+45.4215” “longitude”: “+75.6972” “authenticationType”: “OTP” “expiration”: '“2016-05-24T08:38:08.699-04:00”' extensionList: extension: - “key”: “errorDescription” “value”: “This is a more detailed error description” - “key”: “errorDescription” “value”: “This is a more detailed error description” requestBody: content: application/json: schema: $ref: '#/components/schemas/TransactionRequestsPostRequest' required: true servers: - url: / components: parameters: Accept: name: accept description: >- The Accept header field indicates the version of the API the client would like the server to use. in: header required: true schema: type: string Content-Length: name: content-length 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) in: header required: false schema: type: number Content-Type: name: content-type description: >- The Content-Type header indicates the specific version of the API used to send the payload body. in: header required: true schema: type: string Date: name: date description: The Date header field indicates the date when the request was sent. in: header required: true schema: type: string X-Forwarded-For: name: x-forwarded-for 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 as in the example shown here should be expected and supported by implementers of the API. Note - An alternative to X-Forwarded-For is defined in RFC 7239. However, to this point RFC 7239 is less-used and supported than X-Forwarded-For. in: header required: false schema: type: string FSPIOP-Source: name: fspiop-source 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). in: header required: true schema: type: string FSPIOP-Destination: name: fspiop-destination 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. in: header required: false schema: type: string FSPIOP-Encryption: name: fspiop-encryption 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. in: header required: false schema: type: string FSPIOP-Signature: name: fspiop-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. in: header required: false schema: type: string FSPIOP-URI: name: fspiop-uri 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 API Signature document. in: header required: false schema: type: string FSPIOP-HTTP-Method: name: fspiop-http-method 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 API Signature document. in: header required: false schema: type: string ID: name: ID in: path required: true schema: type: string Type: name: Type in: path required: true schema: type: string SubId: name: SubId in: path required: true schema: type: string responses: ResponseHealth200: description: OK content: application/json: schema: $ref: '#/components/schemas/Status' Response200: description: OK Response202: description: Accepted ErrorResponse400: description: >- Bad Request - The application cannot process the request; for example, due to malformed syntax or the payload exceeded size restrictions. headers: Content-Length: description: >- The Content-Length header field indicates the anticipated size of the payload body. Only sent if there is a body. schema: type: integer Content-Type: description: >- The Content-Type header indicates the specific version of the API used to send the payload body. schema: type: string content: application/json: schema: $ref: '#/components/schemas/ErrorInformationResponse' ErrorResponse401: description: >- Unauthorized - The request requires authentication in order to be processed. headers: Content-Length: description: >- The Content-Length header field indicates the anticipated size of the payload body. Only sent if there is a body. schema: type: integer Content-Type: description: >- The Content-Type header indicates the specific version of the API used to send the payload body. schema: type: string content: application/json: schema: $ref: '#/components/schemas/ErrorInformationResponse' ErrorResponse403: description: Forbidden - The request was denied and will be denied in the future. headers: Content-Length: description: >- The Content-Length header field indicates the anticipated size of the payload body. Only sent if there is a body. schema: type: integer Content-Type: description: >- The Content-Type header indicates the specific version of the API used to send the payload body. schema: type: string content: application/json: schema: $ref: '#/components/schemas/ErrorInformationResponse' ErrorResponse404: description: Not Found - The resource specified in the URI was not found. headers: Content-Length: description: >- The Content-Length header field indicates the anticipated size of the payload body. Only sent if there is a body. schema: type: integer Content-Type: description: >- The Content-Type header indicates the specific version of the API used to send the payload body. schema: type: string content: application/json: schema: $ref: '#/components/schemas/ErrorInformationResponse' ErrorResponse405: description: >- Method Not Allowed - An unsupported HTTP method for the request was used. headers: Content-Length: description: >- The Content-Length header field indicates the anticipated size of the payload body. Only sent if there is a body. schema: type: integer Content-Type: description: >- The Content-Type header indicates the specific version of the API used to send the payload body. schema: type: string content: application/json: schema: $ref: '#/components/schemas/ErrorInformationResponse' ErrorResponse406: description: >- Not acceptable - The server is not capable of generating content according to the Accept headers sent in the request. Used in the API to indicate that the server does not support the version that the client is requesting. headers: Content-Length: description: >- The Content-Length header field indicates the anticipated size of the payload body. Only sent if there is a body. schema: type: integer Content-Type: description: >- The Content-Type header indicates the specific version of the API used to send the payload body. schema: type: string content: application/json: schema: $ref: '#/components/schemas/ErrorInformationResponse' ErrorResponse501: description: >- Not Implemented - The server does not support the requested service. The client should not retry. headers: Content-Length: description: >- The Content-Length header field indicates the anticipated size of the payload body. Only sent if there is a body. schema: type: integer Content-Type: description: >- The Content-Type header indicates the specific version of the API used to send the payload body. schema: type: string content: application/json: schema: $ref: '#/components/schemas/ErrorInformationResponse' ErrorResponse503: description: >- Service Unavailable - The server is currently unavailable to accept any new service requests. This should be a temporary state, and the client should retry within a reasonable time frame. headers: Content-Length: description: >- The Content-Length header field indicates the anticipated size of the payload body. Only sent if there is a body. schema: type: integer Content-Type: description: >- The Content-Type header indicates the specific version of the API used to send the payload body. schema: type: string content: application/json: schema: $ref: '#/components/schemas/ErrorInformationResponse' requestBodies: ErrorInformationObject: content: application/json: schema: $ref: '#/components/schemas/ErrorInformationObject' required: true schemas: Amount: title: 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. pattern: '^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$' type: string AmountType: title: 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 fees. enum: - SEND - RECEIVE type: string AuthenticationType: title: AuthenticationTypeEnum 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. enum: - OTP - QRCODE type: string AuthenticationValue: title: AuthenticationValue description: >- Contains the authentication value. The format depends on the authentication type used in the AuthenticationInfo complex type. pattern: '^\d{3,10}$|^\S{1,64}$' type: string AuthorizationResponse: title: AuthorizationResponse 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. enum: - ENTERED - REJECTED - RESEND type: string BalanceOfPayments: title: BalanceOfPayments description: >- (BopCode) The API data type BopCode is a JSON String of 3 characters, consisting of digits only. Negative numbers are not allowed. A leading zero is not allowed. https://www.imf.org/external/np/sta/bopcode/ pattern: '^[1-9]\d{2}$' type: string BinaryString: 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. pattern: '^[A-Za-z0-9-_]+[=]{0,2}$' type: string BinaryString32: 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. pattern: '^[A-Za-z0-9-_]{43}$' type: string BulkTransferState: title: BulkTransactionStateEnum description: >- Below are the allowed values for the enumeration - 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. enum: - RECEIVED - PENDING - ACCEPTED - PROCESSING - COMPLETED - REJECTED type: string Code: title: Code description: Any code/token returned by the Payee FSP (TokenCode Type). pattern: '^[0-9a-zA-Z]{4,32}$' type: string CorrelationId: title: 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, that is restricted by a regular expression for interoperability reasons. An 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}$ type: string Currency: title: CurrencyEnum description: >- The currency codes defined in ISO 4217 as three-letter alphabetic codes are used as the standard naming representation for currencies. maxLength: 3 minLength: 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 - YER - ZAR - ZMW - ZWD type: string Date: title: Date 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 - "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)$ type: string DateOfBirth: title: DateofBirth (type Date) description: Date of Birth of the Party. 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 DateTime: title: 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, 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 - "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)$ type: string ErrorCode: title: 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}$' type: string ErrorDescription: title: ErrorDescription description: Error description string. maxLength: 128 minLength: 1 type: string ExtensionKey: title: ExtensionKey description: Extension key. maxLength: 32 minLength: 1 type: string ExtensionValue: title: ExtensionValue description: Extension value. maxLength: 128 minLength: 1 type: string FirstName: title: FirstName description: First name of the Party (Name Type). maxLength: 128 minLength: 1 pattern: '^(?!\s*$)[\p{L}\p{Nd} .,''-]{1,128}$' type: string FspId: title: FspId description: FSP identifier. maxLength: 32 minLength: 1 type: string IlpCondition: title: IlpCondition description: Condition that must be attached to the transfer by the Payer. maxLength: 48 pattern: '^[A-Za-z0-9-_]{43}$' type: string IlpFulfilment: title: IlpFulfilment description: Fulfilment that must be attached to the transfer by the Payee. maxLength: 48 pattern: '^[A-Za-z0-9-_]{43}$' type: string IlpPacket: title: IlpPacket description: Information for recipient (transport layer information). maxLength: 32768 minLength: 1 pattern: '^[A-Za-z0-9-_]+[=]{0,2}$' type: string Integer: title: Integer 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. pattern: '^[1-9]\d*$' type: string LastName: title: LastName description: Last name of the Party (Name Type). maxLength: 128 minLength: 1 pattern: '^(?!\s*$)[\p{L}\p{Nd} .,''-]{1,128}$' type: string Latitude: title: 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: title: 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 MerchantClassificationCode: title: 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}$' type: string MiddleName: title: MiddleName description: Middle name of the Party (Name Type). maxLength: 128 minLength: 1 pattern: '^(?!\s*$)[\p{L}\p{Nd} .,''-]{1,128}$' type: string Name: title: 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. pattern: '^(?!\s*$)[\w .,''-]{1,128}$' type: string Note: title: Note description: Memo assigned to transaction maxLength: 128 minLength: 1 type: string OtpValue: title: OtpValue 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. pattern: '^\d{3,10}$' type: string PartyIdentifier: title: PartyIdentifier description: Identifier of the Party. maxLength: 128 minLength: 1 type: string PartyIdType: title: PartyIdTypeEnum 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. 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. - 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: - MSISDN - EMAIL - PERSONAL_ID - BUSINESS - DEVICE - ACCOUNT_ID - IBAN - ALIAS - CONSENT - THIRD_PARTY_LINK type: string PartyName: title: PartyName description: Name of the Party. Could be a real name or a nickname. maxLength: 128 minLength: 1 type: string PartySubIdOrType: title: PartySubIdOrType description: >- Either a sub-identifier of a PartyIdentifier, or a sub-type of the PartyIdType, normally a PersonalIdentifierType. maxLength: 128 minLength: 1 type: string PersonalIdentifierType: title: PersonalIdentifierType description: >- Below are the allowed values for the enumeration - PASSPORT A passport number is used as reference to a Party. - NATIONAL_REGISTRATION A national registration number is used as reference to a Party. - DRIVING_LICENSE A driving license is used as reference to a Party. - ALIEN_REGISTRATION An alien registration number is used as reference to a Party. - NATIONAL_ID_CARD A national ID card number is used as reference to a Party. - EMPLOYER_ID A tax identification number is used as reference to a Party. - TAX_ID_NUMBER A tax identification number is used as reference to a Party. - SENIOR_CITIZENS_CARD A senior citizens card number is used as reference to a Party. - MARRIAGE_CERTIFICATE A marriage certificate number is used as reference to a Party. - HEALTH_CARD A health card number is used as reference to a Party. - VOTERS_ID A voter’s identification number is used as reference to a Party. - UNITED_NATIONS An UN (United Nations) number is used as reference to a Party. - OTHER_ID Any other type of identification type number is used as reference to a Party. enum: - PASSPORT - NATIONAL_REGISTRATION - DRIVING_LICENSE - ALIEN_REGISTRATION - NATIONAL_ID_CARD - EMPLOYER_ID - TAX_ID_NUMBER - SENIOR_CITIZENS_CARD - MARRIAGE_CERTIFICATE - HEALTH_CARD - VOTERS_ID - UNITED_NATIONS - OTHER_ID type: string QRCODE: title: QRCODE description: QR code used as One Time Password. maxLength: 64 minLength: 1 type: string RefundReason: title: RefundReason description: Reason for the refund. maxLength: 128 minLength: 1 type: string TokenCode: title: TokenCode 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. pattern: '^[0-9a-zA-Z]{4,32}$' type: string TransactionInitiator: title: TransactionInitiatorEnum 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. enum: - PAYER - PAYEE type: string TransactionInitiatorType: title: TransactionInitiatorTypeEnum 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. enum: - CONSUMER - AGENT - BUSINESS - DEVICE type: string TransactionRequestState: title: TransactionRequestStateEnum 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. enum: - RECEIVED - PENDING - ACCEPTED - REJECTED type: string TransactionScenario: title: TransactionScenarioEnum 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. enum: - DEPOSIT - WITHDRAWAL - TRANSFER - PAYMENT - REFUND type: string TransactionState: title: TransactionStateEnum description: >- Below are the allowed values for the enumeration - RECEIVED Payee FSP has received the transaction from the Payer FSP. - PENDING Payee FSP has validated the transaction. - COMPLETED Payee FSP has successfully performed the transaction. - REJECTED Payee FSP has failed to perform the transaction. enum: - RECEIVED - PENDING - COMPLETED - REJECTED type: string TransactionSubScenario: title: TransactionSubScenario description: >- Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type). pattern: '^[A-Z_]{1,32}$' type: string TransferState: title: TransferStateEnum 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 a rejection or failure to perform the transfer. enum: - RECEIVED - RESERVED - COMMITTED - ABORTED type: string UndefinedEnum: title: UndefinedEnum description: >- The API data type UndefinedEnum is a JSON String consisting of 1 to 32 uppercase characters including an underscore character (_). pattern: '^[A-Z_]{1,32}$' type: string AuthenticationInfo: title: AuthenticationInfo description: Data model for the complex type AuthenticationInfo required: - authentication - authenticationValue type: object properties: authentication: type: string authenticationValue: type: string AuthorizationsIDPutResponse: title: AuthorizationsIDPutResponse description: 'PUT /authorizations/{ID} object' required: - responseType type: object additionalProperties: false properties: authenticationInfo: $ref: '#/components/schemas/AuthenticationInfo' responseType: description: >- Enum containing response information; if the customer entered the authentication value, rejected the transaction, or requested a resend of the authentication value. type: string BulkQuotesPostRequest: title: BulkQuotesPostRequest description: POST /bulkQuotes object required: - bulkQuoteId - payer - individualQuotes type: object additionalProperties: false properties: bulkQuoteId: 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. type: string payer: $ref: '#/components/schemas/Party' geoCode: $ref: '#/components/schemas/GeoCode' expiration: description: >- Expiration is optional to let the Payee FSP know when a quote no longer needs to be returned. type: string individualQuotes: description: List of quotes elements. maxItems: 1000 minItems: 1 type: array items: $ref: '#/components/schemas/IndividualQuote' extensionList: $ref: '#/components/schemas/ExtensionList' BulkQuotesIDPutResponse: title: BulkQuotesIDPutResponse description: 'PUT /bulkQuotes/{ID} object' required: - expiration type: object additionalProperties: false properties: individualQuoteResults: description: >- Fees for each individual transaction, if any of them are charged per transaction. maxItems: 1000 type: array items: $ref: '#/components/schemas/IndividualQuoteResult' expiration: description: >- Date and time until when the quotation is valid and can be honored when used in the subsequent transaction request. type: string extensionList: $ref: '#/components/schemas/ExtensionList' BulkTransfersPostRequest: title: BulkTransfersPostRequest description: POST /bulkTransfers object required: - bulkTransferId - bulkQuoteId - payerFsp - payeeFsp - individualTransfers - expiration type: object additionalProperties: false properties: bulkTransferId: 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. type: string bulkQuoteId: description: ID of the related bulk quote. type: string payerFsp: description: Payer FSP identifier. type: string payeeFsp: description: Payee FSP identifier. type: string individualTransfers: description: List of IndividualTransfer elements. maxItems: 1000 minItems: 1 type: array items: $ref: '#/components/schemas/IndividualTransfer' expiration: description: Expiration time of the transfers. type: string extensionList: $ref: '#/components/schemas/ExtensionList' BulkTransfersIDPutResponse: title: BulkTransfersIDPutResponse description: 'PUT /bulkTransfers/{ID} object' required: - bulkTransferState type: object additionalProperties: false properties: completedTimestamp: description: Time and date when the bulk transaction was completed. type: string individualTransferResults: description: List of IndividualTransferResult elements. maxItems: 1000 type: array items: $ref: '#/components/schemas/IndividualTransferResult' bulkTransferState: description: The state of the bulk transfer. type: string extensionList: $ref: '#/components/schemas/ExtensionList' ErrorInformation: title: ErrorInformation description: Data model for the complex type ErrorInformation. required: - errorCode - errorDescription type: object additionalProperties: false properties: errorCode: description: Specific error number. type: string errorDescription: description: Error description string. type: string extensionList: $ref: '#/components/schemas/ExtensionList' ErrorInformationObject: title: ErrorInformationObject description: Data model for the complex type object that contains ErrorInformation. additionalProperties: false required: - errorInformation type: object properties: errorInformation: $ref: '#/components/schemas/ErrorInformation' ErrorInformationResponse: title: ErrorInformationResponse description: >- Data model for the complex type object that contains an optional element ErrorInformation used along with 4xx and 5xx responses. type: object additionalProperties: false properties: errorInformation: $ref: '#/components/schemas/ErrorInformation' Extension: title: Extension description: Data model for the complex type Extension required: - key - value type: object additionalProperties: false properties: key: description: Extension key. type: string value: description: Extension value. type: string ExtensionList: title: ExtensionList description: Data model for the complex type ExtensionList required: - extension type: object additionalProperties: false properties: extension: description: Number of Extension elements maxItems: 16 minItems: 1 type: array items: $ref: '#/components/schemas/Extension' GeoCode: title: GeoCode description: >- Data model for the complex type GeoCode. Indicates the geographic location from where the transaction was initiated. required: - latitude - longitude type: object additionalProperties: false properties: latitude: description: Latitude of the Party. type: string longitude: description: Longitude of the Party. type: string IndividualQuote: title: IndividualQuote description: Data model for the complex type IndividualQuote. required: - quoteId - transactionId - payee - amountType - amount - transactionType type: object additionalProperties: false properties: quoteId: description: Identifies quote message. type: string transactionId: description: Identifies transaction message. type: string payee: $ref: '#/components/schemas/Party' amountType: description: 'SEND for sendAmount, RECEIVE for receiveAmount.' type: string amount: $ref: '#/components/schemas/Money' fees: $ref: '#/components/schemas/Money' transactionType: $ref: '#/components/schemas/TransactionType' note: description: Memo that will be attached to the transaction. type: string extensionList: $ref: '#/components/schemas/ExtensionList' IndividualQuoteResult: title: IndividualQuoteResult description: Data model for the complex type IndividualQuoteResult. required: - quoteId type: object additionalProperties: false properties: quoteId: descript