openapi: 3.0.2
info:
  version: v2.0-iso20022-draft
  title: Open API for FSP Interoperability (FSPIOP) - the ISO 20022 message version
  description: IN PROGRESS
  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:
  /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/GetParties_IdentificationVerificationReportV03
      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/GetPartiesError_IdentificationVerificationReportV03
      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/GetParties_IdentificationVerificationReportV03
      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/GetPartiesError_IdentificationVerificationReportV03
      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/TermsRequest_FIToFICustomerCreditProposal"
      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/TermsResponse_FIToFICustomerCreditConfirmation
      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/PacsError_FIToFIPaymentStatusReportV15"
      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/Execute_FIToFICustomerCreditTransferV13"
      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/PacsStatus_FIToFIPaymentStatusReportV15"
      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/PacsStatus_FIToFIPaymentStatusReportV15"
      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/PacsError_FIToFIPaymentStatusReportV15"
      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/FxRequest_FICreditTransferProposal"
      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/FxResponse_FICreditTransferConfirmation"
      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/PacsError_FIToFIPaymentStatusReportV15"
      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/Fxecute_FinancialInstitutionCreditTransferV12
      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/PacsStatus_FIToFIPaymentStatusReportV15"
      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/PacsStatus_FIToFIPaymentStatusReportV15"
      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/PacsError_FIToFIPaymentStatusReportV15"
      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:
  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.
    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`.
    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.
  schemas:
    AccountIdentification4Choice:
      title: AccountIdentification4Choice
      type: object
      additionalProperties: false
      description: >
        Specifies the unique identification of an account as assigned by the
        account servicer.
      anyOf:
        - properties:
            IBAN:
              allOf:
                - $ref: "#/components/schemas/IBAN2007Identifier"
                - description: >
                    IBAN

                    International Bank Account Number (IBAN) - identifier used
                    internationally by financial institutions to uniquely
                    identify the account of a customer. Further specifications
                    of the format and content of the IBAN can be found in the
                    standard ISO 13616 "Banking and related financial services -
                    International Bank Account Number (IBAN)" version
                    1997-10-01, or later revisions.
          required:
            - IBAN
        - properties:
            Othr:
              allOf:
                - $ref: "#/components/schemas/GenericAccountIdentification1"
                - description: >
                    Other

                    Unique identification of an account, as assigned by the
                    account servicer, using an identification scheme.
          required:
            - Othr
      example:
        IBAN: BE71096123456769
    AccountSchemeName1Choice:
      title: AccountSchemeName1Choice
      type: object
      additionalProperties: false
      description: |
        Sets of elements to identify a name of the identification scheme.
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: "#/components/schemas/ExternalAccountIdentification1Code"
                - description: >
                    Code

                    Name of the identification scheme, in a coded form as
                    published in an external list.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/Max35Text"
                - description: |
                    Proprietary
                    Name of the identification scheme, in a free text form.
          required:
            - Prtry
      example:
        Cd: 1111
    ActiveCurrencyAndAmount:
      title: ActiveCurrencyAndAmount
      type: object
      additionalProperties: false
      description: >
        A number of monetary units specified in an active currency where the
        unit of currency is explicit and compliant with ISO 4217.
      properties:
        ActiveCurrencyAndAmount:
          allOf:
            - $ref: "#/components/schemas/ActiveCurrencyAndAmount_SimpleType"
        Ccy:
          allOf:
            - $ref: "#/components/schemas/ActiveCurrencyCode"
            - description: |
                Currency
                Identification of the currency in which the account is held.
      required:
        - ActiveCurrencyAndAmount
        - Ccy
      example:
        ActiveCurrencyAndAmount: 123.45
        Ccy: USD
    ActiveCurrencyAndAmount_SimpleType:
      title: ActiveCurrencyAndAmount_SimpleType
      type: string
      pattern: >-
        ^(?!0\d)(\d{1,18}|\d{1,17}.\d{1}|\d{1,16}.\d{1,2}|\d{1,15}.\d{1,3}|\d{1,14}.\d{1,4}|\d{1,13}.\d{1,5})$
      example: 123.45
    ActiveCurrencyCode:
      title: ActiveCurrencyCode
      type: string
      description: >-
        A code allocated to a currency by a Maintenance Agency under an
        international identification scheme as described in the latest edition
        of the international standard ISO 4217 "Codes for the representation of
        currencies and funds".

        NOTE: This has been modified away from the original ISO20022 pattern to
        enums.
      example: USD
      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
    ActiveOrHistoricCurrencyAndAmount:
      title: ActiveOrHistoricCurrencyAndAmount
      type: object
      additionalProperties: false
      description: >
        A number of monetary units specified in an active or a historic currency
        where the unit of currency is explicit and compliant with ISO 4217.
      properties:
        ActiveOrHistoricCurrencyAndAmount:
          allOf:
            - $ref: >-
                #/components/schemas/ActiveOrHistoricCurrencyAndAmount_SimpleType
            - description: >
                Amount of money to be moved between the debtor and creditor,
                before deduction of charges, expressed in the currency as
                ordered by the initiating party.
        Ccy:
          allOf:
            - $ref: "#/components/schemas/ActiveOrHistoricCurrencyCode"
            - description: |
                Currency
                Identification of the currency in which the account is held.
      required:
        - ActiveOrHistoricCurrencyAndAmount
        - Ccy
      example:
        ActiveOrHistoricCurrencyAndAmount: 123.45
        Ccy: USD
    ActiveOrHistoricCurrencyAndAmount_SimpleType:
      title: ActiveOrHistoricCurrencyAndAmount_SimpleType
      type: string
      example: 123.45
      pattern: >-
        ^(?!0\d)(\d{1,18}|\d{1,17}.\d{1}|\d{1,16}.\d{1,2}|\d{1,15}.\d{1,3}|\d{1,14}.\d{1,4}|\d{1,13}.\d{1,5})$
    ActiveOrHistoricCurrencyCode:
      title: ActiveOrHistoricCurrencyCode
      type: string
      description: >
        A code allocated to a currency by a Maintenance Agency under an
        international identification scheme, as described in the latest edition
        of the international standard ISO 4217 "Codes for the representation of
        currencies and funds".

        NOTE: This has been modified away from the original ISO20022 pattern to
        enums.
      example: USD
      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
    AddressType2Code:
      description: |
        AddressType2Code
        Specifies the type of address.
        ADDR Address
        PBOX PostBox
        HOME Home
        BIZZ Business
        MLTO MailingTo
        DLVY Delivery
      enum:
        - ADDR
        - PBOX
        - HOME
        - BIZZ
        - MLTO
        - DLVY
      type: string
      example: ADDR
    AddressType3Choice:
      title: AddressType3Choice
      type: object
      additionalProperties: false
      description: |
        Choice of formats for the type of address.
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: "#/components/schemas/AddressType2Code"
                - description: |
                    Code
                    Type of address expressed as a code.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/GenericIdentification30"
                - description: |
                    Proprietary
                    Type of address expressed as a proprietary code.
          required:
            - Prtry
      example:
        Cd: ADDR
    AmountTypeEnum:
      title: AmountTypeEnum
      description: |
        NOTE: This pattern is not the original ISO20022 specification.
              This represents the enum values when mapping to and from FSPIOP specification.
      type: string
      enum:
        - SEND
        - RECEIVE
      example: SEND
    AnyBICDec2014Identifier:
      title: AnyBICDec2014Identifier
      type: string
      description: >
        AnyBICDec2014Identifier

        Code allocated to a financial or non-financial institution by the

        ISO 9362 Registration Authority, as described in ISO 9362: 2014

        - "Banking - Banking telecommunication messages - Business identifier
        code (BIC)".
      pattern: ^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$
      example: J5BMVH7D
    BICFIDec2014Identifier:
      title: BICFIDec2014Identifier
      type: string
      description: >
        Code allocated to a financial institution by the ISO 9362 Registration


        Authority as described in ISO 9362: 2014


        - "Banking - Banking telecommunication messages - Business identifier
        code (BIC)".
      pattern: ^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$
      example: J5BMVH7D
    BaseOneRate:
      title: BaseOneRate
      type: string
      description: |
        Rate expressed as a decimal, for example, 0.7 is 7/10 and 70%.
      example: 0.7
      pattern: >-
        ^(?!0\d)(\d{1,11}|\d{1,10}.\d{1}|\d{1,9}.\d{1,2}|\d{1,8}.\d{1,3}|\d{1,7}.\d{1,4}|\d{1,6}.\d{1,5}|\d{1,5}.\d{1,6}|\d{1,4}.\d{1,7}|\d{1,3}.\d{1,8}|\d{1,2}.\d{1,9}|\d{1}.\d{1,10})$
    BranchAndFinancialInstitutionIdentification6:
      title: BranchAndFinancialInstitutionIdentification6
      type: object
      additionalProperties: false
      description: >
        Unique and unambiguous identification of a financial institution or a
        branch of a financial institution.
      properties:
        FinInstnId:
          allOf:
            - $ref: "#/components/schemas/FinancialInstitutionIdentification18"
            - description: >
                FinancialInstitutionIdentification

                Unique and unambiguous identification of a financial
                institution, as assigned under an internationally recognised or
                proprietary identification scheme.
        BrnchId:
          allOf:
            - $ref: "#/components/schemas/BranchData3"
            - description: >
                BranchIdentification

                Definition: Identifies a specific branch of a financial
                institution.

                Usage: This component should be used in case the identification
                information in the financial institution component does not
                provide identification up to branch level.
      required:
        - FinInstnId
      example:
        FinInstnId:
          BICFI: J5BMVH7D
        BrnchId:
          Id: 123
          Nm: Name
          PstlAdr:
            AdrTp: ADDR
            Dept: Department
            SubDept: Sub department
            StrtNm: Street name
            BldgNb: Building number
            PstCd: Post code
            TwnNm: Town name
            CtrySubDvsn: Country subdivision
            Ctry: Country
            AdrLine: Address line
    BranchAndFinancialInstitutionIdentification8:
      title: BranchAndFinancialInstitutionIdentification8
      type: object
      additionalProperties: false
      description: >
        Unique and unambiguous identification of a financial institution or a
        branch of a financial institution.
      properties:
        FinInstnId:
          allOf:
            - $ref: "#/components/schemas/FinancialInstitutionIdentification23"
            - description: >
                FinancialInstitutionIdentification

                Unique and unambiguous identification of a financial institution
                or a branch of a financial institution.
        BrnchId:
          allOf:
            - $ref: "#/components/schemas/BranchData5"
            - description: |
                BranchIdentification
                Identifies a specific branch of a financial institution.
      required:
        - FinInstnId
      example:
        FinInstnId:
          BICFI: J5BMVH7D
        BrnchId:
          Id: 123
          Nm: Name
          PstlAdr:
            AdrTp: ADDR
            Dept: Department
            SubDept: Sub department
            StrtNm: Street name
            BldgNb: Building number
            PstCd: Post code
            TwnNm: Town name
            CtrySubDvsn: Country subdivision
            Ctry: Country
            AdrLine: Address line
    BranchData3:
      title: BranchData3
      type: object
      additionalProperties: false
      description: >
        Information that locates and identifies a specific branch of a financial
        institution.
      properties:
        Id:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                Identification

                Unique and unambiguous identification of a branch of a financial
                institution.
        LEI:
          allOf:
            - $ref: "#/components/schemas/LEIIdentifier"
            - description: >
                Legal Entity Identifier

                Legal entity identification for the branch of the financial
                institution.
        Nm:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: >
                Name

                Name by which an agent is known and which is usually used to
                identify that agent.
        PstlAdr:
          allOf:
            - $ref: "#/components/schemas/PostalAddress24"
            - description: >
                Postal Address

                Information that locates and identifies a specific address, as
                defined by postal services.
      example:
        Id: 123
        Nm: Name
        PstlAdr:
          AdrTp: ADDR
          Dept: Department
          SubDept: Sub department
          StrtNm: Street name
          BldgNb: Building number
          PstCd: Post code
          TwnNm: Town name
          CtrySubDvsn: Country subdivision
          Ctry: Country
          AdrLine: Address line
    BranchData5:
      title: BranchData5
      description: >
        Information that locates and identifies a specific branch of a financial
        institution.
      type: object
      additionalProperties: false
      properties:
        Id:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                Identification

                Unique and unambiguous identification of a branch of a financial
                institution.
        LEI:
          allOf:
            - $ref: "#/components/schemas/LEIIdentifier"
            - description: >
                LEI

                Legal entity identification for the branch of the financial
                institution.
        Nm:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: >
                Name

                Name by which an agent is known and which is usually used to
                identify that agent.
        PstlAdr:
          allOf:
            - $ref: "#/components/schemas/PostalAddress27"
            - description: >
                PostalAddress

                Information that locates and identifies a specific address, as
                defined by postal services.
      example:
        Id: 123
        LEI: 123
        Nm: Name
        PstlAdr:
          AdrTp: ADDR
          Dept: Department
          SubDept: Sub department
          StrtNm: Street name
          BldgNb: Building number
    CashAccount40:
      title: CashAccount40
      type: object
      additionalProperties: false
      description: |
        Provides the details to identify an account.
      properties:
        Id:
          allOf:
            - $ref: "#/components/schemas/AccountIdentification4Choice"
            - description: >
                Identification

                Unique and unambiguous identification for the account between
                the account owner and the account servicer.
        Tp:
          allOf:
            - $ref: "#/components/schemas/CashAccountType2Choice"
            - description: |
                Type
                Specifies the nature, or use of the account.
        Ccy:
          allOf:
            - $ref: "#/components/schemas/ActiveOrHistoricCurrencyCode"
            - description: >
                Currency

                Identification of the currency in which the account is held.

                Usage: Currency should only be used in case one and the same
                account number covers several currencies and the initiating
                party needs to identify which currency needs to be used for
                settlement on the account.
        Nm:
          allOf:
            - $ref: "#/components/schemas/Max70Text"
            - description: >
                Name

                Name of the account, as assigned by the account servicing
                institution, in agreement with the account owner in order to
                provide an additional means of identification of the account.

                Usage: The account name is different from the account owner
                name. The account name is used in certain user communities to
                provide a means of identifying the account, in addition to the
                account owner's identity and the account number.
        Prxy:
          allOf:
            - $ref: "#/components/schemas/ProxyAccountIdentification1"
            - description: >
                Proxy

                Specifies an alternate assumed name for the identification of
                the account.
      example:
        Id:
          IBAN: BE71096123456769
        Tp:
          Cd: CACC
        Ccy: EUR
        Nm: My account
        Prxy:
          Id: 12345
    CashAccountType2Choice:
      title: CashAccountType2Choice
      description: |
        Specifies the nature, or use of the account.
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: "#/components/schemas/ExternalCashAccountType1Code"
                - description: |
                    Code
                    Account type, in a coded form.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/Max35Text"
                - description: |
                    Proprietary
                    Nature or use of the account in a proprietary form.
          required:
            - Prtry
      example:
        Cd: CACC
    CategoryPurpose1Choice:
      title: CategoryPurpose1Choice
      description: >
        Contains details about high level purpose of the mandate based on a set
        of pre-defined categories.
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: "#/components/schemas/ExternalCategoryPurpose1Code"
                - description: >
                    Code

                    Category purpose, as published in an external category
                    purpose code list.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/Max35Text"
                - description: |
                    Proprietary
                    Category purpose, in a proprietary form.
          required:
            - Prtry
      example:
        Cd: CASH
    ChargeBearerType1Code:
      title: ChargeBearerType1Code
      description: >
        Specifies which party(ies) will pay charges due for processing of the

        instruction.


        DEBT: BorneByDebtor All transaction charges are to be borne by the
        debtor.

        CRED: BorneByCreditor All transaction charges are to be borne by the
        creditor.

        SHAR: Shared In a credit transfer context, means that transaction
        charges on
              the sender side are to be borne by the debtor, transaction charges on the receiver side are to
              be borne by the creditor. In a direct debit context, means that transaction charges on the sender side
              are to be borne by the creditor, transaction charges on the receiver
      type: string
      enum:
        - DEBT
        - CRED
        - SHAR
      example: DEBT
    ChargeType3Choice:
      title: ChargeType3Choice
      description: |
        ChargeType3Choice
        Specifies the type of charge.
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: "#/components/schemas/ExternalChargeType1Code"
                - description: |
                    Code
                    Charge type, in a coded form.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/GenericIdentification3"
                - description: >
                    Proprietary

                    Type of charge in a proprietary form, as defined by the
                    issuer.
          required:
            - Prtry
      example:
        Cd: CASH
    Charges16:
      title: Charges16
      description: |
        NOTE: Unsure on description.

        Seemingly a generic schema for charges, with an amount, agent, and type.
      type: object
      additionalProperties: false
      properties:
        Amt:
          allOf:
            - $ref: "#/components/schemas/ActiveOrHistoricCurrencyAndAmount"
            - description: |
                Amount
                Transaction charges to be paid by the charge bearer.
        Agt:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification8
            - description: >
                Agent

                Agent that takes the transaction charges or to which the
                transaction charges are due.
        Tp:
          allOf:
            - $ref: "#/components/schemas/ChargeType3Choice"
            - description: |
                Type
                Defines the type of charges.
      required:
        - Amt
        - Agt
      example:
        Amt:
          ActiveOrHistoricCurrencyAndAmount: 123.45
          Ccy: USD
        Agt:
          BrnchId:
            Id: BRANCHID
          FinInstnId:
            BICFI: BICFI
        Tp:
          Cd: SHAR
    ClearingChannel2Code:
      title: ClearingChannel2Code
      description: >
        Specifies the clearing channel for the routing of the transaction, as
        part of

        the payment type identification.


        RTGS: RealTimeGrossSettlementSystem Clearing channel is a real-time
        gross settlement system.

        RTNS: RealTimeNetSettlementSystem Clearing channel is a real-time net
        settlement system.

        MPNS: MassPaymentNetSystem Clearing channel is a mass payment  net
        settlement system.

        BOOK: BookTransfer Payment through internal book transfer.
      type: string
      enum:
        - RTGS
        - RTNS
        - MPNS
        - BOOK
      example: RTGS
    ClearingSystemIdentification2Choice:
      title: ClearingSystemIdentification2Choice
      description: |
        Specifies the clearing system identification.
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: >-
                    #/components/schemas/ExternalClearingSystemIdentification1Code
                - description: >
                    Code

                    Clearing system identification code, as published in an
                    external list.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/Max35Text"
                - description: |
                    Proprietary
                    Proprietary identification of the clearing system.
          required:
            - Prtry
      example:
        Cd: CHIPS
    ClearingSystemMemberIdentification2:
      title: ClearingSystemMemberIdentification2
      description: >
        Unique identification, as assigned by a clearing system, to
        unambiguously identify a member of the clearing system.
      type: object
      additionalProperties: false
      properties:
        ClrSysId:
          allOf:
            - $ref: "#/components/schemas/ClearingSystemIdentification2Choice"
            - description: >
                ClearingSystemIdentification

                Specification of a pre-agreed offering between clearing agents
                or the channel through which the payment instruction is
                processed.
        MmbId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                MemberIdentification
                Identification of a member of a clearing system.
      required:
        - MmbId
      example:
        ClrSysId:
          Cd: CHQB
        MmbId: 123456789
    Contact13:
      title: Contact13
      description: |
        Specifies the details of the contact person.
      type: object
      additionalProperties: false
      properties:
        NmPrfx:
          allOf:
            - $ref: "#/components/schemas/NamePrefix2Code"
            - description: |
                NamePrefix
                Specifies the terms used to formally address a person.
        Nm:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: >
                Name

                Name by which a party is known and which is usually used to
                identify that party.
        PhneNb:
          allOf:
            - $ref: "#/components/schemas/PhoneNumber"
            - description: >
                PhoneNumber

                Collection of information that identifies a phone number, as
                defined by telecom services.
        MobNb:
          allOf:
            - $ref: "#/components/schemas/PhoneNumber"
            - description: >
                MobilePhoneNumber

                Collection of information that identifies a mobile phone number,
                as defined by telecom services.
        FaxNb:
          allOf:
            - $ref: "#/components/schemas/PhoneNumber"
            - description: >
                FaxNumber

                Collection of information that identifies a fax number, as
                defined by telecom services.
        URLAdr:
          allOf:
            - $ref: "#/components/schemas/Max2048Text"
            - description: >
                URLAddress

                Address for the Universal Resource Locator (URL), for example an
                address used over the www (HTTP) service.
        EmailAdr:
          allOf:
            - $ref: "#/components/schemas/Max256Text"
            - description: |
                EmailAddress
                Address for electronic mail (e-mail).
        EmailPurp:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                EmailPurpose
                Purpose for which an email address may be used.
        JobTitl:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                JobTitle
                Title of the function.
        Rspnsblty:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Responsibility
                Role of a person in an organisation.
        Dept:
          allOf:
            - $ref: "#/components/schemas/Max70Text"
            - description: >
                Department

                Identification of a division of a large organisation or
                building.
        Othr:
          allOf:
            - $ref: "#/components/schemas/OtherContact1"
            - description: |
                OtherContact
                Contact details in another form.
        PrefrdMtd:
          allOf:
            - $ref: "#/components/schemas/PreferredContactMethod2Code"
            - description: |
                PreferredContactMethod
                Preferred method used to reach the contact.
      example:
        NmPrfx: Mr
        Nm: John Doe
        PhneNb: +123-123-321
        MobNb: +123-123-321
        FaxNb: +123-123-321
        URLAdr: http://www.example.com
        EmailAdr: example@example.com
    Contact4:
      title: Contact4
      description: |
        Specifies the details of the contact person.
      type: object
      additionalProperties: false
      properties:
        NmPrfx:
          allOf:
            - $ref: "#/components/schemas/NamePrefix2Code"
            - description: |
                NamePrefix
                Name prefix to be used before the name of the person.
        Nm:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: >
                Name

                Name by which a party is known and which is usually used to
                identify that party.
        PhneNb:
          allOf:
            - $ref: "#/components/schemas/PhoneNumber"
            - description: >
                PhoneNumber

                Collection of information that identifies a phone number, as
                defined by telecom services.
        MobNb:
          allOf:
            - $ref: "#/components/schemas/PhoneNumber"
            - description: >
                MobilePhoneNumber

                Collection of information that identifies a mobile phone number,
                as defined by telecom services.
        FaxNb:
          allOf:
            - $ref: "#/components/schemas/PhoneNumber"
            - description: >
                FaxNumber

                Collection of information that identifies a fax number, as
                defined by telecom services.
        EmailAdr:
          allOf:
            - $ref: "#/components/schemas/Max2048Text"
            - description: |
                EmailAddress
                Address for electronic mail (e-mail).
        EmailPurp:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                EmailPurpose
                Purpose for which an email address may be used.
        JobTitl:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                JobTitle
                Title of the function.
        Rspnsblty:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Responsibility
                Role of a person in an organisation.
        Dept:
          allOf:
            - $ref: "#/components/schemas/Max70Text"
            - description: >
                Department

                Identification of a division of a large organisation or
                building.
        Othr:
          allOf:
            - $ref: "#/components/schemas/OtherContact1"
            - description: |
                Other
                Contact details in another form.
        PrefrdMtd:
          allOf:
            - $ref: "#/components/schemas/PreferredContactMethod1Code"
            - description: |
                PreferredMethod
                Preferred method used to reach the contact.
      example:
        NmPrfx: Mr
        Nm: John Doe
        PhneNb: +123-123-321
        MobNb: +123-123-321
        FaxNb: +123-123-321
        EmailAdr: example@example.com
    CountryCode:
      title: CountryCode
      type: string
      pattern: ^[A-Z]{2,2}$
      example: US
      description: >
        Code to identify a country, a dependency, or another area of particular
        geopolitical interest, on the basis of country names obtained from the
        United Nations (ISO 3166, Alpha-2 code).
    CreditTransferTransaction67:
      title: CreditTransferTransaction67
      description: >
        Provides further details specific to the individual transaction(s)
        included in the message.
      type: object
      additionalProperties: false
      properties:
        PmtId:
          allOf:
            - $ref: "#/components/schemas/PaymentIdentification13"
            - description: |
                PaymentIdentification
                Set of elements used to reference a payment instruction.
        PmtTpInf:
          allOf:
            - $ref: "#/components/schemas/PaymentTypeInformation28"
            - description: |
                PaymentTypeInformation
                Set of elements used to further specify the type of transaction.
        UndrlygCstmrCdtTrf:
          allOf:
            - $ref: "#/components/schemas/UnderlyingCustomerCreditTransfer"
            - description: |
                Underlying Customer Credit Transfer
                TBD
        IntrBkSttlmAmt:
          allOf:
            - $ref: "#/components/schemas/ActiveCurrencyAndAmount"
            - description: >
                InterbankSettlementAmount

                Amount of money moved between the instructing agent and the
                instructed agent.
        InstdAmt:
          allOf:
            - $ref: "#/components/schemas/ActiveOrHistoricCurrencyAndAmount"
            - description: >
                InstructedAmount

                Amount of money to be moved between the debtor and creditor,
                before deduction of charges, expressed in the currency as
                ordered by the initiating party.
        XchgRate:
          allOf:
            - $ref: "#/components/schemas/BaseOneRate"
            - description: >
                ExchangeRate

                Factor used to convert an amount from one currency into another.
                This reflects the price at which one currency was bought with
                another currency.
        ChrgBr:
          $ref: "#/components/schemas/ChargeBearerType1Code"
        ChrgsInf:
          allOf:
            - $ref: "#/components/schemas/Charges16"
            - description: >
                ChargesInformation

                Provides information on the charges to be paid by the charge
                bearer(s) related to the payment transaction.
        Dbtr:
          allOf:
            - $ref: "#/components/schemas/PartyIdentification272"
            - description: |
                Debtor
                Party that owes an amount of money to the (ultimate) creditor.
        DbtrAcct:
          allOf:
            - $ref: "#/components/schemas/CashAccount40"
            - description: >
                DebtorAccount

                Unambiguous identification of the account of the debtor to which
                a debit entry will be made as a result of the transaction.
        DbtrAgt:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification8
            - description: |
                DebtorAgent
                Financial institution servicing an account for the debtor.
        CdtrAgt:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification8
            - description: |
                CreditorAgent
                Financial institution servicing an account for the creditor.
        Cdtr:
          allOf:
            - $ref: "#/components/schemas/PartyIdentification272"
            - description: |
                Creditor
                Party to which an amount of money is due.
        CdtrAcct:
          allOf:
            - $ref: "#/components/schemas/CashAccount40"
            - description: >
                CreditorAccount

                Unambiguous identification of the account of the creditor to
                which a credit entry will be posted as a result of the payment
                transaction.
        InstrForCdtrAgt:
          allOf:
            - $ref: "#/components/schemas/InstructionForCreditorAgent3"
            - description: >
                InstructionForCreditorAgent

                Set of elements used to provide information on the remittance
                advice.
        InstrForNxtAgt:
          allOf:
            - $ref: "#/components/schemas/InstructionForNextAgent1"
            - description: >
                InstructionForNextAgent

                Set of elements used to provide information on the remittance
                advice.
        Purp:
          allOf:
            - $ref: "#/components/schemas/Purpose2Choice"
            - description: |
                Purpose
                Underlying reason for the payment transaction.
        RgltryRptg:
          allOf:
            - $ref: "#/components/schemas/RegulatoryReporting3"
            - description: |
                RegulatoryReporting
                Information needed due to regulatory and statutory requirements.
        Tax:
          allOf:
            - $ref: "#/components/schemas/TaxData1"
            - description: |
                Tax
                Provides details on the tax.
        VrfctnOfTerms:
          $ref: "#/components/schemas/CryptographicLockChoice"
      required:
        - PmtId
        - IntrBkSttlmAmt
        - ChrgBr
        - Dbtr
        - DbtrAgt
        - CdtrAgt
        - Cdtr
      example:
        PmtId:
          InstrId: INSTRID
          EndToEndId: ENDTOENDID
        PmtTpInf:
          LclInstrm:
            Cd: CHQB
            Prtry: PROPRIETARY
          SeqTp: SEQTP
        IntrBkSttlmAmt:
          ActiveCurrencyAndAmount: 123.45
          Ccy: USD
        InstdAmt:
          ActiveOrHistoricCurrencyAndAmount: 123.45
          Ccy: USD
        XchgRate: 123.45
        ChrgBr: SHAR
        ChrgsInf:
          Amt:
            ActiveOrHistoricCurrencyAndAmount: 123.45
            Ccy: USD
          Agt:
            BrnchId:
              Id: BRANCHID
            FinInstnId:
              BICFI: BICFI
          Tp:
            Cd: SHAR
        Dbtr:
          Nm: NAME
          PstlAdr:
            AdrTp: ADDR
            BldgNb: BLDGNB
            Ctry: CTRY
            TwnNm: TWNNM
            PstCd: PSTCD
            StrtNm: STRTNM
        DbtrAcct:
          Id:
            IBAN: IBAN
        DbtrAgt:
          BrnchId:
            Id: BRANCHID
          FinInstnId:
            BICFI: BICFI
        CdtrAgt:
          BrnchId:
            Id: BRANCHID
          FinInstnId:
            BICFI: BICFI
        Cdtr:
          Nm: NAME
          PstlAdr:
            AdrTp: ADDR
            BldgNb: BLDGNB
            Ctry: CTRY
            TwnNm: TWNNM
            PstCd: PSTCD
            StrtNm: STRTNM
        CdtrAcct:
          Id:
            IBAN: IBAN
        InstrForCdtrAgt:
          Cd: CODE
        InstrForNxtAgt:
          Cd: CODE
        Purp:
          Cd: CASH
        RgltryRptg:
          Dbtr: true
          Cdtr: true
        Tax: Cdtr
    CreditTransferTransaction68:
      title: CreditTransferTransaction68
      description: >
        Provides further details specific to the individual transaction(s)
        included in the message.
      type: object
      additionalProperties: false
      properties:
        PmtId:
          allOf:
            - $ref: "#/components/schemas/PaymentIdentification13"
            - description: |
                PaymentIdentification
                Set of elements used to reference a payment instruction.
        PmtTpInf:
          allOf:
            - $ref: "#/components/schemas/PaymentTypeInformation28"
            - description: |
                PaymentTypeInformation
                Set of elements used to further specify the type of transaction.
        UndrlygCstmrCdtTrf:
          allOf:
            - $ref: "#/components/schemas/UnderlyingCustomerCreditTransfer"
            - description: |
                Underlying Customer Credit Transfer
                TBD
        IntrBkSttlmAmt:
          allOf:
            - $ref: "#/components/schemas/ActiveCurrencyAndAmount"
            - description: >
                InterbankSettlementAmount

                Amount of money moved between the instructing agent and the
                instructed agent.
        Dbtr:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification8
            - description: |
                Debtor
                Party that owes an amount of money to the (ultimate) creditor.
        DbtrAcct:
          allOf:
            - $ref: "#/components/schemas/CashAccount40"
            - description: |
                DebtorAccount
                Account used to process a payment.
        DbtrAgt:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification8
            - description: |
                DebtorAgent
                Financial institution servicing an account for the debtor.
        CdtrAgt:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification8
            - description: |
                CreditorAgent
                Financial institution servicing an account for the creditor.
        Cdtr:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification8
            - description: |
                Creditor
                Party to which an amount of money is due.
        CdtrAcct:
          allOf:
            - $ref: "#/components/schemas/CashAccount40"
            - description: |
                CreditorAccount
                Account to which a credit entry is made.
        InstrForCdtrAgt:
          allOf:
            - $ref: "#/components/schemas/InstructionForCreditorAgent3"
            - description: >
                InstructionForCreditorAgent

                Set of elements used to provide information on the remittance
                advice.
        Purp:
          allOf:
            - $ref: "#/components/schemas/Purpose2Choice"
            - description: |
                Purpose
                Underlying reason for the payment transaction.
        VrfctnOfTerms:
          allOf:
            - $ref: "#/components/schemas/CryptographicLockChoice"
            - description: >
                VerificationOfTerms

                Set of elements used to provide information on the underlying
                terms of the transaction.
      required:
        - PmtId
        - IntrBkSttlmAmt
        - Dbtr
        - Cdtr
      example:
        PmtId:
          InstrId: INSTRID
          EndToEndId: ENDTOENDID
        PmtTpInf:
          LclInstrm:
            Cd: CHQB
            Prtry: PROPRIETARY
        IntrBkSttlmAmt:
          Amount: 123.45
          Ccy: EUR
        Dbtr:
          Nm: Debtor Name
        DbtrAcct:
          Id:
            IBAN: IBAN
        DbtrAgt:
          FinInstnId:
            BICFI: BICFI
        CdtrAgt:
          FinInstnId:
            BICFI: BICFI
        Cdtr:
          Nm: Creditor Name
        CdtrAcct:
          Id:
            IBAN: IBAN
        InstrForCdtrAgt:
          Cd: INSTRUCTION
        Purp:
          Cd: CHAR
        VrfctnOfTerms:
          Cntt: CONTENT
          CnttTp: PROPRIETARY
    CreditTransferTransaction68_FX_Quotes:
      title: CreditTransferTransaction68_FX_Quotes
      description: >
        Provides further details specific to the individual transaction(s)
        included in the message.
      type: object
      additionalProperties: false
      properties:
        PmtId:
          allOf:
            - $ref: "#/components/schemas/PaymentIdentification13"
            - description: |
                PaymentIdentification
                Set of elements used to reference a payment instruction.
        PmtTpInf:
          allOf:
            - $ref: "#/components/schemas/PaymentTypeInformation28"
            - description: |
                PaymentTypeInformation
                Set of elements used to further specify the type of transaction.
        UndrlygCstmrCdtTrf:
          allOf:
            - $ref: "#/components/schemas/UnderlyingCustomerCreditTransfer"
            - description: |
                Underlying Customer Credit Transfer
                TBD
        IntrBkSttlmAmt:
          allOf:
            - $ref: "#/components/schemas/ActiveCurrencyAndAmount"
            - description: >
                InterbankSettlementAmount

                Amount of money moved between the instructing agent and the
                instructed agent.
        Dbtr:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification8
            - description: |
                Debtor
                Party that owes an amount of money to the (ultimate) creditor.
        DbtrAcct:
          allOf:
            - $ref: "#/components/schemas/CashAccount40"
            - description: |
                DebtorAccount
                Account used to process a payment.
        DbtrAgt:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification8
            - description: |
                DebtorAgent
                Financial institution servicing an account for the debtor.
        CdtrAgt:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification8
            - description: |
                CreditorAgent
                Financial institution servicing an account for the creditor.
        Cdtr:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification8
            - description: |
                Creditor
                Party to which an amount of money is due.
        CdtrAcct:
          allOf:
            - $ref: "#/components/schemas/CashAccount40"
            - description: |
                CreditorAccount
                Account to which a credit entry is made.
        InstrForCdtrAgt:
          allOf:
            - $ref: "#/components/schemas/InstructionForCreditorAgent3_FX_Quotes"
            - description: >
                InstructionForCreditorAgent

                Set of elements used to provide information on the remittance
                advice.
        Purp:
          allOf:
            - $ref: "#/components/schemas/Purpose2Choice"
            - description: |
                Purpose
                Underlying reason for the payment transaction.
        VrfctnOfTerms:
          allOf:
            - $ref: "#/components/schemas/CryptographicLockChoice"
            - description: >
                VerificationOfTerms

                Set of elements used to provide information on the underlying
                terms of the transaction.
      required:
        - PmtId
        - IntrBkSttlmAmt
        - Dbtr
        - Cdtr
      example:
        PmtId:
          InstrId: INSTRID
          EndToEndId: ENDTOENDID
        PmtTpInf:
          LclInstrm:
            Cd: CHQB
            Prtry: PROPRIETARY
        IntrBkSttlmAmt:
          Amount: 123.45
          Ccy: EUR
        Dbtr:
          Nm: Debtor Name
        DbtrAcct:
          Id:
            IBAN: IBAN
        DbtrAgt:
          FinInstnId:
            BICFI: BICFI
        CdtrAgt:
          FinInstnId:
            BICFI: BICFI
        Cdtr:
          Nm: Creditor Name
        CdtrAcct:
          Id:
            IBAN: IBAN
        InstrForCdtrAgt:
          Cd: INSTRUCTION
        Purp:
          Cd: CHAR
        VrfctnOfTerms:
          Cntt: CONTENT
          CnttTp: PROPRIETARY
    CryptographicLockChoice:
      title: CryptographicLockChoice
      description: |
        Cryptographically signed terms
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            IlpV4PrepPacket:
              allOf:
                - $ref: "#/components/schemas/hexBinary"
                - description: >
                    Interledger Protocol packet (ILPv4) containing
                    Cryptographically signed terms
          required:
            - IlpV4PrepPacket
        - properties:
            Sh256Sgntr:
              allOf:
                - $ref: "#/components/schemas/Exact32HexBinaryText"
                - description: |
                    SHA-256 signature of the terms
          required:
            - Sh256Sgntr
      example:
        IlpV4PrepPacket: 1234567890ABCDEF
    DateAndDateTime2Choice:
      title: StatusReason6Choice
      description: |
        Specifies the reason for the status.
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            Dt:
              allOf:
                - $ref: "#/components/schemas/ISODate"
                - description: |
                    Date
                    Specified date.
          required:
            - Dt
        - properties:
            DtTm:
              allOf:
                - $ref: "#/components/schemas/ISODateTime"
                - description: |
                    DateTime
                    Specified date and time.
          required:
            - DtTm
      example:
        DtTm: "2020-01-01T00:00:00Z"
    DateAndPlaceOfBirth1:
      title: DateAndPlaceOfBirth1
      description: |
        Details about date and place of birth of a person.
      type: object
      additionalProperties: false
      properties:
        BirthDt:
          allOf:
            - $ref: "#/components/schemas/ISODate"
            - description: |
                BirthDate
                Date on which a person was born.
        PrvcOfBirth:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                ProvinceOfBirth
                Province where a person was born.
        CityOfBirth:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                CityOfBirth
                City where a person was born.
        CtryOfBirth:
          allOf:
            - $ref: "#/components/schemas/CountryCode"
            - description: |
                CountryOfBirth
                Country where a person was born.
      required:
        - BirthDt
        - CityOfBirth
        - CtryOfBirth
      example:
        BirthDt: "1970-01-01"
        PrvcOfBirth: "ON"
        CityOfBirth: Ottawa
        CtryOfBirth: CA
    DatePeriod2:
      title: DatePeriod2
      description: |
        Range of time defined by a start date and an end date.
      type: object
      additionalProperties: false
      properties:
        FrDt:
          allOf:
            - $ref: "#/components/schemas/ISODate"
            - description: |
                FromDate
                Start date of the range.
        ToDt:
          allOf:
            - $ref: "#/components/schemas/ISODate"
            - description: |
                ToDate
                End date of the range.
      required:
        - FrDt
        - ToDt
      example:
        FrDt: "2022-01-01"
        ToDt: "2022-12-31"
    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
    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"
    Exact32HexBinaryText:
      title: Exact32HexBinaryText
      description: |
        Specifies a hexadecimal string.

        NOTE: This pattern is not the original ISO20022 specification.
      type: string
      pattern: ^[A-Za-z0-9-_]{43}$
      maxLength: 48
    Exact4AlphaNumericText:
      title: Exact4AlphaNumericText
      description: |
        Specifies an alphanumeric string with a length of 4 characters.
      type: string
      pattern: ^[a-zA-Z0-9]{4}$
      example: 1234
    Execute_FIToFICustomerCreditTransferV13:
      title: Execute_FIToFICustomerCreditTransferV13
      type: object
      additionalProperties: false
      properties:
        GrpHdr:
          allOf:
            - $ref: "#/components/schemas/GroupHeader129"
            - description: >
                Group Header

                Set of characteristics shared by all individual transactions
                included in the message.
        CdtTrfTxInf:
          allOf:
            - $ref: "#/components/schemas/CreditTransferTransaction67"
            - description: >
                Credit Transfer Transaction Information

                Set of elements providing information specific to the individual
                credit transfer(s).
      required:
        - GrpHdr
        - CdtTrfTxInf
      example:
        GrpHdr:
          MsgId: 12345
          CreDtTm: "2020-01-01T00:00:00Z"
          PmtInstrXpryDtTm: "2020-01-01T00:00:00Z"
          NbOfTxs: 1
          SttlmInf:
            SttlmMtd: INDA
            SttlmAcct:
              Id:
                IBAN: 123
            SttlmAcctOwnr:
              Nm: John Doe
            SttlmAcctSvcr:
              BICFI: 123
        CdtTrfTxInf:
          PmtId:
            InstrId: 123
            EndToEndId: 123
          PmtTpInf:
            InstrPrty: NORM
          InstdAmt:
            Amt: 123
            Ccy: EUR
          ChrgBr: SHAR
          CdtrAgt:
            FinInstnId:
              BICFI: 123
          Cdtr:
            Nm: John Doe
          CdtrAcct:
            Id:
              IBAN: 123
          RmtInf:
            Ustrd: Test
    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.
    ExternalAccountIdentification1Code:
      title: ExternalAccountIdentification1Code
      description: >
        Specifies the external account identification scheme name code in the
        format of character string with a maximum length of 4 characters.
      type: string
      minLength: 1
      maxLength: 4
      example: 1234
    ExternalCashAccountType1Code:
      title: ExternalCashAccountType1Code
      description: >
        Specifies the nature, or use, of the cash account in the format of
        character string with a maximum length of 4 characters.
      type: string
      minLength: 1
      maxLength: 4
      example: 1234
    ExternalCategoryPurpose1Code:
      description: >
        Specifies the category purpose, as published in an external category
        purpose code list.

        External code sets can be downloaded from www.iso20022.org.
      maxLength: 4
      minLength: 1
      type: string
      example: 1234
    ExternalChargeType1Code:
      title: ExternalChargeType1Code
      description: |
        Specifies the type of charge applied to the transaction.
      type: string
      minLength: 1
      maxLength: 4
      example: 1234
    ExternalClearingSystemIdentification1Code:
      title: ExternalClearingSystemIdentification1Code
      description: |
        Specifies the external clearing system identification code.
      type: string
      minLength: 1
      maxLength: 5
      example: 12345
    ExternalCreditorAgentInstruction1Code:
      title: ExternalCreditorAgentInstruction1Code
      description: Specifies the instruction given by the creditor to the creditor agent.
      type: string
      minLength: 1
      maxLength: 4
      example: 1234
    ExternalFinancialInstitutionIdentification1Code:
      title: ExternalFinancialInstitutionIdentification1Code
      description: Specifies the external financial institution identification code.
      type: string
      minLength: 1
      maxLength: 4
      example: 1234
    ExternalLocalInstrument1Code:
      title: ExternalLocalInstrument1Code
      description: Specifies the external local instrument identification code.
      type: string
      minLength: 1
      maxLength: 35
      example: 12345
    ExternalOrganisationIdentification1Code:
      title: ExternalOrganisationIdentification1Code
      description: Specifies the external organisation identification code.
      type: string
      minLength: 1
      maxLength: 4
      example: 1234
    ExternalPaymentTransactionStatus1Code:
      title: ExternalPaymentTransactionStatus1Code
      description: >
        Specifies the external payment transaction status code.


        For FSPIOP transfer state enumeration mappings:

        {
          "COMM": "COMMITED",
          "RESV": "RESERVED",
          "RECV": "RECEIVED",
          "ABOR": "ABORTED"
        }


        NOTE: enum enforcement is not apart of the ISO20022 specification, but
        is added here for FSPIOP mappings.
      type: string
      minLength: 1
      maxLength: 4
      example: COMM
      enum:
        - COMM
        - RESV
        - RECV
        - ABOR
    ExternalPersonIdentification1Code:
      title: ExternalPersonIdentification1Code
      description: Specifies the external person identification code.
      type: string
      minLength: 1
      maxLength: 4
      example: 1234
    ExternalProxyAccountType1Code:
      title: ExternalProxyAccountType1Code
      description: Specifies the external proxy account type code.
      type: string
      minLength: 1
      maxLength: 4
      example: 1234
    ExternalPurpose1Code:
      title: ExternalPurpose1Code
      description: Specifies the external purpose code.
      type: string
      minLength: 1
      maxLength: 4
      example: 1234
    ExternalServiceLevel1Code:
      title: ExternalServiceLevel1Code
      description: Specifies the external service level code.
      type: string
      minLength: 1
      maxLength: 4
      example: 1234
    ExternalStatusReason1Code:
      title: ExternalStatusReason1Code
      description: Specifies the external status reason code.
      type: string
      minLength: 1
      maxLength: 4
      example: 1234
    ExternalVerificationReason1Code:
      title: ExternalVerificationReason1Code
      description: Specifies the external verification reason code.
      type: string
      minLength: 1
      maxLength: 4
      example: 1234
    FinancialIdentificationSchemeName1Choice:
      title: FinancialIdentificationSchemeName1Choice
      type: object
      additionalProperties: false
      description: |
        Specifies the name of the identification scheme.
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: >-
                    #/components/schemas/ExternalFinancialInstitutionIdentification1Code
                - description: >
                    Code

                    Name of the identification scheme, in a coded form as
                    published in an external list.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/Max35Text"
                - description: |
                    Proprietary
                    Name of the identification scheme, in a free text form.
          required:
            - Prtry
      example:
        Cd: BIC
    FinancialInstitutionIdentification18:
      title: FinancialInstitutionIdentification18
      type: object
      additionalProperties: false
      description: |
        Information used to identify a financial institution.
      properties:
        BICFI:
          allOf:
            - $ref: "#/components/schemas/BICFIDec2014Identifier"
            - description: >
                BICFI

                Code allocated to a financial institution by the ISO 9362
                Registration Authority as described in ISO 9362 "Banking -
                Banking telecommunication messages - Business identifier code
                (BIC)"
        ClrSysMmbId:
          allOf:
            - $ref: "#/components/schemas/ClearingSystemMemberIdentification2"
            - description: |
                ClearingSystemMemberIdentification
                Information used to identify a member within a clearing system
        LEI:
          allOf:
            - $ref: "#/components/schemas/LEIIdentifier"
            - description: |
                LEI
                Legal entity identifier of the financial institution.
        Nm:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: >
                Name

                Name by which an agent is known and which is usually used to
                identify that agent
        PstlAdr:
          allOf:
            - $ref: "#/components/schemas/PostalAddress24"
            - description: >
                PostalAddress

                Information that locates and identifies a specific address, as
                defined by postal services.
        Othr:
          allOf:
            - $ref: "#/components/schemas/GenericFinancialIdentification1"
            - description: >
                Other

                Unique identification of an agent, as assigned by an
                institution, using an identification scheme.
      required: []
      example:
        BICFI: J5BMVH7D
        ClrSysMmbId:
          ClrSysId: 1234
          MmbId: 123
        LEI: 123
        Nm: Name
        PstlAdr:
          AdrTp: ADDR
          Dept: Department
          SubDept: Sub department
          StrtNm: Street name
          BldgNb: Building number
          PstCd: Post code
          TwnNm: Town name
          CtrySubDvsn: Country subdivision
          Ctry: Country
          AdrLine: Address line
        Othr:
          Id: 123
          SchmeNm:
            Cd: 123
            Prtry: 123
          Issr: 123
    FinancialInstitutionIdentification23:
      title: FinancialInstitutionIdentification23
      type: object
      additionalProperties: false
      description: |
        Information used to identify a financial institution.
      properties:
        BICFI:
          allOf:
            - $ref: "#/components/schemas/BICFIDec2014Identifier"
            - description: >
                BICFI

                Code allocated to a financial institution by the ISO 9362
                Registration Authority as described in ISO 9362 "Banking -
                Banking telecommunication messages - Business identifier code
                (BIC)"
        ClrSysMmbId:
          allOf:
            - $ref: "#/components/schemas/ClearingSystemMemberIdentification2"
            - description: |
                ClearingSystemMemberIdentification
                Information used to identify a member within a clearing system
        LEI:
          allOf:
            - $ref: "#/components/schemas/LEIIdentifier"
            - description: |
                LEI
                Legal entity identifier of the financial institution.
        Nm:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: >
                Name

                Name by which an agent is known and which is usually used to
                identify that agent
        PstlAdr:
          allOf:
            - $ref: "#/components/schemas/PostalAddress24"
            - description: >
                PostalAddress

                Information that locates and identifies a specific address, as
                defined by postal services.
        Othr:
          allOf:
            - $ref: "#/components/schemas/GenericFinancialIdentification1"
            - description: >
                Other

                Unique identification of an agent, as assigned by an
                institution, using an identification scheme.
      required: []
      example:
        BICFI: J5BMVH7D
        ClrSysMmbId:
          ClrSysId: 1234
          MmbId: 123
        LEI: 123
        Nm: Name
        PstlAdr:
          AdrTp: ADDR
          Dept: Department
          SubDept: Sub department
          StrtNm: Street name
          BldgNb: Building number
          PstCd: Post code
          TwnNm: Town name
          CtrySubDvsn: Country subdivision
          Ctry: Country
          AdrLine: Address line
        Othr:
          Id: 123
          SchmeNm:
            Cd: 123
            Prtry: 123
          Issr: 123
    FxRequest_FICreditTransferProposal:
      title: FxRequest_FICreditTransferProposal
      type: object
      additionalProperties: false
      description: >
        FxRequest_FICreditTransferProposal

        A group of elements providing information specific to the individual
        credit transfer(s) included in the message.
      properties:
        GrpHdr:
          allOf:
            - $ref: "#/components/schemas/GroupHeader113"
            - description: >
                GroupHeader

                Set of characteristics shared by all individual transactions
                included in the message.
        CdtTrfTxInf:
          allOf:
            - $ref: "#/components/schemas/CreditTransferTransaction68_FX_Quotes"
            - description: |
                Credit Transfer Transaction Information
      required:
        - GrpHdr
        - CdtTrfTxInf
      example:
        GrpHdr:
          MsgId: 12345
          CreDtTm: "2020-01-01T00:00:00Z"
          NbOfTxs: 1
          TtlIntrBkSttlmAmt:
            Ccy: EUR
            Value: 100
          SttlmInf:
            SttlmMtd: INDA
            SttlmAcct:
              Id:
                IBAN: BE71096123456769
              Ccy: EUR
            SttlmAcctOwnr:
              Nm: Name
            SttlmAcctSvcr:
              Nm: Name
            SttlmAgt:
              FinInstnId:
                BICFI: BIC
          PmtTpInf:
            InstrPrty: NORM
            CtgyPurp: CASH
          CdtTrfTxInf:
            PmtId:
              InstrId: 12345
              EndToEndId: 12345
            Amt:
              InstdAmt:
                Ccy: EUR
                Value: 100
            Cdtr:
              Nm: Name
            CdtrAcct:
              Id:
                IBAN: BE71096123456769
              Ccy: EUR
            CdtrAgt:
              FinInstnId:
                BICFI: BIC
            Dbtr:
              Nm: Name
            DbtrAcct:
              Id:
                IBAN: BE71096123456769
              Ccy: EUR
            DbtrAgt:
              FinInstnId:
                BICFI: BIC
            IntrBkSttlmAmt:
              Ccy: EUR
              Value: 100
            PmtTpInf:
              InstrPrty: NORM
              ClrChanl: RTGS
              SvcLvl:
                Cd: SEPA
              LclInstrm:
                Cd: CORE
              CtgyPurp:
                Cd: CASH
            RgltryRptg:
              Dbtr:
                Nm: Name
              DbtrAcct:
                Id:
                  IBAN: BE71096123456769
                Ccy: EUR
              DbtrAgt:
                FinInstnId:
                  BICFI: BIC
              Cdtr:
                Nm: Name
    FxResponse_FICreditTransferConfirmation:
      title: FxResponse_FICreditTransferConfirmation
      type: object
      additionalProperties: false
      description: >
        FxResponse_FICreditTransferConfirmation

        The FxResponse_FICreditTransferConfirmation message is sent by the FSP
        to the Payer FSP to confirm the successful processing of the credit
        transfer.
      properties:
        GrpHdr:
          allOf:
            - $ref: "#/components/schemas/GroupHeader113"
            - description: >
                GroupHeader

                Set of characteristics shared by all individual transactions
                included in the message.
        CdtTrfTxInf:
          allOf:
            - $ref: "#/components/schemas/CreditTransferTransaction68_FX_Quotes"
            - description: >
                CreditTransferTransaction68_FX_Quotes

                Set of elements providing information specific to the individual
                credit transfer(s).
      required:
        - GrpHdr
        - CdtTrfTxInf
      example:
        GrpHdr:
          MsgId: 20191122-123456
          CreDtTm: "2019-11-22T12:34:56"
          NbOfTxs: 1
          CtrlSum: 100
          InitgPty:
            Nm: Initiating Party Name
          MsgRcpt:
            Nm: Message Recipient Name
        CdtTrfTxInf:
          PmtId:
            InstrId: 20191122-123456
            EndToEndId: 20191122-123456
          PmtTpInf:
            InstrPrty: NORM
            CtgyPurp: SUPP
          IntrBkSttlmAmt:
            Amt: 100
            Ccy: EUR
          ChrgBr: SHAR
          Cdtr:
            Nm: Creditor Name
          CdtrAcct:
            Id:
              IBAN: BE71096123456769
            Tp:
              Cd: CACC
            Ccy: EUR
            Nm: My account
          CdtrAgt:
            FinInstnId:
              BICFI: BNBABEBB
          CdtrAgtAcct:
            Id:
              IBAN: BE71096123456769
            Tp:
              Cd: CACC
            Ccy: EUR
            Nm: My account
          Dbtr:
            Nm: Debtor Name
          DbtrAcct:
            Id:
              IBAN: BE71096123456769
            Tp:
              Cd: CACC
            Ccy: EUR
            Nm: My account
          DbtrAgt:
            FinInstnId:
              BICFI: BNBABEBB
          DbtrAgtAcct:
            Id:
              IBAN: BE71096123456769
            Tp:
              Cd: CACC
            Ccy: EUR
            Nm: My account
          RmtInf:
            Ustrd: Remittance Information
          RgltryRptg:
            Dbtr:
              Nm: Debtor Name
            DbtrAcct:
              Id:
                IBAN: BE71096123456769
              Tp:
                Cd: CACC
              Ccy: EUR
              Nm: My account
    Fxecute_FinancialInstitutionCreditTransferV12:
      title: Fxecute_FinancialInstitutionCreditTransferV12
      type: object
      additionalProperties: false
      description: >
        The Fxecute FinancialInstitutionCreditTransfer message is sent by the
        initiating party to the executing party to request the execution of a
        payment. It is used to request movement of funds from the debtor account
        to the creditor account. The message can carry multiple credit transfer
        instructions.
      properties:
        GrpHdr:
          allOf:
            - $ref: "#/components/schemas/GroupHeader129"
            - description: >
                GroupHeader.

                Set of characteristics shared by all individual transactions
                included in the message.
        CdtTrfTxInf:
          allOf:
            - $ref: "#/components/schemas/CreditTransferTransaction68"
            - description: >
                CreditTransferTransactionInformation.

                Set of elements providing information specific to the individual
                credit transfer(s).
      required:
        - GrpHdr
        - CdtTrfTxInf
      example:
        GrpHdr:
          MsgId: 20191113001
          CreDtTm: "2019-11-13T10:00:00"
          NbOfTxs: 1
          CtrlSum: 1000
          InitgPty:
            Nm: Initiating Party Name
            Id:
              OrgId:
                Othr:
                  Id: 123456789
                  SchmeNm:
                    Cd: BBA
          FwdgAgt:
            FinInstnId:
              BICFI: BBBBBBBB
          DbtrAgt:
            FinInstnId:
              BICFI: AAAAAAAA
          CdtrAgt:
            FinInstnId:
              BICFI: CCCCCCCC
        CdtTrfTxInf:
          PmtId:
            InstrId: 20191113001
            EndToEndId: 20191113001
          PmtTpInf:
            InstrPrty: NORM
            CtgyPurp:
              Cd: SUPP
          InstrForCdtrAgt:
            Cd: /ACC/123456789
          IntrBkSttlmAmt:
            Amt: 1000
            Ccy: EUR
          ChrgBr: SHAR
          CdtrAgt:
            FinInstnId:
              BICFI: CCCCCCCC
          Cdtr:
            Nm: Creditor Name
          CdtrAcct:
            Id:
              IBAN: BE71096123456769
          RmtInf:
            Ustrd: Payment for invoice 12345
    GenericAccountIdentification1:
      title: GenericAccountIdentification1
      type: object
      additionalProperties: false
      description: >
        GenericAccountIdentification

        Unique and unambiguous identification of an account, as assigned by the
        account servicer.
      properties:
        Id:
          allOf:
            - $ref: "#/components/schemas/Max34Text"
            - description: |
                Identification
                Identification assigned by an institution.
        SchmeNm:
          allOf:
            - $ref: "#/components/schemas/AccountSchemeName1Choice"
            - description: |
                SchemeName
                Name of the identification scheme.
        Issr:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Issuer
                Entity that assigns the identification.
      required:
        - Id
      example:
        Id: 123
        SchmeNm:
          Cd: IBAN
        Issr: BIC
    GenericFinancialIdentification1:
      title: GenericFinancialIdentification1
      type: object
      additionalProperties: false
      description: >
        GenericFinancialIdentification

        Unique and unambiguous identification of a person, which is used to
        refer to a person in a financial context.
      properties:
        Id:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Identification
                Unique and unambiguous identification of a person.
        SchmeNm:
          allOf:
            - $ref: "#/components/schemas/FinancialIdentificationSchemeName1Choice"
            - description: |
                SchemeName
                Name of the identification scheme.
        Issr:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Issuer
                Entity that assigns the identification.
      required:
        - Id
      example:
        Id: 123
        SchmeNm:
          Cd: IBAN
        Issr: BIC
    GenericIdentification3:
      title: GenericIdentification3
      type: object
      additionalProperties: false
      description: |
        Generic scheme identification for a party.
      properties:
        Id:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                Identification

                Name or number assigned by an entity to enable recognition of
                that entity, for example, account identifier.
        Issr:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Issuer
                Entity that assigns the identification.
      required:
        - Id
      example:
        Id: 123
        Issr: BIC
    GenericIdentification30:
      title: GenericIdentification30
      type: object
      additionalProperties: false
      description: |
        Generic scheme identification for a party.
      properties:
        Id:
          allOf:
            - $ref: "#/components/schemas/Exact4AlphaNumericText"
            - description: >
                Identification

                Proprietary information, often a code, issued by the data source
                scheme issuer.
        Issr:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Issuer
                Entity that assigns the identification.
        SchmeNm:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                SchemeName
                Short textual description of the scheme.
      required:
        - Id
        - Issr
      example:
        Id: 1234
        Issr: BIC
        SchmeNm: BICFI
    GenericOrganisationIdentification1:
      title: GenericOrganisationIdentification1
      type: object
      additionalProperties: false
      description: |
        Information that locates and identifies an organisation.
      properties:
        Id:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                Identification for an organisation. FSPIOP equivalent to Party
                Identifier for an organisation in ISO 20022. Identification
                assigned by an institution.
        SchmeNm:
          allOf:
            - $ref: "#/components/schemas/OrganisationIdentificationSchemeName1Choice"
            - description: |
                SchemeName
                Name of the identification scheme.
        Issr:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Issuer
                Entity that assigns the identification.
      required:
        - Id
      example:
        Id: 123
        SchmeNm:
          Cd: BIC
        Issr: BIC
    GenericOrganisationIdentification3:
      title: GenericOrganisationIdentification3
      type: object
      additionalProperties: false
      description: |
        Information related to an identification of an organisation.
      properties:
        Id:
          allOf:
            - $ref: "#/components/schemas/Max256Text"
            - description: |
                Identification
                Identification assigned by an institution.
        SchmeNm:
          allOf:
            - $ref: "#/components/schemas/OrganisationIdentificationSchemeName1Choice"
            - description: |
                SchemeName
                Name of the identification scheme.
        Issr:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Issuer
                Entity that assigns the identification.
      required:
        - Id
      example:
        Id: 123
        SchmeNm:
          Cd: BIC
        Issr: BIC
    GenericPersonIdentification1:
      title: GenericPersonIdentification1
      type: object
      additionalProperties: false
      description: |
        GenericPersonIdentification1
        Information that locates and identifies a specific person.
      properties:
        Id:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Identification
                Unique and unambiguous identification of a person.
        SchmeNm:
          allOf:
            - $ref: "#/components/schemas/PersonIdentificationSchemeName1Choice"
            - description: |
                SchemeName
                Name of the identification scheme.
        Issr:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Issuer
                Entity that assigns the identification.
      required:
        - Id
      example:
        Id: 123
        SchmeNm:
          Cd: DRLC
        Issr: BIC
    GenericPersonIdentification2:
      title: GenericPersonIdentification2
      type: object
      additionalProperties: false
      description: Identification of a person.
      properties:
        Id:
          allOf:
            - $ref: "#/components/schemas/Max256Text"
            - description: |
                Identification
                Unique and unambiguous identification of a person.
        SchmeNm:
          allOf:
            - $ref: "#/components/schemas/PersonIdentificationSchemeName1Choice"
            - description: |
                SchemeName
                Name of the identification scheme.
        Issr:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Issuer
                Entity that assigns the identification.
      required:
        - Id
      example:
        Id: 123
        SchmeNm:
          Cd: DRLC
        Issr: BIC
    GetPartiesError_IdentificationVerificationReportV03:
      title: GetPartiesError_IdentificationVerificationReportV03
      type: object
      additionalProperties: false
      properties:
        Assgnmt:
          allOf:
            - $ref: "#/components/schemas/IdentificationAssignment3"
            - description: |
                Assignment
                Information related to the identification assignment.
        Rpt:
          allOf:
            - $ref: "#/components/schemas/VerificationReport4"
            - description: >
                Report

                Information concerning the verification of the identification
                data for which verification was requested.
        SplmtryData:
          allOf:
            - $ref: "#/components/schemas/SupplementaryData1"
            - description: >
                SupplementaryData

                Additional information that cannot be captured in the structured
                elements and/or any other specific block.
      required:
        - Assgnmt
        - Rpt
      example:
        Assgnmt:
          Id: 123
          CreDtTm: "2013-03-07T16:30:00"
          Assgnr:
            Id:
              Id: 123
              SchmeNm:
                Cd: IBAN
              Issr: BIC
          Assgne:
            Id:
              Id: 123
              SchmeNm:
                Cd: IBAN
              Issr: BIC
        Rpt:
          Id: 123
          CreDtTm: "2013-03-07T16:30:00"
          RptgPty:
            Id:
              Id: 123
              SchmeNm:
                Cd: IBAN
              Issr: BIC
          RptdPty:
            Id:
              Id: 123
              SchmeNm:
                Cd: IBAN
              Issr: BIC
          RptdDoc:
            Nb: 123
            RltdDt: "2013-03-07"
            RltdDtTp:
              Cd: 123
          Rsn:
            Cd: 123
            Prtry: 123
        SplmtryData:
          PlcAndNm: 123
          Envlp: 123
          RltdDt: "2013-03-07"
          RltdDtTp:
            Cd: 123
    GetParties_IdentificationVerificationReportV03:
      title: GetParties_IdentificationVerificationReportV03
      type: object
      additionalProperties: false
      properties:
        Assgnmt:
          allOf:
            - $ref: "#/components/schemas/IdentificationAssignment3"
            - description: |
                Assignment
                Identifies the identification assignment.
        Rpt:
          allOf:
            - $ref: "#/components/schemas/VerificationReport4"
            - description: >
                Report

                Information concerning the verification of the identification
                data for which verification was requested.
        SplmtryData:
          allOf:
            - $ref: "#/components/schemas/SupplementaryData1"
            - description: >
                SupplementaryData

                Additional information that cannot be captured in the structured
                elements and/or any other specific block.
      required:
        - Assgnmt
        - Rpt
      example:
        Assgnmt:
          MsgId: 123
          CreDtTm: "2020-01-01T00:00:00Z"
          Assgnr:
            OrgId:
              Othr:
                Id: 123
                SchmeNm:
                  Cd: BIC
                Issr: BIC
          Assgne:
            OrgId:
              Othr:
                Id: DFSPID
        Rpt:
          OrgnlId: 12345678
          Vrfctn: true
          UpdtdPtyAndAcctId:
            Pty:
              Nm: John Doe
              PstlAdr:
                AdrTp: ADDR
                Dept: Dept
                SubDept: SubDept
                StrtNm: StrtNm
                BldgNb: BldgNb
                BldgNm: BldgNm
                Flr: Flr
                PstBx: PstBx
                Room: Room
                PstCd: PstCd
                TwnNm: TwnNm
                TwnLctnNm: TwnLctnNm
                DstrctNm: DstrctNm
                CtrySubDvsn: CtrySubDvsn
                Ctry: Ctry
                AdrLine: AdrLine
              Id:
                OrgId:
                  Othr:
                    Id: 18761231234
                  SchmeNm:
                    Prtry: MSISDN
              CtryOfRes: BE
              CtctDtls:
                NmPrfx: Mr
                Nm: John Doe
                PhneNb: +123-123-321
                MobNb: +123-123-321
                FaxNb: +123-123-321
                EmailAdr: example@example.com
    GroupHeader113:
      title: GroupHeader113
      description: >
        Set of characteristics shared by all individual transactions included in
        the message.
      type: object
      additionalProperties: false
      properties:
        MsgId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Message Identification
        CreDtTm:
          allOf:
            - $ref: "#/components/schemas/ISODateTime"
            - description: |
                Creation Date and Time
        NbOfTxs:
          allOf:
            - $ref: "#/components/schemas/Max15NumericText"
            - description: |
                Number of Transactions
        TtlIntrBkSttlmAmt:
          allOf:
            - $ref: "#/components/schemas/ActiveCurrencyAndAmount"
            - description: |
                Total Interbank Settlement Amount
        SttlmInf:
          allOf:
            - $ref: "#/components/schemas/SettlementInstruction15"
            - description: |
                Settlement Information
        PmtTpInf:
          allOf:
            - $ref: "#/components/schemas/PaymentTypeInformation28"
            - description: |
                Payment Type Information
      required:
        - MsgId
        - CreDtTm
        - NbOfTxs
        - SttlmInf
      example:
        MsgId: 12345
        CreDtTm: "2020-01-01T00:00:00Z"
        NbOfTxs: 1
        TtlIntrBkSttlmAmt:
          Ccy: EUR
          Value: 100
        SttlmInf:
          SttlmMtd: INDA
          SttlmAcct:
            Id:
              IBAN: BE71096123456769
            Ccy: EUR
          SttlmAcctOwnr:
            Nm: Name
          SttlmAcctSvcr:
            Nm: Name
          SttlmAgt:
            FinInstnId:
              BICFI: BIC
        PmtTpInf:
          InstrPrty: NORM
          CtgyPurp: CASH
    GroupHeader120:
      title: GroupHeader120
      description: >
        Set of characteristics shared by all individual transactions included in
        the message.
      type: object
      additionalProperties: false
      properties:
        MsgId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                MessageIdentification

                Definition: Point to point reference, as assigned by the
                instructing party, and sent to the next party in the chain to
                unambiguously identify the message.

                Usage: The instructing party has to make sure that
                MessageIdentification is unique per instructed party for a
                pre-agreed period.
        CreDtTm:
          allOf:
            - $ref: "#/components/schemas/ISODateTime"
            - description: |
                CreationDateTime
                Date and time at which the message was created.
      required:
        - MsgId
        - CreDtTm
      example:
        MsgId: 12345
        CreDtTm: "2020-01-01T00:00:00Z"
    GroupHeader129:
      title: GroupHeader129
      description: >
        Group Header Set of characteristics shared by all individual
        transactions included in the message.
      type: object
      additionalProperties: false
      properties:
        MsgId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Message Identification
        CreDtTm:
          allOf:
            - $ref: "#/components/schemas/ISODateTime"
            - description: |
                Creation Date and Time
        PmtInstrXpryDtTm:
          allOf:
            - $ref: "#/components/schemas/ISODateTime"
            - description: |
                Payment Instruction Expiry Date and Time
        NbOfTxs:
          allOf:
            - $ref: "#/components/schemas/Max15NumericText"
            - description: |
                Number of Transactions
        SttlmInf:
          allOf:
            - $ref: "#/components/schemas/SettlementInstruction15"
            - description: |
                Settlement Information
      required:
        - MsgId
        - CreDtTm
        - NbOfTxs
        - SttlmInf
      example:
        MsgId: 12345
        CreDtTm: "2020-01-01T00:00:00Z"
        PmtInstrXpryDtTm: "2020-01-01T00:00:00Z"
        NbOfTxs: 1
        SttlmInf:
          SttlmMtd: INDA
          SttlmAcct:
            Id:
              IBAN: 123
          SttlmAcctOwnr:
            Nm: John Doe
          SttlmAcctSvcr:
            BICFI: 123
    IBAN2007Identifier:
      title: IBAN2007Identifier
      description: >
        The International Bank Account Number is a code used internationally by
        financial institutions to uniquely identify the account of a customer at
        a financial institution as described in the 2007 edition of the ISO
        13616 standard "Banking and related financial services -

        International Bank Account Number (IBAN)" and replaced by the more
        recent edition of the standard.
      type: string
      example: FR1420041010050500013M02606
      pattern: ^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$
    ISODate:
      title: ISODate
      description: >
        A particular point in the progression of time in a calendar year
        expressed in the YYYY-MM-DD format. This representation is defined in
        "XML Schema Part 2: Datatypes Second Edition - W3C Recommendation 28
        October 2004" which is aligned with ISO 8601.
      type: string
      format: date
      example: "2013-03-07"
    ISODateTime:
      title: ISODateTime
      description: >
        A particular point in the progression of time defined by a mandatory

        date and a mandatory time component, expressed in either UTC time

        format (YYYY-MM-DDThh:mm:ss.sssZ), local time with UTC offset format

        (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), or local time format

        (YYYY-MM-DDThh:mm:ss.sss). These representations are defined in

        "XML Schema Part 2: Datatypes Second Edition -

        W3C Recommendation 28 October 2004" which is aligned with ISO 8601.


        Note on the time format:

        1) beginning / end of calendar day

        00:00:00 = the beginning of a calendar day

        24:00:00 = the end of a calendar day


        2) fractions of second in time format

        Decimal fractions of seconds may be included. In this case, the

        involved parties shall agree on the maximum number of digits that are
        allowed.
      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)$
      example: "2013-03-07T14:44:30.000Z"
    ISOYear:
      title: ISOYear
      description: |
        Year represented by YYYY (ISO 8601).
      type: string
      pattern: ^\d{4}(Z|([+-]\d{2}:\d{2})){0,1}$
      example: 2019
    IdentificationAssignment3:
      title: IdentificationAssignment3
      type: object
      additionalProperties: false
      description: >
        IdentificationAssignment

        Information that unambiguously identifies a message, as assigned by the
        assignor to the assignee.
      properties:
        MsgId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                MessageIdentification

                Unique identification, as assigned by the assigner, to
                unambiguously identify the message.
        CreDtTm:
          allOf:
            - $ref: "#/components/schemas/ISODateTime"
            - description: >
                CreationDateTime

                Date and time at which the identification assignment was
                created.
        Assgnr:
          allOf:
            - $ref: "#/components/schemas/Party40Choice"
            - description: >
                Assignor

                Party that assigns the identification assignment to another
                party. This is also the sender of the message.
        Assgne:
          allOf:
            - $ref: "#/components/schemas/Party40Choice"
            - description: >
                Assignee

                Party that the identification assignment is assigned to. This is
                also the receiver of the message.
      required:
        - MsgId
        - CreDtTm
        - Assgnr
        - Assgne
      example:
        MsgId: 123
        CreDtTm: "2020-01-01T00:00:00Z"
        Assgnr:
          OrgId:
            Othr:
              Id: 123
              SchmeNm:
                Cd: BIC
              Issr: BIC
        Assgne:
          OrgId:
            Othr:
              Id: 123
              SchmeNm:
                Cd: BIC
              Issr: BIC
    IdentificationInformation4:
      title: IdentificationInformation4
      type: object
      additionalProperties: false
      description: |
        Information that locates and identifies a specific party or account.
      properties:
        Pty:
          allOf:
            - $ref: "#/components/schemas/PartyIdentification135"
            - description: >
                Party

                Account owner that owes an amount of money or to whom an amount
                of money is due.
        Acct:
          allOf:
            - $ref: "#/components/schemas/CashAccount40"
            - description: |
                Account
                Unambiguous identification of the account of a party.
        Agt:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification6
            - description: |
                Agent
                Financial institution servicing an account for a party.
      required:
        - Pty
      example:
        Pty:
          Id:
            OrgId:
              AnyBIC:
                BICFI: BICFI
          CtryOfRes: FI
        Acct:
          Id:
            IBAN: FI2112345600000785
        Agt:
          FinInstnId:
            BICFI: BICFI
    IdentificationVerificationIndicator:
      title: IdentificationVerificationIndicator
      type: boolean
      example: true
      description: >
        Definition: Identifies whether the party and/or account information
        received is correct.


        • Meaning When True: Indicates that the identification information
        received is correct.

        • Meaning When False: Indicates that the identification information
        received is incorrect
    Instruction4Code:
      title: Instruction4Code
      description: >
        Specifies further instructions concerning the processing of a payment

        instruction, provided by the sending clearing agent to the next
        agent(s).


        PHOA: PhoneNextAgent Please advise/contact next agent by phone.

        TELA: TelecomNextAgent Please advise/contact next agent by the most
        efficient means of telecommunication.
      type: string
      enum:
        - PHOA
        - TELA
      example: PHOA
    InstructionForCreditorAgent3:
      title: InstructionForCreditorAgent3
      description: >
        Further information related to the processing of the payment
        instruction, provided by the initiating party, and intended for the
        creditor agent.
      type: object
      additionalProperties: false
      properties:
        Cd:
          allOf:
            - $ref: "#/components/schemas/ExternalCreditorAgentInstruction1Code"
            - description: >
                Code

                Coded information related to the processing of the payment
                instruction, provided by the initiating party, and intended for
                the creditor's agent.
        InstrInf:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: >
                InstructionInformation

                Further information complementing the coded instruction or
                instruction to the creditor's agent that is bilaterally agreed
                or specific to a user community.
      example:
        Cd: PHOA
        InstrInf: Please advise/contact next agent by phone.
    InstructionForCreditorAgent3_FX_Quotes:
      title: InstructionForCreditorAgent3_Put_FX_Quotes_ID
      description: >
        Further information related to the processing of the payment
        instruction, provided by the initiating party, and intended for the
        creditor agent.
      type: object
      additionalProperties: false
      properties:
        Cd:
          allOf:
            - $ref: "#/components/schemas/ExternalCreditorAgentInstruction1Code"
            - description: >
                Code

                Coded information related to the processing of the payment
                instruction, provided by the initiating party, and intended for
                the creditor's agent.
        InstrInf:
          allOf:
            - $ref: "#/components/schemas/AmountTypeEnum"
            - description: >
                InstructionInformation

                Further information complementing the coded instruction or
                instruction to the creditor's agent that is bilaterally agreed
                or specific to a user community.
      example:
        Cd: PHOA
        InstrInf: Please advise/contact next agent by phone.
    InstructionForNextAgent1:
      title: InstructionForNextAgent1
      description: >
        Further information related to the processing of the payment
        instruction, provided by the initiating party, and intended for the next
        agent in the payment chain.
      type: object
      additionalProperties: false
      properties:
        Cd:
          allOf:
            - $ref: "#/components/schemas/Instruction4Code"
            - description: >
                Code

                Coded information related to the processing of the payment
                instruction, provided by the initiating party, and intended for
                the next agent in the payment chain.
        InstrInf:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: >
                InstructionInformation

                Further information complementing the coded instruction or
                instruction to the next agent that is bilaterally agreed or
                specific to a user community.
      example:
        Cd: PHOA
        InstrInf: Please advise/contact next agent by phone.
    LEIIdentifier:
      title: LEIIdentifier
      description: >
        Legal Entity Identifier is a code allocated to a party as described in
        ISO 17442 "Financial Services - Legal Entity Identifier (LEI)".
        ^([0-9A-Z]{18,18}[0-9]{2,2})$
      type: string
      pattern: ^[A-Z0-9]{18,18}[0-9]{2,2}$
      example: 529900T8BM49AURSDO55
    LocalInstrument2Choice:
      title: LocalInstrument2Choice
      type: object
      additionalProperties: false
      description: >
        Specifies the local instrument, as published in an external local
        instrument code list or as a proprietary code.
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: "#/components/schemas/ExternalLocalInstrument1Code"
                - description: >
                    Code

                    Specifies the local instrument, as published in an external
                    local instrument code list.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/Max35Text"
                - description: |
                    Proprietary
                    Specifies the local instrument, as a proprietary code.
          required:
            - Prtry
      example:
        Cd: CH03
    Max105Text:
      title: Max105Text
      description: |
        Specifies a character string with a maximum length of 105 characters.
      type: string
      minLength: 1
      maxLength: 105
      example: 12345
    Max10Text:
      title: Max10Text
      description: |
        Specifies a character string with a maximum length of 10 characters.
      type: string
      minLength: 1
      maxLength: 10
      example: 1234567890
    Max128Text:
      title: Max128Text
      description: |
        Specifies a character string with a maximum length of 128 characters.
      type: string
      minLength: 1
      maxLength: 128
      example: 12345
    Max140Text:
      title: Max140Text
      description: |
        Specifies a character string with a maximum length of 140 characters.
      type: string
      minLength: 1
      maxLength: 140
      example: 12345
    Max15NumericText:
      title: Max15NumericText
      description: |
        Specifies a numeric string with a maximum length of 15 digits.
      type: string
      pattern: ^[0-9]{1,15}$
      example: 123456789012345
    Max16Text:
      title: Max16Text
      description: |
        Specifies a character string with a maximum length of 16 characters.
      type: string
      minLength: 1
      maxLength: 16
      example: 1234567890123456
    Max2048Text:
      title: Max2048Text
      description: |
        Specifies a character string with a maximum length of 2048 characters.
      type: string
      minLength: 1
      maxLength: 2048
      example: 2048
    Max256Text:
      title: Max256Text
      description: |
        Specifies a character string with a maximum length of 256 characters.
      type: string
      minLength: 1
      maxLength: 256
      example: 256
    Max34Text:
      title: Max34Text
      description: |
        Specifies a character string with a maximum length of 34 characters.
      type: string
      minLength: 1
      maxLength: 34
      example: 1.2345678901234568e+33
    Max350Text:
      title: Max350Text
      description: |
        Specifies a character string with a maximum length of 350 characters.
      type: string
      minLength: 1
      maxLength: 350
      example: 350
    Max35Text:
      title: Max35Text
      description: |
        Specifies a character string with a maximum length of 35 characters.
      type: string
      minLength: 1
      maxLength: 35
      example: 1.234567890123457e+34
    Max4Text:
      title: Max4Text
      description: |
        Specifies a character string with a maximum length of 4 characters.
      type: string
      minLength: 1
      maxLength: 4
      example: 1234
    Max70Text:
      title: Max70Text
      description: |
        Specifies a character string with a maximum length of 70 characters.
      type: string
      minLength: 1
      maxLength: 70
      example: 1.2345678901234567e+99
    NamePrefix2Code:
      description: |
        Specifies the terms used to formally address a person.

        DOCT: Doctor or Dr
        MADM: Madam
        MISS: Miss
        MIST: Mistress
        MIKS: Mx
      enum:
        - DOCT
        - MADM
        - MISS
        - MIST
        - MIKS
      type: string
      example: DOCT
    Number:
      title: Number
      type: string
      example: 256
      pattern: ^(?!0\d)\d{1,18}$
    OrganisationIdentification29:
      title: OrganisationIdentification29
      description: |
        Unique and unambiguous way to identify an organisation.
      type: object
      additionalProperties: false
      properties:
        AnyBIC:
          allOf:
            - $ref: "#/components/schemas/AnyBICDec2014Identifier"
            - description: |
                AnyBIC
                Business identification code of the organisation.
        LEI:
          allOf:
            - $ref: "#/components/schemas/LEIIdentifier"
            - description: >
                LEI

                Legal entity identification as an alternate identification for a
                party.
        Othr:
          allOf:
            - $ref: "#/components/schemas/GenericOrganisationIdentification1"
            - description: >
                Other

                Unique identification of an organisation, as assigned by an
                institution, using an identification scheme.
      example:
        AnyBIC: BICFI
        LEI: 529900T8BM49AURSDO55
        Othr:
          Id: 123
          SchmeNm:
            Cd: BIC
          Issr: BIC
    OrganisationIdentification39:
      title: OrganisationIdentification39
      description: |
        Unique and unambiguous way to identify an organisation.
      type: object
      additionalProperties: false
      properties:
        AnyBIC:
          allOf:
            - $ref: "#/components/schemas/AnyBICDec2014Identifier"
            - description: |
                AnyBIC
                Business identification code of the organisation.
        LEI:
          allOf:
            - $ref: "#/components/schemas/LEIIdentifier"
            - description: >
                LEI

                Legal entity identification as an alternate identification for a
                party.
        Othr:
          allOf:
            - $ref: "#/components/schemas/GenericOrganisationIdentification3"
            - description: >
                Other

                Unique identification of an organisation, as assigned by an
                institution, using an identification scheme.
      example:
        AnyBIC: BICFI
        LEI: 529900T8BM49AURSDO55
        Othr:
          Id: 123
          SchmeNm:
            Cd: BIC
          Issr: BIC
    OrganisationIdentificationSchemeName1Choice:
      title: OrganisationIdentificationSchemeName1Choice
      description: |
        Choice of format for the organisation identification.
      type: object
      additionalProperties: false
      properties:
        Cd:
          allOf:
            - $ref: "#/components/schemas/ExternalOrganisationIdentification1Code"
            - description: >
                Code

                Name of the identification scheme, in a coded form as published
                in an external list.
        Prtry:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Proprietary
                Name of the identification scheme, in a free text form.
      anyOf:
        - properties:
            Cd: {}
        - properties:
            Prtry: {}
      example:
        Cd: BIC
    OtherContact1:
      title: OtherContact1
      description: >
        Communication device number or electronic address used for
        communication.
      type: object
      additionalProperties: false
      properties:
        ChanlTp:
          allOf:
            - $ref: "#/components/schemas/Max4Text"
            - description: >
                ChannelType

                Method used to contact the financial institution's contact for
                the specific tax region.
        Id:
          allOf:
            - $ref: "#/components/schemas/Max128Text"
            - description: |
                Identifier
                Communication value such as phone number or email address.
      required:
        - ChanlTp
      example:
        ChanlTp: PHON
        Id: 1234567890
    PacsError_FIToFIPaymentStatusReportV15:
      title: PacsError_FIToFIPaymentStatusReportV15
      type: object
      additionalProperties: false
      description: >
        This message is sent by an account servicing institution to an account
        owner. It is used to inform the account owner about the status of a
        payment initiation.
      properties:
        GrpHdr:
          allOf:
            - $ref: "#/components/schemas/GroupHeader120"
            - description: >
                Set of characteristics shared by all individual transactions
                included in the message.
        TxInfAndSts:
          allOf:
            - $ref: "#/components/schemas/PaymentTransaction163"
            - description: >
                Information concerning the original transactions, to which the
                status report message refers.
        SplmtryData:
          allOf:
            - $ref: "#/components/schemas/SupplementaryData1"
            - description: >
                Additional information that cannot be captured in the structured
                elements and/or any other specific block.
      required:
        - GrpHdr
      example:
        GrpHdr:
          MsgId: 12345
          CreDtTm: "2020-01-01T00:00:00Z"
          NbOfTxs: 1
          SttlmInf:
            SttlmMtd: INDA
            SttlmDt: "2020-01-01"
          InstgAgt:
            FinInstnId:
              BICFI: BICFI
          InstdAgt:
            FinInstnId:
              BICFI: BICFI
        TxInfAndSts:
          OrgnlInstrId: 12345
          OrgnlEndToEndId: 12345
          TxSts: RJCT
          StsRsnInf:
            Rsn: RSN
            AddtlInf: ADDITIONAL
        SplmtryData:
          PlcAndNm: PLACE
          Envlp: ENVELOPE
    PacsStatus_FIToFIPaymentStatusReportV15:
      title: PacsStatus_FIToFIPaymentStatusReportV15
      description: >-
        The PacsStatus message is sent by a financial institution to another
        financial institution as a response to the FIToFIPaymentStatusReport
        message. The message provides information on the status of a payment
        instruction and its underlying individual transactions.
      type: object
      additionalProperties: false
      properties:
        GrpHdr:
          allOf:
            - $ref: "#/components/schemas/GroupHeader120"
            - description: >
                Set of characteristics shared by all individual transactions
                included in the message.
        TxInfAndSts:
          allOf:
            - $ref: "#/components/schemas/PaymentTransaction163"
            - description: >
                Information concerning the original transactions, to which the
                status report message refers.
        SplmtryData:
          allOf:
            - $ref: "#/components/schemas/SupplementaryData1"
            - description: >
                Additional information that cannot be captured in the structured
                elements and/or any other specific block.
      required:
        - GrpHdr
      example:
        GrpHdr:
          MsgId: 12345
          CreDtTm: "2020-01-01T00:00:00Z"
          TxInfAndSts:
            StsId: 12345
            OrgnlInstrId: 12345
            OrgnlEndToEndId: 12345
            OrgnlTxId: 12345
            OrgnlUETR: 123e4567-e89b-12d3-a456-426614174000
            TxSts: RJCT
            StsRsnInf:
              Rsn: RSN
              AddtlInf: ADDITIONAL
            AccptncDtTm: "2020-01-01T00:00:00Z"
            AcctSvcrRef: ACCTSVCRREF
            ClrSysRef: CLRSYSREF
            ExctnConf: 1234567890ABCDEF
            SplmtryData:
              PlcAndNm: PLACE
              Envlp: ENVELOPE
    Party38Choice:
      title: Party38Choice
      description: |
        Nature or use of the account.
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            OrgId:
              allOf:
                - $ref: "#/components/schemas/OrganisationIdentification29"
                - description: |
                    Organisation
                    Unique and unambiguous way to identify an organisation.
          required:
            - OrgId
        - properties:
            PrvtId:
              allOf:
                - $ref: "#/components/schemas/PersonIdentification13"
                - description: >
                    PrivateIdentification

                    Unique and unambiguous identification of a person, for
                    example a passport.
          required:
            - PrvtId
      example:
        OrgId:
          AnyBIC: BIC
        PrvtId:
          DtAndPlcOfBirth:
            Dt: "2018-01-01"
            CityOfBirth: City
    Party40Choice:
      title: Party40Choice
      description: |
        Identification of a person, an organisation or a financial institution.
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            Pty:
              allOf:
                - $ref: "#/components/schemas/PartyIdentification135"
                - description: |
                    Party
                    Identification of a person or an organisation.
          required:
            - Pty
        - properties:
            Agt:
              allOf:
                - $ref: >-
                    #/components/schemas/BranchAndFinancialInstitutionIdentification6
                - description: |
                    Agent
                    Identification of a financial institution.
          required:
            - Agt
      example:
        Pty:
          Nm: Name
          PstlAdr:
            Ctry: US
            AdrLine:
              - Line1
              - Line2
          Id:
            OrgId:
              AnyBIC: BIC
        Agt:
          FinInstnId:
            BICFI: BUKBGB22
          BrnchId:
            Id: 12345
            Nm: Oxford Street Branch
            PstlAdr:
              Ctry: GB
              AdrLine:
                - 1 Oxford Street
                - London
                - UK
    Party52Choice:
      title: Party52Choice
      description: |
        NOTE: Unsure on the description.
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            OrgId:
              allOf:
                - $ref: "#/components/schemas/OrganisationIdentification39"
                - description: |
                    Organisation
                    Unique and unambiguous way to identify an organisation.
          required:
            - OrgId
        - properties:
            PrvtId:
              allOf:
                - $ref: "#/components/schemas/PersonIdentification18"
                - description: >
                    Person

                    Unique and unambiguous identification of a person, for
                    example a passport.
          required:
            - PrvtId
      example:
        OrgId:
          AnyBIC: BIC
        PrvtId:
          DtAndPlcOfBirth:
            Dt: "2018-01-01"
            CityOfBirth: City
    PartyIdentification135:
      title: PartyIdentification135
      description: |
        Specifies the identification of a person or an organisation.
      type: object
      additionalProperties: false
      properties:
        Nm:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: >
                Name

                Name by which a party is known and which is usually used to
                identify that party.
        PstlAdr:
          allOf:
            - $ref: "#/components/schemas/PostalAddress24"
            - description: >
                PostalAddress

                Information that locates and identifies a specific address, as
                defined by postal services.
        Id:
          allOf:
            - $ref: "#/components/schemas/Party38Choice"
            - description: |
                Identification
                Unique and unambiguous way to identify an organisation.
        CtryOfRes:
          allOf:
            - $ref: "#/components/schemas/CountryCode"
            - description: >
                CountryOfResidence

                Country in which a person resides (the place of a person's
                home). In the case of a company, it is the country from which
                the affairs of that company are directed.
        CtctDtls:
          allOf:
            - $ref: "#/components/schemas/Contact4"
            - description: |
                ContactDetails
                Set of elements used to indicate how to contact the party.
      required:
        - Id
      example:
        Nm: John Doe
        PstlAdr:
          AdrTp: ADDR
          Dept: Dept
          SubDept: SubDept
          StrtNm: StrtNm
          BldgNb: BldgNb
          BldgNm: BldgNm
          Flr: Flr
          PstBx: PstBx
          Room: Room
          PstCd: PstCd
          TwnNm: TwnNm
          TwnLctnNm: TwnLctnNm
          DstrctNm: DstrctNm
          CtrySubDvsn: CtrySubDvsn
          Ctry: Ctry
          AdrLine: AdrLine
        Id:
          OrgId:
            Othr:
              Id: 123
              SchmeNm:
                Prtry: DfspId
        CtryOfRes: BE
        CtctDtls:
          NmPrfx: Mr
          Nm: John Doe
          PhneNb: +123-123-321
          MobNb: +123-123-321
          FaxNb: +123-123-321
          EmailAdr: example@example.com
    PartyIdentification272:
      title: PartyIdentification272
      description: |
        Specifies the identification of a person or an organisation.
      type: object
      additionalProperties: false
      properties:
        Nm:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: >
                Name

                Name by which a party is known and which is usually used to
                identify that party.
        PstlAdr:
          allOf:
            - $ref: "#/components/schemas/PostalAddress27"
            - description: >
                Postal Address

                Information that locates and identifies a specific address, as
                defined by postal services.
        Id:
          allOf:
            - $ref: "#/components/schemas/Party52Choice"
            - description: |
                Identification
                Unique and unambiguous identification of a party.
        CtryOfRes:
          allOf:
            - $ref: "#/components/schemas/CountryCode"
            - description: >
                Country of Residence

                Country in which a person resides (the place of a person's
                home). In the case of a company, it is the country from which
                the affairs of that company are directed.
        CtctDtls:
          allOf:
            - $ref: "#/components/schemas/Contact13"
            - description: |
                Contact Details
                Set of elements used to indicate how to contact the party.
      required:
        - Id
      example:
        Nm: John Doe
        PstlAdr:
          AdrTp: ADDR
          Dept: Dept
          SubDept: SubDept
          StrtNm: StrtNm
          BldgNb: BldgNb
          PstCd: PstCd
          TwnNm: TwnNm
          CtrySubDvsn: CtrySubDvsn
          Ctry: Ctry
        Id:
          OrgId:
            AnyBIC: BIC
          PrvtId:
            DtAndPlcOfBirth:
              Dt: "2018-01-01"
              CityOfBirth: City
        CtryOfRes: BE
        CtctDtls:
          NmPrfx: Mr
          Nm: John Doe
          PhneNb: +123-123-321
          MobNb: +123-123-321
          FaxNb: +123-123-321
          EmailAdr: example@example.com
    PaymentIdentification13:
      title: PaymentIdentification13
      description: |
        Provides further means of referencing a payment transaction.
      type: object
      additionalProperties: false
      properties:
        InstrId:
          allOf:
            - $ref: "#/components/schemas/ULIDIdentifier"
            - description: >
                InstructionIdentification (FSPIOP equivalent:
                transactionRequestId)


                Definition: Unique identification, as assigned by an instructing
                party for an instructed party, to

                unambiguously identify the instruction.


                Usage: The instruction identification is a point to point
                reference that can be used between the

                instructing party and the instructed party to refer to the
                individual instruction. It can be included in

                several messages related to the instruction.


                This field has been changed from the original ISO20022
                `Max35Text`` schema to a ULIDIdentifier schema.
        EndToEndId:
          allOf:
            - $ref: "#/components/schemas/ULIDIdentifier"
            - description: >
                EndToEndIdentification (FSPIOP equivalent: transactionId)


                Definition: Unique identification, as assigned by the initiating
                party, to unambiguously identify the

                transaction. This identification is passed on, unchanged,
                throughout the entire end-to-end chain.


                Usage: The end-to-end identification can be used for
                reconciliation or to link tasks relating to the

                transaction. It can be included in several messages related to
                the transaction.


                Usage: In case there are technical limitations to pass on
                multiple references, the end-to-end

                identification must be passed on throughout the entire
                end-to-end chain.


                This field has been changed from the original ISO20022
                `Max35Text`` schema to a ULIDIdentifier schema.
        TxId:
          allOf:
            - $ref: "#/components/schemas/ULIDIdentifier"
            - description: >
                TransactionIdentification (FSPIOP equivalent: quoteId in quote
                request, transferId in transfer request)


                Definition: Unique identification, as assigned by the first
                instructing agent, to unambiguously identify the

                transaction that is passed on, unchanged, throughout the entire
                interbank chain.


                Usage: The transaction identification can be used for
                reconciliation, tracking or to link tasks relating to

                the transaction on the interbank level.


                Usage: The instructing agent has to make sure that the
                transaction identification is unique for a preagreed period.


                This field has been changed from the original ISO20022
                `Max35Text`` schema to a ULIDIdentifier schema.
        UETR:
          allOf:
            - $ref: "#/components/schemas/UUIDv4Identifier"
            - description: >
                UETR

                Universally unique identifier to provide an end-to-end reference
                of a payment transaction.
        ClrSysRef:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                ClearingSystemReference

                Unique reference, as assigned by a clearing system, to
                unambiguously identify the instruction.
      required:
        - TxId
      example:
        InstrId: INSTRUCTIONID
        EndToEndId: ENDTOENDID
        TxId: TRANSACTIONID
        UETR: 123e4567-e89b-12d3-a456-426614174000
        ClrSysRef: CLRSYSREF
    PaymentTransaction163:
      title: PaymentTransaction163
      description: >
        Provides further details on the original transactions, to which the
        status report message refers.
      type: object
      additionalProperties: false
      properties:
        StsId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                Unique identification, as assigned by the original sending
                party, to unambiguously identify the status report.
        OrgnlInstrId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                Unique identification, as assigned by the original sending
                party, to

                unambiguously identify the original instruction.


                (FSPIOP equivalent: transactionRequestId)
        OrgnlEndToEndId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                Unique identification, as assigned by the original sending
                party, to

                unambiguously identify the original end-to-end transaction.


                (FSPIOP equivalent: transactionId)
        OrgnlTxId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                Unique identification, as assigned by the original sending
                party, to

                unambiguously identify the original transaction.


                (FSPIOP equivalent: quoteId)
        OrgnlUETR:
          allOf:
            - $ref: "#/components/schemas/UUIDv4Identifier"
            - description: >
                Unique end-to-end transaction reference, as assigned by the
                original sending party, to unambiguously identify the original
                transaction.
        TxSts:
          allOf:
            - $ref: "#/components/schemas/ExternalPaymentTransactionStatus1Code"
            - description: |
                Specifies the status of the transaction.
        StsRsnInf:
          allOf:
            - $ref: "#/components/schemas/StatusReasonInformation14"
            - description: |
                Information concerning the reason for the status.
        AccptncDtTm:
          allOf:
            - $ref: "#/components/schemas/ISODateTime"
            - description: |
                Date and time at which the status was accepted.
        AcctSvcrRef:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                Unique reference, as assigned by the account servicing
                institution, to unambiguously identify the status report.
        ClrSysRef:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                Reference that is assigned by the account servicing institution
                and sent to the account owner to unambiguously identify the
                transaction.
        ExctnConf:
          allOf:
            - $ref: "#/components/schemas/Exact32HexBinaryText"
            - description: >
                Unique reference, as assigned by the account servicing
                institution, to unambiguously identify the confirmation.
        SplmtryData:
          allOf:
            - $ref: "#/components/schemas/SupplementaryData1"
            - description: >
                Additional information that cannot be captured in the structured
                elements and/or any other specific block.
        PrcgDt:
          allOf:
            - $ref: "#/components/schemas/DateAndDateTime2Choice"
            - description: >
                Date/time at which the instruction was processed by the
                specified party.
      example:
        StsId: 12345
        OrgnlInstrId: 12345
        OrgnlEndToEndId: 12345
        OrgnlTxId: 12345
        OrgnlUETR: 123e4567-e89b-12d3-a456-426614174000
        TxSts: RJCT
        StsRsnInf:
          Rsn: RSN
          AddtlInf: ADDITIONAL
        AccptncDtTm: "2020-01-01T00:00:00Z"
        AcctSvcrRef: ACCTSVCRREF
        ClrSysRef: CLRSYSREF
        ExctnConf: 1234567890ABCDEF
        SplmtryData:
          PlcAndNm: PLACE
          Envlp: ENVELOPE
    PaymentTypeInformation28:
      title: PaymentTypeInformation28
      description: |
        Provides further details of the type of payment.
      type: object
      additionalProperties: false
      properties:
        InstrPrty:
          $ref: "#/components/schemas/Priority2Code"
        ClrChanl:
          $ref: "#/components/schemas/ClearingChannel2Code"
        SvcLvl:
          allOf:
            - $ref: "#/components/schemas/ServiceLevel8Choice"
            - description: >
                ServiceLevel

                Agreement under which or rules under which the transaction
                should be processed.
        LclInstrm:
          allOf:
            - $ref: "#/components/schemas/LocalInstrument2Choice"
            - description: >
                LocalInstrument

                Definition: User community specific instrument.

                Usage: This element is used to specify a local instrument, local
                clearing option and/or further qualify the service or service
                level.
        CtgyPurp:
          allOf:
            - $ref: "#/components/schemas/CategoryPurpose1Choice"
            - description: >
                CategoryPurpose

                Specifies the high level purpose of the instruction based on a
                set of pre-defined categories.
      example:
        InstrPrty: NORM
        ClrChanl: RTGS
        SvcLvl:
          Cd: SEPA
        LclInstrm:
          Cd: CORE
        CtgyPurp:
          Cd: CASH
    PercentageRate:
      title: PercentageRate
      type: string
      example: 1234
      pattern: >-
        ^(?!0\d)(\d{1,11}|\d{1,10}.\d{1}|\d{1,9}.\d{1,2}|\d{1,8}.\d{1,3}|\d{1,7}.\d{1,4}|\d{1,6}.\d{1,5}|\d{1,5}.\d{1,6}|\d{1,4}.\d{1,7}|\d{1,3}.\d{1,8}|\d{1,2}.\d{1,9}|\d{1}.\d{1,10})$
    PersonIdentification13:
      title: PersonIdentification13
      description: |
        Unique and unambiguous way to identify a person.
      type: object
      additionalProperties: false
      properties:
        DtAndPlcOfBirth:
          allOf:
            - $ref: "#/components/schemas/DateAndPlaceOfBirth1"
            - description: |
                DateAndPlaceOfBirth
                Date and place of birth of a person.
        Othr:
          allOf:
            - $ref: "#/components/schemas/GenericPersonIdentification1"
            - description: >
                Other

                Unique identification of a person, as assigned by an
                institution, using an identification scheme.
      example:
        DtAndPlcOfBirth:
          Dt: "2018-01-01"
          CityOfBirth: City
        Othr:
          Id: 123
          SchmeNm:
            Cd: CUST
            Prtry: 1
    PersonIdentification18:
      title: PersonIdentification18
      description: |
        Unique and unambiguous way to identify a person.
      type: object
      additionalProperties: false
      properties:
        DtAndPlcOfBirth:
          allOf:
            - $ref: "#/components/schemas/DateAndPlaceOfBirth1"
            - description: |
                DateAndPlaceOfBirth
                Date and place of birth of a person.
        Othr:
          allOf:
            - $ref: "#/components/schemas/GenericPersonIdentification2"
            - description: >
                Other

                Unique identification of a person, as assigned by an
                institution, using an identification scheme.
      example:
        DtAndPlcOfBirth:
          Dt: "2018-01-01"
          CityOfBirth: City
        Othr:
          Id: 123
          SchmeNm:
            Cd: CUST
            Prtry: 1
    PersonIdentificationSchemeName1Choice:
      title: PersonIdentificationSchemeName1Choice
      description: |
        Sets of elements to identify a name of the identification scheme.
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: "#/components/schemas/ExternalPersonIdentification1Code"
                - description: >
                    Code

                    Name of the identification scheme, in a coded form as
                    published in an external list.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/Max35Text"
                - description: |
                    Proprietary
                    Name of the identification scheme, in a free text form.
          required:
            - Prtry
      example:
        Cd: CCPT
    PhoneNumber:
      title: PhoneNumber
      type: string
      description: |
        Double check this regex.
      pattern: ^\+[0-9]{1,3}-[0-9()+\-]{1,30}$
    PostalAddress24:
      title: PostalAddress24
      type: object
      additionalProperties: false
      description: >
        Information that locates and identifies a specific address, as defined
        by postal services.
      properties:
        AdrTp:
          $ref: "#/components/schemas/AddressType3Choice"
        Dept:
          $ref: "#/components/schemas/Max70Text"
        SubDept:
          $ref: "#/components/schemas/Max70Text"
        StrtNm:
          $ref: "#/components/schemas/Max70Text"
        BldgNb:
          $ref: "#/components/schemas/Max16Text"
        BldgNm:
          $ref: "#/components/schemas/Max35Text"
        Flr:
          $ref: "#/components/schemas/Max70Text"
        PstBx:
          $ref: "#/components/schemas/Max16Text"
        Room:
          $ref: "#/components/schemas/Max70Text"
        PstCd:
          $ref: "#/components/schemas/Max16Text"
        TwnNm:
          $ref: "#/components/schemas/Max35Text"
        TwnLctnNm:
          $ref: "#/components/schemas/Max35Text"
        DstrctNm:
          $ref: "#/components/schemas/Max35Text"
        CtrySubDvsn:
          $ref: "#/components/schemas/Max35Text"
        Ctry:
          $ref: "#/components/schemas/CountryCode"
        AdrLine:
          $ref: "#/components/schemas/Max70Text"
      example:
        AdrTp: ADDR
        Dept: Dept
        SubDept: SubDept
        StrtNm: StrtNm
        BldgNb: BldgNb
        BldgNm: BldgNm
        Flr: Flr
        PstBx: PstBx
        Room: Room
        PstCd: PstCd
        TwnNm: TwnNm
        TwnLctnNm: TwnLctnNm
        DstrctNm: DstrctNm
        CtrySubDvsn: CtrySubDvsn
        Ctry: Ctry
        AdrLine: AdrLine
    PostalAddress27:
      title: PostalAddress27
      type: object
      additionalProperties: false
      description: >
        Information that locates and identifies a specific address, as defined
        by postal services.
      properties:
        AdrTp:
          $ref: "#/components/schemas/AddressType3Choice"
        CareOf:
          $ref: "#/components/schemas/Max140Text"
        Dept:
          $ref: "#/components/schemas/Max70Text"
        SubDept:
          $ref: "#/components/schemas/Max70Text"
        StrtNm:
          $ref: "#/components/schemas/Max140Text"
        BldgNb:
          $ref: "#/components/schemas/Max16Text"
        BldgNm:
          $ref: "#/components/schemas/Max140Text"
        Flr:
          $ref: "#/components/schemas/Max70Text"
        UnitNb:
          $ref: "#/components/schemas/Max16Text"
        PstBx:
          $ref: "#/components/schemas/Max16Text"
        Room:
          $ref: "#/components/schemas/Max70Text"
        PstCd:
          $ref: "#/components/schemas/Max16Text"
        TwnNm:
          $ref: "#/components/schemas/Max140Text"
        TwnLctnNm:
          $ref: "#/components/schemas/Max140Text"
        DstrctNm:
          $ref: "#/components/schemas/Max140Text"
        CtrySubDvsn:
          $ref: "#/components/schemas/Max35Text"
        Ctry:
          $ref: "#/components/schemas/CountryCode"
        AdrLine:
          $ref: "#/components/schemas/Max70Text"
      example:
        AdrTp: ADDR
        CareOf: CareOf
        Dept: Dept
        SubDept: SubDept
        StrtNm: StrtNm
        BldgNb: BldgNb
        BldgNm: BldgNm
        Flr: Flr
        UnitNb: UnitNb
        PstBx: PstBx
        Room: Room
        PstCd: PstCd
        TwnNm: TwnNm
        TwnLctnNm: TwnLctnNm
        DstrctNm: DstrctNm
        CtrySubDvsn: CtrySubDvsn
        Ctry: Ctry
        AdrLine: AdrLine
    PreferredContactMethod1Code:
      title: PreferredContactMethod1Code
      description: >
        Preferred method used to reach the individual contact within an
        organisation.


        LETT: Letter

        MAIL: Email

        PHON: Phone

        FAXX: Fax

        CELL: Mobile phone
      type: string
      enum:
        - LETT
        - MAIL
        - PHON
        - FAXX
        - CELL
      example: CELL
    PreferredContactMethod2Code:
      title: PreferredContactMethod2Code
      description: >
        Preferred method used to reach the individual contact within an
        organisation.

        LETT: Letter

        MAIL: Email

        PHON: Phone

        FAXX: Fax

        CELL: Mobile phone
      type: string
      enum:
        - LETT
        - MAIL
        - PHON
        - FAXX
        - CELL
      example: MAIL
    Priority2Code:
      title: Priority2Code
      description: >
        Indicator of the urgency or order of importance that the instructing
        party

        would like the instructed party to apply to the processing of the
        instruction.


        HIGH:  High priority

        NORM:  Normal priority
      type: string
      enum:
        - HIGH
        - NORM
      example: HIGH
    ProxyAccountIdentification1:
      title: ProxyAccountIdentification1
      description: |
        Information related to a proxy identification of the account.
      type: object
      additionalProperties: false
      properties:
        Tp:
          allOf:
            - $ref: "#/components/schemas/ProxyAccountType1Choice"
            - description: |
                Type
                Type of the proxy identification.
        Id:
          allOf:
            - $ref: "#/components/schemas/Max2048Text"
            - description: >
                Identification

                Identification used to indicate the account identification under
                another specified name.
      required:
        - Id
      example:
        Tp:
          Cd: IBAN
        Id: 123
    ProxyAccountType1Choice:
      title: ProxyAccountType1Choice
      description: |
        Specifies the type of the proxy account.
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: "#/components/schemas/ExternalProxyAccountType1Code"
                - description: >
                    Code

                    Proxy account type, in a coded form as published in an
                    external list.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/Max35Text"
                - description: |
                    Proprietary
                    Proxy account type, in a proprietary form.
          required:
            - Prtry
      example:
        Cd: EMAIL
    Purpose2Choice:
      title: Purpose2Choice
      description: >
        Specifies the underlying reason for the payment transaction.


        Usage: Purpose is used by the end-customers, that is initiating party,

        (ultimate) debtor, (ultimate) creditor to provide information concerning
        the nature of the payment. Purpose

        is a content element, which is not used for processing by any of the
        agents involved in the payment

        chain.
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: "#/components/schemas/ExternalPurpose1Code"
                - description: >
                    Code


                    Underlying reason for the payment transaction, as published
                    in an external purpose code list.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/Max35Text"
                - description: |
                    Proprietary

                    Purpose, in a proprietary form.
          required:
            - Prtry
      example:
        Cd: CH03
    RegulatoryAuthority2:
      title: RegulatoryAuthority2
      description: >
        Information about an entity requiring the regulatory reporting
        information.
      type: object
      additionalProperties: false
      properties:
        Nm:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: >
                Name


                Name of the entity requiring the regulatory reporting
                information.
        Ctry:
          allOf:
            - $ref: "#/components/schemas/CountryCode"
            - description: >
                Country


                Country of the entity that requires the regulatory reporting
                information.
      example:
        Nm: Swiss National Bank
        Ctry: CH
    RegulatoryReporting3:
      title: RegulatoryReporting3
      description: |
        Information needed due to regulatory and/or statutory requirements.
      type: object
      additionalProperties: false
      properties:
        DbtCdtRptgInd:
          allOf:
            - $ref: "#/components/schemas/RegulatoryReportingType1Code"
            - description: >
                DebitCreditReportingIndicator

                Identifies whether the regulatory reporting information applies
                to the debit side, to the credit side or to both debit and
                credit sides of the transaction.
        Authrty:
          allOf:
            - $ref: "#/components/schemas/RegulatoryAuthority2"
            - description: |
                Authority

                Entity requiring the regulatory reporting information.
        Dtls:
          description: >
            Details

            Identifies whether the regulatory reporting information applies to
            the debit side, to the credit side or to both debit and credit sides
            of the transaction.
          anyOf:
            - $ref: "#/components/schemas/StructuredRegulatoryReporting3"
            - items:
                $ref: "#/components/schemas/StructuredRegulatoryReporting3"
              type: array
      example:
        DbtCdtRptgInd: CRED
        Authrty:
          Nm: Swiss National Bank
          Ctry: CH
        Dtls:
          Cd: A1
          Inf: Mandatory regulatory information
    RegulatoryReportingType1Code:
      title: RegulatoryReportingType1Code
      description: >
        Identifies whether the regulatory reporting information applies to the
        debit

        side, to the credit side or to both debit and credit sides of the
        transaction.


        CRED: Regulatory reporting applies to the credit side of the
        transaction.

        DEBT: Regulatory reporting applies to the debit side of the transaction.

        BOTH: Regulatory reporting applies to both debit and credit sides of the
        transaction.
      type: string
      enum:
        - CRED
        - DEBT
        - BOTH
      example: BOTH
    ServiceLevel8Choice:
      title: ServiceLevel8Choice
      description: |
        Details about a service level.
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: "#/components/schemas/ExternalServiceLevel1Code"
                - description: >
                    Code

                    Specifies a pre-agreed service or level of service between
                    the parties, as published in an external service level code
                    list.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/Max35Text"
                - description: >
                    Proprietary

                    Specifies a pre-agreed service or level of service between
                    the parties, as a proprietary code.
          required:
            - Prtry
      example:
        Cd: SEPA
    SettlementInstruction15:
      title: SettlementInstruction15
      description: >
        Specifies the details on how the settlement of the original
        transaction(s) between the

        instructing agent and the instructed agent was completed.
      type: object
      additionalProperties: false
      properties:
        SttlmMtd:
          $ref: "#/components/schemas/SettlementMethod1Code"
        PmtTpInf:
          $ref: "#/components/schemas/PaymentTypeInformation28"
      required:
        - SttlmMtd
      example:
        SttlmMtd: INDA
        PmtTpInf:
          InstrPrty: NORM
          SvcLvl:
            Cd: SEPA
          LclInstrm:
            Cd: CH03
          CtgyPurp:
            Cd: SUPP
          Cdtr:
            Nm: Name
            PstlAdr:
              AdrTp: ADDR
              AdrLine: Address
              Ctry: CH
            Id:
              OrgId:
                AnyBIC: BIC
                Othr:
                  Id: 123
                  SchmeNm:
                    Cd: IBAN
                    Issr: BIC
            CtryOfRes: CH
            CtctDtls:
              Nm: Name
              PhneNb: 123
              EmailAdr: null
    SettlementMethod1Code:
      title: SettlementMethod1Code
      description: |
        Specifies the method used to settle the credit transfer instruction.

        INDA: Indirect Account
        INGA: Indirect Agent
        COVE: Cover
        CLRG: Clearing
      type: string
      enum:
        - INDA
        - INGA
        - COVE
        - CLRG
      example: CLRG
    StatusReason6Choice:
      title: StatusReason6Choice
      description: |
        Specifies the reason for the status.
      type: object
      additionalProperties: false
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: "#/components/schemas/ExternalStatusReason1Code"
                - description: >
                    Code

                    Reason for the status, as published in an external reason
                    code list.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/Max35Text"
                - description: |
                    Proprietary
                    Reason for the status, in a proprietary form.
          required:
            - Prtry
      example:
        Cd: AGNT
    StatusReasonInformation14:
      title: StatusReasonInformation14
      description: |
        Unsure on description.
      type: object
      additionalProperties: false
      properties:
        Orgtr:
          allOf:
            - $ref: "#/components/schemas/PartyIdentification272"
            - description: |
                Originator
                Party that issues the status.
        Rsn:
          allOf:
            - $ref: "#/components/schemas/StatusReason6Choice"
            - description: |
                Reason
                Specifies the reason for the status report.
        AddtlInf:
          allOf:
            - $ref: "#/components/schemas/Max105Text"
            - description: |
                AdditionalInformation
                Additional information about the status report.
      example:
        Orgtr:
          Nm: Name
          PstlAdr:
            AdrTp: ADDR
            Dept: Department
            SubDept: SubDepartment
            StrtNm: StreetName
            BldgNb: BuildingNumber
            PstCd: PostCode
            TwnNm: TownName
            CtrySubDvsn: CountrySubDivision
            Ctry: Country
        Rsn:
          Cd: AGNT
        AddtlInf: AdditionalInformation
    StructuredRegulatoryReporting3:
      title: StructuredRegulatoryReporting3
      description: |
        StructuredRegulatoryReporting3

        Information needed due to regulatory and statutory requirements.
      type: object
      additionalProperties: false
      properties:
        Tp:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                Type


                Specifies the type of the information supplied in the regulatory
                reporting details.
        Dt:
          allOf:
            - $ref: "#/components/schemas/ISODate"
            - description: >
                Date


                Date related to the specified type of regulatory reporting
                details.
        Ctry:
          allOf:
            - $ref: "#/components/schemas/CountryCode"
            - description: >
                Country


                Country related to the specified type of regulatory reporting
                details.
        Cd:
          allOf:
            - $ref: "#/components/schemas/Max10Text"
            - description: >
                Code

                Specifies the nature, purpose, and reason for the transaction to
                be reported for regulatory and statutory requirements in a coded
                form.
        Amt:
          allOf:
            - $ref: "#/components/schemas/ActiveOrHistoricCurrencyAndAmount"
            - description: >
                Amount


                Amount of money to be reported for regulatory and statutory
                requirements.
        Inf:
          description: >
            Information


            Additional details that cater for specific domestic regulatory
            requirements.
          anyOf:
            - $ref: "#/components/schemas/Max35Text"
            - items:
                $ref: "#/components/schemas/Max35Text"
              type: array
      example:
        Tp: T1
        Dt: "2018-01-01"
        Ctry: CH
        Cd: CHF
        Amt:
          Ccy: CHF
          Amt: 1000
        Inf: 12345
    SupplementaryData1:
      title: SupplementaryData1
      description: >
        Additional information that cannot be captured in the structured fields
        and/or any other specific block.
      type: object
      additionalProperties: false
      properties:
        PlcAndNm:
          allOf:
            - $ref: "#/components/schemas/Max350Text"
            - description: >
                PlaceAndName

                Unambiguous reference to the location where the supplementary
                data must be inserted in the message instance.
        Envlp:
          allOf:
            - $ref: "#/components/schemas/SupplementaryDataEnvelope1"
            - description: >
                Envelope

                Technical element wrapping the supplementary data.

                Technical component that contains the validated supplementary
                data information. This technical envelope allows to segregate
                the supplementary data information from any other information.
      required:
        - Envlp
      example:
        PlcAndNm: Additional information
        Envlp:
          Cd: CH03
          Prtry: Additional information
    SupplementaryDataEnvelope1:
      title: SupplementaryDataEnvelope1
      description: >
        SupplementaryDataEnvelope1

        Technical component that contains the validated supplementary data
        information. This technical envelope allows to segregate the
        supplementary data information from any other information.
      type: object
      additionalProperties: false
    TaxAmount3:
      title: TaxAmount3
      description: |
        Information on the amount of the tax record.
      type: object
      additionalProperties: false
      properties:
        Rate:
          allOf:
            - $ref: "#/components/schemas/PercentageRate"
            - description: |
                Rate

                Rate used to calculate the tax.
        TaxblBaseAmt:
          allOf:
            - $ref: "#/components/schemas/ActiveOrHistoricCurrencyAndAmount"
            - description: |
                TaxableBaseAmount

                Amount of money on which the tax is based.
        TtlAmt:
          allOf:
            - $ref: "#/components/schemas/ActiveOrHistoricCurrencyAndAmount"
            - description: >
                TotalAmount


                Total amount that is the result of the calculation of the tax
                for the record.
        Dtls:
          description: >
            Details


            Set of elements used to provide details on the tax period and
            amount.
          anyOf:
            - $ref: "#/components/schemas/TaxRecordDetails3"
            - items:
                $ref: "#/components/schemas/TaxRecordDetails3"
              type: array
      example:
        Rate: 0
        TaxblBaseAmt:
          Ccy: EUR
          Amt: 0
        TtlAmt:
          Ccy: EUR
          Amt: 0
        Dtls:
          Tp: T1
          Ctry: CH
          Cd: CHF
          Amt:
            Ccy: CHF
            Amt: 1000
          Inf: 12345
    TaxAuthorisation1:
      title: TaxAuthorisation1
      description: |
        Details of an authorised tax paying party.
      type: object
      additionalProperties: false
      properties:
        Titl:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                Title


                Title or position of debtor or the debtor's authorised
                representative.
        Nm:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: |
                Name

                Name of the debtor or the debtor's authorised representative.
      example:
        Titl: Mr
        Nm: John Doe
    TaxData1:
      title: TaxData1
      description: >
        Details about tax paid, or to be paid, to the government in accordance
        with the law, including pre-defined parameters such as thresholds and
        type of account.
      type: object
      additionalProperties: false
      properties:
        Cdtr:
          allOf:
            - $ref: "#/components/schemas/TaxParty1"
            - description: >
                Creditor


                Party on the credit side of the transaction to which the tax
                applies.
        Dbtr:
          allOf:
            - $ref: "#/components/schemas/TaxParty2"
            - description: >
                Debtor


                Party on the debit side of the transaction to which the tax
                applies.
        UltmtDbtr:
          allOf:
            - $ref: "#/components/schemas/TaxParty2"
            - description: >
                UltimateDebtor


                Ultimate party that owes an amount of money to the (ultimate)
                creditor, in this case, to the taxing authority.
        AdmstnZone:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                AdministrationZone


                Territorial part of a country to which the tax payment is
                related.
        RefNb:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: |
                ReferenceNumber

                Tax reference information that is specific to a taxing agency.
        Mtd:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                Method


                Method used to indicate the underlying business or how the tax
                is paid.
        TtlTaxblBaseAmt:
          allOf:
            - $ref: "#/components/schemas/ActiveOrHistoricCurrencyAndAmount"
            - description: |
                TotalTaxableBaseAmount

                Total amount of money on which the tax is based.
        TtlTaxAmt:
          allOf:
            - $ref: "#/components/schemas/ActiveOrHistoricCurrencyAndAmount"
            - description: |
                TotalTaxAmount

                Total amount of money as result of the calculation of the tax.
        Dt:
          allOf:
            - $ref: "#/components/schemas/ISODate"
            - description: |
                Date

                Date by which tax is due.
        SeqNb:
          allOf:
            - $ref: "#/components/schemas/Number"
            - description: |
                SequenceNumber

                Sequential number of the tax report.
        Rcrd:
          description: |
            Record

            Details of the tax record.
          anyOf:
            - $ref: "#/components/schemas/TaxRecord3"
            - items:
                $ref: "#/components/schemas/TaxRecord3"
              type: array
      example:
        Cdtr:
          Titl: Mr
          Nm: John Doe
        Dbtr:
          Titl: Mr
          Nm: John Doe
        UltmtDbtr:
          Titl: Mr
          Nm: John Doe
        AdmstnZone: CH
        RefNb: 12345
        Mtd: A
        TtlTaxblBaseAmt:
          Ccy: CHF
          Amt: 1000
        TtlTaxAmt:
          Ccy: CHF
          Amt: 100
        Dt: "2018-01-01"
        SeqNb: 1
        Rcrd:
          Tp: T1
          Ctry: CH
          Cd: CHF
          Amt:
            Ccy: CHF
            Amt: 1000
          Inf: 12345
    TaxParty1:
      title: TaxParty1
      description: |
        Details about the entity involved in the tax paid or to be paid.
      type: object
      additionalProperties: false
      properties:
        TaxId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                TaxIdentification

                Tax identification number of the creditor.
        RegnId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                RegistrationIdentification


                Unique identification, as assigned by an organisation, to
                unambiguously identify a party.
        TaxTp:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                TaxType

                Type of tax payer.
      example:
        TaxId: 123456789
        RegnId: 123456789
        TaxTp: VAT
    TaxParty2:
      title: TaxParty2
      description: |
        Details about the entity involved in the tax paid or to be paid.
      type: object
      additionalProperties: false
      properties:
        TaxId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                TaxIdentification

                Tax identification number of the debtor.
        RegnId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                RegistrationIdentification


                Unique identification, as assigned by an organisation, to
                unambiguously identify a party.
        TaxTp:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                TaxType

                Type of tax payer.
        Authstn:
          allOf:
            - $ref: "#/components/schemas/TaxAuthorisation1"
            - description: |
                Authorisation

                Details of the authorised tax paying party.
      example:
        TaxId: 123456789
        RegnId: 123456789
        TaxTp: VAT
        Authstn:
          Titl: Mr
          Nm: John Doe
    TaxPeriod3:
      title: TaxPeriod3
      description: |
        Period of time details related to the tax payment.
      type: object
      additionalProperties: false
      properties:
        FrToDt:
          allOf:
            - $ref: "#/components/schemas/DatePeriod2"
            - description: >
                FromToDate


                Range of time between a start date and an end date for which the
                tax report is provided.
        Tp:
          allOf:
            - $ref: "#/components/schemas/TaxRecordPeriod1Code"
            - description: |
                Type

                Identification of the period related to the tax payment.
        Yr:
          allOf:
            - $ref: "#/components/schemas/ISOYear"
            - description: |
                Year

                Year related to the tax payment.
      example:
        Yr: 2020
        Tp: MM01
        FrToDt:
          FrDt: "2020-01-01"
          ToDt: "2020-01-31"
    TaxRecord3:
      title: TaxRecord3
      description: |
        Set of elements used to define the tax record.
      type: object
      additionalProperties: false
      properties:
        AddtlInf:
          allOf:
            - $ref: "#/components/schemas/Max140Text"
            - description: |
                AdditionalInformation

                Further details of the tax record.
        CertId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                CertificateIdentification


                Identification number of the tax report as assigned by the
                taxing authority.
        Ctgy:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Category

                Specifies the tax code as published by the tax authority.
        CtgyDtls:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                CategoryDetails

                Provides further details of the category tax code.
        DbtrSts:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                DebtorStatus


                Code provided by local authority to identify the status of the
                party that has drawn up the settlement document.
        FrmsCd:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                FormsCode


                Identifies, in a coded form, on which template the tax report is
                to be provided.
        Prd:
          allOf:
            - $ref: "#/components/schemas/TaxPeriod3"
            - description: >
                Period


                Set of elements used to provide details on the period of time
                related to the tax payment.
        TaxAmt:
          allOf:
            - $ref: "#/components/schemas/TaxAmount3"
            - description: >
                TaxAmount


                Set of elements used to provide information on the amount of the
                tax record.
        Tp:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: |
                Type

                High level code to identify the type of tax details.
      example:
        Tp: VAT
        Ctgy: A
        CtgyDtls: Standard
        DbtrSts: Resident
        CertId: 123456789
        FrmsCd: 123456789
        Prd:
          Yr: 2019
          Tp: MM01
          FrToDt:
            FrDt: "2019-01-01"
            ToDt: "2019-12-31"
        TaxAmt:
          Rate: 0.2
          TaxblBaseAmt:
            Ccy: EUR
            Amt: 1000
          TtlAmt:
            Ccy: EUR
            Amt: 200
        AddtlInf: VAT applicable
    TaxRecordDetails3:
      title: TaxRecordDetails3
      description: |
        Details on the tax period and amount.
      type: object
      additionalProperties: false
      properties:
        Prd:
          allOf:
            - $ref: "#/components/schemas/TaxPeriod3"
            - description: >
                Period


                Set of elements used to provide details on the period of time
                related to the tax payment.
        Amt:
          allOf:
            - $ref: "#/components/schemas/ActiveOrHistoricCurrencyAndAmount"
            - description: |
                Amount

                Underlying tax amount related to the specified period.
      required:
        - Amt
      example:
        Prd:
          Yr: 2020
          Tp: MM01
          FrToDt:
            FrDt: "2020-01-01"
            ToDt: "2020-01-31"
        Amt:
          Amt: 100
          Ccy: EUR
    TaxRecordPeriod1Code:
      title: TaxRecordPeriod1Code
      description: |
        Specifies the period related to the tax payment

        MM01 FirstMonth Tax is related to the second month of the period.
        MM02 SecondMonth Tax is related to the first month of the period.
        MM03 ThirdMonth Tax is related to the third month of the period.
        MM04 FourthMonth Tax is related to the fourth month of the period.
        MM05 FifthMonth Tax is related to the fifth month of the period.
        MM06 SixthMonth Tax is related to the sixth month of the period.
        MM07 SeventhMonth Tax is related to the seventh month of the period.
        MM08 EighthMonth Tax is related to the eighth month of the period.
        MM09 NinthMonth Tax is related to the ninth month of the period.
        MM10 TenthMonth Tax is related to the tenth month of the period.
        MM11 EleventhMonth Tax is related to the eleventh month of the period.
        MM12 TwelfthMonth Tax is related to the twelfth month of the period.
        QTR1 FirstQuarter Tax is related to the first quarter of the period.
        QTR2 SecondQuarter Tax is related to the second quarter of the period.
        QTR3 ThirdQuarter Tax is related to the third quarter of the period.
        QTR4 FourthQuarter Tax is related to the forth quarter of the period.
        HLF1 FirstHalf Tax is related to the first half of the period.
        HLF2 SecondHalf Tax is related to the second half of the period.
      type: string
      enum:
        - MM01
        - MM02
        - MM03
        - MM04
        - MM05
        - MM06
        - MM07
        - MM08
        - MM09
        - MM10
        - MM11
        - MM12
        - QTR1
        - QTR2
        - QTR3
        - QTR4
        - HLF1
        - HLF2
      example: HLF1
    TermsRequest_FIToFICustomerCreditProposal:
      title: TermsRequest_FIToFICustomerCreditProposal
      type: object
      additionalProperties: false
      description: >
        This message is sent by a financial institution to a financial
        institution to propose the terms of a credit to a customer.
      properties:
        GrpHdr:
          allOf:
            - $ref: "#/components/schemas/GroupHeader129"
            - description: >
                Group Header

                Set of characteristics shared by all individual transactions
                included in the message.
        CdtTrfTxInf:
          allOf:
            - $ref: "#/components/schemas/CreditTransferTransaction67"
            - description: |
                Credit Transfer Transaction Information
      required:
        - GrpHdr
        - CdtTrfTxInf
      example:
        GrpHdr:
          MsgId: 123456789
          CreDtTm: "2020-01-01T00:00:00Z"
          NbOfTxs: 1
          CtrlSum: 100
          InitgPty:
            Nm: Initiating Party Name
            Id:
              OrgId:
                Othr:
                  - Id: 123456789
                    SchmeNm:
                      Cd: BBA
                      Prtry: Party Identification Scheme Name
          FwdgAgt:
            FinInstnId:
              BICFI: BBBBBBBB
    TermsResponse_FIToFICustomerCreditConfirmation:
      title: TermsResponse_FIToFICustomerCreditConfirmation
      type: object
      additionalProperties: false
      description: >
        This message is sent by the initiating party to the executing party,
        directly or through one or more intermediaries, to confirm the credit
        transfer transaction.
      properties:
        GrpHdr:
          allOf:
            - $ref: "#/components/schemas/GroupHeader129"
            - description: >
                Group Header

                Set of characteristics shared by all individual transactions
                included in the message.
        CdtTrfTxInf:
          allOf:
            - $ref: "#/components/schemas/CreditTransferTransaction67"
            - description: >
                Credit Transfer Transaction Information

                Set of elements providing information specific to the individual
                credit transfer(s).
      required:
        - GrpHdr
        - CdtTrfTxInf
      example:
        GrpHdr:
          MsgId: 123456789
          CreDtTm: "2020-01-01T00:00:00Z"
          NbOfTxs: 1
          CtrlSum: 100
          InitgPty:
            Nm: Initiating Party Name
            Id:
              OrgId:
                Othr:
                  - Id: 123456789
                    SchmeNm:
                      Cd: BBA
                      Prtry: Party Identification Scheme Name
          FwdgAgt:
            FinInstnId:
              BICFI: BBBBBBBB
    ULIDIdentifier:
      title: ULIDIdentifier
      type: string
      pattern: ^[0-9A-HJKMNP-TV-Z]{26}$
      example: 01AN4Z07BY79KA1307SR9X4MV3
    UUIDv4Identifier:
      title: UUIDv4Identifier
      type: string
      example: 8f3a3b2d-3b0a-4b3f-8e4e-1b2f3f4c5d6e
      pattern: >-
        ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
    UnderlyingCustomerCreditTransfer:
      title: UnderlyingCustomerCreditTransfer
      type: object
      additionalProperties: false
      properties:
        InstdAmt:
          allOf:
            - $ref: "#/components/schemas/ActiveOrHistoricCurrencyAndAmount"
            - description: >
                InstructedAmount

                Amount of money to be moved between the debtor and creditor,
                before deduction of charges, expressed in the currency as
                ordered by the initiating party.
        Dbtr:
          allOf:
            - $ref: "#/components/schemas/PartyIdentification272"
            - description: |
                Party that owes an amount of money to the (ultimate) creditor.
        Cdtr:
          allOf:
            - $ref: "#/components/schemas/PartyIdentification272"
            - description: |
                Party to which an amount of money is due.
        DbtrAgt:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification8
            - description: |
                Financial institution servicing an account for the debtor.
        CdtrAgt:
          allOf:
            - $ref: >-
                #/components/schemas/BranchAndFinancialInstitutionIdentification8
            - description: |
                Financial institution servicing an account for the creditor.
      required:
        - Dbtr
        - Cdtr
        - DbtrAgt
        - CdtrAgt
    VerificationReason1Choice:
      title: VerificationReason1Choice
      type: object
      additionalProperties: false
      description: |
        Choice of format for the verification reason.
        Only one, between the coded and the proprietary, can be chosen.
      anyOf:
        - properties:
            Cd:
              allOf:
                - $ref: "#/components/schemas/ExternalVerificationReason1Code"
                - description: >
                    Code

                    Reason why the verified identification information is
                    incorrect, as published in an external reason code list.
          required:
            - Cd
        - properties:
            Prtry:
              allOf:
                - $ref: "#/components/schemas/Max35Text"
                - description: >
                    Proprietary

                    Reason why the verified identification information is
                    incorrect, in a free text form.
          required:
            - Prtry
      example:
        Cd: AGNT
    VerificationReport4:
      title: VerificationReport4
      type: object
      additionalProperties: false
      description: >-
        VerificationReport

        Provides information about the verification of party and/or account
        identification information.
      properties:
        OrgnlId:
          allOf:
            - $ref: "#/components/schemas/Max35Text"
            - description: >
                OriginalIdentification

                Unique identification, as assigned by a sending party, to
                unambiguously identify the party and account identification
                information group within the original message.
        Vrfctn:
          allOf:
            - $ref: "#/components/schemas/IdentificationVerificationIndicator"
            - description: >
                Verification

                Identifies whether the party and/or account information received
                is correct. Boolean value.
        Rsn:
          allOf:
            - $ref: "#/components/schemas/VerificationReason1Choice"
            - description: >
                Reason

                Specifies the reason why the verified identification information
                is incorrect.
        OrgnlPtyAndAcctId:
          allOf:
            - $ref: "#/components/schemas/IdentificationInformation4"
            - description: >
                OriginalPartyAndAccountIdentification

                Provides party and/or account identification information as
                given in the original message.
        UpdtdPtyAndAcctId:
          allOf:
            - $ref: "#/components/schemas/IdentificationInformation4"
            - description: |
                UpdatedPartyAndAccountIdentification
                Provides party and/or account identification information.
      required:
        - OrgnlId
        - Vrfctn
      example:
        OrgnlId: 1.2345678901234568e+33
        Vrfctn: true
        OrgnlPtyAndAcctId:
          Nm: John Doe
          PstlAdr:
            AdrTp: ADDR
            Dept: Dept
            SubDept: SubDept
            StrtNm: 1234 Elm St
            BldgNb: 1234
            PstCd: 12345
            TwnNm: Anytown
            CtrySubDvsn: CA
            Ctry: US
          Id:
            OrgId:
              AnyBIC: ABCDUS33
              Othr:
                Id: 123456789
                Issr: ABA
        UpdtdPtyAndAcctId:
          Nm: John Doe
          PstlAdr:
            AdrTp: ADDR
            Dept: Dept
            SubDept: SubDept
            StrtNm: 1234 Elm St
            BldgNb: 1234
            PstCd: 12345
            TwnNm: Anytown
            CtrySubDvsn: CA
            Ctry: US
          Id:
            OrgId:
              AnyBIC: ABCDUS33
              Othr:
                Id: 123456789
                Issr: ABA
    hexBinary:
      title: hexBinary
      type: string
      example: 4660
      pattern: ^[A-Za-z0-9-_]+[=]{0,2}$
