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).

    **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)
    url: https://github.com/mojaloop/mojaloop-specification/blob/develop/LICENSE.md
servers:
  - url: protocol://hostname:<port>/switch/
    variables:
      protocol:
        enum:
          - http
          - https
        default: https
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.
      operationId: Interface
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/Amount'
                - $ref: '#/components/schemas/AmountType'
                - $ref: '#/components/schemas/AuthenticationInfo'
                - $ref: '#/components/schemas/AuthenticationType'
                - $ref: '#/components/schemas/AuthenticationValue'
                - $ref: '#/components/schemas/AuthorizationResponse'
                - $ref: '#/components/schemas/BalanceOfPayments'
                - $ref: '#/components/schemas/BinaryString'
                - $ref: '#/components/schemas/BinaryString32'
                - $ref: '#/components/schemas/BulkTransferState'
                - $ref: '#/components/schemas/Code'
                - $ref: '#/components/schemas/CorrelationId'
                - $ref: '#/components/schemas/Currency'
                - $ref: '#/components/schemas/Date'
                - $ref: '#/components/schemas/DateOfBirth'
                - $ref: '#/components/schemas/DateTime'
                - $ref: '#/components/schemas/ErrorCode'
                - $ref: '#/components/schemas/ErrorDescription'
                - $ref: '#/components/schemas/ExtensionKey'
                - $ref: '#/components/schemas/ExtensionValue'
                - $ref: '#/components/schemas/FirstName'
                - $ref: '#/components/schemas/FspId'
                - $ref: '#/components/schemas/IlpCondition'
                - $ref: '#/components/schemas/IlpFulfilment'
                - $ref: '#/components/schemas/IlpPacket'
                - $ref: '#/components/schemas/IndividualQuote'
                - $ref: '#/components/schemas/Integer'
                - $ref: '#/components/schemas/LastName'
                - $ref: '#/components/schemas/Latitude'
                - $ref: '#/components/schemas/Longitude'
                - $ref: '#/components/schemas/MerchantClassificationCode'
                - $ref: '#/components/schemas/MiddleName'
                - $ref: '#/components/schemas/Name'
                - $ref: '#/components/schemas/Note'
                - $ref: '#/components/schemas/OtpValue'
                - $ref: '#/components/schemas/PartyIdentifier'
                - $ref: '#/components/schemas/PartyIdType'
                - $ref: '#/components/schemas/PartyName'
                - $ref: '#/components/schemas/PartySubIdOrType'
                - $ref: '#/components/schemas/PersonalIdentifierType'
                - $ref: '#/components/schemas/RefundReason'
                - $ref: '#/components/schemas/QRCODE'
                - $ref: '#/components/schemas/TokenCode'
                - $ref: '#/components/schemas/Transaction'
                - $ref: '#/components/schemas/TransactionInitiator'
                - $ref: '#/components/schemas/TransactionInitiatorType'
                - $ref: '#/components/schemas/TransactionRequestState'
                - $ref: '#/components/schemas/TransactionScenario'
                - $ref: '#/components/schemas/TransactionState'
                - $ref: '#/components/schemas/TransactionSubScenario'
                - $ref: '#/components/schemas/TransferState'
                - $ref: '#/components/schemas/UndefinedEnum'
      responses:
        '200':
          description: Ok
  /participants/{Type}/{ID}:
    parameters:
      - $ref: '#/components/parameters/Type'
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Date'
      - $ref: '#/components/parameters/X-Forwarded-For'
      - $ref: '#/components/parameters/FSPIOP-Source'
      - $ref: '#/components/parameters/FSPIOP-Destination'
      - $ref: '#/components/parameters/FSPIOP-Encryption'
      - $ref: '#/components/parameters/FSPIOP-Signature'
      - $ref: '#/components/parameters/FSPIOP-URI'
      - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
    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`).
      summary: Create participant information
      tags:
        - participants
      operationId: ParticipantsByIDAndType
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Content-Length'
      requestBody:
        description: Participant information to be created.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParticipantsTypeIDSubIDPostRequest'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.
      summary: Look up participant information
      tags:
        - participants
      operationId: ParticipantsByTypeAndID
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.
      summary: Return participant information
      tags:
        - participants
      operationId: ParticipantsByTypeAndID3
      parameters:
        - $ref: '#/components/parameters/Content-Length'
      requestBody:
        description: Participant information returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParticipantsTypeIDPutResponse'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.

        **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
      operationId: ParticipantsByTypeAndID2
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Return participant information error
      tags:
        - participants
      operationId: ParticipantsErrorByTypeAndID
      parameters:
        - $ref: '#/components/parameters/Type'
        - $ref: '#/components/parameters/ID'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the error returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ErrorInformationObject'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /participants/{Type}/{ID}/{SubId}:
    parameters:
      - $ref: '#/components/parameters/Type'
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/SubId'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Date'
      - $ref: '#/components/parameters/X-Forwarded-For'
      - $ref: '#/components/parameters/FSPIOP-Source'
      - $ref: '#/components/parameters/FSPIOP-Destination'
      - $ref: '#/components/parameters/FSPIOP-Encryption'
      - $ref: '#/components/parameters/FSPIOP-Signature'
      - $ref: '#/components/parameters/FSPIOP-URI'
      - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
    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`).
      summary: Create participant information
      tags:
        - participants
      operationId: ParticipantsSubIdByTypeAndIDPost
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Content-Length'
      requestBody:
        description: Participant information to be created.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParticipantsTypeIDSubIDPostRequest'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.
      summary: Look up participant information
      tags:
        - participants
      operationId: ParticipantsSubIdByTypeAndID
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.
      summary: Return participant information
      tags:
        - participants
      operationId: ParticipantsSubIdByTypeAndID3
      parameters:
        - $ref: '#/components/parameters/Content-Length'
      requestBody:
        description: Participant information returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParticipantsTypeIDPutResponse'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.

        **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
      operationId: ParticipantsSubIdByTypeAndID2
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Return participant information error
      tags:
        - participants
      operationId: ParticipantsSubIdErrorByTypeAndID
      parameters:
        - $ref: '#/components/parameters/Type'
        - $ref: '#/components/parameters/ID'
        - $ref: '#/components/parameters/SubId'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the error returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ErrorInformationObject'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Create bulk participant information
      tags:
        - participants
      operationId: Participants1
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Participant information to be created.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParticipantsPostRequest'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Return bulk participant information
      tags:
        - participants
      operationId: putParticipantsByID
      parameters:
        - $ref: '#/components/parameters/ID'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Participant information returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParticipantsIDPutResponse'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Return bulk participant information error
      tags:
        - participants
      operationId: ParticipantsByIDAndError
      parameters:
        - $ref: '#/components/parameters/ID'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the error returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ErrorInformationObject'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /parties/{Type}/{ID}:
    parameters:
      - $ref: '#/components/parameters/Type'
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Date'
      - $ref: '#/components/parameters/X-Forwarded-For'
      - $ref: '#/components/parameters/FSPIOP-Source'
      - $ref: '#/components/parameters/FSPIOP-Destination'
      - $ref: '#/components/parameters/FSPIOP-Encryption'
      - $ref: '#/components/parameters/FSPIOP-Signature'
      - $ref: '#/components/parameters/FSPIOP-URI'
      - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
    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`).
      summary: Look up party information
      tags:
        - parties
      operationId: PartiesByTypeAndID
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.
      summary: Return party information
      tags:
        - parties
      operationId: PartiesByTypeAndID2
      parameters:
        - $ref: '#/components/parameters/Content-Length'
      requestBody:
        description: Party information returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartiesTypeIDPutResponse'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Return party information error
      tags:
        - parties
      operationId: PartiesErrorByTypeAndID
      parameters:
        - $ref: '#/components/parameters/Type'
        - $ref: '#/components/parameters/ID'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the error returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ErrorInformationObject'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /parties/{Type}/{ID}/{SubId}:
    parameters:
      - $ref: '#/components/parameters/Type'
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/SubId'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Date'
      - $ref: '#/components/parameters/X-Forwarded-For'
      - $ref: '#/components/parameters/FSPIOP-Source'
      - $ref: '#/components/parameters/FSPIOP-Destination'
      - $ref: '#/components/parameters/FSPIOP-Encryption'
      - $ref: '#/components/parameters/FSPIOP-Signature'
      - $ref: '#/components/parameters/FSPIOP-URI'
      - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
    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`).
      summary: Look up party information
      tags:
        - parties
      operationId: PartiesSubIdByTypeAndID
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.
      summary: Return party information
      tags:
        - parties
      operationId: PartiesSubIdByTypeAndIDPut
      parameters:
        - $ref: '#/components/parameters/Content-Length'
      requestBody:
        description: Party information returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartiesTypeIDPutResponse'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Return party information error
      tags:
        - parties
      operationId: PartiesSubIdErrorByTypeAndID
      parameters:
        - $ref: '#/components/parameters/Type'
        - $ref: '#/components/parameters/ID'
        - $ref: '#/components/parameters/SubId'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the error returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ErrorInformationObject'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Perform transaction request
      tags:
        - transactionRequests
      operationId: TransactionRequests
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Transaction request to be created.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionRequestsPostRequest'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /transactionRequests/{ID}:
    parameters:
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Date'
      - $ref: '#/components/parameters/X-Forwarded-For'
      - $ref: '#/components/parameters/FSPIOP-Source'
      - $ref: '#/components/parameters/FSPIOP-Destination'
      - $ref: '#/components/parameters/FSPIOP-Encryption'
      - $ref: '#/components/parameters/FSPIOP-Signature'
      - $ref: '#/components/parameters/FSPIOP-URI'
      - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
    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.
      summary: Retrieve transaction request information
      tags:
        - transactionRequests
      operationId: TransactionRequestsByID
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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}`.
      summary: Return transaction request information
      tags:
        - transactionRequests
      operationId: TransactionRequestsByIDPut
      parameters:
        - $ref: '#/components/parameters/Content-Length'
      requestBody:
        description: Transaction request information returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionRequestsIDPutResponse'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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}`.
      summary: Return transaction request information error
      tags:
        - transactionRequests
      operationId: TransactionRequestsErrorByID
      parameters:
        - $ref: '#/components/parameters/ID'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the error returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ErrorInformationObject'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Calculate quote
      tags:
        - quotes
      operationId: Quotes
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the quote to be created.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuotesPostRequest'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /quotes/{ID}:
    parameters:
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Date'
      - $ref: '#/components/parameters/X-Forwarded-For'
      - $ref: '#/components/parameters/FSPIOP-Source'
      - $ref: '#/components/parameters/FSPIOP-Destination'
      - $ref: '#/components/parameters/FSPIOP-Encryption'
      - $ref: '#/components/parameters/FSPIOP-Signature'
      - $ref: '#/components/parameters/FSPIOP-URI'
      - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
    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.
      summary: Retrieve quote information
      tags:
        - quotes
      operationId: QuotesByID
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.
      summary: Return quote information
      tags:
        - quotes
      operationId: QuotesByID1
      parameters:
        - $ref: '#/components/parameters/Content-Length'
      requestBody:
        description: Quote information returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuotesIDPutResponse'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Return quote information error
      tags:
        - quotes
      operationId: QuotesByIDAndError
      parameters:
        - $ref: '#/components/parameters/ID'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the error returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ErrorInformationObject'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /authorizations/{ID}:
    parameters:
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Date'
      - $ref: '#/components/parameters/X-Forwarded-For'
      - $ref: '#/components/parameters/FSPIOP-Source'
      - $ref: '#/components/parameters/FSPIOP-Destination'
      - $ref: '#/components/parameters/FSPIOP-Encryption'
      - $ref: '#/components/parameters/FSPIOP-Signature'
      - $ref: '#/components/parameters/FSPIOP-URI'
      - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
    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*:*

        - `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.

        - `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*:*

        `GET /authorization/3d492671-b7af-4f3f-88de-76169b1bdf88?authenticationType=OTP&retriesLeft=2&amount=102&currency=USD`
      summary: Perform authorization
      tags:
        - authorizations
      operationId: AuthorizationsByIDGet
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.
      summary: Return authorization result
      tags:
        - authorizations
      operationId: AuthorizationsByIDPut
      parameters:
        - $ref: '#/components/parameters/Content-Length'
      requestBody:
        description: Authorization result returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorizationsIDPutResponse'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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}`.
      summary: Return authorization error
      tags:
        - authorizations
      operationId: AuthorizationsByIDAndError
      parameters:
        - $ref: '#/components/parameters/ID'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the error returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ErrorInformationObject'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Perform transfer
      tags:
        - transfers
      operationId: transfers
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the transfer to be created.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransfersPostRequest'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /transfers/{ID}:
    parameters:
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Date'
      - $ref: '#/components/parameters/X-Forwarded-For'
      - $ref: '#/components/parameters/FSPIOP-Source'
      - $ref: '#/components/parameters/FSPIOP-Destination'
      - $ref: '#/components/parameters/FSPIOP-Encryption'
      - $ref: '#/components/parameters/FSPIOP-Signature'
      - $ref: '#/components/parameters/FSPIOP-URI'
      - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
    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.
      summary: Retrieve transfer information
      tags:
        - transfers
      operationId: TransfersByIDGet
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.
      summary: Return transfer information
      tags:
        - transfers
      operationId: TransfersByIDPut
      parameters:
        - $ref: '#/components/parameters/Content-Length'
      requestBody:
        description: Transfer information returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransfersIDPutResponse'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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}`.
      summary: Return transfer information error
      tags:
        - transfers
      operationId: TransfersByIDAndError
      parameters:
        - $ref: '#/components/parameters/ID'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the error returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ErrorInformationObject'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /transactions/{ID}:
    parameters:
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Date'
      - $ref: '#/components/parameters/X-Forwarded-For'
      - $ref: '#/components/parameters/FSPIOP-Source'
      - $ref: '#/components/parameters/FSPIOP-Destination'
      - $ref: '#/components/parameters/FSPIOP-Encryption'
      - $ref: '#/components/parameters/FSPIOP-Signature'
      - $ref: '#/components/parameters/FSPIOP-URI'
      - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
    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).
      summary: Retrieve transaction information
      tags:
        - transactions
      operationId: TransactionsByID
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.
      summary: Return transaction information
      tags:
        - transactions
      operationId: TransactionsByID1
      parameters:
        - $ref: '#/components/parameters/Content-Length'
      requestBody:
        description: Transaction information returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionsIDPutResponse'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Return transaction information error
      tags:
        - transactions
      operationId: TransactionsErrorByID
      parameters:
        - $ref: '#/components/parameters/ID'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the error returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ErrorInformationObject'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Calculate bulk quote
      tags:
        - bulkQuotes
      operationId: BulkQuotes
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the bulk quote to be created.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkQuotesPostRequest'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /bulkQuotes/{ID}:
    parameters:
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Date'
      - $ref: '#/components/parameters/X-Forwarded-For'
      - $ref: '#/components/parameters/FSPIOP-Source'
      - $ref: '#/components/parameters/FSPIOP-Destination'
      - $ref: '#/components/parameters/FSPIOP-Encryption'
      - $ref: '#/components/parameters/FSPIOP-Signature'
      - $ref: '#/components/parameters/FSPIOP-URI'
      - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
    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.
      summary: Retrieve bulk quote information
      tags:
        - bulkQuotes
      operationId: BulkQuotesByID
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.
      summary: Return bulk quote information
      tags:
        - bulkQuotes
      operationId: BulkQuotesByID1
      parameters:
        - $ref: '#/components/parameters/Content-Length'
      requestBody:
        description: Bulk quote information returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkQuotesIDPutResponse'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Return bulk quote information error
      tags:
        - bulkQuotes
      operationId: BulkQuotesErrorByID
      parameters:
        - $ref: '#/components/parameters/ID'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the error returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ErrorInformationObject'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /bulkTransfers:
    post:
      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
      operationId: BulkTransfers
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the bulk transfer to be created.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkTransfersPostRequest'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /bulkTransfers/{ID}:
    parameters:
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Date'
      - $ref: '#/components/parameters/X-Forwarded-For'
      - $ref: '#/components/parameters/FSPIOP-Source'
      - $ref: '#/components/parameters/FSPIOP-Destination'
      - $ref: '#/components/parameters/FSPIOP-Encryption'
      - $ref: '#/components/parameters/FSPIOP-Signature'
      - $ref: '#/components/parameters/FSPIOP-URI'
      - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
    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.
      summary: Retrieve bulk transfer information
      tags:
        - bulkTransfers
      operationId: BulkTransferByID
      parameters:
        - $ref: '#/components/parameters/Accept'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    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.
      summary: Return bulk transfer information
      tags:
        - bulkTransfers
      operationId: BulkTransfersByIDPut
      parameters:
        - $ref: '#/components/parameters/Content-Length'
      requestBody:
        description: Bulk transfer information returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkTransfersIDPutResponse'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /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.
      summary: Return bulk transfer information error
      tags:
        - bulkTransfers
      operationId: BulkTransfersErrorByID
      parameters:
        - $ref: '#/components/parameters/ID'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Date'
        - $ref: '#/components/parameters/X-Forwarded-For'
        - $ref: '#/components/parameters/FSPIOP-Source'
        - $ref: '#/components/parameters/FSPIOP-Destination'
        - $ref: '#/components/parameters/FSPIOP-Encryption'
        - $ref: '#/components/parameters/FSPIOP-Signature'
        - $ref: '#/components/parameters/FSPIOP-URI'
        - $ref: '#/components/parameters/FSPIOP-HTTP-Method'
      requestBody:
        description: Details of the error returned.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ErrorInformationObject'
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
components:
  schemas:
    Amount:
      title: Amount
      type: string
      pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$
      description: The API data type Amount is a JSON String in a canonical format that is restricted by a regular expression for interoperability reasons. This pattern does not allow any trailing zeroes at all, but allows an amount without a minor currency unit. It also only allows four digits in the minor currency unit; a negative value is not allowed. Using more than 18 digits in the major currency unit is not allowed.
    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.
    AuthenticationInfo:
      title: AuthenticationInfo
      type: object
      description: Data model for the complex type AuthenticationInfo.
      properties:
        authentication:
          type: string
          description: Type of authentication.
          example: OTP
        authenticationValue:
          type: string
          description: Authentication value.
          example: 1234
      required:
        - authentication
        - authenticationValue
    AuthenticationType:
      title: AuthenticationType
      type: string
      enum:
        - OTP
        - QRCODE
      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.
    OtpValue:
      title: OtpValue
      type: string
      pattern: ^\d{3,10}$
      description: The API data type OtpValue is a JSON String of 3 to 10 characters, consisting of digits only. Negative numbers are not allowed. One or more leading zeros are allowed.
    QRCODE:
      title: QRCODE
      type: string
      minLength: 1
      maxLength: 64
      description: QR code used as a One Time Password.
    AuthenticationValue:
      title: AuthenticationValue
      oneOf:
        - $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.
    AuthorizationResponse:
      title: AuthorizationResponse
      type: string
      enum:
        - ENTERED
        - REJECTED
        - RESEND
      description: |-
        Below are the allowed values for the enumeration.
        - ENTERED - Consumer entered the authentication value.
        - REJECTED - Consumer rejected the transaction.
        - RESEND - Consumer requested to resend the authentication value.
    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.
    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.
    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.
    BulkTransferState:
      title: BulkTransactionState
      type: string
      enum:
        - RECEIVED
        - PENDING
        - ACCEPTED
        - PROCESSING
        - COMPLETED
        - REJECTED
      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.
    Code:
      title: Code
      type: string
      pattern: ^[0-9a-zA-Z]{4,32}$
      description: Any code/token returned by the Payee FSP (TokenCode Type).
    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 (‘-‘).
    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
    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”.
    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.
    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).
    ErrorCode:
      title: ErrorCode
      type: string
      pattern: ^[1-9]\d{3}$
      description: The API data type ErrorCode is a JSON String of four characters, consisting of digits only. Negative numbers are not allowed. A leading zero is not allowed. Each error code in the API is a four-digit number, for example, 1234, where the first number (1 in the example) represents the high-level error category, the second number (2 in the example) represents the low-level error category, and the last two numbers (34 in the example) represent the specific error.
    ErrorDescription:
      title: ErrorDescription
      type: string
      minLength: 1
      maxLength: 128
      description: Error description string.
    ExtensionKey:
      title: ExtensionKey
      type: string
      minLength: 1
      maxLength: 32
      description: Extension key.
    ExtensionValue:
      title: ExtensionValue
      type: string
      minLength: 1
      maxLength: 128
      description: Extension value.
    FirstName:
      title: FirstName
      type: string
      minLength: 1
      maxLength: 128
      pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,128}$
      description: First name of the Party (Name Type).
    FspId:
      title: FspId
      type: string
      minLength: 1
      maxLength: 32
      description: FSP identifier.
    IlpCondition:
      title: IlpCondition
      type: string
      pattern: ^[A-Za-z0-9-_]{43}$
      maxLength: 48
      description: Condition that must be attached to the transfer by the Payer.
    IlpFulfilment:
      title: IlpFulfilment
      type: string
      pattern: ^[A-Za-z0-9-_]{43}$
      maxLength: 48
      description: Fulfilment that must be attached to the transfer by the Payee.
    IlpPacket:
      title: IlpPacket
      type: string
      pattern: ^[A-Za-z0-9-_]+[=]{0,2}$
      minLength: 1
      maxLength: 32768
      description: Information for recipient (transport layer information).
    PartyIdInfo:
      title: PartyIdInfo
      type: object
      description: Data model for the complex type PartyIdInfo.
      properties:
        partyIdType:
          type: string
          description: Type of the identifier.
          example: PERSONAL_ID
        partyIdentifier:
          type: string
          description: An identifier for the Party.
          example: 16135551212
        partySubIdOrType:
          type: string
          description: A sub-identifier or sub-type for the Party.
          example: DRIVING_LICENSE
        fspId:
          type: string
          description: FSP ID (if known).
          example: 1234
      required:
        - partyIdType
        - partyIdentifier
    PartyComplexName:
      title: PartyComplexName
      type: object
      description: Data model for the complex type PartyComplexName.
      properties:
        firstName:
          type: string
          description: Party’s first name.
          example: Henrik
        middleName:
          type: string
          description: Party’s middle name.
          example: Johannes
        lastName:
          type: string
          description: Party’s last name.
          example: Karlsson
    PartyPersonalInfo:
      title: PartyPersonalInfo
      type: object
      description: Data model for the complex type PartyPersonalInfo.
      properties:
        complexName:
          $ref: '#/components/schemas/PartyComplexName'
          description: First, middle and last name for the Party.
        dateOfBirth:
          type: string
          description: Date of birth for the Party.
          example: '1966-06-16'
    Party:
      title: Party
      type: object
      description: Data model for the complex type Party.
      properties:
        partyIdInfo:
          $ref: '#/components/schemas/PartyIdInfo'
          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.
          example: 4321
        name:
          type: string
          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.
      required:
        - partyIdInfo
    Refund:
      title: Refund
      type: object
      description: Data model for the complex type Refund.
      properties:
        originalTransactionId:
          type: string
          description: Reference to the original transaction ID that is requested to be refunded.
          example: b51ec534-ee48-4575-b6a9-ead2955b8069
        refundReason:
          type: string
          description: Free text indicating the reason for the refund.
          example: Free text indicating reason for the refund.
      required:
        - originalTransactionId
    TransactionType:
      title: TransactionType
      type: object
      description: Data model for the complex type TransactionType.
      properties:
        scenario:
          type: string
          description: Deposit, withdrawal, refund, …
          example: DEPOSIT
        subScenario:
          type: string
          description: Possible sub-scenario, defined locally within the scheme.
          example: Locally defined sub-scenario.
        initiator:
          type: string
          description: Who is initiating the transaction - Payer or Payee.
          example: PAYEE
        initiatorType:
          type: string
          description: Consumer, agent, business, …
          example: CONSUMER
        refundInfo:
          $ref: '#/components/schemas/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.
          example: 123
      required:
        - scenario
        - initiator
        - initiatorType
    Extension:
      title: Extension
      type: object
      description: Data model for the complex type Extension.
      properties:
        key:
          type: string
          description: Extension key.
        value:
          type: string
          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:
            $ref: '#/components/schemas/Extension'
          minItems: 1
          maxItems: 16
          description: Number of Extension elements.
      required:
        - extension
    IndividualQuote:
      title: IndividualQuote
      type: object
      description: Data model for the complex type IndividualQuote.
      properties:
        quoteId:
          type: string
          description: Identifies the quote message.
          example: b51ec534-ee48-4575-b6a9-ead2955b8069
        transactionId:
          type: string
          description: Identifies the transaction message.
          example: b51ec534-ee48-4575-b6a9-ead2955b8069
        payee:
          $ref: '#/components/schemas/Party'
          description: Information about the Payee in the proposed financial transaction.
        amountType:
          type: string
          description: SEND for sendAmount, RECEIVE for receiveAmount.
          example: RECEIVE
        amount:
          properties:
            currency:
              type: string
              description: Currency of the amount.
              example: USD
            amount:
              type: string
              description: Amount of money.
              example: '123.45'
        fees:
          properties:
            currency:
              type: string
              description: Currency of the amount.
              example: USD
            amount:
              type: string
              description: Amount of money.
              example: '1.45'
        transactionType:
          $ref: '#/components/schemas/TransactionType'
          description: Type of transaction that the quote is requested for.
        note:
          type: string
          description: Memo that will be attached to the transaction.
          example: Note sent to Payee.
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - quoteId
        - transactionId
        - payee
        - amountType
        - amount
        - transactionType
    Integer:
      title: Integer
      type: string
      pattern: ^[1-9]\d*$
      description: The API data type Integer is a JSON String consisting of digits only. Negative numbers and leading zeroes are not allowed. The data type is always limited to a specific number of digits.
    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).
    Latitude:
      title: Latitude
      type: string
      pattern: ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$
      description: The API data type Latitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons.
    Longitude:
      title: Longitude
      type: string
      pattern: ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$
      description: The API data type Longitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons.
    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).
    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.
    Note:
      title: Note
      type: string
      minLength: 1
      maxLength: 128
      description: Memo assigned to transaction.
    PartyIdentifier:
      title: PartyIdentifier
      type: string
      minLength: 1
      maxLength: 128
      description: Identifier of the Party.
    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.
    PartyName:
      title: PartyName
      type: string
      minLength: 1
      maxLength: 128
      description: Name of the Party. Could be a real name or a nickname.
    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.
    PersonalIdentifierType:
      title: PersonalIdentifierType
      type: string
      enum:
        - PASSPORT
        - NATIONAL_REGISTRATION
        - DRIVING_LICENSE
        - ALIEN_REGISTRATION
        - NATIONAL_ID_CARD
        - EMPLOYER_ID
        - TAX_ID_NUMBER
        - SENIOR_CITIZENS_CARD
        - MARRIAGE_CERTIFICATE
        - HEALTH_CARD
        - VOTERS_ID
        - UNITED_NATIONS
        - OTHER_ID
      description: |-
        Below are the allowed values for the enumeration.
        - PASSPORT - A passport number is used as reference to a Party.
        - NATIONAL_REGISTRATION - A national registration number is used as reference to a Party.
        - DRIVING_LICENSE - A driving license is used as reference to a Party.
        - ALIEN_REGISTRATION - An alien registration number is used as reference to a Party.
        - NATIONAL_ID_CARD - A national ID card number is used as reference to a Party.
        - EMPLOYER_ID - A tax identification number is used as reference to a Party.
        - TAX_ID_NUMBER - A tax identification number is used as reference to a Party.
        - SENIOR_CITIZENS_CARD - A senior citizens card number is used as reference to a Party.
        - MARRIAGE_CERTIFICATE - A marriage certificate number is used as reference to a Party.
        - HEALTH_CARD - A health card number is used as reference to a Party.
        - VOTERS_ID - A voter’s identification number is used as reference to a Party.
        - UNITED_NATIONS - An UN (United Nations) number is used as reference to a Party.
        - OTHER_ID - Any other type of identification type number is used as reference to a Party.
    RefundReason:
      title: RefundReason
      type: string
      minLength: 1
      maxLength: 128
      description: Reason for the refund.
    TokenCode:
      title: TokenCode
      type: string
      pattern: ^[0-9a-zA-Z]{4,32}$
      description: The API data type TokenCode is a JSON String between 4 and 32 characters, consisting of digits or upper- or lowercase characters from a to z.
    Money:
      title: Money
      type: object
      description: Data model for the complex type Money.
      properties:
        currency:
          type: string
          description: Currency of the amount.
          example: USD
        amount:
          type: string
          description: Amount of Money.
          example: '123.45'
      required:
        - currency
        - amount
    Transaction:
      title: Transaction
      type: object
      description: Data model for the complex type Transaction. The Transaction type is used to carry end-to-end data between the Payer FSP and the Payee FSP in the ILP Packet. Both the transactionId and the quoteId in the data model are decided by the Payer FSP in the POST /quotes request.
      properties:
        transactionId:
          type: string
          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.
        payee:
          $ref: '#/components/schemas/Party'
          description: Information about the Payee in the proposed financial transaction.
        payer:
          $ref: '#/components/schemas/Party'
          description: Information about the Payer in the proposed financial transaction.
        amount:
          $ref: '#/components/schemas/Money'
          description: Transaction amount to be sent.
        transactionType:
          $ref: '#/components/schemas/TransactionType'
          description: Type of the transaction.
        note:
          type: string
          description: Memo associated to the transaction, intended to the Payee.
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - transactionId
        - quoteId
        - payee
        - payer
        - amount
        - transactionType
    TransactionInitiator:
      title: TransactionInitiator
      type: string
      enum:
        - PAYER
        - PAYEE
      description: |-
        Below are the allowed values for the enumeration.
        - PAYER - Sender of funds is initiating the transaction. The account to send from is either owned by the Payer or is connected to the Payer in some way.
        - PAYEE - Recipient of the funds is initiating the transaction by sending a transaction request. The Payer must approve the transaction, either automatically by a pre-generated OTP or by pre-approval of the Payee, or by manually approving in his or her own Device.
    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.
    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.
    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.
    TransactionState:
      title: TransactionState
      type: string
      enum:
        - RECEIVED
        - PENDING
        - COMPLETED
        - REJECTED
      description: |-
        Below are the allowed values for the enumeration.
        - RECEIVED - Payee FSP has received the transaction from the Payer FSP.
        - PENDING - Payee FSP has validated the transaction.
        - COMPLETED - Payee FSP has successfully performed the transaction.
        - REJECTED - Payee FSP has failed to perform the transaction.
    TransactionSubScenario:
      title: TransactionSubScenario
      type: string
      pattern: ^[A-Z_]{1,32}$
      description: Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type).
    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.
    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 (_).
    ErrorInformation:
      title: ErrorInformation
      type: object
      description: Data model for the complex type ErrorInformation.
      properties:
        errorCode:
          type: string
          description: Specific error number.
          example: 5100
        errorDescription:
          type: string
          description: Error description string.
          example: This is an error description.
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
      required:
        - errorCode
        - errorDescription
    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.
      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.
      properties:
        fspId:
          type: string
          description: FSP Identifier that the Party belongs to.
          example: 1234
    ParticipantsTypeIDSubIDPostRequest:
      title: ParticipantsTypeIDSubIDPostRequest
      type: object
      description: The object sent in the POST /participants/{Type}/{ID}/{SubId} and /participants/{Type}/{ID} requests.
      properties:
        fspId:
          type: string
          description: FSP Identifier that the Party belongs to.
          example: 1234
        currency:
          type: string
          description: Indicate that the provided Currency is supported by the Party.
          example: USD
      required:
        - fspId
    ErrorInformationObject:
      title: ErrorInformationObject
      type: object
      description: Data model for the complex type object that contains ErrorInformation.
      properties:
        errorInformation:
          $ref: '#/components/schemas/ErrorInformation'
      required:
        - errorInformation
    ParticipantsPostRequest:
      title: ParticipantsPostRequest
      type: object
      description: The object sent in the POST /participants request.
      properties:
        requestId:
          type: string
          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
          items:
            $ref: '#/components/schemas/PartyIdInfo'
          minItems: 1
          maxItems: 10000
          description: List of PartyIdInfo elements that the client would like to update or create FSP information about.
        currency:
          type: string
          description: Indicate that the provided Currency is supported by each PartyIdInfo in the list.
          example: USD
      required:
        - requestId
        - partyList
    PartyResult:
      title: PartyResult
      type: object
      description: Data model for the complex type PartyResult.
      properties:
        partyId:
          $ref: '#/components/schemas/PartyIdInfo'
          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.
      required:
        - partyId
    ParticipantsIDPutResponse:
      title: ParticipantsIDPutResponse
      type: object
      description: The object sent in the PUT /participants/{ID} callback.
      properties:
        partyList:
          type: array
          items:
            $ref: '#/components/schemas/PartyResult'
          minItems: 1
          maxItems: 10000
          description: List of PartyResult elements that were either created or failed to be created.
        currency:
          type: string
          description: Indicate that the provided Currency was set to be supported by each successfully added PartyIdInfo.
          example: USD
      required:
        - partyList
    PartiesTypeIDPutResponse:
      title: PartiesTypeIDPutResponse
      type: object
      description: The object sent in the PUT /parties/{Type}/{ID} callback.
      properties:
        party:
          $ref: '#/components/schemas/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.
      properties:
        latitude:
          type: string
          description: Latitude of the Party.
          example: '+45.4215'
        longitude:
          type: string
          description: Longitude of the Party.
          example: '+75.6972'
      required:
        - latitude
        - longitude
    TransactionRequestsPostRequest:
      title: TransactionRequestsPostRequest
      type: object
      description: The object sent in the POST /transactionRequests request.
      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.
          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.
        amount:
          $ref: '#/components/schemas/Money'
          description: Requested amount to be transferred from the Payer to Payee.
        transactionType:
          $ref: '#/components/schemas/TransactionType'
          description: Type of transaction.
        note:
          type: string
          description: Reason for the transaction request, intended to the Payer.
          example: Free-text memo.
        geoCode:
          $ref: '#/components/schemas/GeoCode'
          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.
          example: '2016-05-24T08:38:08.699-04:00'
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - transactionRequestId
        - payee
        - payer
        - amount
        - transactionType
    TransactionRequestsIDPutResponse:
      title: TransactionRequestsIDPutResponse
      type: object
      description: The object sent in the PUT /transactionRequests/{ID} callback.
      properties:
        transactionId:
          type: string
          description: Identifies a related transaction (if a transaction has been created).
          example: b51ec534-ee48-4575-b6a9-ead2955b8069
        transactionRequestState:
          type: string
          description: State of the transaction request.
          example: RECEIVED
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - transactionRequestState
    QuotesPostRequest:
      title: QuotesPostRequest
      type: object
      description: The object sent in the POST /quotes request.
      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.
          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.
          example: a8323bc6-c228-4df2-ae82-e5a997baf899
        transactionRequestId:
          type: string
          description: Identifies an optional previously-sent transaction request.
          example: a8323bc6-c228-4df2-ae82-e5a997baf890
        payee:
          $ref: '#/components/schemas/Party'
          description: Information about the Payee in the proposed financial transaction.
        payer:
          properties:
            partyIdInfo:
              properties:
                partyIdType:
                  type: string
                  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.
                  example: 16135551212
                partySubIdOrType:
                  type: string
                  description: Information about the Payer in the proposed financial transaction. A sub-identifier or sub-type for the Party.
                  example: PASSPORT
                fspId:
                  type: string
                  description: FSP ID (if known).
                  example: 1234
            merchantClassificationCode:
              type: string
              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.
              example: Lars Bergqvist
            personalInfo:
              properties:
                complexName:
                  properties:
                    firstName:
                      type: string
                      description: Party’s first name.
                      example: Lars
                    middleName:
                      type: string
                      description: Party’s middle name.
                      example: Per
                    lastName:
                      type: string
                      description: Party’s last name.
                      example: Bergqvist
                dateOfBirth:
                  type: string
                  description: Date of birth for the Party.
                  example: '1977-07-17'
        amountType:
          type: string
          description: SEND for send amount, RECEIVE for receive amount.
          example: SEND
        amount:
          properties:
            currency:
              type: string
              description: Currency of the amount.
              example: USD
            amount:
              type: string
              description: Amount of money.
              example: 123.45
        fees:
          properties:
            currency:
              type: string
              description: Currency of the amount.
              example: USD
            amount:
              type: string
              description: Amount of money.
              example: 1.25
        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.
        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.
          example: '2016-05-24T08:38:08.699-04:00'
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - quoteId
        - transactionId
        - payee
        - payer
        - amountType
        - amount
        - transactionType
    QuotesIDPutResponse:
      title: QuotesIDPutResponse
      type: object
      description: The object sent in the PUT /quotes/{ID} callback.
      properties:
        transferAmount:
          properties:
            currency:
              type: string
              description: Currency of the amount.
              example: USD
            amount:
              type: string
              description: Amount of money.
              example: '124.45'
        payeeReceiveAmount:
          properties:
            currency:
              type: string
              description: Currency of the amount.
              example: USD
            amount:
              type: string
              description: Amount of money.
              example: '123.45'
        payeeFspFee:
          properties:
            currency:
              type: string
              description: Currency of the amount.
              example: USD
            amount:
              type: string
              description: Amount of money.
              example: '1.45'
        payeeFspCommission:
          properties:
            currency:
              type: string
              description: Currency of the amount.
              example: USD
            amount:
              type: string
              description: Amount of money.
              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.
          example: '2016-05-24T08:38:08.699-04:00'
        geoCode:
          $ref: '#/components/schemas/GeoCode'
          description: Longitude and Latitude of the Payee. Can be used to detect fraud.
        ilpPacket:
          type: string
          description: The ILP Packet that must be attached to the transfer by the Payer.
          example: “AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA”
        condition:
          type: string
          description: The condition that must be attached to the transfer by the Payer.
          example: f5sqb7tBTWPd5Y8BDFdMm9BJR_MNI4isf8p8n4D5pHA
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - transferAmount
        - expiration
        - ilpPacket
        - condition
    AuthorizationsIDPutResponse:
      title: AuthorizationsIDPutResponse
      type: object
      description: The object sent in the PUT /authorizations/{ID} callback.
      properties:
        authenticationInfo:
          type: string
          description: OTP or QR Code if entered, otherwise empty.
          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.
          example: ENTERED
      required:
        - responseType
    TransfersPostRequest:
      title: TransfersPostRequest
      type: object
      description: The object sent in the POST /transfers request.
      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.
          example: b51ec534-ee48-4575-b6a9-ead2955b8069
        payeeFsp:
          type: string
          description: Payee FSP in the proposed financial transaction.
          example: 1234
        payerFsp:
          type: string
          description: Payer FSP in the proposed financial transaction.
          example: 5678
        amount:
          $ref: '#/components/schemas/Money'
          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
        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.
          example: '2016-05-24T08:38:08.699-04:00'
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - transferId
        - payeeFsp
        - payerFsp
        - amount
        - ilpPacket
        - condition
        - expiration
    TransfersIDPutResponse:
      title: TransfersIDPutResponse
      type: object
      description: The object sent in the PUT /transfers/{ID} callback.
      properties:
        fulfilment:
          type: string
          description: Fulfilment of the condition specified with the transaction. Mandatory if transfer has completed successfully.
          example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8
        completedTimestamp:
          type: string
          description: Time and date when the transaction was completed.
          example: '2016-05-24T08:38:08.699-04:00'
        transferState:
          type: string
          description: State of the transfer.
          example: RESERVED
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - transferState
    TransactionsIDPutResponse:
      title: TransactionsIDPutResponse
      type: object
      description: The object sent in the PUT /transactions/{ID} callback.
      properties:
        completedTimestamp:
          type: string
          description: Time and date when the transaction was completed.
          example: '2016-05-24T08:38:08.699-04:00'
        transactionState:
          type: string
          description: State of the transaction.
          example: RECEIVED
        code:
          type: string
          description: Optional redemption information provided to Payer after transaction has been completed.
          example: Test-Code
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - transactionState
    BulkQuotesPostRequest:
      title: BulkQuotesPostRequest
      type: object
      description: The object sent in the POST /bulkQuotes request.
      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.
          example: b51ec534-ee48-4575-b6a9-ead2955b8069
        payer:
          properties:
            partyIdInfo:
              $ref: '#/components/schemas/PartyIdInfo'
              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.
              example: 1234
            name:
              type: string
              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.
        geoCode:
          $ref: '#/components/schemas/GeoCode'
          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.
          example: '2016-05-24T08:38:08.699-04:00'
        individualQuotes:
          properties:
            quoteId:
              type: string
              description: Identifies quote message.
              example: b51ec534-ee48-4575-b6a9-ead2955b8069
            transactionId:
              type: string
              description: Identifies transaction message.
              example: b51ec534-ee48-4575-b6a9-ead2955b8069
            payee:
              properties:
                partyIdInfo:
                  $ref: '#/components/schemas/PartyIdInfo'
                  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.
                  example: 1234
                name:
                  type: string
                  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.
            amountType:
              type: string
              description: SEND for sendAmount, RECEIVE for receiveAmount.
              example: RECEIVE
            amount:
              properties:
                currency:
                  type: string
                  description: Currency of the amount.
                  example: USD
                amount:
                  type: string
                  description: Amount of money.
                  example: '123.45'
            fees:
              properties:
                currency:
                  type: string
                  description: Currency of the amount.
                  example: USD
                amount:
                  type: string
                  description: Amount of money.
                  example: '1.45'
            transactionType:
              $ref: '#/components/schemas/TransactionType'
              description: Type of transaction that the quote is requested for.
            note:
              type: string
              description: Memo that will be attached to the transaction.
              example: Note sent to Payee.
            extensionList:
              $ref: '#/components/schemas/ExtensionList'
              description: Optional extension, specific to deployment.
      required:
        - bulkQuoteId
        - payer
        - individualQuotes
    IndividualQuoteResult:
      title: IndividualQuoteResult
      type: object
      description: Data model for the complex type IndividualQuoteResult.
      properties:
        quoteId:
          type: string
          description: Identifies the quote message.
          example: b51ec534-ee48-4575-b6a9-ead2955b8069
        payee:
          $ref: '#/components/schemas/Party'
          description: Information about the Payee in the proposed financial transaction.
        transferAmount:
          properties:
            currency:
              type: string
              description: Currency of the amount.
              example: USD
            amount:
              type: string
              description: Amount of money.
              example: '124.45'
        payeeReceiveAmount:
          properties:
            currency:
              type: string
              description: Currency of the amount.
              example: USD
            amount:
              type: string
              description: Amount of money.
              example: '123.45'
        payeeFspFee:
          properties:
            currency:
              type: string
              description: Currency of the amount.
              example: USD
            amount:
              type: string
              description: Amount of money.
              example: '1.45'
        payeeFspCommission:
          properties:
            currency:
              type: string
              description: Currency of the amount.
              example: USD
            amount:
              type: string
              description: Amount of money.
              example: '1.45'
        ilpPacket:
          type: string
          description: The ILP Packet that must be attached to the transfer by the Payer.
          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.
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - quoteId
    BulkQuotesIDPutResponse:
      title: BulkQuotesIDPutResponse
      type: object
      description: The object sent in the PUT /bulkQuotes/{ID} callback.
      properties:
        individualQuoteResults:
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/IndividualQuoteResult'
          description: Fees for each individual transaction, if any of them are charged per transaction.
        expiration:
          type: string
          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'
          description: Optional extension, specific to deployment.
      required:
        - expiration
    IndividualTransfer:
      title: IndividualTransfer
      type: object
      description: Data model for the complex type IndividualTransfer.
      properties:
        transferId:
          type: string
          description: Identifies messages related to the same /transfers sequence.
          example: b51ec534-ee48-4575-b6a9-ead2955b8069
        transferAmount:
          $ref: '#/components/schemas/Money'
          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
        condition:
          type: string
          description: Condition that must be fulfilled to commit the transfer.
          example: f5sqb7tBTWPd5Y8BDFdMm9BJR_MNI4isf8p8n4D5pHA
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - transferId
        - transferAmount
        - ilpPacket
        - condition
    BulkTransfersPostRequest:
      title: BulkTransfersPostRequest
      type: object
      description: The object sent in the POST /bulkTransfers request.
      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.
          example: b51ec534-ee48-4575-b6a9-ead2955b8069
        bulkQuoteId:
          type: string
          description: ID of the related bulk quote.
          example: b51ec534-ee48-4575-b6a9-ead2955b8069
        payerFsp:
          type: string
          description: Payer FSP identifier.
          example: 5678
        payeeFsp:
          type: string
          description: Payee FSP identifier.
          example: 1234
        individualTransfers:
          type: array
          minItems: 1
          maxItems: 1000
          items:
            $ref: '#/components/schemas/IndividualTransfer'
          description: List of IndividualTransfer elements.
        expiration:
          type: string
          description: Expiration time of the transfers.
          example: '2016-05-24T08:38:08.699-04:00'
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - bulkTransferId
        - bulkQuoteId
        - payerFsp
        - payeeFsp
        - individualTransfers
        - expiration
    IndividualTransferResult:
      title: IndividualTransferResult
      type: object
      description: Data model for the complex type IndividualTransferResult.
      properties:
        transferId:
          type: string
          description: Identifies messages related to the same /transfers sequence.
          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.
          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.
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - transferId
    BulkTransfersIDPutResponse:
      title: BulkTransfersIDPutResponse
      type: object
      description: The object sent in the PUT /bulkTransfers/{ID} callback.
      properties:
        completedTimestamp:
          type: string
          description: Time and date when the bulk transaction was completed.
          example: '2016-05-24T08:38:08.699-04:00'
        individualTransferResults:
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/IndividualTransferResult'
          description: List of IndividualTransferResult elements.
        bulkTransferState:
          type: string
          description: The state of the bulk transfer.
          example: RECEIVED
        extensionList:
          $ref: '#/components/schemas/ExtensionList'
          description: Optional extension, specific to deployment.
      required:
        - bulkTransferState
  parameters:
    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.
    Content-Type:
      name: Content-Type
      in: header
      schema:
        type: string
      required: true
      description: The `Content-Type` header indicates the specific version of the API used to send the payload body.
    Date:
      name: Date
      in: header
      schema:
        type: string
      required: true
      description: The `Date` header field indicates the date when the request was sent.
    X-Forwarded-For:
      name: X-Forwarded-For
      in: header
      schema:
        type: string
      required: false
      description: |-
        The `X-Forwarded-For` header field is an unofficially accepted standard used for informational purposes of the originating client IP address, as a request might pass multiple proxies, firewalls, and so on. Multiple `X-Forwarded-For` values should be expected and supported by implementers of the API.

        **Note:** An alternative to `X-Forwarded-For` is defined in [RFC 7239](https://tools.ietf.org/html/rfc7239). However, to this point RFC 7239 is less-used and supported than `X-Forwarded-For`.
    FSPIOP-Source:
      name: FSPIOP-Source
      in: header
      schema:
        type: string
      required: true
      description: The `FSPIOP-Source` header field is a non-HTTP standard field used by the API for identifying the sender of the HTTP request. The field should be set by the original sender of the request. Required for routing and signature verification (see header field `FSPIOP-Signature`).
    FSPIOP-Destination:
      name: FSPIOP-Destination
      in: header
      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.
    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.
    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.
    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).
    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).
    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.
    Content-Length:
      name: Content-Length
      in: header
      required: false
      schema:
        type: integer
      description: |-
        The `Content-Length` header field indicates the anticipated size of the payload body. Only sent if there is a body.

        **Note:** The API supports a maximum size of 5242880 bytes (5 Megabytes).
    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`.
  responses:
    '200':
      description: OK
    '202':
      description: Accepted
    '400':
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInformationResponse'
      headers:
        Content-Length:
          $ref: '#/components/headers/Content-Length'
        Content-Type:
          $ref: '#/components/headers/Content-Type'
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInformationResponse'
      headers:
        Content-Length:
          $ref: '#/components/headers/Content-Length'
        Content-Type:
          $ref: '#/components/headers/Content-Type'
    '403':
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInformationResponse'
      headers:
        Content-Length:
          $ref: '#/components/headers/Content-Length'
        Content-Type:
          $ref: '#/components/headers/Content-Type'
    '404':
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInformationResponse'
      headers:
        Content-Length:
          $ref: '#/components/headers/Content-Length'
        Content-Type:
          $ref: '#/components/headers/Content-Type'
    '405':
      description: Method Not Allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInformationResponse'
      headers:
        Content-Length:
          $ref: '#/components/headers/Content-Length'
        Content-Type:
          $ref: '#/components/headers/Content-Type'
    '406':
      description: Not Acceptable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInformationResponse'
      headers:
        Content-Length:
          $ref: '#/components/headers/Content-Length'
        Content-Type:
          $ref: '#/components/headers/Content-Type'
    '501':
      description: Not Implemented
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInformationResponse'
      headers:
        Content-Length:
          $ref: '#/components/headers/Content-Length'
        Content-Type:
          $ref: '#/components/headers/Content-Type'
    '503':
      description: Service Unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInformationResponse'
      headers:
        Content-Length:
          $ref: '#/components/headers/Content-Length'
        Content-Type:
          $ref: '#/components/headers/Content-Type'
  headers:
    Content-Length:
      required: false
      schema:
        type: integer
      description: |-
        The `Content-Length` header field indicates the anticipated size of the payload body. Only sent if there is a body.

        **Note:** The API supports a maximum size of 5242880 bytes (5 Megabytes).
    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.
