openapi: 3.0.2
info:
  version: 2.0-draft
  title: Open API for FSP Interoperability (FSPIOP)
  description: >-
    Revision date: 2023-11-23 Based on [API Definition updated on 2020-05-19
    Version
    1.1](https://github.com/mojaloop/mojaloop-specification/blob/main/documents/v1.1-document-set/API%20Definition_v1.1.pdf).

    This is implementation friendly version of the API definition.

    It includes the below definitions needed for third-party functionality. -
    AuthenticationType
      - U2F enum
    - AuthenticationValue
      - oneOf is changed to anyOf
      - new element is added U2FPinValue
    - New element U2FPIN

    **Note:** The API supports a maximum size of 65536 bytes (64 Kilobytes) in
    the HTTP header.
  license:
    name: CC BY-ND 4.0
    url: https://github.com/mojaloop/mojaloop-specification/blob/main/LICENSE.md
  contact:
    name: Sam Kummary
    url: https://github.com/mojaloop/mojaloop-specification/issues
servers:
  - url: protocol://hostname:<port>/switch/
    variables:
      protocol:
        enum:
          - http
          - https
        default: https
paths:
  /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"
  /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`). An
        ExtensionList element has been added to this reqeust in version v1.1
      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`). An
        ExtensionList element has been added to this reqeust in version v1.1
      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"
  /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"
    patch:
      description: >-
        The HTTP request PATCH /transfers/<ID> is used by a Switch to update the
        state of a previously reserved transfer, if the Payee FSP has requested
        a commit notification when the Switch has completed processing of the
        transfer. The <ID> in the URI should contain the transferId that was
        used for the creation of the transfer. Please note that this request
        does not generate a callback.
      summary: Return transfer information
      tags:
        - transfers
      operationId: TransfersByIDPatch
      parameters:
        - $ref: "#/components/parameters/Content-Length"
      requestBody:
        description: Transfer notification upon completion.
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransfersIDPatchResponse"
      responses:
        "200":
          $ref: "#/components/responses/200"
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "405":
          $ref: "#/components/responses/405"
        "406":
          $ref: "#/components/responses/406"
        "501":
          $ref: "#/components/responses/501"
        "503":
          $ref: "#/components/responses/503"
    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"
  /fxQuotes:
    post:
      description: >-
        The HTTP request `POST /fxQuotes` is used to ask an FXP to provide a
        quotation for a currency conversion.
      summary: Calculate FX quote
      tags:
        - fxQuotes
      operationId: FxQuotesPost
      parameters:
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/Content-Length"
        - $ref: "#/components/parameters/Content-Type"
        - $ref: "#/components/parameters/Date"
        - $ref: "#/components/parameters/X-Forwarded-For"
        - $ref: "#/components/parameters/FSPIOP-Source"
        - $ref: "#/components/parameters/FSPIOP-Destination"
        - $ref: "#/components/parameters/FSPIOP-Encryption"
        - $ref: "#/components/parameters/FSPIOP-Signature"
        - $ref: "#/components/parameters/FSPIOP-URI"
        - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
      requestBody:
        description: Details of the FX quote to be created.
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FxQuotesPostRequest"
      responses:
        "202":
          $ref: "#/components/responses/202"
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "405":
          $ref: "#/components/responses/405"
        "406":
          $ref: "#/components/responses/406"
        "501":
          $ref: "#/components/responses/501"
        "503":
          $ref: "#/components/responses/503"
  /fxQuotes/{ID}:
    parameters:
      - $ref: "#/components/parameters/ID"
      - $ref: "#/components/parameters/Content-Type"
      - $ref: "#/components/parameters/Date"
      - $ref: "#/components/parameters/X-Forwarded-For"
      - $ref: "#/components/parameters/FSPIOP-Source"
      - $ref: "#/components/parameters/FSPIOP-Destination"
      - $ref: "#/components/parameters/FSPIOP-Encryption"
      - $ref: "#/components/parameters/FSPIOP-Signature"
      - $ref: "#/components/parameters/FSPIOP-URI"
      - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
    get:
      description: >-
        The HTTP request `GET /fxQuotes/{ID}` is used to request information
        regarding a request for quotation for a  currency conversion which the
        sender has previously issued. The `{ID}` in the URI should contain the
        `conversionRequestId` that was used for the creation of the quote.
      summary: Retrieve FX quote information
      tags:
        - fxQuotes
      operationId: FxQuotesByIDGet
      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 /fxQuotes/{ID}` is used to inform the requester about
        the  outcome of a request for quotation for a currency conversion.  The
        `{ID}` in the URI should contain the `conversionRequestId` that was used
        for the  creation of the FX quote, or the `{ID}` that was used in the
        `GET /fxQuotes/{ID}` request.
      summary: Return FX quote information
      tags:
        - fxQuotes
      operationId: FxQuotesByIdPut
      parameters:
        - $ref: "#/components/parameters/Content-Length"
      requestBody:
        description: FX Quote information returned.
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FxQuotesIDPutResponse"
      responses:
        "200":
          $ref: "#/components/responses/200"
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "405":
          $ref: "#/components/responses/405"
        "406":
          $ref: "#/components/responses/406"
        "501":
          $ref: "#/components/responses/501"
        "503":
          $ref: "#/components/responses/503"
  /fxQuotes/{ID}/error:
    put:
      description: >-
        If the FXP is unable to find or create a FX quote, or some other
        processing error occurs, the error callback `PUT /fxQuotes/{ID}/error`
        is used. The `{ID}` in the URI should contain the `conversionRequestId`
        that was used for the creation of the FX quote, or the `{ID}` that was
        used in the `GET /fxQuotes/{ID}` request.
      summary: Return FX quote information error
      tags:
        - fxQuotes
      operationId: FxQuotesByIDAndErrorPut
      parameters:
        - $ref: "#/components/parameters/ID"
        - $ref: "#/components/parameters/Content-Length"
        - $ref: "#/components/parameters/Content-Type"
        - $ref: "#/components/parameters/Date"
        - $ref: "#/components/parameters/X-Forwarded-For"
        - $ref: "#/components/parameters/FSPIOP-Source"
        - $ref: "#/components/parameters/FSPIOP-Destination"
        - $ref: "#/components/parameters/FSPIOP-Encryption"
        - $ref: "#/components/parameters/FSPIOP-Signature"
        - $ref: "#/components/parameters/FSPIOP-URI"
        - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
      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"
  /fxTransfers:
    post:
      description: >-
        The HTTP request `POST /fxTransfers` is used to ask an FXP to confirm
        the execution of an agreed currency conversion.
      summary: Perform FX transfer
      tags:
        - fxTransfers
      operationId: FxTransfersPost
      parameters:
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/Content-Length"
        - $ref: "#/components/parameters/Content-Type"
        - $ref: "#/components/parameters/Date"
        - $ref: "#/components/parameters/X-Forwarded-For"
        - $ref: "#/components/parameters/FSPIOP-Source"
        - $ref: "#/components/parameters/FSPIOP-Destination"
        - $ref: "#/components/parameters/FSPIOP-Encryption"
        - $ref: "#/components/parameters/FSPIOP-Signature"
        - $ref: "#/components/parameters/FSPIOP-URI"
        - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
      requestBody:
        description: Details of the FX transfer to be created.
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FxTransfersPostRequest"
      responses:
        "202":
          $ref: "#/components/responses/202"
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "405":
          $ref: "#/components/responses/405"
        "406":
          $ref: "#/components/responses/406"
        "501":
          $ref: "#/components/responses/501"
        "503":
          $ref: "#/components/responses/503"
  /fxTransfers/{ID}:
    parameters:
      - $ref: "#/components/parameters/ID"
      - $ref: "#/components/parameters/Content-Type"
      - $ref: "#/components/parameters/Date"
      - $ref: "#/components/parameters/X-Forwarded-For"
      - $ref: "#/components/parameters/FSPIOP-Source"
      - $ref: "#/components/parameters/FSPIOP-Destination"
      - $ref: "#/components/parameters/FSPIOP-Encryption"
      - $ref: "#/components/parameters/FSPIOP-Signature"
      - $ref: "#/components/parameters/FSPIOP-URI"
      - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
    get:
      description: >-
        The HTTP request `GET /fxTransfers/{ID}` s used to request information
        regarding a request for confirmation of a currency conversion which the
        sender has previously issued. The `{ID}` in the URI should contain the
        `commitRequestId` that was used for the creation of the FX transfer.
      summary: Retrieve FX transfer information
      tags:
        - fxTransfers
      operationId: FxTransfersByIDGet
      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"
    patch:
      description: >-
        The HTTP request PATCH /fxTransfers/<ID> is used to inform the requester
        about the final determination by the switch of the transfer a request
        for execution of a currency conversion. The <ID> in the URI should
        contain the commitRequestId that was used for the creation of the FX
        transfer. Please note that this request does not generate a callback.
      summary: Return FX transfer information
      tags:
        - fxTransfers
      operationId: FxTransfersByIDPatch
      parameters:
        - $ref: "#/components/parameters/Content-Length"
      requestBody:
        description: Transfer notification upon completion.
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FxTransfersIDPatchResponse"
      responses:
        "200":
          $ref: "#/components/responses/200"
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "405":
          $ref: "#/components/responses/405"
        "406":
          $ref: "#/components/responses/406"
        "501":
          $ref: "#/components/responses/501"
        "503":
          $ref: "#/components/responses/503"
    put:
      description: >-
        The callback `PUT /fxTransfers/{ID}` is used to inform the requester
        about the outcome of a request for execution of a currency conversion.
        The `{ID}` in the URI should contain the `commitRequestId` that was used
        for the creation of the FX transfer, or the `{ID}` that was used in the
        `GET /fxTransfers/{ID}` request.
      summary: Return FX transfer information
      tags:
        - fxTransfers
      operationId: FxTransfersByIDPut
      parameters:
        - $ref: "#/components/parameters/Content-Length"
      requestBody:
        description: Transfer information returned.
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FxTransfersIDPutResponse"
      responses:
        "200":
          $ref: "#/components/responses/200"
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "405":
          $ref: "#/components/responses/405"
        "406":
          $ref: "#/components/responses/406"
        "501":
          $ref: "#/components/responses/501"
        "503":
          $ref: "#/components/responses/503"
  /fxTransfers/{ID}/error:
    put:
      description: >-
        If the switch or FXP is unable to find or create a FX transfer, or
        another processing error occurs, the error callback `PUT
        /fxTransfers/{ID}/error` is used. The `{ID}` in the URI should contain
        the `commitRequestId` that was used for the creation of the FX transfer,
        or the `{ID}` that was used in the `GET /fxTransfers/{ID}`.
      summary: Return FX transfer information error
      tags:
        - fxTransfers
      operationId: FxTransfersByIDAndErrorPut
      parameters:
        - $ref: "#/components/parameters/ID"
        - $ref: "#/components/parameters/Content-Length"
        - $ref: "#/components/parameters/Content-Type"
        - $ref: "#/components/parameters/Date"
        - $ref: "#/components/parameters/X-Forwarded-For"
        - $ref: "#/components/parameters/FSPIOP-Source"
        - $ref: "#/components/parameters/FSPIOP-Destination"
        - $ref: "#/components/parameters/FSPIOP-Encryption"
        - $ref: "#/components/parameters/FSPIOP-Signature"
        - $ref: "#/components/parameters/FSPIOP-URI"
        - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
      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"
  /services/FXP:
    parameters:
      - $ref: "#/components/parameters/Content-Type"
      - $ref: "#/components/parameters/Date"
      - $ref: "#/components/parameters/X-Forwarded-For"
      - $ref: "#/components/parameters/FSPIOP-Source"
      - $ref: "#/components/parameters/FSPIOP-Destination"
      - $ref: "#/components/parameters/FSPIOP-Encryption"
      - $ref: "#/components/parameters/FSPIOP-Signature"
      - $ref: "#/components/parameters/FSPIOP-URI"
      - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
    get:
      description: >-
        The HTTP request `GET /services/FXP` is used to request information
        about the participants in a scheme who offer currency conversion
        services.
      summary: Obtain a list of the DFSPs in the scheme who provide FXP service
      tags:
        - servicesFXP
      operationId: ServicesFXPGet
      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 /services/FXP` is used to inform the requester about
        participants in a scheme who offer currency conversion services. If no
        participants offer these services, the return object will be blank.
      tags:
        - servicesFXP
      operationId: ServicesFXPPut
      parameters:
        - $ref: "#/components/parameters/Content-Length"
      requestBody:
        description: The list of participant(s) who offer currency conversion services.
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ServicesFXPPutResponse"
      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"
  /services/FXP/{SourceCurrency}/{TargetCurrency}:
    parameters:
      - $ref: "#/components/parameters/SourceCurrency"
      - $ref: "#/components/parameters/TargetCurrency"
      - $ref: "#/components/parameters/Content-Type"
      - $ref: "#/components/parameters/Date"
      - $ref: "#/components/parameters/X-Forwarded-For"
      - $ref: "#/components/parameters/FSPIOP-Source"
      - $ref: "#/components/parameters/FSPIOP-Destination"
      - $ref: "#/components/parameters/FSPIOP-Encryption"
      - $ref: "#/components/parameters/FSPIOP-Signature"
      - $ref: "#/components/parameters/FSPIOP-URI"
      - $ref: "#/components/parameters/FSPIOP-HTTP-Method"
    get:
      description: >-
        The HTTP request `GET /services/FXP/{SourceCurrency}/{TargetCurrency}`
        is used to request information about the participants in a scheme who
        offer currency conversion services in a particular currency corridor.
        The required corridor is specified by giving the ISO 4217 currency code
        for the SourceCurrency and the TargetCurrency.
      summary: Obtain a list of the DFSPs in the scheme who provide FXP service
      tags:
        - servicesFXP
      operationId: ServicesFXPSourceCurrencyTargetCurrencyGet
      parameters:
        - $ref: "#/components/parameters/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 /services/FXP/{SourceCurrency}/{TargetCurrency}` is
        used to inform the requester about participants in a scheme who offer
        currency conversion services. If no participants offer these services,
        the return object will be blank. The required corridor is specified by
        giving the ISO 4217 currency code for the SourceCurrency and the
        TargetCurrency.
      tags:
        - servicesFXP
      operationId: ServicesFXPSourceCurrencyTargetCurrencyPut
      parameters:
        - $ref: "#/components/parameters/Content-Length"
      requestBody:
        description: The list of participant(s) who offer currency conversion services.
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/ServicesFXPSourceCurrencyTargetCurrencyPutResponse
      responses:
        "200":
          $ref: "#/components/responses/200"
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "405":
          $ref: "#/components/responses/405"
        "406":
          $ref: "#/components/responses/406"
        "501":
          $ref: "#/components/responses/501"
        "503":
          $ref: "#/components/responses/503"
