@mojaloop/central-services-shared
Version:
Shared code for mojaloop central services
1,439 lines • 70.5 kB
YAML
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