openapi: 3.0.2
info:
  title: Cash Management Service
  description: | 
    Contains API endpoints for cash management reporting.
    
    
    This API provides endpoints for:
    
      - Retrieving balance information for an account
      - Retrieving statement reports for an account
      - Retriving debit and credit confirmations against an account
    
    
    The models in this API are aligned with CGI-MP Common Global Implementation Market Practice (ISO 2019 version). [More details](https://www.swift.com/standards/market-practice/common-global-implementation).
  contact:
    name: Developer Hub
    url: https://developer.swift.com
    email: developer-support@swift.com
  license:
    name: API Restricted License
    url: https://www.swift.com/swift-resource/197711/download
  version: 1.1.0
servers:
  - url: https://sandbox.swift.com/swift-cash-management-in/v1
    description: URL for Sandbox Environment.
  - url: https://api-test.swiftnet.sipn.swift.com/swift-cash-management-in/v1
    description: URL for Apigee (SDK consumer) Pilot.
  - url: https://api.swiftnet.sipn.swift.com/swift-cash-management-in/v1
    description: URL for Apigee (SDK consumer) Live.
security:
  - oauthBearerToken: []
  - oAuth2: []
tags:
  - name: Account balances
    description: Bank-to-Customer Account Reporting
  - name: Statements
    description: Bank-to-Customer Statements
  - name: Account transaction confirmations
    description: Bank-to-Customer Debit/Credit Notifications
paths:
  /accounts/{extended_account_identification}:
    get:
      tags:
      - Account balances
      summary: Retrieves balance information for an account.
      description: |
        **Scope**
        
        This API operation allows the account servicer to return to an account owner or to a party authorised by the account owner the entries reported to the account, and/or balance information on the account at a given point in time.

        **Usage**
        
        This API operation can return reports for more than one account. It provides information for cash management and/or reconciliation. It can be used to:
          
          - report pending and booked items;
          - provide balance information.
        
        It can include underlying details of transactions that have been included in the entry.

      operationId: fetchCashManagementReportDataCGI
      parameters:
        - $ref: '#/components/parameters/X-Request-ID'
        - $ref: '#/components/parameters/X-BIC'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Offset'
        - name: extended_account_identification
          in: path
          description: |
            Unique identification of the customer's account as defined by the bank's server. 
              
            **USAGE** this field is longer than the usual 34x for accounts, to allow for flexibility when the account id must be combined with other parameters such as a BIC, or a system id, to become a unique key field.
          required: true
          style: simple
          explode: false
          schema:
            maxLength: 72
            minLength: 1
            type: string
            description: Specifies a character string with a maximum length of 72 characters.
            x-MXComponent: Max72Text
          example: 123e456-e89b-12d3-a456-426614174000
      responses:
        "200":
          description: OK
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            Swift-Request-ID:
              $ref: '#/components/headers/Swift-Request-ID'              
          content:
            application/json:
              schema:
                type: object
                properties:
                  results: 
                    type: array
                    items:
                      $ref: '#/components/schemas/CashManagementReportDataCGI2'
                  links: 
                    type: array
                    items:
                      $ref: '#/components/schemas/Link'
              example:
                {
                  "results":[
                    {
                      "extended_account_identification":"SPECTRA-INFRA-SBI-3456789012",
                      "report_identification":"CMS-REPORT-JUN06-2025",
                      "creation_date_time":"2025-06-06T09:00:00",
                      "from_date_time":"2025-06-01T00:00:00",
                      "to_date_time":"2025-06-06T23:59:59+05:30",
                      "electronic_sequence_number":"00056789",
                      "account":{
                        "currency":"INR",
                        "servicer":{
                          "bicfi":"SBININBB197"
                        }
                      },
                      "balance":[
                        {
                          "balance_type":"OPAV",
                          "amount":{
                            "currency":"INR",
                            "amount":"000000015000000.00"
                          },
                          "credit_debit_indicator":"CRDT",
                          "date":"2025-06-01T09:00:00"
                        },
                        {
                          "balance_type":"CLAV",
                          "amount":{
                            "currency":"INR",
                            "amount":"000000022850000.00"
                          },
                          "credit_debit_indicator":"CRDT",
                          "date":"2025-06-06T18:30:00"
                        },
                        {
                          "balance_type":"PRCD",
                          "amount":{
                            "currency":"INR",
                            "amount":"000000003000000.00"
                          },
                          "credit_debit_indicator":"CRDT",
                          "date":"2025-06-07T09:00:00"
                        }
                      ],
                      "transactions_summary":{
                        "total_number_of_entries":"12",
                        "total_sum":"000000012000000.00",
                        "total_number_of_credit_entries":"7",
                        "total_sum_of_credit_entries":"000000009500000.00",
                        "total_number_of_debit_entries":"5",
                        "total_sum_of_debit_entries":"000000002500000.00"
                      }
                    }
                  ],
                  "links":[
                    {
                      "href":"accounts/SPECTRA-INFRA-SBI-3456789012?limit=100,offset=100",
                      "rel":"previous",
                      "type":"GET"
                    },
                    {
                      "href":"accounts/SPECTRA-INFRA-SBI-3456789012?limit=100,offset=300",
                      "rel":"next",
                      "type":"GET"
                    }
                  ]
                }
        "400":
          $ref: '#/components/responses/400-BadRequest'
        "401":
          $ref: '#/components/responses/401-Unauthorized'
        "403":
          $ref: '#/components/responses/403-Forbidden'
        "404":
          $ref: '#/components/responses/404-NotFound'
        "406":
          $ref: '#/components/responses/406-NotAcceptable'
        "429":
          $ref: '#/components/responses/429-TooManyRequests'
        "503":
          $ref: '#/components/responses/503-ServiceUnavailable'
        "504":
          $ref: '#/components/responses/504-GatewayTimeout'
  /statements/{extended_account_identification}:
    get:
      tags:
      - Statements 
      summary: Retrieves statements reports for an account.
      description: |
        **Scope**
        
        This API operation allows an account owner or to a party authorised by the account owner to receive the entries booked to the account, and balance information on the account at a given point in time.

        **Usage**

        This API operation can return reports for more than one account. It provides information for cash management and/or reconciliation.
        
          - It contains information on booked entries only.
          - It can include underlying details of transactions that have been included in the entry.
        
        It provides information on items that have been booked to the account and also balance information. Depending on services and schedule agreed between banks and their customers, statements may be generated and exchanged accordingly, for example for intraday or prior day periods.

      operationId: fetchCashManagementStatementDataCGI
      parameters:
        - $ref: '#/components/parameters/X-Request-ID'
        - $ref: '#/components/parameters/X-BIC'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Offset'
        - name: extended_account_identification
          in: path
          description: |
            Unique identification of the customer's account  as defined by the bank's server. 
            
            **USAGE**: this field is longer than the usual 34x for accounts, to allow for flexibility when the account id must be combined with other parameters such as a BIC, or a system id, to become a unique key field.
          required: true
          style: simple
          explode: false
          schema:
            maxLength: 72
            minLength: 1  
            type: string
            description: Specifies a character string with a maximum length of 72 characters.
            x-MXComponent: Max72Text
          example: 123e456-e89b-12d3-a456-426614174000
      responses:
        "200":
          description: OK
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            Swift-Request-ID:
              $ref: '#/components/headers/Swift-Request-ID'               
          content:
            application/json:
              schema:
                type: object
                properties:
                  results: 
                    type: array
                    items:
                      $ref: '#/components/schemas/CashManagementStatementDataCGI2'
                  links: 
                    type: array
                    items:
                      $ref: '#/components/schemas/Link'
              example:
                {
                  "results": [
                    {
                      "extended_account_identification": "ZENITHTECH-HDFC-50200012345678",
                      "statement_identification": "STMNT-JUN-2025",
                      "creation_date_time": "2025-06-06T10:30:00+05:30",
                      "from_date_time": "2025-06-01T00:00:00+05:30",
                      "to_date_time": "2025-06-06T23:59:59+05:30",
                      "electronic_sequence_number": "00001234",
                      "account": {
                        "currency": "INR",
                        "servicer": {
                          "bicfi": "SBININBB197"
                        }
                      },
                      "balance": [
                        {
                          "balance_type": "OPBD",
                          "amount": {
                            "currency": "INR",
                            "amount": "0000000025000000"
                          },
                          "credit_debit_indicator": "CRDT",
                          "date": "2025-06-01"
                        },
                        {
                          "balance_type": "CLBD",
                          "amount": {
                            "currency": "INR",
                            "amount": "0000000042350000"
                          },
                          "credit_debit_indicator": "CRDT",
                          "date": "2025-06-06"
                        },
                        {
                          "balance_type": "OPBD",
                          "amount": {
                            "currency": "INR",
                            "amount": "0000000038500000"
                          },
                          "credit_debit_indicator": "CRDT",
                          "date": "2025-06-06"
                        }
                      ],
                      "transactions_summary": {
                        "total_number_of_entries": "6",
                        "total_sum": "0000000031000000",
                        "total_number_of_credit_entries": "3",
                        "total_sum_of_credit_entries": "0000000022000000",
                        "total_number_of_debit_entries": "3",
                        "total_sum_of_debit_entries": "0000000009000000"
                      }
                    }
                  ],
                  "links": [
                    {
                      "href": "statements/ZENITHTECH-HDFC-50200012345678?limit=100,offset=100",
                      "rel": "previous",
                      "type": "GET"
                    },
                    {
                      "href": "statements/ZENITHTECH-HDFC-50200012345678?limit=100,offset=300",
                      "rel": "next",
                      "type": "GET"
                    }
                  ]
                }
        "400":
          $ref: '#/components/responses/400-BadRequest'
        "401":
          $ref: '#/components/responses/401-Unauthorized'
        "403":
          $ref: '#/components/responses/403-Forbidden'
        "404":
          $ref: '#/components/responses/404-NotFound'
        "406":
          $ref: '#/components/responses/406-NotAcceptable'
        "429":
          $ref: '#/components/responses/429-TooManyRequests'
        "503":
          $ref: '#/components/responses/503-ServiceUnavailable'
        "504":
          $ref: '#/components/responses/504-GatewayTimeout'
  /confirmations/{extended_account_identification}:
    get:
      tags:
      - Account transaction confirmations
      summary: Retrieves debit and credit confirmations of transactions that happened on an account.
      description: |
        **Scope**
        
        This API operation can be used by the account owner or a party authorised by the account owner to receive single or multiple debit and/or credit entries reported to the account.

        **Usage**
        
        This API operation can return reports for more than one account. It provides information for cash management and/or reconciliation.
        
        This API operation can be used to:
        
          - report pending and booked items;
          - notify one or more debit entries;
          - notify one or more credit entries;
          - notify a combination of debit and credit entries.
        
        It can include underlying details of transactions that have been included in the entry.

        It does not contain balance information.
      operationId: fetchCashManagementNotificationDataCGI
      parameters:
        - $ref: '#/components/parameters/X-Request-ID'
        - $ref: '#/components/parameters/X-BIC'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Offset'
        - name: extended_account_identification
          in: path
          description: |
            Unique identification of the customer's account  as defined by the bank's server. 

            USAGE: this field is longer than the usual 34x for accounts, to allow for flexibility when the account id must be combined with other parameters such as a BIC, or a system id, to become a unique key field.
          required: true
          style: simple
          explode: false
          schema:
            maxLength: 72
            minLength: 1
            type: string
            description: Specifies a character string with a maximum length of 72 characters.
            x-MXComponent: Max72Text
          example: 123e456-e89b-12d3-a456-426614174000
      responses:
        "200":
          description: OK
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            Swift-Request-ID:
              $ref: '#/components/headers/Swift-Request-ID'               
          content:
            application/json:
              schema:
                type: object
                properties:
                  results: 
                    type: array
                    items:
                      $ref: '#/components/schemas/CashManagementNotificationDataCGI2'
                  links: 
                    type: array
                    items:
                      $ref: '#/components/schemas/Link'
              example:
                {
                  "results": [
                    {
                      "extended_account_identification": "INFOTECH-LTD-AXIS-2004567890",
                      "notification_identification": "NTFN-JUN06-2025",
                      "notification_entry": [
                        {
                          "entry_reference": "PAYROLL-JUN2025",
                          "amount": {
                            "currency": "INR",
                            "amount": "250000.00"
                          },
                          "credit_debit_indicator": "DBIT",
                          "booking_date": "2025-06-04",
                          "value_date": "2025-06-05",
                          "bank_transaction_code": {
                            "domain_code": "SALA"
                          }
                        },
                        {
                          "entry_reference": "CLIENT-INVOICE-AXA",
                          "amount": {
                            "currency": "INR",
                            "amount": "750000.00"
                          },
                          "credit_debit_indicator": "CRDT",
                          "booking_date": "2025-06-05",
                          "value_date": "2025-06-05",
                          "bank_transaction_code": {
                            "domain_code": "RCPT"
                          }
                        },
                        {
                          "entry_reference": "VENDOR-PAYMENT-WIPRO",
                          "amount": {
                            "currency": "INR",
                            "amount": "125000.00"
                          },
                          "credit_debit_indicator": "DBIT",
                          "booking_date": "2025-06-06",
                          "value_date": "2025-06-06",
                          "bank_transaction_code": {
                            "domain_code": "VEND"
                          }
                        },
                        {
                          "entry_reference": "FD-INTEREST-CREDIT",
                          "amount": {
                            "currency": "INR",
                            "amount": "20000.00"
                          },
                          "credit_debit_indicator": "CRDT",
                          "booking_date": "2025-06-06",
                          "value_date": "2025-06-06",
                          "bank_transaction_code": {
                            "domain_code": "INTR"
                          }
                        },
                        {
                          "entry_reference": "UTILITY-BILL-PAYMENT",
                          "amount": {
                            "currency": "INR",
                            "amount": "8000.00"
                          },
                          "credit_debit_indicator": "DBIT",
                          "booking_date": "2025-06-06",
                          "value_date": "2025-06-06",
                          "bank_transaction_code": {
                            "domain_code": "UTIL"
                          }
                        }
                      ],
                      "creation_date_time": "2025-06-06T18:15:00Z",
                      "from_date_time": "2025-06-01T00:00:00Z",
                      "to_date_time": "2025-06-06T23:59:59Z",
                      "electronic_sequence_number": "7890",
                      "account": {
                        "currency": "INR",
                        "servicer": {
                          "bicfi": "SBININBB197"
                        }
                      },
                      "transactions_summary": {
                        "total_number_of_entries": "5",
                        "total_sum": "1153000.00",
                        "total_number_of_credit_entries": "2",
                        "total_sum_of_credit_entries": "770000.00",
                        "total_number_of_debit_entries": "3",
                        "total_sum_of_debit_entries": "383000.00"
                      }
                    }
                  ],
                  "links": [
                    {
                      "href": "confirmations/INFOTECH-LTD-AXIS-2004567890?limit=100,offset=100",
                      "rel": "previous",
                      "type": "GET"
                    },
                    {
                      "href": "confirmations/INFOTECH-LTD-AXIS-2004567890?limit=100,offset=300",
                      "rel": "next",
                      "type": "GET"
                    }
                  ]
                }
        "400":
          $ref: '#/components/responses/400-BadRequest'
        "401":
          $ref: '#/components/responses/401-Unauthorized'
        "403":
          $ref: '#/components/responses/403-Forbidden'
        "404":
          $ref: '#/components/responses/404-NotFound'
        "406":
          $ref: '#/components/responses/406-NotAcceptable'
        "429":
          $ref: '#/components/responses/429-TooManyRequests'
        "503":
          $ref: '#/components/responses/503-ServiceUnavailable'
        "504":
          $ref: '#/components/responses/504-GatewayTimeout'
components:
  
  parameters:
    X-Request-ID:
      name: X-Request-ID
      in: header
      description: End to end tracking ID. This value will be returned to the caller as a response header of the same name. If no header is assigned by the caller, then one will be assigned by Swift.
      required: false
      schema:
        type: string
        maxLength: 270
      example: rrt-1130311210763048898-c-geu2-21394-2055157-17

    X-BIC:
      name: X-BIC
      in: header
      description: The BIC code of the downstream provider which should recieve and process this request, in situations where there are multiple downstream providers. If Swift API Platform should recieve and process this request, the value of this header should be set to SWHQBEBB. 
      required: true
      schema:
        type: string 
        pattern: ^[a-zA-Z]{6,6}[a-zA-Z2-9][a-nA-Np-zP-Z0-9]$
        maxLength: 255
      example: DEUTDEFZ

    Limit:
      name: Limit
      in: query
      description: Pagination parameter. Specifies the number or records to return for the page.
      required: false
      schema:
        type: integer
      example: 25
      
    Offset:
      name: Offset
      in: query
      description: Pagination paramter. Specifies the record to start the page with.
      required: false
      schema:
        type: integer
      example: 475
  
  headers:
    X-Request-ID:
      description: Specify an unique end to end tracking request ID. The element will be populated by the SWIFT API gateway
      schema:
        type: string
        maxLength: 270
      required: true    
    Swift-Request-ID:
      required: false
      schema:
        type: string
        format: uuid
      examples:
        SwiftIdResponseHeader:
          value: ce480d68-2612-4aef-867a-e91566a1e012
      description: |-
        A Universally Unique Identifier (UUID) generated by the API Gateway for tracking and support purposes.
        This Swift-Request-ID response header must always be returned to the API consumer, even when the response is an error message

  schemas:
    
    # Pagination link
    Link:
      type: object
      description: | 
        Contains a generic structure to support hypermedia controls. 
        Based on https://www.rfc-editor.org/rfc/rfc8288
      additionalProperties: false
      required:
      - href
      properties:
        href:
          description: | 
            The link target, either an absolute or relative URI.
          type: string
          maxLength: 2048
        rel:
          description: | 
            The relationship of the link target to the current resource. 
            Common values are "self", "previous", "next", etc.
          type: string
          maxLength: 35
        type:
          description: | 
            By convention, the HTTP operation to invoke against the link target. 
            Defaults to GET. 
          type: string
          maxLength: 35
    
    AccountIdentification4Choice:
      type: object
      additionalProperties: true
      description: Specifies the unique identification of an account as assigned by the account servicer.
      oneOf:
      - required:
        - iban
        type: object
        properties:
          iban:
            pattern: "^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$"
            type: string
            description: |
              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.

              Based on datatype IBAN2007Identifier: 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.
            x-MXComponent: IBAN2007Identifier
        additionalProperties: false
      - required:
        - other
        type: object
        properties:
          other:
            $ref: '#/components/schemas/GenericAccountIdentification1'
        additionalProperties: false
      x-MXComponent: AccountIdentification4Choice
    AccountIdentification79Choice:
      type: object
      additionalProperties: true
      description: Specifies the unique identification of an account as assigned by the account servicer.
      oneOf:
      - required:
        - iban
        type: object
        properties:
          iban:
            pattern: "^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$"
            type: string
            description: |
              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.

              Based on datatype IBAN2007Identifier: 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.
            x-MXComponent: IBAN2007Identifier
        additionalProperties: false
      - required:
        - other_identification
        type: object
        properties:
          other_identification:
            maxLength: 34
            minLength: 1
            type: string
            description: |
              Unique identification of an account, as assigned by the account servicer, using an identification scheme.
              ---------
              Usage: CGI-MP for cash reporting: When all entry <Ntry> items in the statement belong to an accounting/sub-ledger identifier (Virtual Account), the Virtual Identifier (the Virtual Account ID) will be reported here.
              ----------
              Usage: India Market Practice:
              NACH: 23.17 Beneficiary's Bank Account number
              Mandatory

              NEFT: N061.6061 Beneficiary Customer Account Number
              Mandatory

              NG-RTGS: Creditor's Account number
              Mandatory

              ECS/NECS: 11.5 Destination Account number
              15-character description.

              Required for Foreign Remittances as well
              ----------


              Based on datatype Max34Text: Specifies a character string with a maximum length of 34 characters.
            x-MXComponent: Max34Text
        additionalProperties: false
      x-MXComponent: AccountIdentification79Choice
    AccountSchemeName1Choice:
      type: object
      additionalProperties: true
      description: Sets of elements to identify a name of the identification scheme.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 4
            minLength: 1
            type: string
            description: |
              Name of the identification scheme, in a coded form as published in an external list.

              Specifies the external account identification scheme name code in the format of character string with a maximum length of 4 characters.
              The list of valid codes is an external code list published separately.
              External code sets can be downloaded from www.iso20022.org.
            x-MXComponent: ExternalAccountIdentification1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Name of the identification scheme, in a free text form.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: AccountSchemeName1Choice
    ActiveOrHistoricCurrencyAndAmountRange2:
      required:
      - amount
      - currency
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/ImpliedCurrencyAmountRange1Choice'
        credit_debit_indicator:
          type: string
          description: |
            Indicates whether the amount is a credited or debited amount.

            Specifies if an operation is an increase or a decrease.

            Code Name Definition:
            *`CRDT` - Credit - Operation is an increase.
            *`DBIT` - Debit - Operation is a decrease.
            Synonyms
            Value: :22F::CRDB - Context: ISO 15022
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          description: |
            Medium of exchange of value, used to qualify an amount.

            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".
          x-MXComponent: ActiveOrHistoricCurrencyCode
      additionalProperties: false
      description: Range of amount values.
      x-MXComponent: ActiveOrHistoricCurrencyAndAmountRange2
    AddressType3Choice:
      type: object
      additionalProperties: true
      description: Choice of formats for the type of address.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            type: string
            description: |
              Type of address expressed as a code.

              Specifies the type of address.

              Code Name Definition:
              *`ADDR` - Postal - Address is the complete postal address.
              *`BIZZ` - Business - Address is the business address.
              *`DLVY` - DeliveryTo - Address is the address to which delivery is to take place.
              *`HOME` - Residential - Address is the home address.
              *`MLTO` - MailTo - Address is the address to which mail is sent.
              *`PBOX` - POBox - Address is a postal office (PO) box.
            enum:
            - ADDR
            - BIZZ
            - DLVY
            - HOME
            - MLTO
            - PBOX
            x-MXComponent: AddressType2Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            $ref: '#/components/schemas/GenericIdentification30'
        additionalProperties: false
      x-MXComponent: AddressType3Choice
    AmountAndCurrencyExchange5:
      required:
      - transaction_amount
      type: object
      properties:
        instructed_amount:
          $ref: '#/components/schemas/AmountAndCurrencyExchangeDetails7'
        transaction_amount:
          $ref: '#/components/schemas/AmountAndCurrencyExchangeDetails7'
        counter_value_amount:
          $ref: '#/components/schemas/AmountAndCurrencyExchangeDetails7'
        proprietary_amount:
          type: array
          description: "Set of elements used to provide information on the original amount and currency exchange.\n----------\nUsage: CGI-MP: This value can be used by the bank for additional amount reporting on community or bank-specific purposes.\nValues of Type:\n- IBS: Interbank settlement amount (for example MT103 32A field)  \n- AOS: Additional counter-value information for some banking communities.\nOther values are bilateral\nRefer to Instructed Amount / Currency Exchange for child-element use.\n----------\n"
          items:
            $ref: '#/components/schemas/AmountAndCurrencyExchangeDetails4'
      additionalProperties: false
      description: Set of elements used to provide information on the original amount.
      x-MXComponent: AmountAndCurrencyExchange5
    AmountAndCurrencyExchangeDetails4:
      required:
      - amount
      - type
      type: object
      properties:
        type:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Specifies the type of amount.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        amount:
          $ref: '#/components/schemas/AmountAndCurrencyExchangeDetails4_amount'
        currency_exchange:
          $ref: '#/components/schemas/CurrencyExchange5'
      additionalProperties: false
      description: Set of elements used to provide information on the original amount and currency exchange.
      x-MXComponent: AmountAndCurrencyExchangeDetails4
    AmountAndCurrencyExchangeDetails7:
      required:
      - amount
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/AmountAndCurrencyExchangeDetails7_amount'
        currency_exchange:
          $ref: '#/components/schemas/CurrencyExchange27'
      additionalProperties: false
      description: Set of elements used to provide information on the original amount and currency exchange.
      x-MXComponent: AmountAndCurrencyExchangeDetails7
    AmountAndDirection35:
      required:
      - amount
      - credit_debit_indicator
      type: object
      properties:
        amount:
          maxLength: 19
          type: string
          description: |
            Resulting amount of the netted amounts for all debit and credit entries.

            Based on datatype NonNegativeDecimalNumber: Number of objects represented as a non negative decimal number, for example, 0.75 or 45.6.
          x-MXComponent: NonNegativeDecimalNumber
        credit_debit_indicator:
          type: string
          description: |
            Indicates whether the amount is a credit or a debit amount.

            Specifies if an operation is an increase or a decrease.

            Code Name Definition:
            *`CRDT` - Credit - Operation is an increase.
            *`DBIT` - Debit - Operation is a decrease.
            Synonyms
            Value: :22F::CRDB - Context: ISO 15022
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
      additionalProperties: false
      description: Resulting debit or credit amount of the netted amounts for all debit and credit entries.
      x-MXComponent: AmountAndDirection35
    AmountRangeBoundary1:
      required:
      - boundary_amount
      - included
      type: object
      properties:
        boundary_amount:
          maxLength: 18
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
          description: |
            Amount value of the range limit.

            Based on datatype ImpliedCurrencyAndAmount: Number of monetary units specified in a currency where the unit of currency is implied by the context and compliant with ISO 4217. The decimal separator is a dot.
            Note: a zero amount is considered a positive amount.
          x-MXComponent: ImpliedCurrencyAndAmount
        included:
          type: boolean
          description: |
            Indicates whether the boundary amount is included in the range of amount values.

            Based on datatype YesNoIndicator: Indicates a "Yes" or "No" type of answer for an element.
          x-MXComponent: YesNoIndicator
      additionalProperties: false
      description: Limit for an amount range.
      x-MXComponent: AmountRangeBoundary1
    BankTransactionCodeStructure8:
      required:
      - domain_code
      type: object
      properties:
        domain_code:
          maxLength: 4
          minLength: 1
          type: string
          description: "Specifies the business area of the underlying transaction.\n----------\nUsage Rule: CGI-MP: Domain Code is mandatory. \nBank Transaction Codes are available to download from the ISO20022.org external code list page:\nhttps://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets.\n----------\n\nSpecifies the bank transaction code domain, as published in an external bank transaction code domain code list.\nExternal code sets can be downloaded from www.iso20022.org.\n"
          x-MXComponent: ExternalBankTransactionDomain1Code
        family_code:
          maxLength: 4
          minLength: 1
          type: string
          description: |
            Specifies the family within a domain.
            ----------
            ISO 20022: FamilyAndSubFamilyRule: If a specific (non-generic) Family code is not present, then a specific (non-generic) SubFamily code is not allowed.
            ----------

            Specifies the bank transaction code family, as published in an external bank transaction code family code list.
            External code sets can be downloaded from www.iso20022.org.
          x-MXComponent: ExternalBankTransactionFamily1Code
        sub_family_code:
          maxLength: 4
          minLength: 1
          type: string
          description: |
            Specifies the sub-product family within a specific family.

            Specifies the bank transaction code sub-family, as published in an external bank transaction code sub-family code list.
            External code sets can be downloaded from www.iso20022.org.
          x-MXComponent: ExternalBankTransactionSubFamily1Code
        proprietary:
          $ref: '#/components/schemas/ProprietaryBankTransactionCodeStructure2'
      additionalProperties: false
      description: Set of elements used to identify the type or operations code of a transaction entry.
      x-MXComponent: BankTransactionCodeStructure8
    BatchInformation3:
      type: object
      properties:
        api_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Point to point reference, as assigned by the sending party, to unambiguously identify the batch of transactions.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        payment_information_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique identification, as assigned by a sending party, to unambiguously identify the payment information group within the API.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        number_of_transactions:
          pattern: "^[0-9]{1,15}$"
          type: string
          description: |
            Number of individual transactions included in the batch.

            Based on datatype Max15NumericText: Specifies a numeric string with a maximum length of 15 digits.
          x-MXComponent: Max15NumericText
        total_amount:
          $ref: '#/components/schemas/BatchInformation3_total_amount'
        credit_debit_indicator:
          type: string
          description: |
            Indicates whether the batch entry is a credit or a debit entry.
            ----------
            Usage Rule: CGI-MP: Required if Total Amount is provided.
            ----------

            Specifies if an operation is an increase or a decrease.

            Code Name Definition:
            *`CRDT` - Credit - Operation is an increase.
            *`DBIT` - Debit - Operation is a decrease.
            Synonyms
            Value: :22F::CRDB - Context: ISO 15022
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
      additionalProperties: false
      description: Set of elements used to identify the underlying batches.
      x-MXComponent: BatchInformation3
    BranchAndFinancialInstitutionIdentification15:
      type: object
      properties:
        bicfi:
          pattern: "^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$"
          type: string
          description: |
            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)".

            Based on datatype BICFIDec2014Identifier: 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)".
          x-MXComponent: BICFIDec2014Identifier
        clearing_system_identification:
          maxLength: 5
          minLength: 1
          type: string
          description: |
            Identification of a clearing system Clearing System Identification Code
            ----------
            Usage: CGI-MP: As identified by the ISO 20022 ExternalClearingSystemIdentification1Code published on ISO 20022.org.
            ----------
            Usage: India Market Practice:
            - INFSC = Indian Financial System Code
            - MICR = MICR (Magnetic Ink Character Recognition) code
            Or refer to the ISO 20022 ExternalClearingSystemIdentification1Code.
            NOT USED FOR INTERMEDIARY AGENTS
            ----------

            Based on datatype Max5Text: Specifies a character string with a maximum length of 5 characters.
          x-MXComponent: Max5Text
        clearing_system_member_identification:
          maxLength: 11
          minLength: 1
          type: string
          description: |
            Identification of a member of a clearing system.
            ----------
            Usage: India Market Practice:
            - IFSC: 11-character code
            - MICR: 9-digit city-bank branch code
            - ECS/NECS: 22.2 Destination Sort Code
            - NEFT: N06.5569 Beneficiary branch’s IFSC (Indian Financial System Code).
            Mandatory, 4!a4!c[3!c]
            - NACH: 23.16 Destination Bank IFSC / MICR / IIN
            Mandatory, 11-character Destn Bank IFSC/MICR/IIN.
            - NG-RTGS: For Participant, IFSC code to be keyed in. For Non- Participant (i.e. Participant who do not have IFSC code), Name and Other Identification to be keyed in.

            Note: IFSC Code for financial institution is registered with RBI for NGRTGS, and consist of eleven (11) contiguous characters comprising the first four Components: INSTITUTION CODE, Fifth Character is ‘0’ and remaining 6 are Alphanumeric BRANCH CODE.
            -USAGE RULE: NOT USED FOR INTERMEDIARY AGENTS
            ----------

            Based on datatype Max11Text: Clearing System Member Identification.
          x-MXComponent: Max11Text
        lei:
          pattern: "^[A-Z0-9]{18,18}[0-9]{2,2}$"
          type: string
          description: |
            Legal entity identifier of the financial institution.

            Based on datatype LEIIdentifier: Legal Entity Identifier is a code allocated to a party as described in ISO 17442 "Financial Services - Legal Entity Identifier (LEI)".
          x-MXComponent: LEIIdentifier
        name:
          maxLength: 140
          minLength: 1
          type: string
          description: "Name by which an agent is known and which is usually used to identify that agent.\n----------\nUsage: CGI-MP: \n- For all Agents, CGI best practice is to not report the Name when a BIC, Clearing System Member ID, LEI, or Branch ID is present.  \n- If the original instruction includes a BIC, Clearing System Member ID, LEI, or Branch ID as well as a Name, the reporting of the Name is bilateral.\n- If only a BIC, Clearing System Member ID, LEI, or Branch ID is present, CGI best practice is to not enhance the report by adding the Agent's name.\n- For Book Transfers, if a BIC, Clearing System Member ID, LEI, or Branch ID is available, the Name should not be reported.\n----------\n\nBased on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.\n"
          x-MXComponent: Max140Text
        department:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Identification of a division of a large organisation or building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        sub_department:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Identification of a sub-division of a large organisation or building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        street_name:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Name of a street or thoroughfare.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        building_number:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Number that identifies the position of a building on a street.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        building_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Name of the building or house.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        floor:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Floor or storey within a building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        post_box:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        room:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Building room number.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        post_code:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        town_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Name of a built-up area, with defined boundaries, and a local government.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        town_location_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Specific location name within the town.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        district_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identifies a subdivision within a country sub-division.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        country_sub_division:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identifies a subdivision of a country such as state, region, county.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        country:
          pattern: "^[A-Z]{2,2}$"
          type: string
          description: |
            Nation with its own government.


            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).
          x-MXComponent: CountryCode
        address_line:
          maxItems: 7
          type: array
          description: |
            Information that locates and identifies a specific address, as defined by postal services, presented in free format text.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          items:
            maxLength: 70
            minLength: 1
            type: string
            x-MXComponent: Max70Text
        other:
          $ref: '#/components/schemas/GenericFinancialIdentification1'
        branch_identification:
          $ref: '#/components/schemas/BranchData7'
      additionalProperties: false
      description: Unique and unambiguous identification of a financial institution or a branch of a financial institution.
      x-MXComponent: BranchAndFinancialInstitutionIdentification15
    BranchAndFinancialInstitutionIdentification17:
      type: object
      properties:
        bicfi:
          pattern: "^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$"
          type: string
          description: |
            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)".

            Based on datatype BICFIDec2014Identifier: 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)".
          x-MXComponent: BICFIDec2014Identifier
        clearing_system_identification:
          maxLength: 5
          minLength: 1
          type: string
          description: |
            Identification of a clearing system Clearing System Identification Code
            INFSC = Indian Financial System Code
            MICR = MICR (Magnetic Ink Character Recognition) code
            Or using an external code ExternalClearingSystemIdentification1Code published on ISO 20022.org.

            USAGE RULE: NOT USED FOR INTERMEDIARY AGENTS

            Based on datatype Max5Text: Specifies a character string with a maximum length of 5 characters.
          x-MXComponent: Max5Text
        clearing_system_member_identification:
          maxLength: 11
          minLength: 1
          type: string
          description: |
            Identification of a member of a clearing system.
            USAGE RULE: NOT USED FOR INTERMEDIARY AGENTS

            For IFSC, 11-character code
            For MICR, 9-digit bank branch code

            Identification of a member of a clearing system.

            ECS/NECS: 22.2 Destination Sort Code
            9-digit MICR city-bank-branch code.

            NEFT: N06.5569 Beneficiary branch’s IFSC (Indian Financial System Code).
            Mandatory, 4!a4!c[3!c]

            NACH: 23.16 Destination Bank IFSC / MICR / IIN
            Mandatory, 11-character Destn Bank IFSC/MICR/IIN.

            NG-RTGS: For Participant, IFSC code to be keyed in. For Non- Participant (i.e. Participant who do not have IFSC code), Name and Other Identification to be keyed in.

            IFSC Code for financial institution is registered with RBI for NGRTGS, and consist of eleven (11) contiguous characters comprising the first four Components: INSTITUTION CODE, Fifth Character is ‘0’ and remaining 6 are Alphanumeric BRANCH CODE.

            Based on datatype Max11Text: Clearing System Member Identification.
          x-MXComponent: Max11Text
        lei:
          pattern: "^[A-Z0-9]{18,18}[0-9]{2,2}$"
          type: string
          description: |
            Legal entity identifier of the financial institution.

            Based on datatype LEIIdentifier: Legal Entity Identifier is a code allocated to a party as described in ISO 17442 "Financial Services - Legal Entity Identifier (LEI)".
          x-MXComponent: LEIIdentifier
      additionalProperties: false
      description: Unique and unambiguous identification of a financial institution or a branch of a financial institution.
      x-MXComponent: BranchAndFinancialInstitutionIdentification17
    BranchData7:
      type: object
      properties:
        identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique and unambiguous identification of a branch of a financial institution.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        lei:
          pattern: "^[A-Z0-9]{18,18}[0-9]{2,2}$"
          type: string
          description: |
            Legal entity identification for the branch of the financial institution.

            Based on datatype LEIIdentifier: Legal Entity Identifier is a code allocated to a party as described in ISO 17442 "Financial Services - Legal Entity Identifier (LEI)".
          x-MXComponent: LEIIdentifier
        name:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Name by which an agent is known and which is usually used to identify that agent.


            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
        department:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Identification of a division of a large organisation or building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        sub_department:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Identification of a sub-division of a large organisation or building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        street_name:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Name of a street or thoroughfare.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        building_number:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Number that identifies the position of a building on a street.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        building_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Name of the building or house.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        floor:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Floor or storey within a building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        post_box:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        room:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Building room number.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        post_code:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        town_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Name of a built-up area, with defined boundaries, and a local government.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        town_location_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Specific location name within the town.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        district_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identifies a subdivision within a country sub-division.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        country_sub_division:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identifies a subdivision of a country such as state, region, county.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        country:
          pattern: "^[A-Z]{2,2}$"
          type: string
          description: |
            Nation with its own government.


            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).
          x-MXComponent: CountryCode
        address_line:
          maxItems: 7
          type: array
          description: |
            Information that locates and identifies a specific address, as defined by postal services, presented in free format text.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          items:
            maxLength: 70
            minLength: 1
            type: string
            x-MXComponent: Max70Text
      additionalProperties: false
      description: Information that locates and identifies a specific branch of a financial institution.
      x-MXComponent: BranchData7
    CardAggregated2:
      type: object
      properties:
        additional_service:
          type: string
          description: |
            Service in addition to the main service.

            Service provided by the card payment transaction, in addition to the main service.

            Code Name Definition:
            *`AGGR` - Aggregation - Aggregation of low payments.
            *`DCCV` - DCC - Dynamic currency conversion (DCC).
            *`GRTT` - Gratuity - Card payment with gratuity.
            *`INSP` - Instalment - Instalment payment.
            *`LOYT` - Loyalty - Loyalty services.
            *`NRES` - NoShow - No show after reservation.
            *`PUCO` - PurchaseCorporate - Purchase and corporate data.
            *`RECP` - RecurringPayment - Recurring payment.
            *`SOAF` - SolicitedAvailableFunds - Solicited available funds.
            *`UNAF` - UnsolicitedAvailableFunds - Unsolicited available funds.
            *`VCAU` - VoiceAuthorisation - Voice authorisation.
          enum:
          - AGGR
          - DCCV
          - GRTT
          - INSP
          - LOYT
          - NRES
          - PUCO
          - RECP
          - SOAF
          - UNAF
          - VCAU
          x-MXComponent: CardPaymentServiceType2Code
        transaction_category:
          maxLength: 4
          minLength: 1
          type: string
          description: |
            Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction.

            Specifies the category of card transaction in the format of character string with a maximum length of 4 characters.
            The list of valid codes is an external code list published separately.
            External code sets can be downloaded from www.iso20022.org.
          x-MXComponent: ExternalCardTransactionCategory1Code
        sale_reconciliation_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique identification of the sales reconciliation period between the acceptor and the acquirer. This identification might be linked to the identification of the settlement for further verification by the merchant.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        sequence_number_range:
          $ref: '#/components/schemas/CardSequenceNumberRange1'
        transaction_date_range:
          $ref: '#/components/schemas/DateOrDateTimePeriod1Choice'
      additionalProperties: false
      description: Globalised card transaction entry details.
      x-MXComponent: CardAggregated2
    CardIndividualTransaction2:
      type: object
      properties:
        icc_related_data:
          maxLength: 1025
          minLength: 1
          type: string
          description: |
            Data related to an integrated circuit card application.

            Based on datatype Max1025Text: Specifies a character string with a maximum length of 1025 characters.
          x-MXComponent: Max1025Text
        payment_context:
          $ref: '#/components/schemas/PaymentContext3'
        additional_service:
          type: string
          description: |
            Service in addition to the main service.

            Service provided by the card payment transaction, in addition to the main service.

            Code Name Definition:
            *`AGGR` - Aggregation - Aggregation of low payments.
            *`DCCV` - DCC - Dynamic currency conversion (DCC).
            *`GRTT` - Gratuity - Card payment with gratuity.
            *`INSP` - Instalment - Instalment payment.
            *`LOYT` - Loyalty - Loyalty services.
            *`NRES` - NoShow - No show after reservation.
            *`PUCO` - PurchaseCorporate - Purchase and corporate data.
            *`RECP` - RecurringPayment - Recurring payment.
            *`SOAF` - SolicitedAvailableFunds - Solicited available funds.
            *`UNAF` - UnsolicitedAvailableFunds - Unsolicited available funds.
            *`VCAU` - VoiceAuthorisation - Voice authorisation.
          enum:
          - AGGR
          - DCCV
          - GRTT
          - INSP
          - LOYT
          - NRES
          - PUCO
          - RECP
          - SOAF
          - UNAF
          - VCAU
          x-MXComponent: CardPaymentServiceType2Code
        transaction_category:
          maxLength: 4
          minLength: 1
          type: string
          description: |
            Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction.
            This element is also known as the MerchantCategoryCode.

            Specifies the category of card transaction in the format of character string with a maximum length of 4 characters.
            The list of valid codes is an external code list published separately.
            External code sets can be downloaded from www.iso20022.org.
          x-MXComponent: ExternalCardTransactionCategory1Code
        sale_reconciliation_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique identification of the sales reconciliation period between the acceptor and the acquirer. This identification might be linked to the identification of the settlement for further verification by the merchant.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        sale_reference_number:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique reference of the sales as provided by the merchant.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        re_presentment_reason:
          maxLength: 4
          minLength: 1
          type: string
          description: |
            Reason for representment of a card transaction.

            Specifies the external representment reason code in the format of character string with a maximum length of 4 characters. The list of valid codes is an external code list published separately.
          x-MXComponent: ExternalRePresentmentReason1Code
        sequence_number:
          maxLength: 35
          minLength: 1
          type: string
          description: "Sequential number of the card transaction, as assigned by the POI (Point of Interaction). \nUsage: The sequential number is increased incrementally for each transaction.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n"
          x-MXComponent: Max35Text
        transaction_identification:
          $ref: '#/components/schemas/TransactionIdentifier1'
        product:
          $ref: '#/components/schemas/Product2'
        validation_date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date when the deposit was validated by the financial institution that collected the cash.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        validation_sequence_number:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Sequential number of the validation of the cash deposit.
            Usage: The sequential number is increased incrementally for each transaction.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Individual card transaction entry details.
      x-MXComponent: CardIndividualTransaction2
    CardSecurityInformation1:
      required:
      - csc_management
      type: object
      properties:
        csc_management:
          type: string
          description: |
            Card security code (CSC) management associated with the transaction.

            CSC (Card Security Code) management associated with the transaction.

            Code Name Definition:
            *`BYPS` - CSCByPass - Card security code by-passed or not provided by the merchant.
            *`NCSC` - NoCSC - No card security code imprint.
            *`PRST` - CSCPresent - Card security code present.
            *`UNRD` - CSCUnread - Card security code unreadable.
          enum:
          - BYPS
          - NCSC
          - PRST
          - UNRD
          x-MXComponent: CSCManagement1Code
        csc_value:
          pattern: "^[0-9]{3,4}$"
          type: string
          description: |
            Card security code (CSC).

            Based on datatype Min3Max4NumericText: Specifies a numeric string with a minimum length of 3 digits, and a maximum length of 4 digits.
          x-MXComponent: Min3Max4NumericText
      additionalProperties: false
      description: Card security code (CSC) associated with the card performing the transaction.
      x-MXComponent: CardSecurityInformation1
    CardSequenceNumberRange1:
      type: object
      properties:
        first_transaction:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            CardSequenceNumberRange1: FirstTransactionSequenceNumberMessage element to be finalised once feedback from Card SEG has been received.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        last_transaction:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            CardSequenceNumberRange1: LastTransactionSequenceNumberMessage element to be finalised once feedback from Card SEG has been received.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Range of sequence numbers related to card transactions.
      x-MXComponent: CardSequenceNumberRange1
    CardTransaction17:
      type: object
      properties:
        card:
          $ref: '#/components/schemas/PaymentCard4'
        poi:
          $ref: '#/components/schemas/PointOfInteraction1'
        transaction:
          $ref: '#/components/schemas/CardTransaction3Choice'
        pre_paid_account:
          $ref: '#/components/schemas/CashAccount38'
      additionalProperties: false
      description: Card transaction details.
      x-MXComponent: CardTransaction17
    CardTransaction3Choice:
      type: object
      additionalProperties: true
      description: Choice between an acquirer globalised card transaction or an individual card transaction.
      oneOf:
      - required:
        - aggregated
        type: object
        properties:
          aggregated:
            $ref: '#/components/schemas/CardAggregated2'
        additionalProperties: false
      - required:
        - individual
        type: object
        properties:
          individual:
            $ref: '#/components/schemas/CardIndividualTransaction2'
        additionalProperties: false
      x-MXComponent: CardTransaction3Choice
    CardholderAuthentication2:
      required:
      - authentication_entity
      - authentication_method
      type: object
      properties:
        authentication_method:
          type: string
          description: |
            Method used to authenticate the cardholder.

            Method used to authenticate a cardholder.

            Code Name Definition:
            *`BYPS` - Bypass - Authentication bypassed by the merchant.
            *`CPSG` - SignatureCapture - Electronic signature capture (handwritten signature).
            *`FPIN` - OfflinePIN - Off-line PIN authentication (Personal Identification Number).
            *`MANU` - ManualVerification - Manual verification, for example passport or drivers license.
            *`MERC` - MerchantAuthentication - Merchant-related authentication.
            *`NPIN` - OnLinePIN - On-line PIN authentication (Personal Identification Number).
            *`PPSG` - PaperSignature - Handwritten paper signature.
            *`SCNL` - SecuredChannel - Channel-encrypted transaction.
            *`SCRT` - SecureCertificate - Electronic commerce transaction secured with the X.509 certificate of a customer.
            *`SNCT` - SecureNoCertificate - Secure electronic transaction without cardholder certificate.
            *`UKNW` - UnknownMethod - Authentication method is performed unknown.
          enum:
          - BYPS
          - CPSG
          - FPIN
          - MANU
          - MERC
          - NPIN
          - PPSG
          - SCNL
          - SCRT
          - SNCT
          - UKNW
          x-MXComponent: AuthenticationMethod1Code
        authentication_entity:
          type: string
          description: |
            Entity or object in charge of verifying the cardholder authenticity.

            Entity or object in charge of verifying the cardholder authenticity.

            Code Name Definition:
            *`AGNT` - AuthorisedAgent - Authorisation agent of the issuer.
            *`ICCD` - ICC - Application in the chip card (Integrated Circuit Card), for instance an offline PIN verification.
            *`MERC` - Merchant - Merchant (for example signature verification by the attendant).
          enum:
          - AGNT
          - ICCD
          - MERC
          x-MXComponent: AuthenticationEntity1Code
      additionalProperties: false
      description: Data related to the authentication of the cardholder.
      x-MXComponent: CardholderAuthentication2
    CashAccount214:
      required:
      - currency
      - identification
      type: object
      properties:
        iban:
          pattern: "^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$"
          type: string
          description: |
            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.

            USAGE RULE: IBAN used only for cross-border payments

            Based on datatype IBAN2007Identifier: 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.
          x-MXComponent: IBAN2007Identifier
        identification:
          maxLength: 34
          minLength: 1
          type: string
          description: |
            Unique and unambiguous identification for the account between the account owner and the account servicer.
            ----------
            Usage: CGI-MP: Usage for cash management reporting, when an Entry has been posted to a Virtual Account, the Debtor Account or Creditor Account must be the Physical Account.

            If Proxy is present and neither IBAN or other ID is available, then populate the other ID with "PROXYREF".
            ----------
            Usage: India Market Practice:
            - NACH: 23.17 Beneficiary's Bank Account number
            Mandatory, 35-character description.
            - NEFT: N061.6061 Beneficiary Customer Account Number
            Mandatory, 35x
            -NG-RTGS: Creditor's Account Numer
            Mandatory, Max34Text
            - ECS/NECS: 11.5 Destination Account Number
            15-character description.

            Required for Foreign Remittances as well.
            ----------


            Based on datatype Max34Text: Specifies a character string with a maximum length of 34 characters.
          x-MXComponent: Max34Text
        type:
          maxLength: 4
          minLength: 1
          type: string
          description: "Specifies the nature, or use of the account.\nAvailable Codes:\nFirst priority code is an ExternalCashAccountType1Code as published on www.ISO.20022.org. \nAugust 2024 version lists the following code values:\nCACC - Current - Account used to post debits and credits when no specific account has been nominated.\nCARD - CardAccount - Account used for credit card payments.\nCASH - CashPayment - Account used for the payment of cash.\nCHAR - Charges - Account used for charges if different from the account for payment.\nCISH - CashIncome - Account used for payment of income if different from the current cash account\nCOMM - Commission - Account used for commission if different from the account for payment.\nCPAC - ClearingParticipantSettlementAccount - Account used to post settlement debit and credit entries on behalf of a designated Clearing Participant.\nLLSV - LimitedLiquiditySavingsAccount - Account used for savings with special interest and withdrawal terms.  \nLOAN - Loan - Account used for loans.\nMGLD - MarginalLending - Account used for a marginal lending facility.\nMOMA - MoneyMarket - Account used for money markets if different from the cash account.\nNREX - NonResidentExternal - Account used for non-resident external.\nODFT - Overdraft - Account is used for overdrafts.\nONDP - OverNightDeposit - Account used for overnight deposits.\nOTHR - OtherAccount - Account not otherwise specified. \nSACC - Settlement - Account used to post debit and credit entries, as a result of transactions cleared and settled through a specific clearing and settlement system.\nSLRY - Salary - Accounts used for salary payments.\nSVGS - Savings - Account used for savings.\nTAXE - Tax - Account used for taxes if different from the account for payment.\nTRAN - TransactingAccount - A transacting account is the most basic type of bank account that you can get. The main difference between transaction and cheque accounts is that you usually do not get a cheque book with your transacting account and neither are you offered an overdraft facility.\nTRAS - CashTrading - Account used for trading if different from the current cash account.\nVACC - VirtualAccount - Account created virtually to facilitate collection and reconciliation.\nNFCA - NonResidentForeignCurrencyAccount - Non-Resident Individual / Entity Foreign Current held domestically.\n\nMapping guidelines for local market practice codes.\nFor example, India specific codes:\nSVGS: 10 (Savings)                         \nCACC: 11 (Current)                                 \nCASH: 13 (Cash Credit)                                 \nLOAN: 14 (Loan)\nODFT: 12 (Overdraft)\nNREX: 40 (Non-Resident External Account)\nCARD: 52 (Card Payments)\n\nNACH: 23.3 Destination Account Type\nOptional, 2-digit code as provided by Bank - Needs to be as per NECS (10/11/12/29/30/31) or blank.\n\nECS/NECS: 11.3 Destination Account Type (S.B. account or Current account)\n2-digit code (10/11/12/29/30/31).\n\nNEFT: N06.6310 Beneficiary Customer Account Type\nOptional\n50 = Remittance for Customer not having account in bank\n51 = Indo Nepal Remittance\n\nNG-RTGS: To be used to accommodate NEFT Account type information. This is also useful to document NRE account type for the RTGS.\n\nBased on datatype Max4Text: Specifies a character string with a maximum length of 4 characters.\n"
          x-MXComponent: Max4Text
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          description: "Identification of the currency in which the account is held. \n\nUsage: Currency should only be used in case one and the same account number covers several currencies\nand the initiating party needs to identify which currency needs to be used for settlement on the account.\n\nUSAGE RULE: NG-RTGS: For NG-RTGS, “INR” is the only currency that can be specified.\nUSAGE RULE: mandatory for creditor account and debtor account for payment instructions; not used for status reporting.\n\nA 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\".\n"
          x-MXComponent: ActiveOrHistoricCurrencyCode
        name:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            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.



            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        proxy:
          $ref: '#/components/schemas/ProxyAccountIdentification1'
      additionalProperties: false
      description: Provides the details to identify an account.
    CashAccount216:
      required:
      - currency
      - servicer
      type: object
      properties:
        identification:
          $ref: '#/components/schemas/AccountIdentification79Choice'
        type:
          maxLength: 4
          minLength: 1
          type: string
          description: "Specifies the nature, or use of the account.\n\nUsage: Available Codes: First priority code is an ExternalCashAccountType1Code as published on the ISO 20022 website as follows: \n\nCACC - Current - Account used to post debits and credits when no specific account has been nominated.\nCARD - CardAccount - Account used for credit card payments.\nCASH - CashPayment - Account used for the payment of cash.\nCHAR - Charges - Account used for charges if different from the account for payment.\nCISH - CashIncome - Account used for payment of income if different from the current cash account\nCOMM - Commission - Account used for commission if different from the account for payment.\nCPAC - ClearingParticipantSettlementAccount - Account used to post settlement debit and credit entries on behalf of a designated Clearing Participant.\nLLSV - LimitedLiquiditySavingsAccount - Account used for savings with special interest and withdrawal terms.  \nLOAN - Loan - Account used for loans.\nMGLD - MarginalLending - Account used for a marginal lending facility.\nMOMA - MoneyMarket - Account used for money markets if different from the cash account.\nNREX - NonResidentExternal - Account used for non-resident external.\nODFT - Overdraft - Account is used for overdrafts.\nONDP - OverNightDeposit - Account used for overnight deposits.\nOTHR - OtherAccount - Account not otherwise specified. \nSACC - Settlement - Account used to post debit and credit entries, as a result of transactions cleared and settled through a specific clearing and settlement system.\nSLRY - Salary - Accounts used for salary payments.\nSVGS - Savings - Account used for savings.\nTAXE - Tax - Account used for taxes if different from the account for payment.\nTRAN - TransactingAccount - A transacting account is the most basic type of bank account that you can get. The main difference between transaction and cheque accounts is that you usually do not get a cheque book with your transacting account and neither are you offered an overdraft facility.\nTRAS - CashTrading - Account used for trading if different from the current cash account.\nVACC - VirtualAccount - Account created virtually to facilitate collection and reconciliation.\nNFCA - NonResidentForeignCurrencyAccount - Non-Resident Individual / Entity Foreign Current held domestically.\n\nThe above codeset is available to download from the ISO20022.org external code list page:\nhttps://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets.\n----------\nUsage: India Market Practice:\nMapping guidelines for local market practice codes.\nFor example, India specific codes:\nSVGS: 10 (Savings)                         \nCACC: 11 (Current)                                 \nCASH: 13 (Cash Credit)                                 \nLOAN: 14 (Loan)\nODFT: 12 (Overdraft)\nNREX: 40 (Non-Resident External Account)\nCARD: 52 (Card Payments)\n----------\n\nSpecifies the nature, or use, of the cash account in the format of character string with a maximum length of 4 characters.\nThe list of valid codes is an external code list published separately.\nExternal code sets can be downloaded from www.iso20022.org.\n"
          x-MXComponent: ExternalCashAccountType1Code
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          description: |
            Identification of the currency in which the account is held.

            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".
          x-MXComponent: ActiveOrHistoricCurrencyCode
        name:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            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.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        proxy:
          $ref: '#/components/schemas/ProxyAccountIdentification1'
        owner:
          $ref: '#/components/schemas/PartyIdentification311'
        servicer:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification15'
      additionalProperties: false
      description: Provides the details to identify an account.
      x-MXComponent: CashAccount216
    CashAccount38:
      required:
      - identification
      type: object
      properties:
        identification:
          $ref: '#/components/schemas/AccountIdentification4Choice'
        type:
          $ref: '#/components/schemas/CashAccountType2Choice'
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          description: "Identification of the currency in which the account is held. \n\nUsage: Currency should only be used in case one and the same account number covers several currencies\nand the initiating party needs to identify which currency needs to be used for settlement on the account.\n\nA 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\".\n"
          x-MXComponent: ActiveOrHistoricCurrencyCode
        name:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            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.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        proxy:
          $ref: '#/components/schemas/ProxyAccountIdentification1'
      additionalProperties: false
      description: Provides the details to identify an account.
      x-MXComponent: CashAccount38
    CashAccountType2Choice:
      type: object
      additionalProperties: true
      description: Nature or use of the account.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 4
            minLength: 1
            type: string
            description: |
              Account type, in a coded form.

              Specifies the nature, or use, of the cash account in the format of character string with a maximum length of 4 characters.
              The list of valid codes is an external code list published separately.
              External code sets can be downloaded from www.iso20022.org.
            x-MXComponent: ExternalCashAccountType1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Nature or use of the account in a proprietary form.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: CashAccountType2Choice
    CashAvailability1:
      required:
      - amount
      - credit_debit_indicator
      - date
      type: object
      properties:
        date:
          $ref: '#/components/schemas/CashAvailabilityDate1Choice'
        amount:
          $ref: '#/components/schemas/CashAvailability1_amount'
        credit_debit_indicator:
          type: string
          description: "Indicates whether the availability balance is a credit or a debit balance. \nUsage: A zero balance is considered to be a credit balance.\n\nSpecifies if an operation is an increase or a decrease.\n\nCode Name Definition:\n*`CRDT` - Credit - Operation is an increase.\n*`DBIT` - Debit - Operation is a decrease.\nSynonyms\nValue: :22F::CRDB - Context: ISO 15022\n"
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
      additionalProperties: false
      description: "Indicates when the amount of money will become available, that is can be accessed and start generating interest."
      x-MXComponent: CashAvailability1
    CashAvailabilityDate1Choice:
      type: object
      additionalProperties: true
      description: Indicates when the amount of money will become available.
      oneOf:
      - required:
        - number_of_days
        type: object
        properties:
          number_of_days:
            pattern: "^[\\+]{0,1}[0-9]{1,15}$"
            type: string
            description: |
              Indicates the number of float days attached to the balance.

              Based on datatype Max15PlusSignedNumericText: Specifies a numeric string with a maximum length of 15 digits and may be prefixed with a plus sign.
            x-MXComponent: Max15PlusSignedNumericText
        additionalProperties: false
      - required:
        - actual_date
        type: object
        properties:
          actual_date:
            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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
            type: string
            description: |
              Identifies the actual availability date.

              Based on datatype ISODate: 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.
            x-MXComponent: ISODate
        additionalProperties: false
      x-MXComponent: CashAvailabilityDate1Choice
    CashBalance17:
      required:
      - amount
      - balance_type
      - credit_debit_indicator
      - date
      type: object
      properties:
        balance_type:
          type: string
          description: "Specifies the nature of a balance.\n----------\nUsage: CGI-MP: Mandatory Codes to implement: \nCLBD: Closing Booked\nOPBD: Opening Booked \n\nUsage: CGI-MP: Bilaterally Agreed Code usage:\nCLAV: Closing Available\nFWAV: Forward Available\nOPAV: Opening Available\nPRCD: Previously Closed Booked\nXPCD: Expected.\n\nExample:  The Statement is for the bookings of September 1\n- The Opening Booked OPBD balance would have a date-attribute of September 1\n- The Previous Booked PRCD balance would have a date-attribute of August 31 (bilateral)\n----------\n\nSpecifies the balance type used in the account report.\n\nCode Name Definition:\n*`CLAV` - ClosingAvailable - Closing balance of amount of money that is at the disposal of the account owner on the date specified.\n*`CLBD` - ClosingBooked - Balance of the account at the end of the pre-agreed account reporting period. It is the sum of the opening booked balance at the beginning of the period and all entries booked to the account during the pre-agreed account reporting period.\n*`FWAV` - ForwardAvailable - Forward available balance of money that is at the disposal of the account owner on the date specified.\n*`OPAV` - OpeningAvailable - Opening balance of amount of money that is at the disposal of the account owner on the date specified.\n*`OPBD` - OpeningBooked - Book balance of the account at the beginning of the account reporting period. It always equals the closing book balance from the previous report.\n*`PRCD` - PreviouslyClosedBooked - Balance of the account at the previously closed account reporting period. The opening booked balance for the new period has to be equal to this balance. \n\nUsage: the previously booked closing balance should equal (inclusive date) the booked closing balance of the date it references and equal the actual booked opening balance of the current date.\n*`XPCD` - Expected - Balance, composed of booked entries and pending items known at the time of calculation, which projects the end of day balance if everything is booked on the account and no other entry is posted.\n"
          enum:
          - CLAV
          - CLBD
          - FWAV
          - OPAV
          - OPBD
          - PRCD
          - XPCD
          x-MXComponent: ReportBalanceType12Code
        balance_sub_type:
          maxLength: 4
          minLength: 1
          type: string
          description: |
            Specifies the balance sub-type.
            ----------
            Usage Rule: CGI-MP: Required Code for a multi-page statement or report.
            INTM = Interim
            Used together with the opening (OPBD) and closing (CLBD) balance type codes incrementally carried forward from one page to the next in a multi-page statement or report.
            ----------

            Subset of balance sub type codes as used in the statement.

            Code Name Definition:
            *`INTM` - Interim - Balance calculated in the course of the account servicer's business day, at the time specified, and subject to further changes during the business day. The interim balance is calculated on the basis of booked credit and debit items during the calculation time/period specified.
          enum:
          - INTM
          x-MXComponent: StatementBalanceSubType16Code
        credit_line:
          type: array
          description: "Set of elements used to provide details on the credit line.\n----------\nUsage: CGI-MP: For cash management reporting, may be used to report the available overdraft facility as part of the overall balance. \nE.g., available GBP 1,000 credit balance and GBP 10,000 overdraft, the overall balance can be reflected as GBP 11,000\n----------\n"
          items:
            $ref: '#/components/schemas/CreditLine5'
        amount:
          $ref: '#/components/schemas/CashBalance17_amount'
        credit_debit_indicator:
          type: string
          description: "Indicates whether the balance is a credit or a debit balance. \nUsage: A zero balance is considered to be a credit balance.\n\nSpecifies if an operation is an increase or a decrease.\n\nCode Name Definition:\n*`CRDT` - Credit - Operation is an increase.\n*`DBIT` - Debit - Operation is a decrease.\nSynonyms\nValue: :22F::CRDB - Context: ISO 15022\n"
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
        date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Indicates the date of the balance.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        availability:
          type: array
          description: "Set of elements used to indicate when the booked amount of money will become available, that is can be accessed and starts generating interest. \n\nUsage: This type of information is used in the US and is linked to particular instruments such as cheques.\nExample: When a cheque is deposited, it will be booked on the deposit day, but the amount of money will only be accessible as of the indicated availability day (according to national banking regulations).\n\nISO 20022: If Type is equal to ForwardAvailable, Availability is not allowed.\n"
          items:
            $ref: '#/components/schemas/CashAvailability1'
      additionalProperties: false
      description: Set of elements used to define the balance details.
    CashBalance18:
      required:
      - amount
      - balance_type
      - credit_debit_indicator
      - date
      type: object
      properties:
        balance_type:
          type: string
          description: "Specifies the nature of a balance.\n----------\nUsage: CGI-MP: Bilaterally Agreed Code usage:\nCLAV: Closing Available: When reported, the Closing Available Balance should only be sent on the last report of the report-date.  \n\nCLBD: Closing Booked: When reported, the Closing Booked Balance should only be sent on the last report of the report-date.  \n\nOPBD: Opening Booked: When reported, it will report the Booked Balance for the Report-Date. The Opening Booked Balance may be present in the first account report of the report-date and omitted in subsequent reports for that report-date.\n\nOPAV: Opening Available: When reported, it will report the Opening Available Balance for the Report-Date.  The Opening Available Balance may be present in the first account report of the report-date and omitted in subsequent reports for that report-date.\n\nPRCD: Previously Closed Booked: When reported, it will report the Booked Balance for the business-date prior to the Report-Date.  The Previous Closing Booked Balance may be present in the first account report of the report-date and omitted in subsequent reports for that report-date.\n\nFWAV: Forward Available\nXPCD: Expected.\n----------\n\n\nSpecifies the balance type used in the account report.\n\nCode Name Definition:\n*`CLAV` - ClosingAvailable - Closing balance of amount of money that is at the disposal of the account owner on the date specified.\n*`CLBD` - ClosingBooked - Balance of the account at the end of the pre-agreed account reporting period. It is the sum of the opening booked balance at the beginning of the period and all entries booked to the account during the pre-agreed account reporting period.\n*`FWAV` - ForwardAvailable - Forward available balance of money that is at the disposal of the account owner on the date specified.\n*`ITAV` - InterimAvailable - Available balance calculated in the course of the account servicer's business day, at the time specified, and subject to further changes during the business day. The interim balance is calculated on the basis of booked credit and debit items during the calculation time/period specified.\n*`ITBD` - InterimBooked - Balance calculated in the course of the account servicer's business day, at the time specified, and subject to further changes during the business day. The interim balance is calculated on the basis of booked credit and debit items during the calculation time/period specified.\n*`OPAV` - OpeningAvailable - Opening balance of amount of money that is at the disposal of the account owner on the date specified.\n*`OPBD` - OpeningBooked - Book balance of the account at the beginning of the account reporting period. It always equals the closing book balance from the previous report.\n*`PRCD` - PreviouslyClosedBooked - Balance of the account at the previously closed account reporting period. The opening booked balance for the new period has to be equal to this balance. \n\nUsage: the previously booked closing balance should equal (inclusive date) the booked closing balance of the date it references and equal the actual booked opening balance of the current date.\n*`XPCD` - Expected - Balance, composed of booked entries and pending items known at the time of calculation, which projects the end of day balance if everything is booked on the account and no other entry is posted.\n"
          enum:
          - CLAV
          - CLBD
          - FWAV
          - ITAV
          - ITBD
          - OPAV
          - OPBD
          - PRCD
          - XPCD
          x-MXComponent: ReportBalanceType13Code
        balance_sub_type:
          maxLength: 4
          minLength: 1
          type: string
          description: |
            Specifies the balance sub-type.
            ----------
            Usage: CGI-MP: May be utilized to report Reserve Balances or other proprietary balance amounts.
            ----------

            Specifies the balance sub-type, as published in an external balance sub-type code list.
            External code sets can be downloaded from www.iso20022.org.
          x-MXComponent: ExternalBalanceSubType1Code
        credit_line:
          type: array
          description: Set of elements used to provide details on the credit line.
          items:
            $ref: '#/components/schemas/CreditLine5'
        amount:
          $ref: '#/components/schemas/CashBalance17_amount'
        credit_debit_indicator:
          type: string
          description: "Indicates whether the balance is a credit or a debit balance. \nUsage: A zero balance is considered to be a credit balance.\n\nSpecifies if an operation is an increase or a decrease.\n\nCode Name Definition:\n*`CRDT` - Credit - Operation is an increase.\n*`DBIT` - Debit - Operation is a decrease.\nSynonyms\nValue: :22F::CRDB - Context: ISO 15022\n"
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
        date:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Indicates the date (and time) of the balance.

            CGI-MP: Use local time with the UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), otherwise use UTC time format (YYYY-MM-DDThh:mm:ss.sssZ).

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        availability:
          type: array
          description: "Set of elements used to indicate when the booked amount of money will become available, that is can be accessed and starts generating interest. \n\nUsage: This type of information is used in the US and is linked to particular instruments such as cheques.\nExample: When a cheque is deposited, it will be booked on the deposit day, but the amount of money will only be accessible as of the indicated availability day (according to national banking regulations).\n\nISO Rule: If Type is equal to ForwardAvailable, Availability is not allowed.\n"
          items:
            $ref: '#/components/schemas/CashAvailability1'
      additionalProperties: false
      description: Set of elements used to define the balance details.
      x-MXComponent: CashBalance18
    CashDeposit1:
      required:
      - amount
      - note_denomination
      - number_of_notes
      type: object
      properties:
        note_denomination:
          $ref: '#/components/schemas/CashDeposit1_note_denomination'
        number_of_notes:
          pattern: "^[0-9]{1,15}$"
          type: string
          description: |
            Specifies the number of notes of the same denomination in the deposit.

            Based on datatype Max15NumericText: Specifies a numeric string with a maximum length of 15 digits.
          x-MXComponent: Max15NumericText
        amount:
          $ref: '#/components/schemas/CashDeposit1_amount'
      additionalProperties: false
      description: Deposit of an amount of money defined in cash notes and/or coins.
      x-MXComponent: CashDeposit1
    CashManagementNotificationDataCGI2:
      required:
      - account
      - creation_date_time
      - electronic_sequence_number
      - extended_account_identification
      - from_date_time
      - notification_entry
      - notification_identification
      - to_date_time
      - transactions_summary
      type: object
      properties:
        extended_account_identification:
          maxLength: 72
          minLength: 1
          type: string
          description: "Unique identification of the customer's account  as defined by the bank's server. \nUSAGE: this field is longer than the usual 34x for accounts, to allow for flexibility when the account id must be combined with other parameters such as a BIC, or a system id, to become a unique key field.\n\nBased on datatype Max72Text: Specifies a character string with a maximum length of 72 characters.\n"
          x-MXComponent: Max72Text
        notification_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Point to point reference, as assigned by the account servicing institution, and sent to the account owner or the party authorised to receive the API, to unambiguously identify the API.

            Usage: The account servicing institution has to make sure that BankToCustomerDebitCreditNotification is unique per account owner for a pre-agreed period.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        creation_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which the API was created.

            Usage Rule: CGI-MP: Use local time with the UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), otherwise use UTC time format (YYYY-MM-DDThh:mm:ss.sssZ).

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        recipient:
          $ref: '#/components/schemas/PartyIdentification310'
        from_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which the period starts for which the account statement is issued.

            CGI-MP: Use local time with the UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), otherwise use UTC time format (YYYY-MM-DDThh:mm:ss.sssZ).

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        to_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which the period ends for which the account statement is issued.

            CGI-MP: Use local time with the UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), otherwise use UTC time format (YYYY-MM-DDThh:mm:ss.sssZ).

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        additional_information:
          maxLength: 500
          minLength: 1
          type: string
          description: |
            Further details of the notification.

            Usage Rule: CGI-MP: may be used to indicate a particular type of notification, recognizing all transactions within the notification belong to the type indicated below:
            /LBOX/ Lock Box
            /BULK/ Bulk reporting (batch transaction with underlying transaction)
            /RTRN/ Return report
            /CRED/ Notification with Credit entries ONLY.

            Based on datatype Max500Text: Specifies a character string with a maximum length of 500 characters.
          x-MXComponent: Max500Text
        electronic_sequence_number:
          maxLength: 19
          type: string
          description: |
            Sequential number of the statement, as assigned by the account servicer.
            Usage: The sequential number is increased incrementally for each statement sent electronically.

            Usage Rule: CGI-MP: For Copy, Copy Duplicate, or Duplicate reports, the electronic sequence and legal sequence must be the same as the original report.

            Based on datatype Number: Number of objects represented as an integer.
          x-MXComponent: Number
        legal_sequence_number:
          maxLength: 19
          type: string
          description: |
            Legal sequential number of the statement, as assigned by the account servicer. It is increased incrementally for each statement sent.

            Usage: Where a paper statement is a legal requirement, it may have a number different from the electronic sequential number. Paper statements could for instance only be sent if movement on the account has taken place, whereas electronic statements could be sent at the end of each reporting period, regardless of whether movements have taken place or not.

            Usage Rule: CGI-MP: For Copy, Copy Duplicate, or Duplicate reports, the electronic sequence and legal sequence must be the same as the original report.

            Based on datatype Number: Number of objects represented as an integer.
          x-MXComponent: Number
        copy_duplicate_indicator:
          type: string
          description: |
            Indicates whether the document is a copy, a duplicate, or a duplicate of a copy.

            Usage Rule: CGI-MP: For Copy, Copy Duplicate, or Duplicate reports, the electronic sequence and legal sequence must be the same as the original report.

            Specifies if this document is a copy, a duplicate, or a duplicate of a copy.

            Code Name Definition:
            *`CODU` - CopyDuplicate - Message is being sent as a copy to a party other than the account owner, for information purposes and the message is a duplicate of a message previously sent.
            *`COPY` - Copy - Message is being sent as a copy to a party other than the account owner, for information purposes.
            *`DUPL` - Duplicate - Message is for information/confirmation purposes. It is a duplicate of a message previously sent.
          enum:
          - CODU
          - COPY
          - DUPL
          x-MXComponent: CopyDuplicate1Code
        reporting_source:
          maxLength: 4
          minLength: 1
          type: string
          description: "Specifies the application used to generate the reporting.\n\nUsage Rule: CGI-MP: Allows the Account Servicer to define the source of the intraday account entry and or account balance report, typically associated with an application. [Populate with] the external Reporting Source code list. For example ACCT represents a statement or report based on accounting data, whereas DEPT represents a cash or deposit system. \nACCT Accounting\nARPF AccountReconciliationSystemFull\nARP AccountReconciliationSystemPartial\nCTDB ControlledDisbursementSystem\nCUST Custody\nDEPT DepositSystem\nDPCS DepositConcentrationSystem\nLKBX Lockbox\nRCPT Receipts\n\nFor the latest list, see: https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets\n\nSpecifies the reporting source, as published in an external reporting source code list.\nExternal code sets can be downloaded from www.iso20022.org.\n"
          x-MXComponent: ExternalReportingSource1Code
        account:
          $ref: '#/components/schemas/CashAccount216'
        related_account:
          $ref: '#/components/schemas/CashAccount214'
        transactions_summary:
          $ref: '#/components/schemas/TotalTransactions7'
        notification_entry:
          type: array
          description: Reports on BOOKED entries and balances for a cash account.
          items:
            $ref: '#/components/schemas/EntryData16'
      additionalProperties: false
      description: "Scope\nThe BankToCustomerDebitCreditNotificationCGIMP (\"API\") is sent by the account servicer to an account owner or to a party authorised by the account owner to receive the API. It can be used to inform the account owner, or authorised party, of single or multiple debit and/or credit entries reported to the account.\n\nUsage\nThe BankToCustomerDebitCreditNotificationCGIMP (\"API\") can contain reports for more than one account. It provides information for cash management and/or reconciliation.\nThe API can be used to:\n- report pending and booked items;\n- notify one or more debit entries;\n- notify one or more credit entries;\n- notify a combination of debit and credit entries.\nIt can include underlying details of transactions that have been included in the entry.\nIt is possible that the receiver of the API is not the account owner, but a party entitled by the account owner to receive the account information (also known as recipient).\nIt does not contain balance information.\n- The API is aligned with CGI-MP Common Global Implementation Market Practice (ISO 2019 version). \n"
      x-MXComponent: CashManagementNotificationDataCGI2
    CashManagementReportDataCGI2:
      required:
      - account
      - creation_date_time
      - electronic_sequence_number
      - extended_account_identification
      - from_date_time
      - report_identification
      - to_date_time
      - transactions_summary
      type: object
      properties:
        extended_account_identification:
          maxLength: 72
          minLength: 1
          type: string
          description: "Unique identification of the customer's account  as defined by the bank's server. \nUSAGE: this field is longer than the usual 34x for accounts, to allow for flexibility when the account id must be combined with other parameters such as a BIC, or a system id, to become a unique key field.\n\nBased on datatype Max72Text: Specifies a character string with a maximum length of 72 characters.\n"
          x-MXComponent: Max72Text
        report_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Point to point reference, as assigned by the account servicing institution, and sent to the account owner or the party authorised to receive the message, to unambiguously identify the message.

            Usage: The account servicing institution has to make sure that BankToCustomerAccountReportIdentification is unique per account owner for a pre-agreed period.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        creation_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which the API was created.

            Usage Rule: CGI-MP: Use local time with the UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), otherwise use UTC time format (YYYY-MM-DDThh:mm:ss.sssZ).

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        recipient:
          $ref: '#/components/schemas/PartyIdentification310'
        from_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which the period starts for which the account statement is issued.

            CGI-MP: Use local time with the UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), otherwise use UTC time format (YYYY-MM-DDThh:mm:ss.sssZ).

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        to_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which the period ends for which the account statement is issued.

            CGI-MP: Use local time with the UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), otherwise use UTC time format (YYYY-MM-DDThh:mm:ss.sssZ).

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        additional_information:
          maxLength: 500
          minLength: 1
          type: string
          description: |
            Further details of the account report.

            Based on datatype Max500Text: Specifies a character string with a maximum length of 500 characters.
          x-MXComponent: Max500Text
        electronic_sequence_number:
          maxLength: 19
          type: string
          description: |
            Sequential number of the statement, as assigned by the account servicer.
            Usage: The sequential number is increased incrementally for each statement sent electronically.

            Usage Rule: CGI-MP: For Copy, Copy Duplicate, or Duplicate reports, the electronic sequence and legal sequence must be the same as the original report.

            Based on datatype Number: Number of objects represented as an integer.
          x-MXComponent: Number
        legal_sequence_number:
          maxLength: 19
          type: string
          description: |
            Legal sequential number of the statement, as assigned by the account servicer. It is increased incrementally for each statement sent.

            Usage: Where a paper statement is a legal requirement, it may have a number different from the electronic sequential number. Paper statements could for instance only be sent if movement on the account has taken place, whereas electronic statements could be sent at the end of each reporting period, regardless of whether movements have taken place or not.

            Usage Rule: CGI-MP: For Copy, Copy Duplicate, or Duplicate reports, the electronic sequence and legal sequence must be the same as the original report.

            Based on datatype Number: Number of objects represented as an integer.
          x-MXComponent: Number
        copy_duplicate_indicator:
          type: string
          description: |
            Indicates whether the document is a copy, a duplicate, or a duplicate of a copy.

            Usage Rule: CGI-MP: For Copy, Copy Duplicate, or Duplicate reports, the electronic sequence and legal sequence must be the same as the original report.

            Specifies if this document is a copy, a duplicate, or a duplicate of a copy.

            Code Name Definition:
            *`CODU` - CopyDuplicate - Message is being sent as a copy to a party other than the account owner, for information purposes and the message is a duplicate of a message previously sent.
            *`COPY` - Copy - Message is being sent as a copy to a party other than the account owner, for information purposes.
            *`DUPL` - Duplicate - Message is for information/confirmation purposes. It is a duplicate of a message previously sent.
          enum:
          - CODU
          - COPY
          - DUPL
          x-MXComponent: CopyDuplicate1Code
        reporting_source:
          maxLength: 4
          minLength: 1
          type: string
          description: "Specifies the application used to generate the reporting.\n\nUsage Rule: CGI-MP: Allows the Account Servicer to define the source of the intraday account entry and or account balance report, typically associated with an application. [Populate with] the external Reporting Source code list. For example ACCT represents a statement or report based on accounting data, whereas DEPT represents a cash or deposit system. \nACCT Accounting\nARPF AccountReconciliationSystemFull\nARP AccountReconciliationSystemPartial\nCTDB ControlledDisbursementSystem\nCUST Custody\nDEPT DepositSystem\nDPCS DepositConcentrationSystem\nLKBX Lockbox\nRCPT Receipts \n\nFor the latest list, see: https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets\n\nSpecifies the reporting source, as published in an external reporting source code list.\nExternal code sets can be downloaded from www.iso20022.org.\n"
          x-MXComponent: ExternalReportingSource1Code
        account:
          $ref: '#/components/schemas/CashAccount216'
        related_account:
          $ref: '#/components/schemas/CashAccount214'
        balance:
          type: array
          description: Set of elements used to define the balance as a numerical representation of the net increases and decreases in an account at a specific point in time.
          items:
            $ref: '#/components/schemas/CashBalance18'
          minItems: 1
        transactions_summary:
          $ref: '#/components/schemas/TotalTransactions7'
        report_entry:
          type: array
          description: |
            Reports on a cash account.
            ----------
            Usage: CGI-MP: Can be absent if there is no account movement.
            ----------
          items:
            $ref: '#/components/schemas/EntryData17'
      additionalProperties: false
      description: "TScope\nThe BankToCustomerAccountReportCGIMP (\"API\") is sent by the account servicer to an account owner or to a party authorised by the account owner to receive the API. It can be used to inform the account owner, or authorised party, of the entries reported to the account, and/or to provide the owner with balance information on the account at a given point in time.\n\nUsage\nThe BankToCustomerAccountReportCGIMP (\"API\") can contain reports for more than one account. It provides information for cash management and/or reconciliation. It can be used to:\n- report pending and booked items;\n- provide balance information.\nIt can include underlying details of transactions that have been included in the entry.\nIt is possible that the receiver of the API is not the account owner, but a party entitled by the account owner to receive the account information (also known as recipient).\nFor a statement, the BankToCustomerStatement API should be used.\n- The API is aligned with CGI-MP Common Global Implementation Market Practice (ISO 2019 version). \n"
      x-MXComponent: CashManagementReportDataCGI2
    CashManagementStatementDataCGI2:
      required:
      - account
      - balance
      - creation_date_time
      - electronic_sequence_number
      - extended_account_identification
      - from_date_time
      - statement_identification
      - to_date_time
      - transactions_summary
      type: object
      properties:
        extended_account_identification:
          maxLength: 72
          minLength: 1
          type: string
          description: "Unique identification of the customer's account  as defined by the bank's server. \nUSAGE: this field is longer than the usual 34x for accounts, to allow for flexibility when the account id must be combined with other parameters such as a BIC, or a system id, to become a unique key field.\n\nBased on datatype Max72Text: Specifies a character string with a maximum length of 72 characters.\n"
          x-MXComponent: Max72Text
        statement_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Point to point reference, as assigned by the account servicing institution, and sent to the account owner or the party authorised to receive the message, to unambiguously identify the message.

            Usage: The account servicing institution has to make sure that BankToCustomerStatementIdentification is unique per account owner for a pre-agreed period.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        creation_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which the API was created.
            ----------
            Usage Rule: CGI-MP: Use local time with the UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), otherwise use UTC time format (YYYY-MM-DDThh:mm:ss.sssZ).
            ----------

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        recipient:
          $ref: '#/components/schemas/PartyIdentification310'
        from_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which the period starts for which the account statement is issued.
            ----------
            Usage Rule: CGI-MP: Use local time with the UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), otherwise use UTC time format (YYYY-MM-DDThh:mm:ss.sssZ).

            If an Account Servicer is unable to provide a FrDtTm value, the FrDtTm value should equal the ToDtTm value.
            ----------

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        to_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which the period ends for which the account statement is issued.
            ----------
            Usage Rule: CGI-MP: Use local time with the UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), otherwise use UTC time format (YYYY-MM-DDThh:mm:ss.sssZ).
            ----------

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        statement_period:
          maxLength: 4
          minLength: 1
          type: string
          description: "Specify various end of cycle statement reporting (statement periods)\n----------\n\nUsage: CGI-MP: When a statements is used for end of cycle statement reporting, the following codes may be used to indicate cycle type. Where this is used, all transactions must be related to that cycle. \n\nEODY - for End of Day - Daily Statement \n\nEOWK - for End of Week - Weekly Statement \n\nEOMH - for End of Month - Monthly Statement \n\nEOYR - for End of Year - Yearly Statement\n----------\n\nSpecify various end of cycle statement reporting (statement periods).\nWhere these codewords are used, all statements within the message are of the same type:\n/EODY/  for End of Day - Daily Statement\n/EOWK/ for End of Week - Weekly Statement\n/EOMH/ for End of Month - Monthly Statement\n/EOYR/ for End of Year - Yearly Statement\n\nCode Name Definition:\n*`EODY` - DailyStatement - End of Day - Daily Statement.\n*`EOMH` - MonthlyStatement - End of Month - Monthly Statement.\n*`EOWK` - WeeklyStatement - End of Week - Weekly Statement.\n*`EOYR` - YearlyStatement - End of Year - Yearly Statement.\n"
          enum:
          - EODY
          - EOMH
          - EOWK
          - EOYR
          x-MXComponent: StatementPeriod1Code
        additional_information:
          maxLength: 500
          minLength: 1
          type: string
          description: |
            Further details of the statement.
            ----------
            Usage: CGI-MP: Other information may be present as bilaterally determined
            ----------

            Based on datatype Max500Text: Specifies a character string with a maximum length of 500 characters.
          x-MXComponent: Max500Text
        electronic_sequence_number:
          maxLength: 19
          type: string
          description: |
            Sequential number of the statement, as assigned by the account servicer.
            Usage: The sequential number is increased incrementally for each statement sent electronically.
            ----------
            Usage Rule: CGI-MP: For Copy, Copy Duplicate, or Duplicate reports, the electronic sequence and legal sequence must be the same as the original report.
            ----------

            Based on datatype Number: Number of objects represented as an integer.
          x-MXComponent: Number
        legal_sequence_number:
          maxLength: 19
          type: string
          description: |
            Legal sequential number of the statement, as assigned by the account servicer. It is increased incrementally for each statement sent.

            Usage: Where a paper statement is a legal requirement, it may have a number different from the electronic sequential number. Paper statements could for instance only be sent if movement on the account has taken place, whereas electronic statements could be sent at the end of each reporting period, regardless of whether movements have taken place or not.
            ----------
            Usage Rule: CGI-MP: For Copy, Copy Duplicate, or Duplicate reports, the electronic sequence and legal sequence must be the same as the original report.
            ----------

            Based on datatype Number: Number of objects represented as an integer.
          x-MXComponent: Number
        copy_duplicate_indicator:
          type: string
          description: |
            Indicates whether the document is a copy, a duplicate, or a duplicate of a copy.
            ----------
            Usage Rule: CGI-MP: For Copy, Copy Duplicate, or Duplicate reports, the electronic sequence and legal sequence must be the same as the original report.
            ----------

            Specifies if this document is a copy, a duplicate, or a duplicate of a copy.

            Code Name Definition:
            *`CODU` - CopyDuplicate - Message is being sent as a copy to a party other than the account owner, for information purposes and the message is a duplicate of a message previously sent.
            *`COPY` - Copy - Message is being sent as a copy to a party other than the account owner, for information purposes.
            *`DUPL` - Duplicate - Message is for information/confirmation purposes. It is a duplicate of a message previously sent.
          enum:
          - CODU
          - COPY
          - DUPL
          x-MXComponent: CopyDuplicate1Code
        reporting_source:
          maxLength: 4
          minLength: 1
          type: string
          description: "Specifies the application used to generate the reporting.\n----------\nUsage Rule: CGI-MP: Allows the Account Servicer to define the source of the intraday account entry and or account balance report, typically associated with an application. [Populate with] the external Reporting Source code list. For example ACCT represents a statement or report based on accounting data, whereas DEPT represents a cash or deposit system:\n\nACCT Accounting\nARPF AccountReconciliationSystemFull\nARP AccountReconciliationSystemPartial\nCTDB ControlledDisbursementSystem\nCUST Custody\nDEPT DepositSystem\nDPCS DepositConcentrationSystem\nLKBX Lockbox\nRCPT Receipts \n\nFor the latest list, see: https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets\n----------\n\nSpecifies the reporting source, as published in an external reporting source code list.\nExternal code sets can be downloaded from www.iso20022.org.\n"
          x-MXComponent: ExternalReportingSource1Code
        account:
          $ref: '#/components/schemas/CashAccount216'
        related_account:
          $ref: '#/components/schemas/CashAccount214'
        balance:
          type: array
          description: Set of elements used to define the balance as a numerical representation of the net increases and decreases in an account at a specific point in time.
          items:
            $ref: '#/components/schemas/CashBalance17'
        transactions_summary:
          $ref: '#/components/schemas/TotalTransactions7'
        statement_entry:
          type: array
          description: |
            Reports on BOOKED entries and balances for a cash account.
            ----------
            Usage: CGI-MP: Can be absent if there is no account movement.
            ----------
          items:
            $ref: '#/components/schemas/EntryData16'
      additionalProperties: false
      description: "Scope\nThe BankToCustomerStatementCGIMP (\"API\") is sent by the account servicer to an account owner or to a party authorised by the account owner to receive the API. It is used to inform the account owner, or authorised party, of the entries booked to the account, and to provide the owner with balance information on the account at a given point in time.\n\nUsage\nThe BankToCustomerStatementCGIMP (\"API\") can contain reports for more than one account. It provides information for cash management and/or reconciliation.\nIt contains information on booked entries only.\nIt can include underlying details of transactions that have been included in the entry.\nThe API is exchanged as defined between the account servicer and the account owner. It provides information on items that have been booked to the account and also balance information. Depending on services and schedule agreed between banks and their customers, statements may be generated and exchanged accordingly, for example for intraday or prior day periods.\nIt is possible that the receiver of the API is not the account owner, but a party entitled through arrangement with the account owner to receive the account information (also known as recipient).\n- The API is aligned with CGI-MP Common Global Implementation Market Practice (ISO 2019 version). \n"
      x-MXComponent: CashManagementStatementDataCGI2
    ChargeType3Choice:
      type: object
      additionalProperties: true
      description: Specifies the charge type.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 4
            minLength: 1
            type: string
            description: |
              Charge type, in a coded form.

              Specifies the nature, or use, of the charges in the format of character string with a maximum length of 4 characters.
              The list of valid codes is an external code list published separately.
              External code sets can be downloaded from www.iso20022.org.
            x-MXComponent: ExternalChargeType1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            $ref: '#/components/schemas/GenericIdentification3'
        additionalProperties: false
      x-MXComponent: ChargeType3Choice
    Charges18:
      type: object
      properties:
        total_charges_and_tax_amount:
          $ref: '#/components/schemas/Charges18_total_charges_and_tax_amount'
        record:
          type: array
          description: Provides details of the individual charges record.
          items:
            $ref: '#/components/schemas/ChargesRecord13'
      additionalProperties: false
      description: Provides further details on the charges related to the payment transaction.
      x-MXComponent: Charges18
    Charges19:
      type: object
      properties:
        total_charges_and_tax_amount:
          $ref: '#/components/schemas/Charges18_total_charges_and_tax_amount'
        record:
          type: array
          description: Provides details of the individual charges record.
          items:
            $ref: '#/components/schemas/ChargesRecord19'
      additionalProperties: false
      description: Provides further details on the charges related to the payment transaction.
      x-MXComponent: Charges19
    ChargesRecord13:
      required:
      - amount
      - credit_debit_indicator
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/ChargesRecord13_amount'
        credit_debit_indicator:
          type: string
          description: "Indicates whether the charges amount is a credit or a debit amount. \nUsage: A zero amount is considered to be a credit.\n\nSpecifies if an operation is an increase or a decrease.\n\nCode Name Definition:\n*`CRDT` - Credit - Operation is an increase.\n*`DBIT` - Debit - Operation is a decrease.\nSynonyms\nValue: :22F::CRDB - Context: ISO 15022\n"
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
        charge_included_indicator:
          type: boolean
          description: |
            Indicates whether the charge should be included in the amount or is added as pre-advice.

            Based on datatype ChargeIncludedIndicator: Indicates whether charges have already been included.
          x-MXComponent: ChargeIncludedIndicator
        type:
          $ref: '#/components/schemas/ChargeType3Choice'
        rate:
          maxLength: 12
          type: string
          description: |
            Rate used to calculate the amount of the charge or fee.

            Based on datatype PercentageRate: Rate expressed as a percentage, that is, in hundredths, for example, 0.7 is 7/10 of a percent, and 7.0 is 7%.
          x-MXComponent: PercentageRate
        bearer:
          type: string
          description: |
            Specifies which party/parties will bear the charges associated with the processing of the payment transaction.
            ----------
            Usage: CGI-MP: Recommended to always be provided when charges are reported.
            ----------

            Specifies which party(ies) will pay charges due for processing of the instruction.

            Code Name Definition:
            *`CRED` - BorneByCreditor - All transaction charges are to be borne by the creditor.
            *`DEBT` - BorneByDebtor - All transaction charges are to be borne by the debtor.
            *`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 side are to be borne by the debtor.
            *`SLEV` - FollowingServiceLevel - Charges are to be applied following the rules agreed in the service level and/or scheme.
          enum:
          - CRED
          - DEBT
          - SHAR
          - SLEV
          x-MXComponent: ChargeBearerType1Code
        agent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification15'
        tax:
          $ref: '#/components/schemas/TaxCharges2'
      additionalProperties: false
      description: Provides further individual record details on the charges related to the payment transaction.
      x-MXComponent: ChargesRecord13
    ChargesRecord19:
      required:
      - amount
      - credit_debit_indicator
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/ChargesRecord13_amount'
        credit_debit_indicator:
          type: string
          description: "Indicates whether the charges amount is a credit or a debit amount. \nUsage: A zero amount is considered to be a credit.\n\nSpecifies if an operation is an increase or a decrease.\n\nCode Name Definition:\n*`CRDT` - Credit - Operation is an increase.\n*`DBIT` - Debit - Operation is a decrease.\nSynonyms\nValue: :22F::CRDB - Context: ISO 15022\n"
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
        charge_included_indicator:
          type: boolean
          description: |
            Indicates whether the charge should be included in the amount or is added as pre-advice.
            ----------
            Usage: CGI-MP: Not present = false
            ----------

            Based on datatype ChargeIncludedIndicator: Indicates whether charges have already been included.
          x-MXComponent: ChargeIncludedIndicator
        type:
          maxLength: 4
          minLength: 1
          type: string
          description: |
            Specifies the type of charge.

            Specifies the nature, or use, of the charges in the format of character string with a maximum length of 4 characters.
            The list of valid codes is an external code list published separately.
            External code sets can be downloaded from www.iso20022.org.
          x-MXComponent: ExternalChargeType1Code
        rate:
          maxLength: 12
          type: string
          description: |
            Rate used to calculate the amount of the charge or fee.

            Based on datatype PercentageRate: Rate expressed as a percentage, that is, in hundredths, for example, 0.7 is 7/10 of a percent, and 7.0 is 7%.
          x-MXComponent: PercentageRate
        bearer:
          type: string
          description: |
            Specifies which party/parties will bear the charges associated with the processing of the payment transaction.

            Specifies which party(ies) will pay charges due for processing of the instruction.

            Code Name Definition:
            *`CRED` - BorneByCreditor - All transaction charges are to be borne by the creditor.
            *`DEBT` - BorneByDebtor - All transaction charges are to be borne by the debtor.
            *`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 side are to be borne by the debtor.
            *`SLEV` - FollowingServiceLevel - Charges are to be applied following the rules agreed in the service level and/or scheme.
          enum:
          - CRED
          - DEBT
          - SHAR
          - SLEV
          x-MXComponent: ChargeBearerType1Code
        agent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification17'
      additionalProperties: false
      description: Provides further individual record details on the charges related to the payment transaction.
      x-MXComponent: ChargesRecord19
    Contact18:
      type: object
      properties:
        name:
          maxLength: 140
          minLength: 1
          type: string
          description: "Name by which a party is known and which is usually used to identify that party.\n----------\nUsage: CGI-MP: Used in cases where the Party is an Entity and individual serves as the contact. \nContact responsible for the administration of the file. \nThe Contact may be a technical contact or the primary consumer of the data.\n----------\n\nBased on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.\n"
          x-MXComponent: Max140Text
        phone_number:
          pattern: "^\\+[0-9]{1,3}-[0-9()+\\-]{1,30}$"
          type: string
          description: |
            Collection of information that identifies a phone number, as defined by telecom services.
            ----------
            Usage: CGI-MP: Contact Details Phone Number, Mobile Number, and Email address are optional.  Phone and Mobile Numbers are both available as Phone Numbers may not be able to receive text messages/notifications.
            ----------

            Based on datatype PhoneNumber: The collection of information which identifies a specific phone or FAX number as defined by telecom services.
            It consists of a "+" followed by the country code (from 1 to 3 characters) then a "-" and finally, any combination of numbers, "(", ")", "+" and "-" (up to 30 characters).
          x-MXComponent: PhoneNumber
        mobile_number:
          pattern: "^\\+[0-9]{1,3}-[0-9()+\\-]{1,30}$"
          type: string
          description: |
            Collection of information that identifies a mobile phone number, as defined by telecom services.

            Based on datatype PhoneNumber: The collection of information which identifies a specific phone or FAX number as defined by telecom services.
            It consists of a "+" followed by the country code (from 1 to 3 characters) then a "-" and finally, any combination of numbers, "(", ")", "+" and "-" (up to 30 characters).
          x-MXComponent: PhoneNumber
        email_address:
          maxLength: 2048
          minLength: 1
          type: string
          description: |
            Address for electronic mail (e-mail).

            Based on datatype Max2048Text: Specifies a character string with a maximum length of 2048 characters.
          x-MXComponent: Max2048Text
      additionalProperties: false
      description: Specifies the details of the contact person.
      x-MXComponent: Contact18
    Contact4:
      type: object
      properties:
        name_prefix:
          type: string
          description: |
            Specifies the terms used to formally address a person.

            Specifies the terms used to formally address a person.

            Code Name Definition:
            *`DOCT` - Doctor - Title of the person is Doctor or Dr.
            *`MADM` - Madam - Title of the person is Madam.
            *`MIKS` - GenderNeutral - Title of the person is gender neutral (Mx).
            *`MISS` - Miss - Title of the person is Miss.
            *`MIST` - Mister - Title of the person is Mister or Mr.
          enum:
          - DOCT
          - MADM
          - MIKS
          - MISS
          - MIST
          x-MXComponent: NamePrefix2Code
        name:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Name by which a party is known and which is usually used to identify that party.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
        phone_number:
          pattern: "^\\+[0-9]{1,3}-[0-9()+\\-]{1,30}$"
          type: string
          description: |
            Collection of information that identifies a phone number, as defined by telecom services.

            Based on datatype PhoneNumber: The collection of information which identifies a specific phone or FAX number as defined by telecom services.
            It consists of a "+" followed by the country code (from 1 to 3 characters) then a "-" and finally, any combination of numbers, "(", ")", "+" and "-" (up to 30 characters).
          x-MXComponent: PhoneNumber
        mobile_number:
          pattern: "^\\+[0-9]{1,3}-[0-9()+\\-]{1,30}$"
          type: string
          description: |
            Collection of information that identifies a mobile phone number, as defined by telecom services.

            Based on datatype PhoneNumber: The collection of information which identifies a specific phone or FAX number as defined by telecom services.
            It consists of a "+" followed by the country code (from 1 to 3 characters) then a "-" and finally, any combination of numbers, "(", ")", "+" and "-" (up to 30 characters).
          x-MXComponent: PhoneNumber
        fax_number:
          pattern: "^\\+[0-9]{1,3}-[0-9()+\\-]{1,30}$"
          type: string
          description: |
            Collection of information that identifies a FAX number, as defined by telecom services.

            Based on datatype PhoneNumber: The collection of information which identifies a specific phone or FAX number as defined by telecom services.
            It consists of a "+" followed by the country code (from 1 to 3 characters) then a "-" and finally, any combination of numbers, "(", ")", "+" and "-" (up to 30 characters).
          x-MXComponent: PhoneNumber
        email_address:
          maxLength: 2048
          minLength: 1
          type: string
          description: |
            Address for electronic mail (e-mail).

            Based on datatype Max2048Text: Specifies a character string with a maximum length of 2048 characters.
          x-MXComponent: Max2048Text
        email_purpose:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Purpose for which an email address may be used.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        job_title:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Title of the function.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        responsibility:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Role of a person in an organisation.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        department:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Identification of a division of a large organisation or building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        other:
          type: array
          description: Contact details in another form.
          items:
            $ref: '#/components/schemas/OtherContact1'
        preferred_method:
          type: string
          description: |
            Preferred method used to reach the contact.

            Preferred method used to reach the individual contact within an organisation.

            Code Name Definition:
            *`CELL` - MobileOrCellPhone - Preferred method used to reach the contact is per mobile or cell phone.
            *`FAXX` - Fax - Preferred method used to reach the contact is per fax.
            *`LETT` - Letter - Preferred method used to reach the contact is per letter.
            *`MAIL` - Email - Preferred method used to reach the contact is per email.
            *`PHON` - Phone - Preferred method used to reach the contact is per phone.
          enum:
          - CELL
          - FAXX
          - LETT
          - MAIL
          - PHON
          x-MXComponent: PreferredContactMethod1Code
      additionalProperties: false
      description: Specifies the details of the contact person.
      x-MXComponent: Contact4
    CreditLine5:
      required:
      - included
      type: object
      properties:
        included:
          type: boolean
          description: |
            Indicates whether or not the credit line is included in the balance.

            Based on datatype TrueFalseIndicator: A flag indicating a True or False value.
          x-MXComponent: TrueFalseIndicator
        type:
          maxLength: 4
          minLength: 1
          type: string
          description: |
            Type of the credit line provided when multiple credit lines may be provided.

            Specifies the external credit line type code in the format of character string with a maximum length of 4 characters.
            The list of valid codes is an external code set published separately.
            External code sets can be downloaded from www.iso20022.org.
          x-MXComponent: ExternalCreditLineType1Code
        amount:
          $ref: '#/components/schemas/CreditLine5_amount'
        date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date of the credit line provided when multiple credit lines may be provided.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
      additionalProperties: false
      description: Set of elements used to provide details of the credit line.
      x-MXComponent: CreditLine5
    CreditorReferenceInformation5:
      required:
      - reference
      type: object
      properties:
        type:
          $ref: '#/components/schemas/CreditorReferenceType1Choice'
        issuer:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Entity that assigns the credit reference type.
            ----------
            Usage: CGI-MP_IssuerRule: Value of 'ISO' reserved for ISO 11649 international creditor's reference.
            ----------

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        reference:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique reference, as assigned by the creditor, to unambiguously refer to the payment transaction.

            Usage: If available, the initiating party should provide this reference in the structured remittance information, to enable reconciliation by the creditor upon receipt of the amount of money.

            If the business context requires the use of a creditor reference or a payment remit identification, and only one identifier can be passed through the end-to-end chain, the creditor's reference or payment remittance identification should be quoted in the end-to-end transaction identification.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Reference information provided by the creditor to allow the identification of the underlying documents.
      x-MXComponent: CreditorReferenceInformation5
    CreditorReferenceType1Choice:
      type: object
      additionalProperties: true
      description: Specifies the type of document referred by the creditor.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            type: string
            description: |
              Type of creditor reference, in a coded form.

              Specifies a type of financial or commercial document.

              Code Name Definition:
              *`DISP` - DispatchAdvice - Document is a dispatch advice.
              *`FXDR` - ForeignExchangeDealReference - Document is a pre-agreed or pre-arranged foreign exchange transaction to which the payment transaction refers.
              *`PUOR` - PurchaseOrder - Document is a purchase order.
              *`RADM` - RemittanceAdviceMessage - Document is a remittance advice sent separately from the current transaction.
              *`RPIN` - RelatedPaymentInstruction - Document is a linked payment instruction to which the current payment instruction is related, for example, in a cover scenario.
              *`SCOR` - StructuredCommunicationReference - Document is a structured communication reference provided by the creditor to identify the referred transaction.
            enum:
            - DISP
            - FXDR
            - PUOR
            - RADM
            - RPIN
            - SCOR
            x-MXComponent: DocumentType3Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Creditor reference type, in a proprietary form.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: CreditorReferenceType1Choice
    CurrencyExchange27:
      required:
      - exchange_rate
      - source_currency
      - target_currency
      type: object
      properties:
        source_currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          description: |
            Currency from which an amount is to be converted in a currency conversion.
            ----------
            Usage: CGI-MP: Original amount currency of the currency exchange made.
            ----------

            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".
          x-MXComponent: ActiveOrHistoricCurrencyCode
        target_currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          description: |
            Currency into which an amount is to be converted in a currency conversion.
            ----------
            Usage: CGI-MP: Resulting currency of the currency exchange made.
            ----------

            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".
          x-MXComponent: ActiveOrHistoricCurrencyCode
        unit_currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          description: |
            Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.
            ----------
            Usage: CGI-MP: Define in which direction the exchange rate is calculated. Decided by the reporting bank or community practice.
            ----------

            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".
          x-MXComponent: ActiveOrHistoricCurrencyCode
        exchange_rate:
          maxLength: 12
          type: string
          description: |
            Factor used to convert an amount from one currency into another. This reflects the price at which one currency was bought with another currency.
            ----------
            Usage: CGI-MP: Given in direction of UnitCurrency and Quotation Currency like “EUR/USD exchange rate is 1.3 (USD per EUR), the price currency is USD and the unit currency is EUR.
            ----------

            Based on datatype BaseOneRate: Rate expressed as a decimal, for example, 0.7 is 7/10 and 70%.
          x-MXComponent: BaseOneRate
        contract_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique identification to unambiguously identify the foreign exchange contract.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        quotation_date:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which an exchange rate is quoted.
            ----------
            Usage Rule: CGI-MP: Use local time with the UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), otherwise use UTC time format (YYYY-MM-DDThh:mm:ss.sssZ).
            ----------

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
      additionalProperties: false
      description: Describes the details of the currency exchange.
      x-MXComponent: CurrencyExchange27
    CurrencyExchange5:
      required:
      - exchange_rate
      - source_currency
      type: object
      properties:
        source_currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          description: |
            Currency from which an amount is to be converted in a currency conversion.

            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".
          x-MXComponent: ActiveOrHistoricCurrencyCode
        target_currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          description: |
            Currency into which an amount is to be converted in a currency conversion.

            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".
          x-MXComponent: ActiveOrHistoricCurrencyCode
        unit_currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          description: |
            Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.

            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".
          x-MXComponent: ActiveOrHistoricCurrencyCode
        exchange_rate:
          maxLength: 12
          type: string
          description: |
            Factor used to convert an amount from one currency into another. This reflects the price at which one currency was bought with another currency.

            Usage: ExchangeRate expresses the ratio between UnitCurrency and QuotedCurrency (ExchangeRate = UnitCurrency/QuotedCurrency).

            Based on datatype BaseOneRate: Rate expressed as a decimal, for example, 0.7 is 7/10 and 70%.
          x-MXComponent: BaseOneRate
        contract_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique identification to unambiguously identify the foreign exchange contract.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        quotation_date:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which an exchange rate is quoted.

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
      additionalProperties: false
      description: Set of elements used to provide details of the currency exchange.
      x-MXComponent: CurrencyExchange5
    DateAndPlaceOfBirth1:
      required:
      - birth_date
      - city_of_birth
      - country_of_birth
      type: object
      properties:
        birth_date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date on which a person is born.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        province_of_birth:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Province where a person was born.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        city_of_birth:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            City where a person was born.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        country_of_birth:
          pattern: "^[A-Z]{2,2}$"
          type: string
          description: |
            Country where a person was born.

            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).
          x-MXComponent: CountryCode
      additionalProperties: false
      description: Date and place of birth of a person.
      x-MXComponent: DateAndPlaceOfBirth1
    DateOrDateTimePeriod1Choice:
      type: object
      additionalProperties: true
      description: Choice between a date or a date and time format for a period.
      oneOf:
      - required:
        - date
        type: object
        properties:
          date:
            $ref: '#/components/schemas/DatePeriod2'
        additionalProperties: false
      - required:
        - date_time
        type: object
        properties:
          date_time:
            $ref: '#/components/schemas/DateTimePeriod1'
        additionalProperties: false
      x-MXComponent: DateOrDateTimePeriod1Choice
    DatePeriod2:
      required:
      - from_date
      - to_date
      type: object
      properties:
        from_date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Start date of the range.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        to_date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            End date of the range.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
      additionalProperties: false
      description: Range of time defined by a start date and an end date.
      x-MXComponent: DatePeriod2
    DateTimePeriod1:
      required:
      - from_date_time
      - to_date_time
      type: object
      properties:
        from_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which the period starts.

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        to_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which the period ends.

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
      additionalProperties: false
      description: "Time span defined by a start date and time, and an end date and time."
      x-MXComponent: DateTimePeriod1
    DiscountAmountAndType1:
      required:
      - amount
      type: object
      properties:
        type:
          $ref: '#/components/schemas/DiscountAmountType1Choice'
        amount:
          $ref: '#/components/schemas/DiscountAmountAndType1_amount'
      additionalProperties: false
      description: Specifies the amount with a specific type.
      x-MXComponent: DiscountAmountAndType1
    DiscountAmountType1Choice:
      type: object
      additionalProperties: true
      description: Specifies the amount type.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 4
            minLength: 1
            type: string
            description: |
              Specifies the amount type, in a coded form.

              Specifies the nature, or use, of the amount in the format of character string with a maximum length of 4 characters.
              The list of valid codes is an external code list published separately.
              External code sets can be downloaded from www.iso20022.org.
            x-MXComponent: ExternalDiscountAmountType1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Specifies the amount type, in a free-text form.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: DiscountAmountType1Choice
    DisplayCapabilities1:
      required:
      - display_type
      - line_width
      - number_of_lines
      type: object
      properties:
        display_type:
          type: string
          description: |
            Type of display (for example merchant or cardholder).

            Type of interface to display a message.

            Code Name Definition:
            *`CDSP` - CardholderDisplay - Cardholder display or interface.
            *`MDSP` - MerchantDisplay - Merchant display or interface.
          enum:
          - CDSP
          - MDSP
          x-MXComponent: UserInterface2Code
        number_of_lines:
          pattern: "^[0-9]{1,3}$"
          type: string
          description: |
            Number of lines of the display component.

            Based on datatype Max3NumericText: Specifies a numeric string with a maximum length of 3 digits.
          x-MXComponent: Max3NumericText
        line_width:
          pattern: "^[0-9]{1,3}$"
          type: string
          description: |
            Number of columns of the display component.

            Based on datatype Max3NumericText: Specifies a numeric string with a maximum length of 3 digits.
          x-MXComponent: Max3NumericText
      additionalProperties: false
      description: The capabilities of the display components performing the transaction.
      x-MXComponent: DisplayCapabilities1
    DocumentAdjustment1:
      required:
      - amount
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/DocumentAdjustment1_amount'
        credit_debit_indicator:
          type: string
          description: |
            Specifies whether the adjustment must be subtracted or added to the total amount.

            Specifies if an operation is an increase or a decrease.

            Code Name Definition:
            *`CRDT` - Credit - Operation is an increase.
            *`DBIT` - Debit - Operation is a decrease.
            Synonyms
            Value: :22F::CRDB - Context: ISO 15022
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
        reason:
          maxLength: 4
          minLength: 1
          type: string
          description: |
            Specifies the reason for the adjustment.

            Based on datatype Max4Text: Specifies a character string with a maximum length of 4 characters.
          x-MXComponent: Max4Text
        additional_information:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Provides further details on the document adjustment.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
      additionalProperties: false
      description: Set of elements used to provide information on the amount and reason of the document adjustment.
      x-MXComponent: DocumentAdjustment1
    DocumentAdjustment4:
      required:
      - amount
      - credit_debit_indicator
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/DocumentAdjustment1_amount'
        credit_debit_indicator:
          type: string
          description: |
            Specifies whether the adjustment must be subtracted or added to the total amount.

            Specifies if an operation is an increase or a decrease.

            Code Name Definition:
            *`CRDT` - Credit - Operation is an increase.
            *`DBIT` - Debit - Operation is a decrease.
            Synonyms
            Value: :22F::CRDB - Context: ISO 15022
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
        reason:
          maxLength: 4
          minLength: 1
          type: string
          description: |
            Specifies the reason for the adjustment.

            Based on datatype Max4Text: Specifies a character string with a maximum length of 4 characters.
          x-MXComponent: Max4Text
        additional_information:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Provides further details on the document adjustment.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
      additionalProperties: false
      description: Set of elements used to provide information on the amount and reason of the document adjustment.
      x-MXComponent: DocumentAdjustment4
    DocumentLineIdentification1:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/DocumentLineType1'
        number:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification of the type specified for the referred document line.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        related_date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date associated with the referred document line.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
      additionalProperties: false
      description: Identifies the documents referred to in the remittance information.
      x-MXComponent: DocumentLineIdentification1
    DocumentLineInformation1:
      required:
      - identification
      type: object
      properties:
        identification:
          type: array
          description: Provides identification of the document line.
          items:
            $ref: '#/components/schemas/DocumentLineIdentification1'
        description:
          maxLength: 2048
          minLength: 1
          type: string
          description: |
            Description associated with the document line.

            Based on datatype Max2048Text: Specifies a character string with a maximum length of 2048 characters.
          x-MXComponent: Max2048Text
        amount:
          $ref: '#/components/schemas/RemittanceAmount3'
      additionalProperties: false
      description: |
        Provides document line information.
      x-MXComponent: DocumentLineInformation1
    DocumentLineType1:
      required:
      - code_or_proprietary
      type: object
      properties:
        code_or_proprietary:
          $ref: '#/components/schemas/DocumentLineType1Choice'
        issuer:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification of the issuer of the reference document line identificationtype.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Specifies the type of the document line identification.
      x-MXComponent: DocumentLineType1
    DocumentLineType1Choice:
      type: object
      additionalProperties: true
      description: Specifies the type of the document line identification.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 4
            minLength: 1
            type: string
            description: |
              Line identification type in a coded form.

              Specifies the document line type as published in an external document type code list.
            x-MXComponent: ExternalDocumentLineType1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Proprietary identification of the type of the remittance document.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: DocumentLineType1Choice
    EntryData16:
      required:
      - amount
      - bank_transaction_code
      - booking_date
      - credit_debit_indicator
      - entry_reference
      - value_date
      type: object
      properties:
        entry_reference:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique reference for the entry.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        amount:
          $ref: '#/components/schemas/EntryData16_amount'
        credit_debit_indicator:
          type: string
          description: |
            Indicates whether the entry is a credit or a debit entry.
            ----------
            Usage Rule: CGI-MP: Zero amount to be reported as a CREDIT.
            ----------


            Specifies if an operation is an increase or a decrease.

            Code Name Definition:
            *`CRDT` - Credit - Operation is an increase.
            *`DBIT` - Debit - Operation is a decrease.
            Synonyms
            Value: :22F::CRDB - Context: ISO 15022
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
        reversal_indicator:
          type: boolean
          description: |
            Indicates whether or not the entry is the result of a reversal.
            Usage: This element should only be present if the entry is the result of a reversal.
            If the CreditDebitIndicator is CRDT and ReversalIndicator is Yes, the original operation was a debit entry.
            If the CreditDebitIndicator is DBIT and ReversalIndicator is Yes, the original operation was a credit entry.
            ----------
            Usage Rule: CGI-MP: This element should only be present when the value is true (the booking is as a result of a payment return or reversal). When true, the Creditor and Debtor parties in are to be aligned with the original settlement APIs/messages.
            ----------

            Based on datatype TrueFalseIndicator: A flag indicating a True or False value.
          x-MXComponent: TrueFalseIndicator
        booking_date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time when an entry is posted to an account on the account servicer's books.

            Usage: Booking date is the expected booking date, unless the status is booked, in which case it is the actual booking date.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        value_date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit entry.
            Usage: If entry status is pending and value date is present, then the value date refers to an expected/requested value date.
            For entries subject to availability/float and for which availability information is provided, the value date must not be used. In this case the availability component identifies the number of availability days.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        account_servicer_reference:
          maxLength: 35
          minLength: 1
          type: string
          description: "Unique reference as assigned by the account servicing institution to unambiguously identify the entry.\n----------\nUsage: CGI-MP: When the same booked entry is reported in the account report or notification, the Account Service reference should be the same as reported in the statement.   \n\nFor a single instance of transaction data, the Account Servicer reference to be reported at the transaction level. \n----------\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n"
          x-MXComponent: Max35Text
        availability:
          type: array
          description: "Indicates when the booked amount of money will become available, that is can be accessed and starts generating interest. \n\nUsage: This type of information is used in the US and is linked to particular instruments such as cheques.\nExample: When a cheque is deposited, it will be booked on the deposit day, but the amount of money will only be accessible as of the indicated availability day (according to national banking regulations).\n"
          items:
            $ref: '#/components/schemas/CashAvailability1'
        bank_transaction_code:
          $ref: '#/components/schemas/BankTransactionCodeStructure8'
        additional_information_indicator:
          $ref: '#/components/schemas/MessageIdentification2'
        charges:
          $ref: '#/components/schemas/Charges19'
        entry_data:
          type: array
          description: |
            Provides details on the entry.
            ----------
            Usage: CGI-MP: May be ommited for settlements where Entry Details are not to be conveyed in the report.  For example, for payroll settlements where confidential information is not to be conveyed.
            ----------
          items:
            $ref: '#/components/schemas/EntryDetails15'
        additional_entry_information:
          maxLength: 500
          minLength: 1
          type: string
          description: |
            Further details of the entry.

            Based on datatype Max500Text: Specifies a character string with a maximum length of 500 characters.
          x-MXComponent: Max500Text
      additionalProperties: false
      description: Provides further details on an entry in the report.
      x-MXComponent: EntryData16
    EntryData17:
      required:
      - amount
      - bank_transaction_code
      - booking_date
      - credit_debit_indicator
      - entry_reference
      - status
      - value_date
      type: object
      properties:
        entry_reference:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique reference for the entry.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        amount:
          $ref: '#/components/schemas/EntryData16_amount'
        credit_debit_indicator:
          type: string
          description: |
            Indicates whether the entry is a credit or a debit entry.
            ----------
            Usage Rule: CGI-MP: Zero amount to be reported as a CREDIT.
            ----------


            Specifies if an operation is an increase or a decrease.

            Code Name Definition:
            *`CRDT` - Credit - Operation is an increase.
            *`DBIT` - Debit - Operation is a decrease.
            Synonyms
            Value: :22F::CRDB - Context: ISO 15022
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
        reversal_indicator:
          type: boolean
          description: |
            Indicates whether or not the entry is the result of a reversal.
            Usage: This element should only be present if the entry is the result of a reversal.
            If the CreditDebitIndicator is CRDT and ReversalIndicator is Yes, the original operation was a debit entry.
            If the CreditDebitIndicator is DBIT and ReversalIndicator is Yes, the original operation was a credit entry.
            ----------
            Usage Rule: CGI-MP: This element should only be present when the value is true (the booking is as a result of a payment return or reversal). When true, the Creditor and Debtor parties in are to be aligned with the original settlement APIs/messages.
            ----------

            Based on datatype TrueFalseIndicator: A flag indicating a True or False value.
          x-MXComponent: TrueFalseIndicator
        status:
          maxLength: 4
          minLength: 1
          type: string
          description: "Status of an entry on the books of the account servicer.\n----------\nUsage: CGI-MP: Available Codes:\n-BOOK (Booked)\n-PDNG (Pending)\n-INFO (Information)\nRefer to ExternalEntryStatus1Code as published on www.ISO.20022.org. \n----------\n\nSpecifies the status of an entry on the books of the account servicer, as published in an external code set.\nExternal code sets can be downloaded from www.iso20022.org.\n"
          x-MXComponent: ExternalEntryStatus1Code
        booking_date:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time when an entry is posted to an account on the account servicer's books.

            Usage: Booking date is the expected booking date, unless the status is booked, in which case it is the actual booking date.

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        value_date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit entry.
            Usage: If entry status is pending and value date is present, then the value date refers to an expected/requested value date.
            For entries subject to availability/float and for which availability information is provided, the value date must not be used. In this case the availability component identifies the number of availability days.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        account_servicer_reference:
          maxLength: 35
          minLength: 1
          type: string
          description: "Unique reference as assigned by the account servicing institution to unambiguously identify the entry.\n----------\nUsage: CGI-MP: When the same booked entry is reported in the account report or notification, the Account Service reference should be the same as reported in the statement.   \n\nFor a single instance of transaction data, the Account Servicer reference to be reported at the transaction level. \n----------\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n"
          x-MXComponent: Max35Text
        availability:
          type: array
          description: "Indicates when the booked amount of money will become available, that is can be accessed and starts generating interest. \n\nUsage: This type of information is used in the US and is linked to particular instruments such as cheques.\nExample: When a cheque is deposited, it will be booked on the deposit day, but the amount of money will only be accessible as of the indicated availability day (according to national banking regulations).\n"
          items:
            $ref: '#/components/schemas/CashAvailability1'
        bank_transaction_code:
          $ref: '#/components/schemas/BankTransactionCodeStructure8'
        additional_information_indicator:
          $ref: '#/components/schemas/MessageIdentification2'
        charges:
          $ref: '#/components/schemas/Charges19'
        entry_data:
          type: array
          description: Provides details on the entry.
          items:
            $ref: '#/components/schemas/EntryDetails15'
        additional_entry_information:
          maxLength: 500
          minLength: 1
          type: string
          description: |
            Further details of the entry.

            Based on datatype Max500Text: Specifies a character string with a maximum length of 500 characters.
          x-MXComponent: Max500Text
      additionalProperties: false
      description: |
        Specifies an entry in the report.
        Usage: At least one reference must be provided to identify the entry and its underlying transaction(s).

        Usage Rule: In case of a Payments R-transaction the creditor / debtor referenced of the original payment initiation messages is also used for reporting of the R-transaction. The original debtor/creditor in the reporting of R-Transactions is not inverted.
        Following elements all defined in the TransactionDetails in RelatedParties or RelatedAgents are impacted by this usage rule:
        Creditor, UltimateCreditor, CreditorAccount, CreditorAgent, Debtor, UltimateDebtor, DebtorAccount and DebtorAgent.
      x-MXComponent: EntryData17
    EntryDetails15:
      type: object
      properties:
        batch:
          $ref: '#/components/schemas/BatchInformation3'
        transaction_data:
          type: array
          description: Provides information on the underlying transaction(s).
          items:
            $ref: '#/components/schemas/TransactionData16'
      additionalProperties: false
      description: Identifies the underlying transaction(s) and/or batched entries.
      x-MXComponent: EntryDetails15
    FinancialIdentificationSchemeName1Choice:
      type: object
      additionalProperties: true
      description: Sets of elements to identify a name of the organisation identification scheme.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 4
            minLength: 1
            type: string
            description: |
              Name of the identification scheme, in a coded form as published in an external list.

              Specifies the external financial institution identification scheme name code in the format of character string with a maximum length of 4 characters.
              The list of valid codes is an external code list published separately.
              External code sets can be downloaded from www.iso20022.org.
            x-MXComponent: ExternalFinancialInstitutionIdentification1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Name of the identification scheme, in a free text form.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: FinancialIdentificationSchemeName1Choice
    FromToAmountRange1:
      required:
      - from_amount
      - to_amount
      type: object
      properties:
        from_amount:
          $ref: '#/components/schemas/AmountRangeBoundary1'
        to_amount:
          $ref: '#/components/schemas/AmountRangeBoundary1'
      additionalProperties: false
      description: Range of amount values.
      x-MXComponent: FromToAmountRange1
    Garnishment3:
      required:
      - type
      type: object
      properties:
        type:
          $ref: '#/components/schemas/GarnishmentType1'
        garnishee:
          $ref: '#/components/schemas/PartyIdentification135'
        garnishment_administrator:
          $ref: '#/components/schemas/PartyIdentification135'
        reference_number:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Reference information that is specific to the agency receiving the garnishment.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
        date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date of payment which garnishment was taken from.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        remitted_amount:
          $ref: '#/components/schemas/Garnishment3_remitted_amount'
        family_medical_insurance_indicator:
          type: boolean
          description: |
            Indicates if the person to whom the garnishment applies (that is, the ultimate debtor) has family medical insurance coverage available.

            Based on datatype TrueFalseIndicator: A flag indicating a True or False value.
          x-MXComponent: TrueFalseIndicator
        employee_termination_indicator:
          type: boolean
          description: |
            Indicates if the employment of the person to whom the garnishment applies (that is, the ultimate debtor) has been terminated.

            Based on datatype TrueFalseIndicator: A flag indicating a True or False value.
          x-MXComponent: TrueFalseIndicator
      additionalProperties: false
      description: Provides remittance information about a payment for garnishment-related purposes.
      x-MXComponent: Garnishment3
    GarnishmentType1:
      required:
      - code_or_proprietary
      type: object
      properties:
        code_or_proprietary:
          $ref: '#/components/schemas/GarnishmentType1Choice'
        issuer:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification of the issuer of the garnishment type.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Specifies the type of garnishment.
      x-MXComponent: GarnishmentType1
    GarnishmentType1Choice:
      type: object
      additionalProperties: true
      description: Specifies the type of garnishment.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 4
            minLength: 1
            type: string
            description: |
              Garnishment type in a coded form.
              Would suggest this to be an External Code List to contain:
              GNCS    Garnishment from a third party payer for Child Support
              GNDP    Garnishment from a Direct Payer for Child Support
              GTPP     Garnishment from a third party payer to taxing agency.

              Specifies the garnishment type as published in an external document type code list.
            x-MXComponent: ExternalGarnishmentType1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Proprietary identification of the type of garnishment.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: GarnishmentType1Choice
    GenericAccountIdentification1:
      required:
      - identification
      type: object
      properties:
        identification:
          maxLength: 34
          minLength: 1
          type: string
          description: |
            Identification assigned by an institution.

            Based on datatype Max34Text: Specifies a character string with a maximum length of 34 characters.
          x-MXComponent: Max34Text
        scheme_name:
          $ref: '#/components/schemas/AccountSchemeName1Choice'
        issuer:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Entity that assigns the identification.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Information related to a generic account identification.
      x-MXComponent: GenericAccountIdentification1
    GenericFinancialIdentification1:
      required:
      - identification
      type: object
      properties:
        identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique and unambiguous identification of a person.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        scheme_name:
          $ref: '#/components/schemas/FinancialIdentificationSchemeName1Choice'
        issuer:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Entity that assigns the identification.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Information related to an identification of a financial institution.
      x-MXComponent: GenericFinancialIdentification1
    GenericIdentification1:
      required:
      - identification
      type: object
      properties:
        identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification assigned by an institution.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        scheme_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Name of the identification scheme.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        issuer:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Entity that assigns the identification.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: "Information related to an identification, for example party identification or account identification."
      x-MXComponent: GenericIdentification1
    GenericIdentification3:
      required:
      - identification
      type: object
      properties:
        identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Name or number assigned by an entity to enable recognition of that entity, for example, account identifier.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        issuer:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Entity that assigns the identification.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: "Information related to an identification, for example, party identification or account identification."
      x-MXComponent: GenericIdentification3
    GenericIdentification30:
      required:
      - identification
      - issuer
      type: object
      properties:
        identification:
          pattern: "^[a-zA-Z0-9]{4}$"
          type: string
          description: |
            Proprietary information, often a code, issued by the data source scheme issuer.

            Based on datatype Exact4AlphaNumericText: Specifies an alphanumeric string with a length of 4 characters.
          x-MXComponent: Exact4AlphaNumericText
        issuer:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Entity that assigns the identification.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        scheme_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Short textual description of the scheme.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: "Information related to an identification, for example, party identification or account identification."
      x-MXComponent: GenericIdentification30
    GenericIdentification32:
      required:
      - identification
      type: object
      properties:
        identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification of the entity.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        type:
          type: string
          description: |
            Type of identified entity.

            Identification of the type of entity involved in a transaction.

            Code Name Definition:
            *`ACCP` - Acceptor - Card acceptor, party accepting the card and presenting transaction data to the acquirer.
            *`ACQR` - Acquirer - Entity acquiring card transactions.
            *`CISS` - CardIssuer - Party that issues cards.
            *`DLIS` - DelegateIssuer - Party to whom the card issuer delegates to authorise card payment transactions.
            *`ITAG` - IntermediaryAgent - Party acting on behalf of other parties to process or forward data to other parties.
            *`MERC` - Merchant - Merchant providing goods and service in the card payment transaction.
            *`OPOI` - OriginatingPOI - Point Of Interaction initiating the card payment transaction.
          enum:
          - ACCP
          - ACQR
          - CISS
          - DLIS
          - ITAG
          - MERC
          - OPOI
          x-MXComponent: PartyType3Code
        issuer:
          type: string
          description: |
            Entity assigning the identification (for example merchant, acceptor, acquirer, or tax authority).

            Entity assigning an identification (for example merchant, acceptor, acquirer, tax authority, etc.).

            Code Name Definition:
            *`ACCP` - Acceptor - Card acceptor, party accepting the card and presenting transaction data to the acquirer.
            *`ACQR` - Acquirer - Entity acquiring card transactions.
            *`CISS` - CardIssuer - Party that issues cards.
            *`ITAG` - IntermediaryAgent - Party acting on behalf of other parties to process or forward data to other parties.
            *`MERC` - Merchant - Merchant providing goods and service in the card payment transaction.
            *`TAXH` - TaxAuthority - Tax authority.
          enum:
          - ACCP
          - ACQR
          - CISS
          - ITAG
          - MERC
          - TAXH
          x-MXComponent: PartyType4Code
        short_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Name of the entity.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Identification of an entity.
      x-MXComponent: GenericIdentification32
    GenericOrganisationIdentification1:
      required:
      - identification
      type: object
      properties:
        identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification assigned by an institution.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        scheme_name:
          $ref: '#/components/schemas/OrganisationIdentificationSchemeName1Choice'
        issuer:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Entity that assigns the identification.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Information related to an identification of an organisation.
      x-MXComponent: GenericOrganisationIdentification1
    GenericOrganisationIdentification6:
      type: object
      properties:
        identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification assigned by an institution.
            ----------
            Usage: India Market Practice:
            For ECS/NECS, 7-digit NCC / CH user number
            For NACH, 18-character user number allotted by NPCI.
            ----------

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        scheme_name:
          type: string
          description: |
            Name of the identification scheme.
            ----------
            Usage: CGI-MP: pain.002 Scheme Name Code: CUST = Customer Number
            ----------

            Organisation identification scheme code CUST for Customer Number.

            Code Name Definition:
            *`CUST` - CustomerNumber - Customer Number to identify the receiver of the cash management report.
          enum:
          - CUST
          x-MXComponent: RestrictedOrganisationIdentification2Scheme1Code
      additionalProperties: false
      description: Information related to an identification of an organisation.
      x-MXComponent: GenericOrganisationIdentification6
    GenericPersonIdentification1:
      required:
      - identification
      type: object
      properties:
        identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique and unambiguous identification of a person.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        scheme_name:
          $ref: '#/components/schemas/PersonIdentificationSchemeName1Choice'
        issuer:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Entity that assigns the identification.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Information related to an identification of a person.
      x-MXComponent: GenericPersonIdentification1
    ImpliedCurrencyAmountRange1Choice:
      type: object
      additionalProperties: true
      description: Choice between ranges of values in which an amount is considered valid or a specified amount value which has to be matched or unmatched to be valid.
      oneOf:
      - required:
        - from_amount
        type: object
        properties:
          from_amount:
            $ref: '#/components/schemas/AmountRangeBoundary1'
        additionalProperties: false
      - required:
        - to_amount
        type: object
        properties:
          to_amount:
            $ref: '#/components/schemas/AmountRangeBoundary1'
        additionalProperties: false
      - required:
        - from_to_amount
        type: object
        properties:
          from_to_amount:
            $ref: '#/components/schemas/FromToAmountRange1'
        additionalProperties: false
      - required:
        - equal_amount
        type: object
        properties:
          equal_amount:
            maxLength: 18
            pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
            type: string
            description: |
              Exact value an amount must match to be considered valid.

              Based on datatype ImpliedCurrencyAndAmount: Number of monetary units specified in a currency where the unit of currency is implied by the context and compliant with ISO 4217. The decimal separator is a dot.
              Note: a zero amount is considered a positive amount.
            x-MXComponent: ImpliedCurrencyAndAmount
        additionalProperties: false
      - required:
        - not_equal_amount
        type: object
        properties:
          not_equal_amount:
            maxLength: 18
            pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
            type: string
            description: |
              Value that an amount must not match to be considered valid.

              Based on datatype ImpliedCurrencyAndAmount: Number of monetary units specified in a currency where the unit of currency is implied by the context and compliant with ISO 4217. The decimal separator is a dot.
              Note: a zero amount is considered a positive amount.
            x-MXComponent: ImpliedCurrencyAndAmount
        additionalProperties: false
      x-MXComponent: ImpliedCurrencyAmountRange1Choice
    InterestRecord2:
      required:
      - amount
      - credit_debit_indicator
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/InterestRecord2_amount'
        credit_debit_indicator:
          type: string
          description: |
            Indicates whether the interest amount included in the entry is credit or debit amount.
            Usage: A zero amount is considered to be a credit.

            Specifies if an operation is an increase or a decrease.

            Code Name Definition:
            *`CRDT` - Credit - Operation is an increase.
            *`DBIT` - Debit - Operation is a decrease.
            Synonyms
            Value: :22F::CRDB - Context: ISO 15022
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
        type:
          $ref: '#/components/schemas/InterestType1Choice'
        rate:
          $ref: '#/components/schemas/Rate4'
        from_to_date:
          $ref: '#/components/schemas/DateTimePeriod1'
        reason:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Specifies the reason for the interest.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        tax:
          $ref: '#/components/schemas/TaxCharges2'
      additionalProperties: false
      description: Provides transaction specific interest information that applies to the underlying transaction.
      x-MXComponent: InterestRecord2
    InterestType1Choice:
      type: object
      additionalProperties: true
      description: Interest type is expressed as a code or a text.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            type: string
            description: |
              Specifies the type of interest.

              Indicates which type of interest is applied to a balance left on an account.

              Code Name Definition:
              *`INDY` - IntraDay - During or within a business day.
              *`OVRN` - OverNight - Period of time between the end of a business day and the start of the next business day (usually the day after).
            enum:
            - INDY
            - OVRN
            x-MXComponent: InterestType1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Specifies the type of interest in uncoded form.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: InterestType1Choice
    LocalInstrument2Choice:
      type: object
      additionalProperties: true
      description: Set of elements that further identifies the type of local instruments being requested by the initiating party.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Specifies the local instrument, as published in an external local instrument code list.

              Specifies the external local instrument code in the format of character string with a maximum length of 35 characters.
              The list of valid codes is an external code list published separately.
              External code sets can be downloaded from www.iso20022.org.
            x-MXComponent: ExternalLocalInstrument1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Specifies the local instrument, as a proprietary code.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: LocalInstrument2Choice
    MessageIdentification2:
      type: object
      properties:
        message_name_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Specifies the message name identifier of the message that will be used to provide additional details.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        message_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Specifies the identification of the message that will be used to provide additional details.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Set of elements providing the identification of a message.
      x-MXComponent: MessageIdentification2
    NameAndAddress21:
      required:
      - country
      - name
      type: object
      properties:
        name:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Name by which a party is known and is usually used to identify that party.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
        department:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Identification of a division of a large organisation or building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        sub_department:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Identification of a sub-division of a large organisation or building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        street_name:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Name of a street or thoroughfare.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        building_number:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Number that identifies the position of a building on a street.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        building_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Name of the building or house.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        floor:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Floor or storey within a building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        post_box:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        room:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Building room number.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        post_code:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        town_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Name of a built-up area, with defined boundaries, and a local government.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        town_location_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Specific location name within the town.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        district_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identifies a subdivision within a country sub-division.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        country_sub_division:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identifies a subdivision of a country such as state, region, county.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        country:
          pattern: "^[A-Z]{2,2}$"
          type: string
          description: |
            Nation with its own government.

            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).
          x-MXComponent: CountryCode
        address_line:
          maxItems: 7
          type: array
          description: |
            Information that locates and identifies a specific address, as defined by postal services, presented in free format text.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          items:
            maxLength: 70
            minLength: 1
            type: string
            x-MXComponent: Max70Text
      additionalProperties: false
      description: Information that locates and identifies a party.
      x-MXComponent: NameAndAddress21
    OrganisationIdentification29:
      type: object
      properties:
        any_bic:
          pattern: "^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$"
          type: string
          description: |
            Business identification code of the organisation.

            Based on datatype 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)".
          x-MXComponent: AnyBICDec2014Identifier
        lei:
          pattern: "^[A-Z0-9]{18,18}[0-9]{2,2}$"
          type: string
          description: |
            Legal entity identification as an alternate identification for a party.

            Based on datatype LEIIdentifier: Legal Entity Identifier is a code allocated to a party as described in ISO 17442 "Financial Services - Legal Entity Identifier (LEI)".
          x-MXComponent: LEIIdentifier
        other:
          type: array
          description: "Unique identification of an organisation, as assigned by an institution, using an identification scheme."
          items:
            $ref: '#/components/schemas/GenericOrganisationIdentification1'
      additionalProperties: false
      description: Unique and unambiguous way to identify an organisation.
      x-MXComponent: OrganisationIdentification29
    OrganisationIdentification45:
      type: object
      properties:
        any_bic:
          pattern: "^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$"
          type: string
          description: |
            Business identification code of the organisation.



            Based on datatype 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)".
          x-MXComponent: AnyBICDec2014Identifier
        lei:
          pattern: "^[A-Z0-9]{18,18}[0-9]{2,2}$"
          type: string
          description: |
            Legal entity identification as an alternate identification for a party.

            Based on datatype LEIIdentifier: Legal Entity Identifier is a code allocated to a party as described in ISO 17442 "Financial Services - Legal Entity Identifier (LEI)".
          x-MXComponent: LEIIdentifier
        other:
          maxItems: 2
          type: array
          description: |
            Unique identification of an organisation, as assigned by an institution, using an identification scheme.

            ID for the Account Owner as assigned by the Reporting Agent.
          items:
            $ref: '#/components/schemas/GenericOrganisationIdentification6'
      additionalProperties: false
      description: Unique and unambiguous way to identify an organisation.
      x-MXComponent: OrganisationIdentification45
    OrganisationIdentification46:
      type: object
      properties:
        any_bic:
          pattern: "^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$"
          type: string
          description: |
            Business identification code of the organisation.



            Based on datatype 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)".
          x-MXComponent: AnyBICDec2014Identifier
        lei:
          pattern: "^[A-Z0-9]{18,18}[0-9]{2,2}$"
          type: string
          description: |
            Legal entity identification as an alternate identification for a party.

            Based on datatype LEIIdentifier: Legal Entity Identifier is a code allocated to a party as described in ISO 17442 "Financial Services - Legal Entity Identifier (LEI)".
          x-MXComponent: LEIIdentifier
        other:
          $ref: '#/components/schemas/GenericOrganisationIdentification6'
      additionalProperties: false
      description: Unique and unambiguous way to identify an organisation.
      x-MXComponent: OrganisationIdentification46
    OrganisationIdentificationSchemeName1Choice:
      type: object
      additionalProperties: true
      description: Sets of elements to identify a name of the organisation identification scheme.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 4
            minLength: 1
            type: string
            description: |
              Name of the identification scheme, in a coded form as published in an external list.

              Specifies the external organisation identification scheme name code in the format of character string with a maximum length of 4 characters.
              The list of valid codes is an external code list published separately.
              External code sets can be downloaded from www.iso20022.org.
            x-MXComponent: ExternalOrganisationIdentification1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Name of the identification scheme, in a free text form.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: OrganisationIdentificationSchemeName1Choice
    OtherContact1:
      required:
      - channel_type
      type: object
      properties:
        channel_type:
          maxLength: 4
          minLength: 1
          type: string
          description: |
            Method used to contact the financial institution’s contact for the specific tax region.

            Based on datatype Max4Text: Specifies a character string with a maximum length of 4 characters.
          x-MXComponent: Max4Text
        identification:
          maxLength: 128
          minLength: 1
          type: string
          description: |
            Communication value such as phone number or email address.

            Based on datatype Max128Text: Specifies a character string with a maximum length of 128 characters.
          x-MXComponent: Max128Text
      additionalProperties: false
      description: Communication device number or electronic address used for communication.
      x-MXComponent: OtherContact1
    Party38Choice:
      type: object
      additionalProperties: true
      description: Nature or use of the account.
      oneOf:
      - required:
        - organisation_identification
        type: object
        properties:
          organisation_identification:
            $ref: '#/components/schemas/OrganisationIdentification29'
        additionalProperties: false
      - required:
        - private_identification
        type: object
        properties:
          private_identification:
            $ref: '#/components/schemas/PersonIdentification13'
        additionalProperties: false
      x-MXComponent: Party38Choice
    Party61Choice:
      type: object
      additionalProperties: true
      description: "Identification of a person, an organisation or a financial institution."
      oneOf:
      - required:
        - party
        type: object
        properties:
          party:
            $ref: '#/components/schemas/PartyIdentification311'
        additionalProperties: false
      - required:
        - agent
        type: object
        properties:
          agent:
            $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification15'
        additionalProperties: false
      x-MXComponent: Party61Choice
    PartyIdentification135:
      type: object
      properties:
        name:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Name by which a party is known and which is usually used to identify that party.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
        postal_address:
          $ref: '#/components/schemas/PostalAddress24'
        identification:
          $ref: '#/components/schemas/Party38Choice'
        country_of_residence:
          pattern: "^[A-Z]{2,2}$"
          type: string
          description: |
            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.

            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).
          x-MXComponent: CountryCode
        contact_details:
          $ref: '#/components/schemas/Contact4'
      additionalProperties: false
      description: Specifies the identification of a person or an organisation.
      x-MXComponent: PartyIdentification135
    PartyIdentification310:
      required:
      - identification
      type: object
      properties:
        name:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Name by which a party is known and which is usually used to identify that party.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
        identification:
          $ref: '#/components/schemas/OrganisationIdentification46'
        contact_details:
          $ref: '#/components/schemas/Contact18'
      additionalProperties: false
      description: Specifies the identification of a person or an organisation.
      x-MXComponent: PartyIdentification310
    PartyIdentification311:
      type: object
      properties:
        name:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Name by which a party is known and which is usually used to identify that party.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
        department:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Identification of a division of a large organisation or building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        sub_department:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Identification of a sub-division of a large organisation or building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        street_name:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Name of a street or thoroughfare.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        building_number:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Number that identifies the position of a building on a street.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        building_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Name of the building or house.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        floor:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Floor or storey within a building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        post_box:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        room:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Building room number.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        post_code:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        town_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Name of a built-up area, with defined boundaries, and a local government.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        town_location_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Specific location name within the town.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        district_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identifies a subdivision within a country sub-division.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        country_sub_division:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identifies a subdivision of a country such as state, region, county.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        country:
          pattern: "^[A-Z]{2,2}$"
          type: string
          description: |
            Nation with its own government.

            Usage Rule: mandatory for Debtor and Creditor in Payment Initiation.

            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).
          x-MXComponent: CountryCode
        address_line:
          maxItems: 3
          type: array
          description: |
            Information that locates and identifies a specific address, as defined by postal services, presented in free format text.

            NEFT: N06.5565 Beneficiary Customer Address
            4 * 35x

            NG-RTGS: Creditor/PostalAddress/AddressLine
            4 * Max70Text

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          items:
            maxLength: 70
            minLength: 1
            type: string
            x-MXComponent: Max70Text
        organisation_identification:
          $ref: '#/components/schemas/OrganisationIdentification45'
        private_identification:
          $ref: '#/components/schemas/PersonIdentification16'
        country_of_residence:
          pattern: "^[A-Z]{2,2}$"
          type: string
          description: |
            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.

            Usage Rule: not used for API Recipient, Account Owner and Agent identification.

            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).
          x-MXComponent: CountryCode
        contact_details:
          $ref: '#/components/schemas/Contact18'
      additionalProperties: false
      description: Specifies the identification of a person or an organisation.
      x-MXComponent: PartyIdentification311
    PaymentCard4:
      type: object
      properties:
        plain_card_data:
          $ref: '#/components/schemas/PlainCardData1'
        card_country_code:
          pattern: "^[0-9]{3}$"
          type: string
          description: |
            Country code assigned to the card by the card issuer.

            Based on datatype Exact3NumericText: Specifies a numeric string with an exact length of 3 digits.
          x-MXComponent: Exact3NumericText
        card_brand:
          $ref: '#/components/schemas/GenericIdentification1'
        additional_card_data:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Additional card issuer specific data.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
      additionalProperties: false
      description: "Electronic money product that provides the cardholder with a portable and specialised computer device, which typically contains a microprocessor."
      x-MXComponent: PaymentCard4
    PaymentContext3:
      required:
      - card_data_entry_mode
      type: object
      properties:
        card_present:
          type: boolean
          description: |
            Indicates whether the transaction has been initiated by a card physically present or not.

            Based on datatype TrueFalseIndicator: A flag indicating a True or False value.
          x-MXComponent: TrueFalseIndicator
        cardholder_present:
          type: boolean
          description: |
            Indicates whether the transaction has been initiated in presence of the cardholder or not.

            Based on datatype TrueFalseIndicator: A flag indicating a True or False value.
          x-MXComponent: TrueFalseIndicator
        on_line_context:
          type: boolean
          description: |
            On-line or off-line context of the transaction.

            Based on datatype TrueFalseIndicator: A flag indicating a True or False value.
          x-MXComponent: TrueFalseIndicator
        attendance_context:
          type: string
          description: |
            Human attendance at the POI location during the transaction.

            Human attendance at the POI location during the transaction.

            Code Name Definition:
            *`ATTD` - Attended - Attended payment, with an attendant.
            *`SATT` - SemiAttended - Semi-attended, including self checkout. An attendant supervises several payment, and could be called to help the cardholder.
            *`UATT` - Unattended - Unattended payment, no attendant present.
          enum:
          - ATTD
          - SATT
          - UATT
          x-MXComponent: AttendanceContext1Code
        transaction_environment:
          type: string
          description: |
            Indicates the environment of the transaction.

            Indicates the environment of the transaction.

            Code Name Definition:
            *`MERC` - Merchant - Merchant environment.
            *`PRIV` - Private - Private environment.
            *`PUBL` - Public - Public environment.
          enum:
          - MERC
          - PRIV
          - PUBL
          x-MXComponent: TransactionEnvironment1Code
        transaction_channel:
          type: string
          description: |
            Identifies the type of the communication channels used by the cardholder to the acceptor system.

            Identifies the type of the communication channels used by the cardholder to the acceptor system.

            Code Name Definition:
            *`ECOM` - ElectronicCommerce - Electronic commerce.
            *`MAIL` - MailOrder - Mail order.
            *`TLPH` - TelephoneOrder - Telephone order.
            *`TVPY` - TelevisionPayment - Payment on television.
          enum:
          - ECOM
          - MAIL
          - TLPH
          - TVPY
          x-MXComponent: TransactionChannel1Code
        attendant_message_capable:
          type: boolean
          description: |
            Indicates whether a message can be sent or not on an attendant display (attendant display present or not).

            Based on datatype TrueFalseIndicator: A flag indicating a True or False value.
          x-MXComponent: TrueFalseIndicator
        attendant_language:
          pattern: "^[a-z]{2,2}$"
          type: string
          description: |
            Language used to display messages to the attendant.

            Identification of the language name according to the ISO 639-1 codes. The type is validated by the list of values coded with two alphabetic characters, defined in the standard.
          x-MXComponent: ISO2ALanguageCode
        card_data_entry_mode:
          type: string
          description: |
            Entry mode of the card data.

            Type of reading of the card data.

            Code Name Definition:
            *`BRCD` - BarCode - Bar code.
            *`CICC` - ICC - ICC (Integrated Circuit Card) with contact containing software applications conform to ISO 7816.
            *`CTLS` - ProximityReader - Contactless proximity reader.
            *`DFLE` - AccountData - Account data on file.
            *`ECTL` - EMVProximityReader - Contactless proximity reader, with application conform to the standard EMV (standard initiated by Europay, Mastercard and Visa).
            *`MGST` - MagneticStripe - Magnetic stripe.
            *`PHYS` - Physical - Keyboard entry or OCR reading of embossing or printed data, either at time of transaction or after the event.
            *`TAGC` - Tag - Tag reading capabilities (RFID, etc.).
          enum:
          - BRCD
          - CICC
          - CTLS
          - DFLE
          - ECTL
          - MGST
          - PHYS
          - TAGC
          x-MXComponent: CardDataReading1Code
        fallback_indicator:
          type: boolean
          description: |
            Indicator of a card entry mode fallback.

            Based on datatype TrueFalseIndicator: A flag indicating a True or False value.
          x-MXComponent: TrueFalseIndicator
        authentication_method:
          $ref: '#/components/schemas/CardholderAuthentication2'
      additionalProperties: false
      description: Payment context in which the transaction is performed.
      x-MXComponent: PaymentContext3
    PaymentReturnReason9:
      required:
      - reason
      type: object
      properties:
        original_bank_transaction_code:
          $ref: '#/components/schemas/BankTransactionCodeStructure8'
        originator:
          $ref: '#/components/schemas/PartyIdentification311'
        reason:
          $ref: '#/components/schemas/ReturnReason5Choice'
        additional_information:
          type: array
          description: |
            Further details on the return reason.
            ----------
            Usage Rule: CGI-MP: Additional information to describe the return transaction.
            ----------

            Based on datatype Max105Text: Specifies a character string with a maximum length of 105 characters.
          items:
            maxLength: 105
            minLength: 1
            type: string
            x-MXComponent: Max105Text
      additionalProperties: false
      description: Provides further details on the reason of the return of the transaction.
      x-MXComponent: PaymentReturnReason9
    PersonIdentification13:
      type: object
      properties:
        date_and_place_of_birth:
          $ref: '#/components/schemas/DateAndPlaceOfBirth1'
        other:
          type: array
          description: "Unique identification of a person, as assigned by an institution, using an identification scheme."
          items:
            $ref: '#/components/schemas/GenericPersonIdentification1'
      additionalProperties: false
      description: Unique and unambiguous way to identify a person.
      x-MXComponent: PersonIdentification13
    PersonIdentification16:
      type: object
      properties:
        date_and_place_of_birth:
          $ref: '#/components/schemas/DateAndPlaceOfBirth1'
        other_identification:
          maxItems: 2
          type: array
          description: |
            Unique identification of a person, as assigned by an institution, using an identification scheme.

            For APBS, 15-digit Aadhaar (India resident unique identification number) number allotted by UIDAI (Unique Identification Authority of India).

            NACH: 23.21 Beneficiary Aadhaar Number
            Mandatory for APBS. 15 digit number.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          items:
            maxLength: 35
            minLength: 1
            type: string
            x-MXComponent: Max35Text
        scheme_name:
          maxItems: 2
          type: array
          description: |
            Name of the identification scheme.

            Identification Scheme Name Code
            AADH = Aadhaar Number

            NACH: AADH = Aadhaar


            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          items:
            maxLength: 35
            minLength: 1
            type: string
            x-MXComponent: Max35Text
      additionalProperties: false
      description: Unique and unambiguous way to identify a person.
      x-MXComponent: PersonIdentification16
    PersonIdentificationSchemeName1Choice:
      type: object
      additionalProperties: true
      description: Sets of elements to identify a name of the identification scheme.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 4
            minLength: 1
            type: string
            description: |
              Name of the identification scheme, in a coded form as published in an external list.

              Specifies the external person identification scheme name code in the format of character string with a maximum length of 4 characters.
              The list of valid codes is an external code list published separately.
              External code sets can be downloaded from www.iso20022.org.
            x-MXComponent: ExternalPersonIdentification1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Name of the identification scheme, in a free text form.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: PersonIdentificationSchemeName1Choice
    PlainCardData1:
      required:
      - expiry_date
      - pan
      type: object
      properties:
        pan:
          pattern: "^[0-9]{8,28}$"
          type: string
          description: |
            Primary Account Number (PAN) of the card, or card number.

            Based on datatype Min8Max28NumericText: Specifies a numeric string with a minimum length of 8 digits, and a maximum length of 28 digits.
          x-MXComponent: Min8Max28NumericText
        card_sequence_number:
          pattern: "^[0-9]{2,3}$"
          type: string
          description: |
            Identify a card inside a set of cards with the same card number (PAN).

            Based on datatype Min2Max3NumericText: Specifies a numeric string with a minimum length of 2 digits, and a maximum length of 3 digits.
          x-MXComponent: Min2Max3NumericText
        effective_date:
          pattern: "^(?:[1-9]\\d{3}-(?:0[1-9]|1[0-2]))$"
          type: string
          description: |
            Date as from which the card can be used.

            Based on datatype ISOYearMonth: Month within a particular calendar year represented by YYYY-MM (ISO 8601).
          x-MXComponent: ISOYearMonth
        expiry_date:
          pattern: "^(?:[1-9]\\d{3}-(?:0[1-9]|1[0-2]))$"
          type: string
          description: |
            Expiry date of the card.

            Based on datatype ISOYearMonth: Month within a particular calendar year represented by YYYY-MM (ISO 8601).
          x-MXComponent: ISOYearMonth
        service_code:
          pattern: "^[0-9]{3}$"
          type: string
          description: |
            Services attached to the card, as defined in ISO 7813.

            Based on datatype Exact3NumericText: Specifies a numeric string with an exact length of 3 digits.
          x-MXComponent: Exact3NumericText
        track_data:
          type: array
          description: Magnetic track or equivalent payment card data.
          items:
            $ref: '#/components/schemas/TrackData1'
        card_security_code:
          $ref: '#/components/schemas/CardSecurityInformation1'
      additionalProperties: false
      description: Sensible data associated with the payment card performing the transaction.
      x-MXComponent: PlainCardData1
    PointOfInteraction1:
      required:
      - identification
      type: object
      properties:
        identification:
          $ref: '#/components/schemas/GenericIdentification32'
        system_name:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Common name assigned by the acquirer to the POI system.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        group_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identifier assigned by the merchant identifying a set of POI terminals performing some categories of transactions.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        capabilities:
          $ref: '#/components/schemas/PointOfInteractionCapabilities1'
        component:
          type: array
          description: Data related to a component of the POI performing the transaction.
          items:
            $ref: '#/components/schemas/PointOfInteractionComponent1'
      additionalProperties: false
      description: Point of interaction (POI) performing the transaction.
      x-MXComponent: PointOfInteraction1
    PointOfInteractionCapabilities1:
      type: object
      properties:
        card_reading_capabilities:
          type: array
          description: |
            Card reading capabilities of the POI performing the transaction.

            Type of reading of the card data.

            Code Name Definition:
            *`BRCD` - BarCode - Bar code.
            *`CICC` - ICC - ICC (Integrated Circuit Card) with contact containing software applications conform to ISO 7816.
            *`CTLS` - ProximityReader - Contactless proximity reader.
            *`DFLE` - AccountData - Account data on file.
            *`ECTL` - EMVProximityReader - Contactless proximity reader, with application conform to the standard EMV (standard initiated by Europay, Mastercard and Visa).
            *`MGST` - MagneticStripe - Magnetic stripe.
            *`PHYS` - Physical - Keyboard entry or OCR reading of embossing or printed data, either at time of transaction or after the event.
            *`TAGC` - Tag - Tag reading capabilities (RFID, etc.).
          items:
            type: string
            enum:
            - BRCD
            - CICC
            - CTLS
            - DFLE
            - ECTL
            - MGST
            - PHYS
            - TAGC
            x-MXComponent: CardDataReading1Code
        cardholder_verification_capabilities:
          type: array
          description: |
            Cardholder verification capabilities of the POI performing the transaction.

            Cardholder verification capabilities of the POI (Personal Identification Number) performing the transaction.

            Code Name Definition:
            *`APKI` - AccountDigitalSignature - Account based digital signature.
            *`CHDT` - CardholderData - Cardholder authentication data.
            *`FBIG` - OfflineBiographics - Offline biographics.
            *`FBIO` - OfflineBiometrics - Offline biometrics.
            *`FCPN` - OfflinePINClear - Offline PIN in clear (Personal Identification Number).
            *`FDSG` - OfflineDigitalSignature - Offline digital signature analysis.
            *`FEPN` - OfflinePINEncrypted - Offline PIN encrypted (Personal Identification Number).
            *`MNSG` - ManualSignature - Manual signature verification.
            *`MNVR` - ManualVerification - Other manual verification, for example passport or drivers license.
            *`NPIN` - OnLinePIN - Online PIN (Personal Identification Number).
            *`PKIS` - PKISignature - PKI (Public Key Infrastructure) based digital signature.
            *`SCEC` - SecureElectronicCommerce - Three domain secure (three domain secure authentication of the cardholder).
          items:
            type: string
            enum:
            - APKI
            - CHDT
            - FBIG
            - FBIO
            - FCPN
            - FDSG
            - FEPN
            - MNSG
            - MNVR
            - NPIN
            - PKIS
            - SCEC
            x-MXComponent: CardholderVerificationCapability1Code
        on_line_capabilities:
          type: string
          description: |
            On-line and off-line capabilities of the POI.

            On-line and off-line capabilities of the POI (Point Of Interaction).

            Code Name Definition:
            *`OFLN` - OffLine - Off-line only capable.
            *`ONLN` - OnLine - On-line only capable.
            *`SMON` - SemiOffLine - Off-line capable with possible on-line requests to the acquirer.
          enum:
          - OFLN
          - ONLN
          - SMON
          x-MXComponent: OnLineCapability1Code
        display_capabilities:
          type: array
          description: Capabilities of the display components performing the transaction.
          items:
            $ref: '#/components/schemas/DisplayCapabilities1'
        print_line_width:
          pattern: "^[0-9]{1,3}$"
          type: string
          description: |
            Number of columns of the printer component.

            Based on datatype Max3NumericText: Specifies a numeric string with a maximum length of 3 digits.
          x-MXComponent: Max3NumericText
      additionalProperties: false
      description: Capabilities of the POI performing the transaction.
      x-MXComponent: PointOfInteractionCapabilities1
    PointOfInteractionComponent1:
      required:
      - poi_component_type
      type: object
      properties:
        poi_component_type:
          type: string
          description: |
            Type of component belonging to a POI Terminal.

            Generic component type belonging to a POI (Point of Interaction) Terminal.

            Code Name Definition:
            *`CHIT` - CardholderInterface - Cardholder Interface.
            *`EMVK` - EMVKernel - EMV application kernel (EMV is the chip card specifications initially defined by Eurocard, Mastercard and Visa).
            *`EMVO` - EMVLevel1 - EMV physical interface (EMV is the chip card specifications initially defined by Eurocard, Mastercard and Visa).
            *`MRIT` - MerchantInterface - Merchant interface.
            *`PEDV` - PINEntryDevice - Personal identification number (or PIN) entry device (PED).
            *`SECM` - SecureModule - Security module.
            *`SOFT` - Soft - Payment or other software application.
          enum:
          - CHIT
          - EMVK
          - EMVO
          - MRIT
          - PEDV
          - SECM
          - SOFT
          x-MXComponent: POIComponentType1Code
        manufacturer_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification of the software, hardware or system provider of the POI component.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        model:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification of a model of POI component for a given manufacturer.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        version_number:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Version of component belonging to a given model.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        serial_number:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Serial number of a component.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        approval_number:
          type: array
          description: |
            Unique approval number for a component, delivered by a certification body.
            Usage: More than one approval number could be present, when assigned by different bodies. The certification body identification must be provided within the approval number (for example at the beginning of the value).

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          items:
            maxLength: 70
            minLength: 1
            type: string
            x-MXComponent: Max70Text
      additionalProperties: false
      description: Data related to a component of the POI performing the transaction.
      x-MXComponent: PointOfInteractionComponent1
    PostalAddress24:
      type: object
      properties:
        address_type:
          $ref: '#/components/schemas/AddressType3Choice'
        department:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Identification of a division of a large organisation or building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        sub_department:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Identification of a sub-division of a large organisation or building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        street_name:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Name of a street or thoroughfare.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        building_number:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Number that identifies the position of a building on a street.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        building_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Name of the building or house.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        floor:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Floor or storey within a building.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        post_box:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        room:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Building room number.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        post_code:
          maxLength: 16
          minLength: 1
          type: string
          description: |
            Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.

            Based on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.
          x-MXComponent: Max16Text
        town_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Name of a built-up area, with defined boundaries, and a local government.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        town_location_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Specific location name within the town.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        district_name:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identifies a subdivision within a country sub-division.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        country_sub_division:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identifies a subdivision of a country such as state, region, county.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        country:
          pattern: "^[A-Z]{2,2}$"
          type: string
          description: |
            Nation with its own government.

            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).
          x-MXComponent: CountryCode
        address_line:
          maxItems: 7
          type: array
          description: |
            Information that locates and identifies a specific address, as defined by postal services, presented in free format text.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          items:
            maxLength: 70
            minLength: 1
            type: string
            x-MXComponent: Max70Text
      additionalProperties: false
      description: "Information that locates and identifies a specific address, as defined by postal services."
      x-MXComponent: PostalAddress24
    Product2:
      required:
      - product_code
      type: object
      properties:
        product_code:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            Product code of the item purchased.

            Based on datatype Max70Text: Specifies a character string with a maximum length of 70characters.
          x-MXComponent: Max70Text
        unit_of_measure:
          type: string
          description: |
            Unit of measure of the item purchased.

            Unit of measure of the item purchased.

            Code Name Definition:
            *`ACRE` - Acre - Unit of measure equal to 4, 840 square yards.
            *`ARES` - Are - Unit of measure equal to a 100 square meters.
            *`CELI` - Centilitre - Unit of volume that is equal to one hundredth of a litre.
            *`CMET` - Centimetre - Unit of measure that is equal to one hundredth of a metre.
            *`FOOT` - Foot - Unit of length equal to 1/3 yard.
            *`GBGA` - GBGallon - Unit of volume that is equal to 8 pints.
            *`GBOU` - GBOunce - Unit of weight equal to a sixteenth of a pound.
            *`GBPI` - GBPint - Unit of volume that is equal to 568 cubic centimetres.
            *`GBQA` - GBQuart - Unit of volume that is equal to 2 pints.
            *`GRAM` - Gram - Unit of measure that is equal to a 1, 000th of a kilo.
            *`HECT` - Hectare - Unit of measure that is equal to 10, 000 square meters.
            *`INCH` - Inch - Measure of length equal to 2.54 cm.
            *`KILO` - Kilogram - Basic unit of mass in the SI system, 1000 grams.
            *`KMET` - Kilometre - Unit of measure that is equal to 1, 000 meters.
            *`LITR` - Litre - Unit of volume that is equal to a thousand cubic centimetres.
            *`METR` - Metre - Unit of length in the metric system, equal to 39.37 inches.
            *`MILE` - Mile - Unit of length equal to 1, 760 yards.
            *`MILI` - MilliLitre - Unit of volume that is equal to one thousandth of a litre.
            *`MMET` - Millimetre - Unit of measure that is a thousandth of one metre.
            *`PIEC` - Piece - Standard length of cloth, wallpaper, as an item for sale or amount of a substance.
            *`PUND` - Pound - Unit of weight equal to 0.454 kilograms.
            *`SCMT` - SquareCentimetre - Measure of a surface, one centimetre by one centimetre.
            *`SMET` - SquareMetre - Measure of a surface, one metre by one metre.
            *`SMIL` - SquareMillimetre - Measure of a surface, one millimetre by one millimetre.
            *`SQFO` - SquareFoot - Measure of a surface, one foot by one foot.
            *`SQIN` - SquareInch - Measure of a surface, one inch by one inch.
            *`SQKI` - SquareKilometre - Measure of a surface, one kilometre by one kilometre.
            *`SQMI` - SquareMile - Measure of a surface, one mile by one mile.
            *`SQYA` - SquareYard - Measure of a surface, one yard by one yard.
            *`TONS` - Ton - Measure of weight, in Britain 2240lb (long ton)and in the US 2000lb (short ton).
            *`USGA` - USGallon - Unit of volume that is equal to 8 pints.
            *`USOU` - USOunce - Unit of weight equal to a sixteenth of a pound.
            *`USPI` - USPint - Unit of volume that is equal to 473 cubic centimetres.
            *`USQA` - USQuart - Unit of volume that is equal to 2 pints.
            *`YARD` - Yard - Unit of length equal to 3 feet or 0.9144 metre.
          enum:
          - ACRE
          - ARES
          - CELI
          - CMET
          - FOOT
          - GBGA
          - GBOU
          - GBPI
          - GBQA
          - GRAM
          - HECT
          - INCH
          - KILO
          - KMET
          - LITR
          - METR
          - MILE
          - MILI
          - MMET
          - PIEC
          - PUND
          - SCMT
          - SMET
          - SMIL
          - SQFO
          - SQIN
          - SQKI
          - SQMI
          - SQYA
          - TONS
          - USGA
          - USOU
          - USPI
          - USQA
          - YARD
          x-MXComponent: UnitOfMeasure1Code
        product_quantity:
          maxLength: 19
          type: string
          description: |
            Product quantity.

            Based on datatype DecimalNumber: Number of objects represented as a decimal number, for example 0.75 or 45.6.
          x-MXComponent: DecimalNumber
        unit_price:
          maxLength: 18
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
          description: |
            Price per unit of product.

            Based on datatype ImpliedCurrencyAndAmount: Number of monetary units specified in a currency where the unit of currency is implied by the context and compliant with ISO 4217. The decimal separator is a dot.
            Note: a zero amount is considered a positive amount.
          x-MXComponent: ImpliedCurrencyAndAmount
        product_amount:
          maxLength: 18
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
          description: |
            Monetary value of purchased product.

            Based on datatype ImpliedCurrencyAndAmount: Number of monetary units specified in a currency where the unit of currency is implied by the context and compliant with ISO 4217. The decimal separator is a dot.
            Note: a zero amount is considered a positive amount.
          x-MXComponent: ImpliedCurrencyAndAmount
        tax_type:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Information on tax paid on the product.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        additional_product_information:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Additional information related to the product.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Product purchased to be paid.
      x-MXComponent: Product2
    ProprietaryBankTransactionCodeStructure2:
      required:
      - code
      - issuer
      type: object
      properties:
        code:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Proprietary bank transaction code to identify the underlying transaction.
            -----------
            Usage: CGI-MP: Code format is depending on the issuer. It may be a composite code.
            ----------

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        issuer:
          maxLength: 35
          minLength: 1
          type: string
          description: "Identification of the issuer of the proprietary bank transaction code.\n----------\nUsage Rule: CGI-MP: Value of Issuer is required. If Not Available, populate with \"NOTAVAILABLE\". \nValue samples (not exhausted):\nBAI = BAI Code\nSWIFT = Swift Code\nBBA = Belgian Code\nCFONB = French Code\nFFFS = Finnish Code\nZKA = German Code\nGVC = German Code\nAEB = Spanish Code\nDBA = Danish Code\nAlso other values available such as bank name.\n-----------\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n"
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Set of elements to fully identify a proprietary bank transaction code.
      x-MXComponent: ProprietaryBankTransactionCodeStructure2
    ProprietaryReference1:
      required:
      - reference
      - type
      type: object
      properties:
        type:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identifies the type of reference reported.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        reference:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Proprietary reference specification related to the underlying transaction.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Set of elements to identify a proprietary reference.
      x-MXComponent: ProprietaryReference1
    ProxyAccountIdentification1:
      required:
      - identification
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ProxyAccountType1Choice'
        identification:
          maxLength: 2048
          minLength: 1
          type: string
          description: |
            Identification used to indicate the account identification under another specified name.

            Based on datatype Max2048Text: Specifies a character string with a maximum length of 2048 characters.
          x-MXComponent: Max2048Text
      additionalProperties: false
      description: Information related to a proxy  identification of the account.
      x-MXComponent: ProxyAccountIdentification1
    ProxyAccountType1Choice:
      type: object
      additionalProperties: true
      description: Specifies the scheme used for the identification of an account alias.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 4
            minLength: 1
            type: string
            description: |
              Name of the identification scheme, in a coded form as published in an external list.

              Specifies the external proxy account type code, as published in the proxy account type external code set.
              External code sets can be downloaded from www.iso20022.org.
            x-MXComponent: ExternalProxyAccountType1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Name of the identification scheme, in a free text form.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: ProxyAccountType1Choice
    Purpose2Choice:
      type: object
      additionalProperties: true
      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.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 4
            minLength: 1
            type: string
            description: |
              Underlying reason for the payment transaction, as published in an external purpose code list.

              Specifies the external purpose code in the format of character string with a maximum length of 4 characters.
              The list of valid codes is an external code list published separately.
              External code sets can be downloaded from www.iso20022.org.
            x-MXComponent: ExternalPurpose1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Purpose, in a proprietary form.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: Purpose2Choice
    Rate4:
      required:
      - type
      type: object
      properties:
        type:
          $ref: '#/components/schemas/RateType4Choice'
        validity_range:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmountRange2'
      additionalProperties: false
      description: Set of elements used to qualify the interest rate.
      x-MXComponent: Rate4
    RateType4Choice:
      type: object
      additionalProperties: true
      description: Specifies the rate as a percentage or a text.
      oneOf:
      - required:
        - percentage
        type: object
        properties:
          percentage:
            maxLength: 12
            type: string
            description: |
              Ratio of the amount of interest paid during a certain period of time compared to the principal amount of the interest bearing financial instrument.

              Based on datatype PercentageRate: Rate expressed as a percentage, that is, in hundredths, for example, 0.7 is 7/10 of a percent, and 7.0 is 7%.
            x-MXComponent: PercentageRate
        additionalProperties: false
      - required:
        - other
        type: object
        properties:
          other:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Rate type expressed, in an other form.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: RateType4Choice
    ReferredDocumentInformation10:
      required:
      - number
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ReferredDocumentType4'
        number:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique and unambiguous identification of the referred document.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        related_date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date associated with the referred document.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        document_line:
          type: array
          description: Set of elements used to provide the content of the referred document line.
          items:
            $ref: '#/components/schemas/DocumentLineInformation1'
      additionalProperties: false
      description: Set of elements used to identify the documents referred to in the remittance information.
      x-MXComponent: ReferredDocumentInformation10
    ReferredDocumentType3Choice:
      type: object
      additionalProperties: true
      description: Specifies the type of the document referred in the remittance information.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            type: string
            description: |
              Document type in a coded form.

              Specifies a type of financial or commercial document.

              Code Name Definition:
              *`AROI` - AccountReceivableOpenItem - Document is a payment that applies to a specific source document.
              *`BOLD` - BillOfLading - Document is a shipping notice.
              *`CINV` - CommercialInvoice - Document is an invoice.
              *`CMCN` - CommercialContract - Document is an agreement between the parties, stipulating the terms and conditions of the delivery of goods or services.
              *`CNFA` - CreditNoteRelatedToFinancialAdjustment - Document is a credit note for the final amount settled for a commercial transaction.
              *`CREN` - CreditNote - Document is a credit note.
              *`DEBN` - DebitNote - Document is a debit note.
              *`DISP` - DispatchAdvice - Document is a dispatch advice.
              *`DNFA` - DebitNoteRelatedToFinancialAdjustment - Document is a debit note for the final amount settled for a commercial transaction.
              *`HIRI` - HireInvoice - Document is an invoice for the hiring of human resources or renting goods or equipment.
              *`MSIN` - MeteredServiceInvoice - Document is an invoice claiming payment for the supply of metered services, for example gas or electricity supplied to a fixed meter.
              *`PUOR` - PurchaseOrder - Document is a purchase order.
              *`SBIN` - SelfBilledInvoice - Document is an invoice issued by the debtor.
              *`SOAC` - StatementOfAccount - Document is a statement of the transactions posted to the debtor's account at the supplier.
              *`TSUT` - TradeServicesUtilityTransaction - Document is a transaction identifier as assigned by the Trade Services Utility.
              *`VCHR` - Voucher - Document is an electronic payment document.
            enum:
            - AROI
            - BOLD
            - CINV
            - CMCN
            - CNFA
            - CREN
            - DEBN
            - DISP
            - DNFA
            - HIRI
            - MSIN
            - PUOR
            - SBIN
            - SOAC
            - TSUT
            - VCHR
            x-MXComponent: DocumentType6Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Proprietary identification of the type of the remittance document.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: ReferredDocumentType3Choice
    ReferredDocumentType4:
      required:
      - code_or_proprietary
      type: object
      properties:
        code_or_proprietary:
          $ref: '#/components/schemas/ReferredDocumentType3Choice'
        issuer:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification of the issuer of the reference document type.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Specifies the type of the document referred in the remittance information.
      x-MXComponent: ReferredDocumentType4
    RemittanceAmount3:
      type: object
      properties:
        due_payable_amount:
          $ref: '#/components/schemas/RemittanceAmount3_due_payable_amount'
        discount_applied_amount:
          type: array
          description: Amount of discount to be applied to the amount due and payable to the creditor.
          items:
            $ref: '#/components/schemas/DiscountAmountAndType1'
        credit_note_amount:
          $ref: '#/components/schemas/RemittanceAmount3_credit_note_amount'
        tax_amount:
          type: array
          description: Amount of the tax.
          items:
            $ref: '#/components/schemas/TaxAmountAndType1'
        adjustment_amount_and_reason:
          type: array
          description: Specifies detailed information on the amount and reason of the adjustment.
          items:
            $ref: '#/components/schemas/DocumentAdjustment1'
        remitted_amount:
          $ref: '#/components/schemas/RemittanceAmount3_remitted_amount'
      additionalProperties: false
      description: "Nature of the amount and currency on a document referred to in the remittance section, typically either the original amount due/payable or the amount actually remitted for the referenced document."
      x-MXComponent: RemittanceAmount3
    RemittanceAmount7:
      type: object
      properties:
        due_payable_amount:
          $ref: '#/components/schemas/RemittanceAmount3_due_payable_amount'
        discount_applied_amount:
          type: array
          description: Amount specified for the referred document is the amount of discount to be applied to the amount due and payable to the creditor.
          items:
            $ref: '#/components/schemas/DiscountAmountAndType1'
        credit_note_amount:
          $ref: '#/components/schemas/RemittanceAmount7_credit_note_amount'
        tax_amount:
          type: array
          description: Quantity of cash resulting from the calculation of the tax.
          items:
            $ref: '#/components/schemas/TaxAmountAndType1'
        adjustment_amount_and_reason:
          type: array
          description: Specifies detailed information on the amount and reason of the document adjustment.
          items:
            $ref: '#/components/schemas/DocumentAdjustment4'
        remitted_amount:
          $ref: '#/components/schemas/Garnishment3_remitted_amount'
      additionalProperties: false
      description: "Nature of the amount and currency on a document referred to in the remittance section, typically either the original amount due/payable or the amount actually remitted for the referenced document."
      x-MXComponent: RemittanceAmount7
    RemittanceInformation25:
      type: object
      properties:
        unstructured:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system, in an unstructured form.

            NEFT: N02 / N03 / N06.7495 Remittance information
            Optional, 6*35x

            NG-RTGS: Remittance Information 140 characters up to 4 can be used Sender to Receiver Information

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
        structured:
          type: array
          description: |
            Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system, in a structured form.

            Usage: Aligned with CGI-MP, PMPG, and CBPR+ Guidelines.
          items:
            $ref: '#/components/schemas/StructuredRemittanceInformation21'
      additionalProperties: false
      description: "Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system."
      x-MXComponent: RemittanceInformation25
    RemittanceLocation12:
      type: object
      properties:
        remittance_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique identification, as assigned by the initiating party, to unambiguously identify the remittance information sent separately from the payment instruction, such as a remittance advice.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        remittance_location_details:
          type: array
          description: Set of elements used to provide information on the location and/or delivery of the remittance information.
          items:
            $ref: '#/components/schemas/RemittanceLocationData4'
      additionalProperties: false
      description: Provides information on the remittance advice.
      x-MXComponent: RemittanceLocation12
    RemittanceLocationData4:
      required:
      - method
      type: object
      properties:
        method:
          type: string
          description: |
            Method used to deliver the remittance advice information.

            Specifies the method used to deliver the remittance advice information.

            Code Name Definition:
            *`EDIC` - ElectronicDataInterchange - Remittance advice information must be sent through Electronic Data Interchange (EDI).
            *`EMAL` - EMail - Remittance advice information must be sent through e-mail.
            *`FAXI` - Fax - Remittance advice information must be faxed.
            *`POST` - Post - Remittance advice information must be sent through postal services.
            *`SMSM` - SMS - Remittance advice information must be sent through by phone as a short message service (SMS).
            *`URID` - UniformResourceIdentifier - Remittance advice information needs to be sent to a Uniform Resource Identifier (URI). URI is a compact string of characters that uniquely identify an abstract or physical resource. URI's are the super-set of identifiers, such as URLs, email addresses, ftp sites, etc, and as such, provide the syntax for all of the identification schemes.
          enum:
          - EDIC
          - EMAL
          - FAXI
          - POST
          - SMSM
          - URID
          x-MXComponent: RemittanceLocationMethod2Code
        electronic_address:
          maxLength: 2048
          minLength: 1
          type: string
          description: |
            Electronic address to which an agent is to send the remittance information.

            May be used to specify email address to advise payment (allows for up 10 occurrences)
            For multiple addreess (CC arrangement)  use "; " as a delimiter.

            Based on datatype Max2048Text: Specifies a character string with a maximum length of 2048 characters.
          x-MXComponent: Max2048Text
        postal_address:
          $ref: '#/components/schemas/NameAndAddress21'
      additionalProperties: false
      description: Provides additional details on the remittance advice.
      x-MXComponent: RemittanceLocationData4
    ReturnReason5Choice:
      type: object
      additionalProperties: true
      description: Specifies the reason for the return of the transaction.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 4
            minLength: 1
            type: string
            description: |
              Reason for the return, as published in an external reason code list.

              Specifies the return reason, as published in an external return reason code list.
              External code sets can be downloaded from www.iso20022.org.
            x-MXComponent: ExternalReturnReason1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Reason for the return, in a proprietary form.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: ReturnReason5Choice
    StructuredRemittanceInformation21:
      type: object
      properties:
        referred_document_information:
          type: array
          description: Provides the identification and the content of the referred document.
          items:
            $ref: '#/components/schemas/ReferredDocumentInformation10'
        referred_document_amount:
          $ref: '#/components/schemas/RemittanceAmount7'
        creditor_reference_information:
          $ref: '#/components/schemas/CreditorReferenceInformation5'
        invoicer_name:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Identification of the organisation issuing the invoice, when it is different from the creditor or ultimate creditor.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
        invoicee_name:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Identification of the party to whom an invoice is issued, when it is different from the debtor or ultimate debtor.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
        tax_remittance:
          $ref: '#/components/schemas/TaxInformation7'
        garnishment_remittance:
          $ref: '#/components/schemas/Garnishment3'
        additional_remittance_information:
          maxItems: 3
          type: array
          description: |
            Additional information, in free text form, to complement the structured remittance information.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          items:
            maxLength: 140
            minLength: 1
            type: string
            x-MXComponent: Max140Text
      additionalProperties: false
      description: "Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system, in a structured form."
      x-MXComponent: StructuredRemittanceInformation21
    TaxAmount2:
      type: object
      properties:
        rate:
          maxLength: 12
          type: string
          description: |
            Rate used to calculate the tax.

            Based on datatype PercentageRate: Rate expressed as a percentage, that is, in hundredths, for example, 0.7 is 7/10 of a percent, and 7.0 is 7%.
          x-MXComponent: PercentageRate
        taxable_base_amount:
          $ref: '#/components/schemas/TaxAmount2_taxable_base_amount'
        total_amount:
          $ref: '#/components/schemas/TaxAmount2_total_amount'
        details:
          type: array
          description: Set of elements used to provide details on the tax period and amount.
          items:
            $ref: '#/components/schemas/TaxRecordDetails2'
      additionalProperties: false
      description: Set of elements used to provide information on the tax amount(s) of tax record.
      x-MXComponent: TaxAmount2
    TaxAmountAndType1:
      required:
      - amount
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TaxAmountType1Choice'
        amount:
          $ref: '#/components/schemas/DiscountAmountAndType1_amount'
      additionalProperties: false
      description: Specifies the amount with a specific type.
      x-MXComponent: TaxAmountAndType1
    TaxAmountType1Choice:
      type: object
      additionalProperties: true
      description: Specifies the amount type.
      oneOf:
      - required:
        - code
        type: object
        properties:
          code:
            maxLength: 4
            minLength: 1
            type: string
            description: |
              Specifies the amount type, in a coded form.

              Specifies the nature, or use, of the amount in the format of character string with a maximum length of 4 characters.
              The list of valid codes is an external code list published separately.
              External code sets can be downloaded from www.iso20022.org.
            x-MXComponent: ExternalTaxAmountType1Code
        additionalProperties: false
      - required:
        - proprietary
        type: object
        properties:
          proprietary:
            maxLength: 35
            minLength: 1
            type: string
            description: |
              Specifies the amount type, in a free-text form.

              Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
            x-MXComponent: Max35Text
        additionalProperties: false
      x-MXComponent: TaxAmountType1Choice
    TaxAuthorisation1:
      type: object
      properties:
        title:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Title or position of debtor or the debtor's authorised representative.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        name:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Name of the debtor or the debtor's authorised representative.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
      additionalProperties: false
      description: Details of the authorised tax paying party.
      x-MXComponent: TaxAuthorisation1
    TaxCharges2:
      type: object
      properties:
        identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique reference to unambiguously identify the nature of the tax levied, such as Value Added Tax (VAT).

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        rate:
          maxLength: 12
          type: string
          description: |
            Rate used to calculate the tax.

            Based on datatype PercentageRate: Rate expressed as a percentage, that is, in hundredths, for example, 0.7 is 7/10 of a percent, and 7.0 is 7%.
          x-MXComponent: PercentageRate
        amount:
          $ref: '#/components/schemas/TaxCharges2_amount'
      additionalProperties: false
      description: "Amount of money due to the government or tax authority, according to various pre-defined parameters such as thresholds or income."
      x-MXComponent: TaxCharges2
    TaxInformation7:
      type: object
      properties:
        creditor:
          $ref: '#/components/schemas/TaxParty1'
        debtor:
          $ref: '#/components/schemas/TaxParty2'
        ultimate_debtor:
          $ref: '#/components/schemas/TaxParty2'
        administration_zone:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Territorial part of a country to which the tax payment is related.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        reference_number:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Tax reference information that is specific to a taxing agency.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
        method:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Method used to indicate the underlying business or how the tax is paid.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        total_taxable_base_amount:
          $ref: '#/components/schemas/TaxInformation7_total_taxable_base_amount'
        total_tax_amount:
          $ref: '#/components/schemas/TaxInformation7_total_tax_amount'
        date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date by which tax is due.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        sequence_number:
          maxLength: 19
          type: string
          description: |
            Sequential number of the tax report.

            Based on datatype Number: Number of objects represented as an integer.
          x-MXComponent: Number
        record:
          type: array
          description: Record of tax details.
          items:
            $ref: '#/components/schemas/TaxRecord2'
      additionalProperties: false
      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."
      x-MXComponent: TaxInformation7
    TaxInformation8:
      type: object
      properties:
        creditor:
          $ref: '#/components/schemas/TaxParty1'
        debtor:
          $ref: '#/components/schemas/TaxParty2'
        administration_zone:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Territorial part of a country to which the tax payment is related.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        reference_number:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Tax reference information that is specific to a taxing agency.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
        method:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Method used to indicate the underlying business or how the tax is paid.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        total_taxable_base_amount:
          $ref: '#/components/schemas/TaxInformation7_total_taxable_base_amount'
        total_tax_amount:
          $ref: '#/components/schemas/TaxInformation7_total_tax_amount'
        date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date by which tax is due.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        sequence_number:
          maxLength: 19
          type: string
          description: |
            Sequential number of the tax report.

            Based on datatype Number: Number of objects represented as an integer.
          x-MXComponent: Number
        record:
          type: array
          description: Record of tax details.
          items:
            $ref: '#/components/schemas/TaxRecord2'
      additionalProperties: false
      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."
      x-MXComponent: TaxInformation8
    TaxParty1:
      type: object
      properties:
        tax_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Tax identification number of the creditor.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        registration_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique identification, as assigned by an organisation, to unambiguously identify a party.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        tax_type:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Type of tax payer.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Details about the entity involved in the tax paid or to be paid.
      x-MXComponent: TaxParty1
    TaxParty2:
      type: object
      properties:
        tax_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Tax identification number of the debtor.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        registration_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique identification, as assigned by an organisation, to unambiguously identify a party.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        tax_type:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Type of tax payer.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        authorisation:
          $ref: '#/components/schemas/TaxAuthorisation1'
      additionalProperties: false
      description: Details about the entity involved in the tax paid or to be paid.
      x-MXComponent: TaxParty2
    TaxPeriod2:
      type: object
      properties:
        year:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Year related to the tax payment.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        type:
          type: string
          description: |
            Identification of the period related to the tax payment.

            Specifies the period related to the tax payment.

            Code Name Definition:
            *`HLF1` - FirstHalf - Tax is related to the first half of the period.
            *`HLF2` - SecondHalf - Tax is related to the second half of the period.
            *`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.
          enum:
          - HLF1
          - HLF2
          - MM01
          - MM02
          - MM03
          - MM04
          - MM05
          - MM06
          - MM07
          - MM08
          - MM09
          - MM10
          - MM11
          - MM12
          - QTR1
          - QTR2
          - QTR3
          - QTR4
          x-MXComponent: TaxRecordPeriod1Code
        from_to_date:
          $ref: '#/components/schemas/DatePeriod2'
      additionalProperties: false
      description: Period of time details related to the tax payment.
      x-MXComponent: TaxPeriod2
    TaxRecord2:
      type: object
      properties:
        type:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            High level code to identify the type of tax details.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        category:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Specifies the tax code as published by the tax authority.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        category_details:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Provides further details of the category tax code.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        debtor_status:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Code provided by local authority to identify the status of the party that has drawn up the settlement document.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        certificate_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification number of the tax report as assigned by the taxing authority.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        forms_code:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identifies, in a coded form, on which template the tax report is to be provided.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        period:
          $ref: '#/components/schemas/TaxPeriod2'
        tax_amount:
          $ref: '#/components/schemas/TaxAmount2'
        additional_information:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Further details of the tax record.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
      additionalProperties: false
      description: Set of elements used to define the tax record.
      x-MXComponent: TaxRecord2
    TaxRecordDetails2:
      required:
      - amount
      type: object
      properties:
        period:
          $ref: '#/components/schemas/TaxPeriod2'
        amount:
          $ref: '#/components/schemas/TaxRecordDetails2_amount'
      additionalProperties: false
      description: Provides information on the individual tax amount(s) per period of the tax record.
      x-MXComponent: TaxRecordDetails2
    TotalTransactions7:
      required:
      - total_number_of_credit_entries
      - total_number_of_debit_entries
      - total_number_of_entries
      - total_sum
      - total_sum_of_credit_entries
      - total_sum_of_debit_entries
      type: object
      properties:
        total_number_of_entries:
          pattern: "^[0-9]{1,15}$"
          type: string
          description: |
            Total number of individual entries included in the report.

            Based on datatype Max15NumericText: Specifies a numeric string with a maximum length of 15 digits.
          x-MXComponent: Max15NumericText
        total_sum:
          maxLength: 19
          type: string
          description: |
            Total of all individual entries included in the report.

            Based on datatype DecimalNumber: Number of objects represented as a decimal number, for example 0.75 or 45.6.
          x-MXComponent: DecimalNumber
        total_net_entry:
          $ref: '#/components/schemas/AmountAndDirection35'
        total_number_of_credit_entries:
          pattern: "^[0-9]{1,15}$"
          type: string
          description: |
            Total number of individual credit entries included in the report.
            ----------
            Usage Rule: CGI-MP: In the case where only Debits are available, Total Number of Credit Entries must be reported with the amount of zero.
            ----------

            Based on datatype Max15NumericText: Specifies a numeric string with a maximum length of 15 digits.
          x-MXComponent: Max15NumericText
        total_sum_of_credit_entries:
          maxLength: 19
          type: string
          description: |
            Total of all individual credit entries included in the report.
            ----------
            Usage Rule: CGI-MP: In the case where only Debits are available, Total Sum of Credit Entries must be reported with the amount of zero.
            ----------

            Based on datatype DecimalNumber: Number of objects represented as a decimal number, for example 0.75 or 45.6.
          x-MXComponent: DecimalNumber
        total_number_of_debit_entries:
          pattern: "^[0-9]{1,15}$"
          type: string
          description: |
            Total number of individual debit entries included in the report.
            ----------
            Usage Rule: CGI-MP: Mandatory. In the case where only Credits are available, Total Number of Debit Entries must be reported with the amount of zero.
            ----------

            Based on datatype Max15NumericText: Specifies a numeric string with a maximum length of 15 digits.
          x-MXComponent: Max15NumericText
        total_sum_of_debit_entries:
          maxLength: 19
          type: string
          description: |
            Total of all individual debit entries included in the report.
            ----------
            Usage Rule: CGI-MP: Mandatory. In the case where only Credits are available, Total Sum of Debit Entries must be reported with the amount of zero.
            ----------

            Based on datatype DecimalNumber: Number of objects represented as a decimal number, for example 0.75 or 45.6.
          x-MXComponent: DecimalNumber
        total_entries_per_bank_transaction_code:
          type: array
          description: Specifies the total number and sum of entries per bank transaction code.
          items:
            $ref: '#/components/schemas/TotalsPerBankTransactionCode6'
      additionalProperties: false
      description: Set of elements used to provide summary information on entries.
      x-MXComponent: TotalTransactions7
    TotalsPerBankTransactionCode6:
      required:
      - bank_transaction_code
      type: object
      properties:
        number_of_entries:
          pattern: "^[0-9]{1,15}$"
          type: string
          description: |
            Number of individual entries for the bank transaction code.

            Based on datatype Max15NumericText: Specifies a numeric string with a maximum length of 15 digits.
          x-MXComponent: Max15NumericText
        sum:
          maxLength: 19
          type: string
          description: |
            Total of all individual entries included in the report.

            Based on datatype DecimalNumber: Number of objects represented as a decimal number, for example 0.75 or 45.6.
          x-MXComponent: DecimalNumber
        total_net_entry:
          $ref: '#/components/schemas/AmountAndDirection35'
        number_of_credit_entries:
          pattern: "^[0-9]{1,15}$"
          type: string
          description: |
            Number of individual credit entries included in the report.

            Based on datatype Max15NumericText: Specifies a numeric string with a maximum length of 15 digits.
          x-MXComponent: Max15NumericText
        sum_of_credit_entries:
          maxLength: 19
          type: string
          description: |
            Total of all individual credit entries included in the report.

            Based on datatype DecimalNumber: Number of objects represented as a decimal number, for example 0.75 or 45.6.
          x-MXComponent: DecimalNumber
        number_of_debit_entries:
          pattern: "^[0-9]{1,15}$"
          type: string
          description: |
            Number of individual debit entries included in the report.

            Based on datatype Max15NumericText: Specifies a numeric string with a maximum length of 15 digits.
          x-MXComponent: Max15NumericText
        sum_of_debit_entries:
          maxLength: 19
          type: string
          description: |
            Total of all individual debit entries included in the report.

            Based on datatype DecimalNumber: Number of objects represented as a decimal number, for example 0.75 or 45.6.
          x-MXComponent: DecimalNumber
        bank_transaction_code:
          $ref: '#/components/schemas/BankTransactionCodeStructure8'
        availability:
          type: array
          description: "Set of elements used to indicate when the booked amount of money will become available, that is can be accessed and starts generating interest."
          items:
            $ref: '#/components/schemas/CashAvailability1'
        date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Indicates the date (and time) of the transaction summary.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
      additionalProperties: false
      description: Set of elements used to provide the total sum of entries per bank transaction code.
      x-MXComponent: TotalsPerBankTransactionCode6
    TrackData1:
      required:
      - track_value
      type: object
      properties:
        track_number:
          pattern: "^[0-9]$"
          type: string
          description: |
            Track number of the card.

            Based on datatype Exact1NumericText: Specifies a numeric string with an exact length of1digit.
          x-MXComponent: Exact1NumericText
        track_value:
          maxLength: 140
          minLength: 1
          type: string
          description: |
            Card track content or equivalent.

            Based on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.
          x-MXComponent: Max140Text
      additionalProperties: false
      description: Magnetic track or equivalent payment card data.
      x-MXComponent: TrackData1
    TransactionAgents7:
      type: object
      properties:
        instructing_agent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification15'
        instructed_agent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification15'
        debtor_agent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification15'
        creditor_agent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification15'
        intermediary_agent1:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification15'
        intermediary_agent2:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification15'
        intermediary_agent3:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification15'
      additionalProperties: false
      description: Provides further details on the agents specific to the individual transaction.
      x-MXComponent: TransactionAgents7
    TransactionData16:
      required:
      - amount
      - bank_transaction_code
      - credit_debit_indicator
      - references
      type: object
      properties:
        references:
          $ref: '#/components/schemas/TransactionReferences6'
        amount:
          $ref: '#/components/schemas/TransactionData16_amount'
        credit_debit_indicator:
          type: string
          description: |
            Indicates whether the transaction is a credit or a debit transaction.
            ----------
            Usage: CGI-MP: for Concentrator, If Batch is present, then this value represetns the Bulk/Batch total.
            ----------

            Specifies if an operation is an increase or a decrease.

            Code Name Definition:
            *`CRDT` - Credit - Operation is an increase.
            *`DBIT` - Debit - Operation is a decrease.
            Synonyms
            Value: :22F::CRDB - Context: ISO 15022
          enum:
          - CRDT
          - DBIT
          x-MXComponent: CreditDebitCode
        amount_details:
          $ref: '#/components/schemas/AmountAndCurrencyExchange5'
        availability:
          type: array
          description: "Set of elements used to indicate when the booked amount of money will become available, that is can be accessed and starts generating interest. \n\nUsage: This type of information is used in the US and is linked to particular instruments such as cheques.\nExample: When a cheque is deposited, it will be booked on the deposit day, but the amount of money will only be accessible as of the indicated availability day (according to national banking regulations).\n\nISO 20022: If Balance Type is equal to ForwardAvailable, Availability is not allowed.\n----------\nUsage: CGI-MP: When 100% availability is provided on the Booking Date, Availability should not be present.\n- When availability is provided for a date other than the Booking Date and zero availability is provided on the Booking Date, the Booking date with a zero value should be present.\n- Recommendation is to use Actual Date.\n- Market practice dependent: General practice in US is to use number of days\n----------\n"
          items:
            $ref: '#/components/schemas/CashAvailability1'
        bank_transaction_code:
          $ref: '#/components/schemas/BankTransactionCodeStructure8'
        charges:
          $ref: '#/components/schemas/Charges18'
        interest:
          $ref: '#/components/schemas/TransactionInterest4'
        related_parties:
          $ref: '#/components/schemas/TransactionParties13'
        related_agents:
          $ref: '#/components/schemas/TransactionAgents7'
        local_instrument:
          $ref: '#/components/schemas/LocalInstrument2Choice'
        purpose:
          $ref: '#/components/schemas/Purpose2Choice'
        related_remittance_information:
          maxItems: 10
          type: array
          description: Provides information related to the handling of the remittance information by any of the agents in the transaction processing chain.
          items:
            $ref: '#/components/schemas/RemittanceLocation12'
        remittance_information:
          $ref: '#/components/schemas/RemittanceInformation25'
        related_dates:
          $ref: '#/components/schemas/TransactionDates4'
        tax:
          $ref: '#/components/schemas/TaxInformation8'
        return_information:
          $ref: '#/components/schemas/PaymentReturnReason9'
        cash_deposit:
          type: array
          description: Provides the details of a cash deposit for an amount of money in cash notes and/or coins.
          items:
            $ref: '#/components/schemas/CashDeposit1'
        card_transaction:
          $ref: '#/components/schemas/CardTransaction17'
        additional_transaction_information:
          maxLength: 500
          minLength: 1
          type: string
          description: |
            Further details of the transaction.

            Based on datatype Max500Text: Specifies a character string with a maximum length of 500 characters.
          x-MXComponent: Max500Text
      additionalProperties: false
      description: Identifies the underlying transaction.
      x-MXComponent: TransactionData16
    TransactionDates4:
      type: object
      properties:
        acceptance_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Point in time when the payment order from the initiating party meets the processing conditions of the account servicing agent. This means that the account servicing agent has received the payment order and has applied checks such as authorisation, availability of funds.
            ----------
            Usage Rule: CGI-MP: Use local time with the UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), otherwise use UTC time format (YYYY-MM-DDThh:mm:ss.sssZ).
            ----------

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        interbank_settlement_date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        start_date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Start date of the underlying transaction, such as a treasury transaction, an investment plan.
            ----------
            Usage Rule: CGI-MP: May be used for cheque issuance date.
            ----------

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        end_date:
          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)(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            End date of the underlying transaction, such as a treasury transaction, an investment plan.
            ----------
            Usage Rule: CGI-MP: May be used for cheque expiry date.
            ----------

            Based on datatype ISODate: 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.
          x-MXComponent: ISODate
        transaction_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Date and time of the underlying transaction.
            ----------
            Usage Rule: CGI-MP: Use local time with the UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), otherwise use UTC time format (YYYY-MM-DDThh:mm:ss.sssZ).
            ----------

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
      additionalProperties: false
      description: Set of elements used to provide information on the dates related to the underlying individual transaction.
      x-MXComponent: TransactionDates4
    TransactionIdentifier1:
      required:
      - transaction_date_time
      - transaction_reference
      type: object
      properties:
        transaction_date_time:
          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(?:\\.[0-9]+)?(?:Z|[+-][01]\\d:[0-5]\\d)?$"
          type: string
          description: |
            Local date and time of the transaction assigned by the POI (Point Of Interaction).

            Based on datatype ISODateTime: 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.
          x-MXComponent: ISODateTime
        transaction_reference:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification of the transaction that has to be unique for a time period.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
      additionalProperties: false
      description: Identification of the transaction in an unambiguous way.
      x-MXComponent: TransactionIdentifier1
    TransactionInterest4:
      type: object
      properties:
        total_interest_and_tax_amount:
          $ref: '#/components/schemas/TransactionInterest4_total_interest_and_tax_amount'
        record:
          type: array
          description: Individual interest record.
          items:
            $ref: '#/components/schemas/InterestRecord2'
      additionalProperties: false
      description: Provide further details on transaction specific interest information that applies to the underlying transaction.
      x-MXComponent: TransactionInterest4
    TransactionParties13:
      type: object
      properties:
        initiating_party:
          $ref: '#/components/schemas/Party61Choice'
        debtor:
          $ref: '#/components/schemas/Party61Choice'
        debtor_account:
          $ref: '#/components/schemas/CashAccount214'
        ultimate_debtor:
          $ref: '#/components/schemas/Party61Choice'
        creditor:
          $ref: '#/components/schemas/Party61Choice'
        creditor_account:
          $ref: '#/components/schemas/CashAccount214'
        ultimate_creditor:
          $ref: '#/components/schemas/Party61Choice'
        trading_party:
          $ref: '#/components/schemas/Party61Choice'
      additionalProperties: false
      description: Provides further details on the parties specific to the individual transaction.
      x-MXComponent: TransactionParties13
    TransactionReferences6:
      type: object
      properties:
        message_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Point to point reference, as assigned by the instructing party of the underlying message.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        account_servicer_reference:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique reference, as assigned by the account servicing institution, to unambiguously identify the instruction.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        payment_information_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique identification, as assigned by a sending party, to unambiguously identify the payment information group within the message.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        instruction_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            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.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        end_to_end_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            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.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        uetr:
          pattern: "^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$"
          type: string
          description: |
            Universally unique identifier to provide an end-to-end reference of a payment transaction.

            Based on datatype UUIDv4Identifier: Universally Unique IDentifier (UUID) version 4, as described in IETC RFC 4122 "Universally Unique IDentifier (UUID) URN Namespace".
          x-MXComponent: UUIDv4Identifier
        transaction_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: "Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. \nUsage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. \nUsage: The instructing agent has to make sure that the transaction identification is unique for a pre-agreed period.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n"
          x-MXComponent: Max35Text
        mandate_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique identification, as assigned by the creditor, to unambiguously identify the mandate.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        cheque_number:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique and unambiguous identifier for a cheque as assigned by the agent.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        clearing_system_reference:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unique reference, as assigned by a clearing system, to unambiguously identify the instruction.
            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.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        account_owner_transaction_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unambiguous identification of the securities transaction as known by the securities account owner (or the instructing party managing the account).

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        account_servicer_transaction_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Unambiguous identification of the securities transaction as known by the securities account servicer.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        market_infrastructure_transaction_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification of a securities transaction assigned by a market infrastructure other than a central securities depository, for example, Target2-Securities.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        processing_identification:
          maxLength: 35
          minLength: 1
          type: string
          description: |
            Identification of the securities transaction assigned by the processor of the instruction other than the securities account owner, the securities account servicer and the market infrastructure.

            Based on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.
          x-MXComponent: Max35Text
        proprietary:
          type: array
          description: Proprietary reference related to the underlying transaction.
          items:
            $ref: '#/components/schemas/ProprietaryReference1'
      additionalProperties: false
      description: Identifies the underlying transaction.
      x-MXComponent: TransactionReferences6
    ErrorMessage:
      required:
      - code
      - severity
      - text
      type: object
      properties:
        severity:
          type: string
          enum:
          - Fatal
          - Transient
          - Logic
        code:
          type: string
        text:
          type: string
        user_message:
          type: string
        more_info:
          type: string
          format: uri
    AmountAndCurrencyExchangeDetails4_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount of money to be exchanged against another amount of money in the counter currency.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    AmountAndCurrencyExchangeDetails7_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      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.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    BatchInformation3_total_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Total amount of money reported in the batch entry.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    CashAvailability1_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Identifies the available amount.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    CashBalance17_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount of money of the cash balance.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    CashDeposit1_note_denomination:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Specifies the note or coin denomination, including the currency, such as a 50 euro note.

        Based on datatype ActiveCurrencyAndAmount: A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.
    CashDeposit1_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Specifies the total amount of money in the cash deposit, that is the note denomination times the number of notes.

        Based on datatype ActiveCurrencyAndAmount: A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.
    Charges18_total_charges_and_tax_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Total of all charges and taxes applied to the entry.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    ChargesRecord13_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Transaction charges to be paid by the charge bearer.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    CreditLine5_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount of money of the credit line.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    DiscountAmountAndType1_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount of money, which has been typed.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    DocumentAdjustment1_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount of money of the document adjustment.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    EntryData16_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount of money in the cash entry.
        ----------
        Usage: CGI-MP: Amount in the currency of the account reported. This amount can be zero.
        ----------

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    Garnishment3_remitted_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount of money remitted for the referred document.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    InterestRecord2_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount of interest included in the entry amount.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    RemittanceAmount3_due_payable_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount specified is the exact amount due and payable to the creditor.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    RemittanceAmount3_credit_note_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount of a credit note.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    RemittanceAmount3_remitted_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount of money remitted.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    RemittanceAmount7_credit_note_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount specified for the referred document is the amount of a credit note.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    TaxAmount2_taxable_base_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount of money on which the tax is based.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    TaxAmount2_total_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Total amount that is the result of the calculation of the tax for the record.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    TaxCharges2_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount of money resulting from the calculation of the tax.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    TaxInformation7_total_taxable_base_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Total amount of money on which the tax is based.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    TaxInformation7_total_tax_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Total amount of money as result of the calculation of the tax.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    TaxRecordDetails2_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Underlying tax amount related to the specified period.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    TransactionData16_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Amount of money in the cash transaction.
        ----------
        Usage: CGI-MP: for Concentrator, If Batch is present, then this value represetns the Bulk/Batch total.
        ----------

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
    TransactionInterest4_total_interest_and_tax_amount:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          pattern: "^[A-Z]{3,3}$"
          type: string
          x-MXComponent: ActiveOrHistoricCurrencyCode
        amount:
          maxLength: 19
          pattern: "^0*(([0-9]{0,13}\\.[0-9]{1,5})|([0-9]{0,14}\\.[0-9]{1,4})|([0-9]{0,15}\\.[0-9]{1,3})|([0-9]{0,16}\\.[0-9]{1,2})|([0-9]{0,17}\\.[0-9]{1,1})|([0-9]{0,18}\\.)|0*|([0-9]{0,18}))$"
          type: string
      additionalProperties: false
      description: |
        Total amount of interests and taxes included in the entry amount.

        Based on datatype ActiveOrHistoricCurrencyAndAmount: 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.
  
  responses:
    "400-BadRequest":
      description: Bad Request
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'          
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    "401-Unauthorized":
      description: Unauthorized
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'                    
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    "403-Forbidden":
      description: Forbidden
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'                    
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    "404-NotFound":
      description: Not Found
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'                    
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    "406-NotAcceptable":
      description: Not Acceptable
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'                    
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    "429-TooManyRequests":
      description: Too Many Requests
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'                    
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    "503-ServiceUnavailable":
      description: Service Unavailable
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'                    
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    "504-GatewayTimeout":
      description: Gateway Timeout
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'                    
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
  
  securitySchemes:
    oauthBearerToken:
      type: http
      description: |
        The access token obtained as a result of OAuth 2.0 flows. SWIFT supports two OAuth grant types for consumption depending on the environment where the API is exposed. 

          - MV-SIPN - jwt-bearer grant type [RFC 7523](https://tools.ietf.org/html/rfc7523) with Signed JWT assertion
          - Internet - Password grant type with license credentials.

        This API uses JWT-Bearer grant type.

        Please visit [SWIFT OAuth Token API](https://developer.swift.com/swift-oauth-token-api) page for more information and examples on how to generate an OAuth token.

        In this declaration only the basic security element to transport the bearer token of an OAuth2 process is declared.
      scheme: bearer
      bearerFormat: opaque OAuth 2.0
    oAuth2:
      type: oauth2
      description: |
        This API uses OAuth2 with the client credentials grant type for service provider API gateway integration. Used between an end SWIFT API gateway and service provider API gateway.

        Please visit [SWIFT OAuth Token API](https://developer.swift.com/swift-oauth-token-api) for more information and examples.
      flows:
        clientCredentials:
          tokenUrl: /v1/oauth2/token
          scopes: {}