components:
  schemas:
    Amount:
      title: Amount
      type: string
      pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$
      description: >-
        The API data type Amount is a JSON String in a canonical format that is
        restricted by a regular expression for interoperability reasons. This
        pattern does not allow any trailing zeroes at all, but allows an amount
        without a minor currency unit. It also only allows four digits in the
        minor currency unit; a negative value is not allowed. Using more than 18
        digits in the major currency unit is not allowed.
      example: "123.45"
    AmountType:
      title: AmountType
      type: string
      enum:
        - SEND
        - RECEIVE
      description: >-
        Below are the allowed values for the enumeration AmountType.

        - SEND - Amount the Payer would like to send, that is, the amount that
        should be withdrawn from the Payer account including any fees.

        - RECEIVE - Amount the Payer would like the Payee to receive, that is,
        the amount that should be sent to the receiver exclusive of any fees.
      example: RECEIVE
    AuthenticationInfo:
      title: AuthenticationInfo
      type: object
      additionalProperties: false
      description: Data model for the complex type AuthenticationInfo.
      properties:
        authentication:
          $ref: "#/components/schemas/AuthenticationType"
        authenticationValue:
          $ref: "#/components/schemas/AuthenticationValue"
      required:
        - authentication
        - authenticationValue
    AuthenticationType:
      title: AuthenticationType
      type: string
      enum:
        - OTP
        - QRCODE
        - U2F
      description: |-
        Below are the allowed values for the enumeration AuthenticationType.
        - OTP - One-time password generated by the Payer FSP.
        - QRCODE - QR code used as One Time Password.
        - U2F - U2F is a new addition isolated to Thirdparty stream.
      example: OTP
    AuthenticationValue:
      title: AuthenticationValue
      anyOf:
        - $ref: "#/components/schemas/OtpValue"
        - $ref: "#/components/schemas/QRCODE"
        - $ref: "#/components/schemas/U2FPinValue"
      pattern: ^\d{3,10}$|^\S{1,64}$
      description: >-
        Contains the authentication value. The format depends on the
        authentication type used in the AuthenticationInfo complex type.
    AuthorizationResponse:
      title: AuthorizationResponse
      type: string
      enum:
        - ENTERED
        - REJECTED
        - RESEND
      description: |-
        Below are the allowed values for the enumeration.
        - ENTERED - Consumer entered the authentication value.
        - REJECTED - Consumer rejected the transaction.
        - RESEND - Consumer requested to resend the authentication value.
      example: ENTERED
    AuthorizationsIDPutResponse:
      title: AuthorizationsIDPutResponse
      type: object
      additionalProperties: false
      description: The object sent in the PUT /authorizations/{ID} callback.
      properties:
        authenticationInfo:
          $ref: "#/components/schemas/AuthenticationInfo"
        responseType:
          $ref: "#/components/schemas/AuthorizationResponse"
      required:
        - responseType
    BalanceOfPayments:
      title: BalanceOfPayments
      type: string
      pattern: ^[1-9]\d{2}$
      description: >-
        (BopCode) The API data type
        [BopCode](https://www.imf.org/external/np/sta/bopcode/) is a JSON String
        of 3 characters, consisting of digits only. Negative numbers are not
        allowed. A leading zero is not allowed.
      example: "123"
    BinaryString:
      type: string
      pattern: ^[A-Za-z0-9-_]+[=]{0,2}$
      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.
    BulkQuotesIDPutResponse:
      title: BulkQuotesIDPutResponse
      type: object
      additionalProperties: false
      description: The object sent in the PUT /bulkQuotes/{ID} callback.
      properties:
        individualQuoteResults:
          type: array
          maxItems: 1000
          items:
            $ref: "#/components/schemas/IndividualQuoteResult"
          description: >-
            Fees for each individual transaction, if any of them are charged per
            transaction.
        expiration:
          $ref: "#/components/schemas/DateTime"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - expiration
    BulkQuotesPostRequest:
      title: BulkQuotesPostRequest
      type: object
      additionalProperties: false
      description: The object sent in the POST /bulkQuotes request.
      properties:
        bulkQuoteId:
          $ref: "#/components/schemas/CorrelationId"
        payer:
          $ref: "#/components/schemas/Party"
        geoCode:
          $ref: "#/components/schemas/GeoCode"
        expiration:
          $ref: "#/components/schemas/DateTime"
        individualQuotes:
          type: array
          minItems: 1
          maxItems: 1000
          items:
            $ref: "#/components/schemas/IndividualQuote"
          description: List of quotes elements.
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - bulkQuoteId
        - payer
        - individualQuotes
    BulkTransferState:
      title: BulkTransactionState
      type: string
      enum:
        - 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.
      example: RECEIVED
    BulkTransfersIDPutResponse:
      title: BulkTransfersIDPutResponse
      type: object
      additionalProperties: false
      description: The object sent in the PUT /bulkTransfers/{ID} callback.
      properties:
        completedTimestamp:
          $ref: "#/components/schemas/DateTime"
        individualTransferResults:
          type: array
          maxItems: 1000
          items:
            $ref: "#/components/schemas/IndividualTransferResult"
          description: List of IndividualTransferResult elements.
        bulkTransferState:
          $ref: "#/components/schemas/BulkTransferState"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - bulkTransferState
    BulkTransfersPostRequest:
      title: BulkTransfersPostRequest
      type: object
      additionalProperties: false
      description: The object sent in the POST /bulkTransfers request.
      properties:
        bulkTransferId:
          $ref: "#/components/schemas/CorrelationId"
        bulkQuoteId:
          $ref: "#/components/schemas/CorrelationId"
        payerFsp:
          $ref: "#/components/schemas/FspId"
        payeeFsp:
          $ref: "#/components/schemas/FspId"
        individualTransfers:
          type: array
          minItems: 1
          maxItems: 1000
          items:
            $ref: "#/components/schemas/IndividualTransfer"
          description: List of IndividualTransfer elements.
        expiration:
          $ref: "#/components/schemas/DateTime"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - bulkTransferId
        - bulkQuoteId
        - payerFsp
        - payeeFsp
        - individualTransfers
        - expiration
    Code:
      title: Code
      type: string
      pattern: ^[0-9a-zA-Z]{4,32}$
      description: Any code/token returned by the Payee FSP (TokenCode Type).
      example: Test-Code
    CorrelationId:
      title: CorrelationId
      type: string
      pattern: >-
        ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$|^[0-9A-HJKMNP-TV-Z]{26}$
      description: >-
        Identifier that correlates all messages of the same sequence. The
        supported identifiers formats are for lowercase
        [UUID](https://datatracker.ietf.org/doc/html/rfc9562) and uppercase
        [ULID](https://github.com/ulid/spec)
      example: b51ec534-ee48-4575-b6a9-ead2955b8069
    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
    CurrencyConverter:
      title: CurrencyConverter
      type: string
      enum:
        - PAYER
        - PAYEE
      description: >-
        Below are the allowed values for the enumeration CurrencyConverter. -
        PAYER - Currency conversion should be performed by the payer. - PAYEE -
        Currency conversion should be performed by the payee.
    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.
      example: "1966-06-16"
    DateTime:
      title: DateTime
      type: string
      pattern: >-
        ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:(\.\d{3}))(?:Z|[+-][01]\d:[0-5]\d)$
      description: >-
        The API data type DateTime is a JSON String in a lexical format that is
        restricted by a regular expression for interoperability reasons. The
        format is according to [ISO
        8601](https://www.iso.org/iso-8601-date-and-time-format.html), expressed
        in a combined date, time and time zone format. A more readable version
        of the format is yyyy-MM-ddTHH:mm:ss.SSS[-HH:MM]. Examples are
        "2016-05-24T08:38:08.699-04:00", "2016-05-24T08:38:08.699Z" (where Z
        indicates Zulu time zone, same as UTC).
      example: "2016-05-24T08:38:08.699-04:00"
    ErrorCode:
      title: ErrorCode
      type: string
      pattern: ^[1-9]\d{3}$
      description: >-
        The API data type ErrorCode is a JSON String of four characters,
        consisting of digits only. Negative numbers are not allowed. A leading
        zero is not allowed. Each error code in the API is a four-digit number,
        for example, 1234, where the first number (1 in the example) represents
        the high-level error category, the second number (2 in the example)
        represents the low-level error category, and the last two numbers (34 in
        the example) represent the specific error.
      example: "5100"
    ErrorDescription:
      title: ErrorDescription
      type: string
      minLength: 1
      maxLength: 128
      description: Error description string.
    ErrorInformation:
      title: ErrorInformation
      type: object
      additionalProperties: false
      description: Data model for the complex type ErrorInformation.
      properties:
        errorCode:
          $ref: "#/components/schemas/ErrorCode"
        errorDescription:
          $ref: "#/components/schemas/ErrorDescription"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - errorCode
        - errorDescription
    ErrorInformationObject:
      title: ErrorInformationObject
      type: object
      additionalProperties: false
      description: Data model for the complex type object that contains ErrorInformation.
      properties:
        errorInformation:
          $ref: "#/components/schemas/ErrorInformation"
      required:
        - errorInformation
    ErrorInformationResponse:
      title: ErrorInformationResponse
      type: object
      additionalProperties: false
      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"
    Extension:
      title: Extension
      type: object
      additionalProperties: false
      description: Data model for the complex type Extension.
      properties:
        key:
          $ref: "#/components/schemas/ExtensionKey"
        value:
          $ref: "#/components/schemas/ExtensionValue"
      required:
        - key
        - value
    ExtensionKey:
      title: ExtensionKey
      type: string
      minLength: 1
      maxLength: 32
      description: Extension key.
    ExtensionList:
      title: ExtensionList
      type: object
      additionalProperties: false
      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
    ExtensionValue:
      title: ExtensionValue
      type: string
      minLength: 1
      maxLength: 128
      description: Extension value.
    FirstName:
      title: FirstName
      type: string
      minLength: 1
      maxLength: 128
      pattern: >-
        ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control}
        .,''-]{1,128}$
      description: First name of the Party (Name Type).
      example: Henrik
    FspId:
      title: FspId
      type: string
      minLength: 1
      maxLength: 32
      description: FSP identifier.
    FxCharge:
      title: FxCharge
      type: object
      additionalProperties: false
      description: >-
        An FXP will be able to specify a charge which it proposes to levy on the
        currency conversion operation using a FxCharge object.
      properties:
        chargeType:
          type: string
          minLength: 1
          maxLength: 32
          description: A description of the charge which is being levied.
        sourceAmount:
          allOf:
            - $ref: "#/components/schemas/Money"
            - description: >-
                The amount of the charge which is being levied, expressed in the
                source currency.
        targetAmount:
          allOf:
            - $ref: "#/components/schemas/Money"
            - description: >-
                The amount of the charge which is being levied, expressed in the
                target currency.
      required:
        - chargeType
    FxConversion:
      title: FxConversion
      type: object
      additionalProperties: false
      description: >-
        A DFSP will be able to request a currency conversion, and an FX provider
        will be able to describe its involvement in a proposed transfer, using a
        FxConversion object.
      properties:
        conversionId:
          allOf:
            - $ref: "#/components/schemas/CorrelationId"
            - description: An end-to-end identifier for the conversion request.
        determiningTransferId:
          allOf:
            - $ref: "#/components/schemas/CorrelationId"
            - description: >-
                The transaction ID of the transfer on whose success this
                currency conversion depends.
        initiatingFsp:
          allOf:
            - $ref: "#/components/schemas/FspId"
            - description: >-
                The id of the participant who is requesting a currency
                conversion.
        counterPartyFsp:
          allOf:
            - $ref: "#/components/schemas/FspId"
            - description: The ID of the FXP performing the conversion.
        amountType:
          allOf:
            - $ref: "#/components/schemas/AmountType"
            - description: >-
                This is the AmountType for the base transaction - If SEND - then
                any charges levied by the FXP as part of the transaction will be
                deducted by the FXP from the amount shown for the target party
                in the conversion. If RECEIVE - then any charges levied by the
                FXP as part of the transaction will be added by the FXP to the
                amount shown for the source party in the conversion.
        sourceAmount:
          allOf:
            - $ref: "#/components/schemas/FxMoney"
            - description: The amount to be converted, expressed in the source currency.
        targetAmount:
          allOf:
            - $ref: "#/components/schemas/FxMoney"
            - description: The converted amount, expressed in the target currency.
        expiration:
          allOf:
            - $ref: "#/components/schemas/DateTime"
            - description: >-
                The end of the period for which the currency conversion is
                required to remain valid.
        charges:
          type: array
          description: >-
            One or more charges which the FXP intends to levy as part of the
            currency conversion, or which the payee DFSP intends to add to the
            amount transferred.
          items:
            $ref: "#/components/schemas/FxCharge"
          minItems: 0
          maxItems: 16
        extensionList:
          allOf:
            - $ref: "#/components/schemas/ExtensionList"
            - description: The extension list for the currency conversion request.
      required:
        - conversionId
        - initiatingFsp
        - counterPartyFsp
        - amountType
        - sourceAmount
        - targetAmount
        - expiration
    FxMoney:
      title: FxMoney
      type: object
      additionalProperties: false
      description: >-
        Data model for the complex type FxMoney; This is based on the type Money
        but allows the amount to be optional to support FX quotations.
      properties:
        currency:
          $ref: "#/components/schemas/Currency"
        amount:
          $ref: "#/components/schemas/Amount"
      required:
        - currency
    FxQuotesIDPutResponse:
      title: FxQuotesIDPutResponse
      type: object
      additionalProperties: false
      description: The object sent in the PUT /fxQuotes/{ID} callback.
      properties:
        condition:
          allOf:
            - $ref: "#/components/schemas/IlpCondition"
            - description: The ILP condition for the conversion.
        conversionTerms:
          allOf:
            - $ref: "#/components/schemas/FxConversion"
            - description: >-
                The terms under which the FXP will undertake the currency
                conversion proposed by the requester.
      required:
        - conversionTerms
    FxQuotesPostRequest:
      title: FxQuotesPostRequest
      type: object
      additionalProperties: false
      description: The object sent in the POST /fxQuotes request.
      properties:
        conversionRequestId:
          allOf:
            - $ref: "#/components/schemas/CorrelationId"
            - description: An end-to-end identifier for the conversion quotation request.
        conversionTerms:
          allOf:
            - $ref: "#/components/schemas/FxConversion"
            - description: >-
                The terms of the currency conversion for which a quotation is
                sought.
      required:
        - conversionRequestId
        - conversionTerms
    FxRate:
      title: FxRate
      type: object
      additionalProperties: false
      description: >-
        The FxRate object contains information about a currency conversion in
        the transfer. It can be used by parties to the transfer to exchange
        information with each other about the exchange rate for the transfer, to
        ensure that the best rate can be agreed on.
      properties:
        sourceAmount:
          allOf:
            - $ref: "#/components/schemas/Money"
            - description: The amount of the transfer in the source currency.
        targetAmount:
          allOf:
            - $ref: "#/components/schemas/Money"
            - description: The amount of the transfer in the target currency.
      required:
        - sourceAmount
        - targetAmount
    FxTransfersIDPatchResponse:
      title: FxTransfersIDPatchResponse
      type: object
      additionalProperties: false
      description: PATCH /fxTransfers/{ID} object
      properties:
        completedTimestamp:
          allOf:
            - $ref: "#/components/schemas/DateTime"
            - description: Time and date when the conversion was executed.
        conversionState:
          allOf:
            - $ref: "#/components/schemas/TransferState"
            - description: The current status of the conversion request.
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - conversionState
    FxTransfersIDPutResponse:
      title: FxTransfersIDPutResponse
      type: object
      additionalProperties: false
      description: The object sent in the PUT /fxTransfers/{ID} callback.
      properties:
        fulfilment:
          allOf:
            - $ref: "#/components/schemas/IlpFulfilment"
            - description: >-
                The fulfilment of the condition specified for the currency
                conversion. Mandatory if the conversion has been executed
                successfully.
        completedTimestamp:
          allOf:
            - $ref: "#/components/schemas/DateTime"
            - description: Time and date when the conversion was executed.
        conversionState:
          allOf:
            - $ref: "#/components/schemas/TransferState"
            - description: The current status of the conversion request.
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - conversionState
    FxTransfersPostRequest:
      title: FxTransfersPostRequest
      type: object
      additionalProperties: false
      description: The object sent in the POST /fxTransfers request.
      properties:
        commitRequestId:
          allOf:
            - $ref: "#/components/schemas/CorrelationId"
            - description: An end-to-end identifier for the confirmation request.
        determiningTransferId:
          allOf:
            - $ref: "#/components/schemas/CorrelationId"
            - description: >-
                The transaction ID of the transfer to which this currency
                conversion relates, if the conversion is part of a transfer. If
                the conversion is a bulk currency purchase, this field should be
                omitted.
        initiatingFsp:
          allOf:
            - $ref: "#/components/schemas/FspId"
            - description: Identifier for the FSP who is requesting a currency conversion.
        counterPartyFsp:
          allOf:
            - $ref: "#/components/schemas/FspId"
            - description: >-
                Identifier for the FXP who is performing the currency
                conversion.
        sourceAmount:
          allOf:
            - $ref: "#/components/schemas/Money"
            - description: The amount being offered for conversion by the requesting FSP.
        targetAmount:
          allOf:
            - $ref: "#/components/schemas/Money"
            - description: >-
                The amount which the FXP is to credit to the requesting FSP in
                the target currency.
        condition:
          allOf:
            - $ref: "#/components/schemas/IlpCondition"
            - description: >-
                ILP condition received by the requesting FSP when the quote was
                approved.
        expiration:
          $ref: "#/components/schemas/DateTime"
      required:
        - commitRequestId
        - initiatingFsp
        - counterPartyFsp
        - sourceAmount
        - targetAmount
        - condition
    GeoCode:
      title: GeoCode
      type: object
      additionalProperties: false
      description: >-
        Data model for the complex type GeoCode. Indicates the geographic
        location from where the transaction was initiated.
      properties:
        latitude:
          $ref: "#/components/schemas/Latitude"
        longitude:
          $ref: "#/components/schemas/Longitude"
      required:
        - latitude
        - longitude
    IlpCondition:
      title: IlpCondition
      type: string
      pattern: ^[A-Za-z0-9-_]{43}$
      maxLength: 48
      description: Condition that must be attached to the transfer by the Payer.
    IlpFulfilment:
      title: IlpFulfilment
      type: string
      pattern: ^[A-Za-z0-9-_]{43}$
      maxLength: 48
      description: Fulfilment that must be attached to the transfer by the Payee.
      example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8
    IlpPacket:
      title: IlpPacket
      type: string
      pattern: ^[A-Za-z0-9-_]+[=]{0,2}$
      minLength: 1
      maxLength: 32768
      description: Information for recipient (transport layer information).
      example: >-
        AYIBgQAAAAAAAASwNGxldmVsb25lLmRmc3AxLm1lci45T2RTOF81MDdqUUZERmZlakgyOVc4bXFmNEpLMHlGTFGCAUBQU0svMS4wCk5vbmNlOiB1SXlweUYzY3pYSXBFdzVVc05TYWh3CkVuY3J5cHRpb246IG5vbmUKUGF5bWVudC1JZDogMTMyMzZhM2ItOGZhOC00MTYzLTg0NDctNGMzZWQzZGE5OGE3CgpDb250ZW50LUxlbmd0aDogMTM1CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpTZW5kZXItSWRlbnRpZmllcjogOTI4MDYzOTEKCiJ7XCJmZWVcIjowLFwidHJhbnNmZXJDb2RlXCI6XCJpbnZvaWNlXCIsXCJkZWJpdE5hbWVcIjpcImFsaWNlIGNvb3BlclwiLFwiY3JlZGl0TmFtZVwiOlwibWVyIGNoYW50XCIsXCJkZWJpdElkZW50aWZpZXJcIjpcIjkyODA2MzkxXCJ9IgA
    IndividualQuote:
      title: IndividualQuote
      type: object
      additionalProperties: false
      description: Data model for the complex type IndividualQuote.
      properties:
        quoteId:
          $ref: "#/components/schemas/CorrelationId"
        transactionId:
          $ref: "#/components/schemas/CorrelationId"
        payee:
          $ref: "#/components/schemas/Party"
        amountType:
          $ref: "#/components/schemas/AmountType"
        amount:
          $ref: "#/components/schemas/Money"
        fees:
          $ref: "#/components/schemas/Money"
        transactionType:
          $ref: "#/components/schemas/TransactionType"
        note:
          $ref: "#/components/schemas/Note"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - quoteId
        - transactionId
        - payee
        - amountType
        - amount
        - transactionType
    IndividualQuoteResult:
      title: IndividualQuoteResult
      type: object
      additionalProperties: false
      description: Data model for the complex type IndividualQuoteResult.
      properties:
        quoteId:
          $ref: "#/components/schemas/CorrelationId"
        payee:
          $ref: "#/components/schemas/Party"
        transferAmount:
          $ref: "#/components/schemas/Money"
        payeeReceiveAmount:
          $ref: "#/components/schemas/Money"
        payeeFspFee:
          $ref: "#/components/schemas/Money"
        payeeFspCommission:
          $ref: "#/components/schemas/Money"
        ilpPacket:
          $ref: "#/components/schemas/IlpPacket"
        condition:
          $ref: "#/components/schemas/IlpCondition"
        errorInformation:
          $ref: "#/components/schemas/ErrorInformation"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - quoteId
    IndividualTransfer:
      title: IndividualTransfer
      type: object
      additionalProperties: false
      description: Data model for the complex type IndividualTransfer.
      properties:
        transferId:
          $ref: "#/components/schemas/CorrelationId"
        transferAmount:
          $ref: "#/components/schemas/Money"
        ilpPacket:
          $ref: "#/components/schemas/IlpPacket"
        condition:
          $ref: "#/components/schemas/IlpCondition"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - transferId
        - transferAmount
        - ilpPacket
        - condition
    IndividualTransferResult:
      title: IndividualTransferResult
      type: object
      additionalProperties: false
      description: Data model for the complex type IndividualTransferResult.
      properties:
        transferId:
          $ref: "#/components/schemas/CorrelationId"
        fulfilment:
          $ref: "#/components/schemas/IlpFulfilment"
        errorInformation:
          $ref: "#/components/schemas/ErrorInformation"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - transferId
    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.
    KYCInformation:
      title: KYCInformation
      type: string
      minLength: 1
      maxLength: 2048
      description: >-
        KYC information for the party in a form mandated by an individual
        scheme.
      example: |-
        {
            "metadata": {
                "format": "JSON",
                "version": "1.0",
                "description": "Data containing KYC Information"
            },
            "data": {
                "name": "John Doe",
                "dob": "1980-05-15",
                "gender": "Male",
                "address": "123 Main Street, Anytown, USA",
                "email": "johndoe@example.com",
                "phone": "+1 555-123-4567",
                "nationality": "US",
                "passport_number": "AB1234567",
                "issue_date": "2010-02-20",
                "expiry_date": "2025-02-20",
                "bank_account_number": "1234567890",
                "bank_name": "Example Bank",
                "employer": "ABC Company",
                "occupation": "Software Engineer",
                "income": "$80,000 per year",
                "marital_status": "Single",
                "dependents": 0,
                "risk_level": "Low"
            }
        }
    LastName:
      title: LastName
      type: string
      minLength: 1
      maxLength: 128
      pattern: >-
        ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control}
        .,''-]{1,128}$
      description: Last name of the Party (Name Type).
      example: Karlsson
    Latitude:
      title: Latitude
      type: string
      pattern: >-
        ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$
      description: >-
        The API data type Latitude is a JSON String in a lexical format that is
        restricted by a regular expression for interoperability reasons.
      example: "+45.4215"
    Longitude:
      title: Longitude
      type: string
      pattern: >-
        ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$
      description: >-
        The API data type Longitude is a JSON String in a lexical format that is
        restricted by a regular expression for interoperability reasons.
      example: "+75.6972"
    MerchantClassificationCode:
      title: MerchantClassificationCode
      type: string
      pattern: ^[\d]{1,4}$
      description: >-
        A limited set of pre-defined numbers. This list would be a limited set
        of numbers identifying a set of popular merchant types like School Fees,
        Pubs and Restaurants, Groceries, etc.
    MiddleName:
      title: MiddleName
      type: string
      minLength: 1
      maxLength: 128
      pattern: >-
        ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control}
        .,''-]{1,128}$
      description: Middle name of the Party (Name Type).
      example: Johannes
    Money:
      title: Money
      type: object
      additionalProperties: false
      description: Data model for the complex type Money.
      properties:
        currency:
          $ref: "#/components/schemas/Currency"
        amount:
          $ref: "#/components/schemas/Amount"
      required:
        - currency
        - amount
    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.
      example: Note sent to Payee.
    OtpValue:
      title: OtpValue
      type: string
      pattern: ^\d{3,10}$
      description: >-
        The API data type OtpValue is a JSON String of 3 to 10 characters,
        consisting of digits only. Negative numbers are not allowed. One or more
        leading zeros are allowed.
    ParticipantsIDPutResponse:
      title: ParticipantsIDPutResponse
      type: object
      additionalProperties: false
      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:
          $ref: "#/components/schemas/Currency"
      required:
        - partyList
    ParticipantsPostRequest:
      title: ParticipantsPostRequest
      type: object
      additionalProperties: false
      description: The object sent in the POST /participants request.
      properties:
        requestId:
          $ref: "#/components/schemas/CorrelationId"
        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:
          $ref: "#/components/schemas/Currency"
      required:
        - requestId
        - partyList
    ParticipantsTypeIDPutResponse:
      title: ParticipantsTypeIDPutResponse
      type: object
      additionalProperties: false
      description: >-
        The object sent in the PUT /participants/{Type}/{ID}/{SubId} and
        /participants/{Type}/{ID} callbacks.
      properties:
        fspId:
          $ref: "#/components/schemas/FspId"
    ParticipantsTypeIDSubIDPostRequest:
      title: ParticipantsTypeIDSubIDPostRequest
      type: object
      additionalProperties: false
      description: >-
        The object sent in the POST /participants/{Type}/{ID}/{SubId} and
        /participants/{Type}/{ID} requests. An additional optional ExtensionList
        element has been added as part of v1.1 changes.
      properties:
        fspId:
          $ref: "#/components/schemas/FspId"
        currency:
          $ref: "#/components/schemas/Currency"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - fspId
    PartiesTypeIDPutResponse:
      title: PartiesTypeIDPutResponse
      type: object
      additionalProperties: false
      description: The object sent in the PUT /parties/{Type}/{ID} callback.
      properties:
        party:
          $ref: "#/components/schemas/Party"
      required:
        - party
    Party:
      title: Party
      type: object
      additionalProperties: false
      description: Data model for the complex type Party.
      properties:
        partyIdInfo:
          $ref: "#/components/schemas/PartyIdInfo"
        merchantClassificationCode:
          $ref: "#/components/schemas/MerchantClassificationCode"
        name:
          $ref: "#/components/schemas/PartyName"
        personalInfo:
          $ref: "#/components/schemas/PartyPersonalInfo"
        supportedCurrencies:
          type: array
          description: Currencies in which the party can receive funds.
          items:
            $ref: "#/components/schemas/Currency"
          minItems: 0
          maxItems: 16
      required:
        - partyIdInfo
    PartyComplexName:
      title: PartyComplexName
      type: object
      additionalProperties: false
      description: Data model for the complex type PartyComplexName.
      properties:
        firstName:
          $ref: "#/components/schemas/FirstName"
        middleName:
          $ref: "#/components/schemas/MiddleName"
        lastName:
          $ref: "#/components/schemas/LastName"
    PartyIdInfo:
      title: PartyIdInfo
      type: object
      additionalProperties: false
      description: >-
        Data model for the complex type PartyIdInfo. An ExtensionList element
        has been added to this reqeust in version v1.1
      properties:
        partyIdType:
          $ref: "#/components/schemas/PartyIdType"
        partyIdentifier:
          $ref: "#/components/schemas/PartyIdentifier"
        partySubIdOrType:
          $ref: "#/components/schemas/PartySubIdOrType"
        fspId:
          $ref: "#/components/schemas/FspId"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - partyIdType
        - partyIdentifier
    PartyIdType:
      title: PartyIdType
      type: string
      enum:
        - MSISDN
        - EMAIL
        - PERSONAL_ID
        - BUSINESS
        - DEVICE
        - ACCOUNT_ID
        - IBAN
        - ALIAS
      description: >-
        Below are the allowed values for the enumeration.

        - MSISDN - An MSISDN (Mobile Station International Subscriber Directory
        Number, that is, the phone number) is used as reference to a
        participant. The MSISDN identifier should be in international format
        according to the [ITU-T E.164
        standard](https://www.itu.int/rec/T-REC-E.164/en). Optionally, the
        MSISDN may be prefixed by a single plus sign, indicating the
        international prefix.

        - EMAIL - An email is used as reference to a participant. The format of
        the email should be according to the informational [RFC
        3696](https://tools.ietf.org/html/rfc3696).

        - PERSONAL_ID - A personal identifier is used as reference to a
        participant. Examples of personal identification are passport number,
        birth certificate number, and national registration number. The
        identifier number is added in the PartyIdentifier element. The personal
        identifier type is added in the PartySubIdOrType element.

        - BUSINESS - A specific Business (for example, an organization or a
        company) is used as reference to a participant. The BUSINESS identifier
        can be in any format. To make a transaction connected to a specific
        username or bill number in a Business, the PartySubIdOrType element
        should be used.

        - DEVICE - A specific device (for example, a POS or ATM) ID connected to
        a specific business or organization is used as reference to a Party. For
        referencing a specific device under a specific business or organization,
        use the PartySubIdOrType element.

        - ACCOUNT_ID - A bank account number or FSP account ID should be used as
        reference to a participant. The ACCOUNT_ID identifier can be in any
        format, as formats can greatly differ depending on country and FSP.

        - IBAN - A bank account number or FSP account ID is used as reference to
        a participant. The IBAN identifier can consist of up to 34 alphanumeric
        characters and should be entered without whitespace.

        - ALIAS An alias is used as reference to a participant. The alias should
        be created in the FSP as an alternative reference to an account owner.
        Another example of an alias is a username in the FSP system. The ALIAS
        identifier can be in any format. It is also possible to use the
        PartySubIdOrType element for identifying an account under an Alias
        defined by the PartyIdentifier.
    PartyIdentifier:
      title: PartyIdentifier
      type: string
      minLength: 1
      maxLength: 128
      description: Identifier of the Party.
      example: "16135551212"
    PartyName:
      title: PartyName
      type: string
      minLength: 1
      maxLength: 128
      description: Name of the Party. Could be a real name or a nickname.
    PartyPersonalInfo:
      title: PartyPersonalInfo
      type: object
      additionalProperties: false
      description: Data model for the complex type PartyPersonalInfo.
      properties:
        complexName:
          $ref: "#/components/schemas/PartyComplexName"
        dateOfBirth:
          $ref: "#/components/schemas/DateOfBirth"
        kycInformation:
          $ref: "#/components/schemas/KYCInformation"
    PartyResult:
      title: PartyResult
      type: object
      additionalProperties: false
      description: Data model for the complex type PartyResult.
      properties:
        partyId:
          $ref: "#/components/schemas/PartyIdInfo"
        errorInformation:
          $ref: "#/components/schemas/ErrorInformation"
      required:
        - partyId
    PartySubIdOrType:
      title: PartySubIdOrType
      type: string
      minLength: 1
      maxLength: 128
      description: >-
        Either a sub-identifier of a PartyIdentifier, or a sub-type of the
        PartyIdType, normally a PersonalIdentifierType.
    PersonalIdentifierType:
      title: PersonalIdentifierType
      type: string
      enum:
        - PASSPORT
        - NATIONAL_REGISTRATION
        - DRIVING_LICENSE
        - ALIEN_REGISTRATION
        - NATIONAL_ID_CARD
        - EMPLOYER_ID
        - TAX_ID_NUMBER
        - SENIOR_CITIZENS_CARD
        - MARRIAGE_CERTIFICATE
        - HEALTH_CARD
        - VOTERS_ID
        - UNITED_NATIONS
        - OTHER_ID
      description: >-
        Below are the allowed values for the enumeration.

        - PASSPORT - A passport number is used as reference to a Party.

        - NATIONAL_REGISTRATION - A national registration number is used as
        reference to a Party.

        - DRIVING_LICENSE - A driving license is used as reference to a Party.

        - ALIEN_REGISTRATION - An alien registration number is used as reference
        to a Party.

        - NATIONAL_ID_CARD - A national ID card number is used as reference to a
        Party.

        - EMPLOYER_ID - A tax identification number is used as reference to a
        Party.

        - TAX_ID_NUMBER - A tax identification number is used as reference to a
        Party.

        - SENIOR_CITIZENS_CARD - A senior citizens card number is used as
        reference to a Party.

        - MARRIAGE_CERTIFICATE - A marriage certificate number is used as
        reference to a Party.

        - HEALTH_CARD - A health card number is used as reference to a Party.

        - VOTERS_ID - A voter’s identification number is used as reference to a
        Party.

        - UNITED_NATIONS - An UN (United Nations) number is used as reference to
        a Party.

        - OTHER_ID - Any other type of identification type number is used as
        reference to a Party.
    QRCODE:
      title: QRCODE
      type: string
      minLength: 1
      maxLength: 64
      description: QR code used as a One Time Password.
    QuotesIDPutResponse:
      title: QuotesIDPutResponse
      type: object
      additionalProperties: false
      description: The object sent in the PUT /quotes/{ID} callback.
      properties:
        transferAmount:
          $ref: "#/components/schemas/Money"
        payeeReceiveAmount:
          $ref: "#/components/schemas/Money"
        payeeFspFee:
          $ref: "#/components/schemas/Money"
        payeeFspCommission:
          $ref: "#/components/schemas/Money"
        expiration:
          $ref: "#/components/schemas/DateTime"
        geoCode:
          $ref: "#/components/schemas/GeoCode"
        ilpPacket:
          $ref: "#/components/schemas/IlpPacket"
        condition:
          $ref: "#/components/schemas/IlpCondition"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - transferAmount
        - expiration
        - ilpPacket
        - condition
    QuotesPostRequest:
      title: QuotesPostRequest
      type: object
      additionalProperties: false
      description: The object sent in the POST /quotes request.
      properties:
        quoteId:
          $ref: "#/components/schemas/CorrelationId"
        transactionId:
          $ref: "#/components/schemas/CorrelationId"
        transactionRequestId:
          $ref: "#/components/schemas/CorrelationId"
        payee:
          $ref: "#/components/schemas/Party"
        payer:
          $ref: "#/components/schemas/Party"
        amountType:
          $ref: "#/components/schemas/AmountType"
        amount:
          $ref: "#/components/schemas/Money"
        fees:
          $ref: "#/components/schemas/Money"
        transactionType:
          $ref: "#/components/schemas/TransactionType"
        converter:
          allOf:
            - $ref: "#/components/schemas/CurrencyConverter"
            - description: >-
                An optional field which will allow the payer DFSP to specify
                which DFSP it wants to undertake currency conversion. This is
                useful incase of if the sender wants the recipient to receive a
                specified amount of the target currency, but the payer DFSP does
                not want to undertake the currency conversion. In this case, the
                amount of the transfer would be expressed in the target currency
                and the amountType would be set to RECEIVE.
        currencyConversion:
          allOf:
            - $ref: "#/components/schemas/FxRate"
            - description: >-
                Used by the debtor party if it wants to share information about
                the currency conversion it proposes to make; or if it is
                required by scheme rules to share this information. This object
                contains the amount of the transfer in the source and target
                currencies, but does not identify the FXP being used.
        geoCode:
          $ref: "#/components/schemas/GeoCode"
        note:
          $ref: "#/components/schemas/Note"
        expiration:
          $ref: "#/components/schemas/DateTime"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - quoteId
        - transactionId
        - payee
        - payer
        - amountType
        - amount
        - transactionType
    Refund:
      title: Refund
      type: object
      additionalProperties: false
      description: Data model for the complex type Refund.
      properties:
        originalTransactionId:
          $ref: "#/components/schemas/CorrelationId"
        refundReason:
          $ref: "#/components/schemas/RefundReason"
      required:
        - originalTransactionId
    RefundReason:
      title: RefundReason
      type: string
      minLength: 1
      maxLength: 128
      description: Reason for the refund.
      example: Free text indicating reason for the refund.
    ServicesFXPPutResponse:
      title: ServicesFXPPutResponse
      type: object
      additionalProperties: false
      description: The object sent in the PUT /services/FXP callback.
      properties:
        providers:
          type: array
          description: >-
            The FSP Id(s) of the participant(s) who offer currency conversion
            services.
          items:
            $ref: "#/components/schemas/FspId"
          minItems: 0
          maxItems: 16
      required:
        - providers
    ServicesFXPSourceCurrencyTargetCurrencyPutResponse:
      title: ServicesFXPSourceCurrencyTargetCurrencyPutResponse
      type: object
      additionalProperties: false
      description: >-
        The object sent in the PUT
        /services/FXP/{SourceCurrency}/{TargetCurrency} callback.
      properties:
        providers:
          type: array
          description: >-
            The FSP Id(s) of the participant(s) who offer currency conversion
            services.
          items:
            $ref: "#/components/schemas/FspId"
          minItems: 0
          maxItems: 16
      required:
        - providers
    TokenCode:
      title: TokenCode
      type: string
      pattern: ^[0-9a-zA-Z]{4,32}$
      description: >-
        The API data type TokenCode is a JSON String between 4 and 32
        characters, consisting of digits or upper- or lowercase characters from
        a to z.
    Transaction:
      title: Transaction
      type: object
      additionalProperties: false
      description: >-
        Data model for the complex type Transaction. The Transaction type is
        used to carry end-to-end data between the Payer FSP and the Payee FSP in
        the ILP Packet. Both the transactionId and the quoteId in the data model
        are decided by the Payer FSP in the POST /quotes request.
      properties:
        transactionId:
          $ref: "#/components/schemas/CorrelationId"
        quoteId:
          $ref: "#/components/schemas/CorrelationId"
        payee:
          $ref: "#/components/schemas/Party"
        payer:
          $ref: "#/components/schemas/Party"
        amount:
          $ref: "#/components/schemas/Money"
        payeeReceiveAmount:
          allOf:
            - $ref: "#/components/schemas/Money"
            - description: The amount that the beneficiary will receive.
        converter:
          allOf:
            - $ref: "#/components/schemas/CurrencyConverter"
            - description: >-
                An optional field which will allow the payer DFSP to specify
                which DFSP it wants to undertake currency conversion. This is
                useful incase of if the sender wants the recipient to receive a
                specified amount of the target currency, but the payer DFSP does
                not want to undertake the currency conversion. In this case, the
                amount of the transfer would be expressed in the target currency
                and the amountType would be set to RECEIVE.
        currencyConversion:
          allOf:
            - $ref: "#/components/schemas/FxRate"
            - description: >-
                Used by the debtor party if it wants to share information about
                the currency conversion it proposes to make; or if it is
                required by scheme rules to share this information. This object
                contains the amount of the transfer in the source and target
                currencies, but does not identify the FXP being used.
        transactionType:
          $ref: "#/components/schemas/TransactionType"
        note:
          $ref: "#/components/schemas/Note"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - transactionId
        - quoteId
        - payee
        - payer
        - amount
        - transactionType
    TransactionInitiator:
      title: TransactionInitiator
      type: string
      enum:
        - PAYER
        - PAYEE
      description: >-
        Below are the allowed values for the enumeration.

        - PAYER - Sender of funds is initiating the transaction. The account to
        send from is either owned by the Payer or is connected to the Payer in
        some way.

        - PAYEE - Recipient of the funds is initiating the transaction by
        sending a transaction request. The Payer must approve the transaction,
        either automatically by a pre-generated OTP or by pre-approval of the
        Payee, or by manually approving in his or her own Device.
      example: PAYEE
    TransactionInitiatorType:
      title: TransactionInitiatorType
      type: string
      enum:
        - CONSUMER
        - AGENT
        - BUSINESS
        - DEVICE
      description: |-
        Below are the allowed values for the enumeration.
        - CONSUMER - Consumer is the initiator of the transaction.
        - AGENT - Agent is the initiator of the transaction.
        - BUSINESS - Business is the initiator of the transaction.
        - DEVICE - Device is the initiator of the transaction.
      example: CONSUMER
    TransactionRequestState:
      title: TransactionRequestState
      type: string
      enum:
        - RECEIVED
        - PENDING
        - ACCEPTED
        - REJECTED
      description: |-
        Below are the allowed values for the enumeration.
        - RECEIVED - Payer FSP has received the transaction from the Payee FSP.
        - PENDING - Payer FSP has sent the transaction request to the Payer.
        - ACCEPTED - Payer has approved the transaction.
        - REJECTED - Payer has rejected the transaction.
      example: RECEIVED
    TransactionRequestsIDPutResponse:
      title: TransactionRequestsIDPutResponse
      type: object
      additionalProperties: false
      description: The object sent in the PUT /transactionRequests/{ID} callback.
      properties:
        transactionId:
          $ref: "#/components/schemas/CorrelationId"
        transactionRequestState:
          $ref: "#/components/schemas/TransactionRequestState"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - transactionRequestState
    TransactionRequestsPostRequest:
      title: TransactionRequestsPostRequest
      type: object
      additionalProperties: false
      description: The object sent in the POST /transactionRequests request.
      properties:
        transactionRequestId:
          $ref: "#/components/schemas/CorrelationId"
        payee:
          $ref: "#/components/schemas/Party"
        payer:
          $ref: "#/components/schemas/PartyIdInfo"
        amount:
          $ref: "#/components/schemas/Money"
        transactionType:
          $ref: "#/components/schemas/TransactionType"
        note:
          $ref: "#/components/schemas/Note"
        geoCode:
          $ref: "#/components/schemas/GeoCode"
        authenticationType:
          $ref: "#/components/schemas/AuthenticationType"
        expiration:
          $ref: "#/components/schemas/DateTime"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - transactionRequestId
        - payee
        - payer
        - amount
        - transactionType
    TransactionScenario:
      title: TransactionScenario
      type: string
      enum:
        - DEPOSIT
        - WITHDRAWAL
        - TRANSFER
        - PAYMENT
        - REFUND
      description: >-
        Below are the allowed values for the enumeration.

        - DEPOSIT - Used for performing a Cash-In (deposit) transaction. In a
        normal scenario, electronic funds are transferred from a Business
        account to a Consumer account, and physical cash is given from the
        Consumer to the Business User.

        - WITHDRAWAL - Used for performing a Cash-Out (withdrawal) transaction.
        In a normal scenario, electronic funds are transferred from a Consumer’s
        account to a Business account, and physical cash is given from the
        Business User to the Consumer.

        - TRANSFER - Used for performing a P2P (Peer to Peer, or Consumer to
        Consumer) transaction.

        - PAYMENT - Usually used for performing a transaction from a Consumer to
        a Merchant or Organization, but could also be for a B2B (Business to
        Business) payment. The transaction could be online for a purchase in an
        Internet store, in a physical store where both the Consumer and Business
        User are present, a bill payment, a donation, and so on.

        - REFUND - Used for performing a refund of transaction.
      example: DEPOSIT
    TransactionState:
      title: TransactionState
      type: string
      enum:
        - RECEIVED
        - PENDING
        - COMPLETED
        - REJECTED
      description: |-
        Below are the allowed values for the enumeration.
        - RECEIVED - Payee FSP has received the transaction from the Payer FSP.
        - PENDING - Payee FSP has validated the transaction.
        - COMPLETED - Payee FSP has successfully performed the transaction.
        - REJECTED - Payee FSP has failed to perform the transaction.
      example: RECEIVED
    TransactionSubScenario:
      title: TransactionSubScenario
      type: string
      pattern: ^[A-Z_]{1,32}$
      description: >-
        Possible sub-scenario, defined locally within the scheme (UndefinedEnum
        Type).
      example: LOCALLY_DEFINED_SUBSCENARIO
    TransactionType:
      title: TransactionType
      type: object
      additionalProperties: false
      description: Data model for the complex type TransactionType.
      properties:
        scenario:
          $ref: "#/components/schemas/TransactionScenario"
        subScenario:
          $ref: "#/components/schemas/TransactionSubScenario"
        initiator:
          $ref: "#/components/schemas/TransactionInitiator"
        initiatorType:
          $ref: "#/components/schemas/TransactionInitiatorType"
        refundInfo:
          $ref: "#/components/schemas/Refund"
        balanceOfPayments:
          $ref: "#/components/schemas/BalanceOfPayments"
      required:
        - scenario
        - initiator
        - initiatorType
    TransactionsIDPutResponse:
      title: TransactionsIDPutResponse
      type: object
      additionalProperties: false
      description: The object sent in the PUT /transactions/{ID} callback.
      properties:
        completedTimestamp:
          $ref: "#/components/schemas/DateTime"
        transactionState:
          $ref: "#/components/schemas/TransactionState"
        code:
          $ref: "#/components/schemas/Code"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - transactionState
    TransferState:
      title: TransferState
      type: string
      enum:
        - RECEIVED
        - RESERVED
        - COMMITTED
        - ABORTED
      description: >-
        Below are the allowed values for the enumeration.

        - RECEIVED - Next ledger has received the transfer.

        - RESERVED - Next ledger has reserved the transfer.

        - COMMITTED - Next ledger has successfully performed the transfer.

        - ABORTED - Next ledger has aborted the transfer due to a rejection or
        failure to perform the transfer.
      example: RESERVED
    TransfersIDPatchResponse:
      title: TransfersIDPatchResponse
      type: object
      additionalProperties: false
      description: PATCH /transfers/{ID} object
      properties:
        completedTimestamp:
          $ref: "#/components/schemas/DateTime"
        transferState:
          $ref: "#/components/schemas/TransferState"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - completedTimestamp
        - transferState
    TransfersIDPutResponse:
      title: TransfersIDPutResponse
      type: object
      additionalProperties: false
      description: The object sent in the PUT /transfers/{ID} callback.
      properties:
        fulfilment:
          $ref: "#/components/schemas/IlpFulfilment"
        completedTimestamp:
          $ref: "#/components/schemas/DateTime"
        transferState:
          $ref: "#/components/schemas/TransferState"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - transferState
    TransfersPostRequest:
      title: TransfersPostRequest
      type: object
      additionalProperties: false
      description: The object sent in the POST /transfers request.
      properties:
        transferId:
          $ref: "#/components/schemas/CorrelationId"
        payeeFsp:
          $ref: "#/components/schemas/FspId"
        payerFsp:
          $ref: "#/components/schemas/FspId"
        amount:
          $ref: "#/components/schemas/Money"
        ilpPacket:
          $ref: "#/components/schemas/IlpPacket"
        condition:
          $ref: "#/components/schemas/IlpCondition"
        expiration:
          $ref: "#/components/schemas/DateTime"
        extensionList:
          $ref: "#/components/schemas/ExtensionList"
      required:
        - transferId
        - payeeFsp
        - payerFsp
        - amount
        - ilpPacket
        - condition
        - expiration
    U2FPIN:
      title: U2FPIN
      type: string
      pattern: ^\S{1,64}$
      minLength: 1
      maxLength: 64
      description: >
        U2F challenge-response, where payer FSP verifies if the response
        provided by end-user device matches the previously registered key.
    U2FPinValue:
      title: U2FPinValue
      type: object
      additionalProperties: false
      description: >
        U2F challenge-response, where payer FSP verifies if the response
        provided by end-user device matches the previously registered key.
      properties:
        pinValue:
          allOf:
            - $ref: "#/components/schemas/U2FPIN"
          description: U2F challenge-response.
        counter:
          allOf:
            - $ref: "#/components/schemas/Integer"
          description: >-
            Sequential counter used for cloning detection. Present only for U2F
            authentication.
      required:
        - pinValue
        - counter
    UndefinedEnum:
      title: UndefinedEnum
      type: string
      pattern: ^[A-Z_]{1,32}$
      description: >-
        The API data type UndefinedEnum is a JSON String consisting of 1 to 32
        uppercase characters including an underscore character (_).
  parameters:
    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).
    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.
    FSPIOP-Destination:
      name: FSPIOP-Destination
      in: header
      schema:
        type: string
      required: false
      description: >-
        The `FSPIOP-Destination` header field is a non-HTTP standard field used
        by the API for HTTP header based routing of requests and responses to
        the destination. The field must be set by the original sender of the
        request if the destination is known (valid for all services except GET
        /parties) so that any entities between the client and the server do not
        need to parse the payload for routing purposes. If the destination is
        not known (valid for service GET /parties), the field should be left
        empty.
    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-HTTP-Method:
      name: FSPIOP-HTTP-Method
      in: header
      schema:
        type: string
      required: false
      description: >-
        The `FSPIOP-HTTP-Method` header field is a non-HTTP standard field used
        by the API for signature verification, should contain the service HTTP
        method. Required if signature verification is used, for more
        information, see [the API Signature
        document](https://github.com/mojaloop/docs/tree/main/Specification%20Document%20Set).
    FSPIOP-Signature:
      name: FSPIOP-Signature
      in: header
      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-Source:
      name: FSPIOP-Source
      in: header
      schema:
        type: string
      required: true
      description: >-
        The `FSPIOP-Source` header field is a non-HTTP standard field used by
        the API for identifying the sender of the HTTP request. The field should
        be set by the original sender of the request. Required for routing and
        signature verification (see header field `FSPIOP-Signature`).
    FSPIOP-URI:
      name: FSPIOP-URI
      in: header
      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).
    ID:
      name: ID
      in: path
      required: true
      schema:
        type: string
      description: The identifier value.
    SourceCurrency:
      name: SourceCurrency
      in: path
      required: true
      schema:
        type: string
      description: ISO 4217 currency code for the source currency.
    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`.
    TargetCurrency:
      name: TargetCurrency
      in: path
      required: true
      schema:
        type: string
      description: ISO 4217 currency code for the target currency.
    Type:
      name: Type
      in: path
      required: true
      schema:
        type: string
      description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`.
    X-Forwarded-For:
      name: X-Forwarded-For
      in: header
      schema:
        type: string
      required: false
      description: >-
        The `X-Forwarded-For` header field is an unofficially accepted standard
        used for informational purposes of the originating client IP address, as
        a request might pass multiple proxies, firewalls, and so on. Multiple
        `X-Forwarded-For` values should be expected and supported by
        implementers of the API.


        **Note:** An alternative to `X-Forwarded-For` is defined in [RFC
        7239](https://tools.ietf.org/html/rfc7239). However, to this point RFC
        7239 is less-used and supported than `X-Forwarded-For`.
  responses:
    "200":
      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.
