---
openapi: 3.0.1
info:
  version: 4.1.0
  title: Instant Payments
  description: This swagger is inclusive of 5 operations such as EMTRecipientPaymentOptions,
    EMTCustomerCreditTransferInitiation, EMTGetTransaction, EMTCreditorPaymentActivationRequest,
    EMTGetRequestForPaymentTransaction.
  contact:
    name: Interac Open API
    email: AWS-EMTOS-API-Developers@bmo.com
  x-api-id: BMO-ENT-f03de36a-fb59-4757-af38-b4afb449a904
  x-bmo-api-type: general-api
  x-bmoservicedomain-name: Payment Initiation
  x-bmo-api-provider-id: 87679
  x-audience: company-internal
  x-template-version: 1.0.0
  x-api-specification-compliant: true
  x-ibm-name: interacpaymentapi
  x-ibm-summary: ""
servers:
- url: https://sandbox-open-api.bmo.com/open-banking/commercial-sb
tags:
- name: TPP-EMTGetTransaction
  description: Payment Status Enquiry
- name: TPP-EMTCreditorPaymentActivationRequest
  description: Request for Payment initiation
- name: TPP-EMTRecipientPaymentOptions
  description: Retrieve payment options
- name: TPP-EMTCustomerCreditTransferInitiation
  description: Send Payment
- name: TPP-EMTGetRequestForPaymentTransaction
  description: Request for Payment Status Enquiry
- name: TPP-EMTCustomerCancelTransferInitiation
  description: Cancel Payment
paths:
  /tpp/interac-etransfer/payment-initiation/get-transaction:
    post:
      tags:
      - TPP-EMTGetTransaction
      summary: Obtain Payment Status
      description: GetTransaction - Receives CAMT005 format and respond back with
        PAIN002 format
      x-dataclassification-code: Confidential
      operationId: TPP-EMTGetTransaction
      parameters:
      - $ref: '#/components/parameters/x-fapi-financial-id'
      - $ref: '#/components/parameters/x-fapi-customer-last-logged-time'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-fapi-customer-user-agent'
      - $ref: '#/components/parameters/x-client-id'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/x-app-cat-id'
      - $ref: '#/components/parameters/true-client-ip'
      - $ref: '#/components/parameters/x-crypto-key'
      - $ref: '#/components/parameters/x-api-key'
      requestBody:
        description: GetTransaction - Receives CAMT005 format and respond back with
          PAIN002 format
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GPSRequestBody'
        required: true
      responses:
        200:
          $ref: '#/components/responses/gpspain002'
        400:
          $ref: '#/components/responses/400'
        401:
          $ref: '#/components/responses/401'
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
        415:
          $ref: '#/components/responses/415'
        429:
          $ref: '#/components/responses/429'
        500:
          $ref: '#/components/responses/500'
        504:
          $ref: '#/components/responses/504'
      security:
      - api-key-1: []
        OAuth:
        - bmo.tppinterac.payment-initiation.read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        httpMethod: POST
        uri: EMTGetTransaction_lambda_arn_invocation
        responses:
          default:
            statusCode: "200"
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
      x-codegen-request-body-name: GPSRequestBody
  /tpp/interac-etransfer/payment-initiation/get-request-for-payment-transaction:
    post:
      tags:
      - TPP-EMTGetRequestForPaymentTransaction
      summary: Obtain Request for Payment Status
      description: GetRequestForPaymentTransaction - Receives CAMT005 format and respond
        back with PAIN002 format
      x-dataclassification-code: Confidential
      operationId: TPP-EMTGetRequestForPaymentTransaction
      parameters:
      - $ref: '#/components/parameters/x-fapi-financial-id'
      - $ref: '#/components/parameters/x-fapi-customer-last-logged-time'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-fapi-customer-user-agent'
      - $ref: '#/components/parameters/x-client-id'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/x-app-cat-id'
      - $ref: '#/components/parameters/true-client-ip'
      - $ref: '#/components/parameters/x-crypto-key'
      - $ref: '#/components/parameters/x-api-key'
      requestBody:
        description: GetRequestForPaymentTransaction - Receives CAMT005 format and
          respond back with PAIN002 format
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GPSRequestBody'
        required: true
      responses:
        200:
          $ref: '#/components/responses/pain002'
        400:
          $ref: '#/components/responses/400'
        401:
          $ref: '#/components/responses/401'
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
        415:
          $ref: '#/components/responses/415'
        429:
          $ref: '#/components/responses/429'
        500:
          $ref: '#/components/responses/500'
        504:
          $ref: '#/components/responses/504'
      security:
      - api-key-1: []
        OAuth:
        - bmo.tppinterac.payment-initiation.read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        httpMethod: POST
        uri: EMTRFPS_lambda_arn_invocation
        responses:
          default:
            statusCode: "200"
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
      x-codegen-request-body-name: GPSRequestBody
  /tpp/interac-etransfer/payment-initiation/creditor-payment-activation-request:
    post:
      tags:
      - TPP-EMTCreditorPaymentActivationRequest
      summary: Send Request for Payment
      description: CreditorPaymentActivationRequest which receives PAIN.013 ISO format
        as input and returns PAIN.014 ISO format as response.
      x-dataclassification-code: Internal
      operationId: TPP-EMTCreditorPaymentActivationRequest
      parameters:
      - $ref: '#/components/parameters/x-fapi-financial-id'
      - $ref: '#/components/parameters/x-fapi-customer-last-logged-time'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-fapi-customer-user-agent'
      - $ref: '#/components/parameters/x-client-id'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/x-app-cat-id'
      - $ref: '#/components/parameters/true-client-ip'
      - $ref: '#/components/parameters/x-crypto-key'
      - $ref: '#/components/parameters/x-api-key'
      requestBody:
        description: CreditorPaymentActivationRequest - receives PAIN013 format and
          responds back with PAIN014 format.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RFPRequestBody'
        required: true
      responses:
        200:
          $ref: '#/components/responses/pain014'
        400:
          $ref: '#/components/responses/400'
        401:
          $ref: '#/components/responses/401'
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
        415:
          $ref: '#/components/responses/415'
        429:
          $ref: '#/components/responses/429'
        500:
          $ref: '#/components/responses/500'
        504:
          $ref: '#/components/responses/504'
      security:
      - api-key-1: []
        OAuth:
        - bmo.tppinterac.payment-initiation.create
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        httpMethod: POST
        uri: creditlambdaArnInvocation
        responses:
          default:
            statusCode: "200"
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
      x-codegen-request-body-name: RFPRequestBody
  /tpp/interac-etransfer/payment-initiation/get-emt-recipient-payment-options/get:
    post:
      tags:
      - TPP-EMTRecipientPaymentOptions
      summary: Get Payment Option
      description: RecipientPaymentOptions - receives ACMT.023 format as request and
        responds back with ACMT.024 format.
      x-dataclassification-code: Confidential
      operationId: TPP-EMTRecipientPaymentOptions
      parameters:
      - $ref: '#/components/parameters/x-fapi-financial-id'
      - $ref: '#/components/parameters/x-fapi-customer-last-logged-time'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-fapi-customer-user-agent'
      - $ref: '#/components/parameters/x-client-id'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/x-app-cat-id'
      - $ref: '#/components/parameters/true-client-ip'
      - $ref: '#/components/parameters/x-crypto-key'
      - $ref: '#/components/parameters/x-api-key'
      requestBody:
        description: RecipientPaymentOptions - receives ACMT.023 format as request
          and responds back with ACMT.024 format.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/getPayOptionsRequestBody'
        required: true
      responses:
        200:
          $ref: '#/components/responses/acmt024'
        400:
          $ref: '#/components/responses/400'
        401:
          $ref: '#/components/responses/401'
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
        415:
          $ref: '#/components/responses/415'
        429:
          $ref: '#/components/responses/429'
        500:
          $ref: '#/components/responses/500'
        504:
          $ref: '#/components/responses/504'
      security:
      - api-key-1: []
        OAuth:
        - bmo.tppinterac.payment-initiation.read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        httpMethod: POST
        uri: EMTRecipientPaymentOptions_lambda_arn_invocation
        responses:
          default:
            statusCode: "200"
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
      x-codegen-request-body-name: getPayOptionsRequestBody
  /tpp/interac-etransfer/payment-initiation/customer-credit-transfer-initiation:
    post:
      tags:
      - TPP-EMTCustomerCreditTransferInitiation
      summary: Send Payment
      description: CustomerCreditTransferInitiation - receives pain001 format as request
        and responds back in PAIN002 format
      x-dataclassification-code: Confidential
      operationId: TPP-EMTCustomerCreditTransferInitiation
      parameters:
      - $ref: '#/components/parameters/x-fapi-financial-id'
      - $ref: '#/components/parameters/x-fapi-customer-last-logged-time'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-fapi-customer-user-agent'
      - $ref: '#/components/parameters/x-client-id'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/x-app-cat-id'
      - $ref: '#/components/parameters/true-client-ip'
      - $ref: '#/components/parameters/x-crypto-key'
      - $ref: '#/components/parameters/x-api-key'
      requestBody:
        description: CustomerCreditTransferInitiation - receives pain001 format as
          request and responds back in PAIN002 format
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SPRequestBody'
        required: true
      responses:
        200:
          $ref: '#/components/responses/pain002'
        400:
          $ref: '#/components/responses/400'
        401:
          $ref: '#/components/responses/401'
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
        415:
          $ref: '#/components/responses/415'
        429:
          $ref: '#/components/responses/429'
        500:
          $ref: '#/components/responses/500'
        504:
          $ref: '#/components/responses/504'
      security:
      - api-key-1: []
        OAuth:
        - bmo.tppinterac.payment-initiation.create
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        httpMethod: POST
        uri: PaymentInitiation_lambda_arn_invocation
        responses:
          default:
            statusCode: "200"
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
      x-codegen-request-body-name: SPRequestBody
components:
  responses:
    400:
      description: Bad Request Exception
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
      headers:
        x-request-id:
          schema:
            type: string
          required: false
          description: Correlates HTTP requests between a client and server. Uniquely
            identifies each API call.
        x-fapi-interaction-id:
          schema:
            type: string
          required: false
          description: An RFC 4122 UID used  to consolidate multiple requests for
            ex. in a particular session of the customer /employee. Multiple requests  with
            unique  x-request-id's might have common  x-fapi-interactionid. If there
            is no need to link multiple API calls then the x-fapi-interaction-id values
            is the same as x-request-id.
    401:
      description: Unauthorized
      headers:
        x-request-id:
          schema:
            type: string
          required: false
          description: Correlates HTTP requests between a client and server. Uniquely
            identifies each API call.
        x-fapi-interaction-id:
          schema:
            type: string
          required: false
          description: An RFC 4122 UID used  to consolidate multiple requests for
            ex. in a particular session of the customer /employee. Multiple requests  with
            unique  x-request-id's might have common  x-fapi-interactionid. If there
            is no need to link multiple API calls then the x-fapi-interaction-id values
            is the same as x-request-id.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
    403:
      description: Forbidden - the user is not authorized to use this resource
      headers:
        x-request-id:
          schema:
            type: string
          required: false
          description: Correlates HTTP requests between a client and server. Uniquely
            identifies each API call.
        x-fapi-interaction-id:
          schema:
            type: string
          required: false
          description: An RFC 4122 UID used  to consolidate multiple requests for
            ex. in a particular session of the customer /employee. Multiple requests  with
            unique  x-request-id's might have common  x-fapi-interactionid. If there
            is no need to link multiple API calls then the x-fapi-interaction-id values
            is the same as x-request-id.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
    404:
      description: Not Found
      headers:
        x-request-id:
          schema:
            type: string
          required: false
          description: Correlates HTTP requests between a client and server. Uniquely
            identifies each API call.
        x-fapi-interaction-id:
          schema:
            type: string
          required: false
          description: An RFC 4122 UID used  to consolidate multiple requests for
            ex. in a particular session of the customer /employee. Multiple requests  with
            unique  x-request-id's might have common  x-fapi-interactionid. If there
            is no need to link multiple API calls then the x-fapi-interaction-id values
            is the same as x-request-id.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
    415:
      description: Unsupported Media Type
      headers:
        x-request-id:
          schema:
            type: string
          required: false
          description: Correlates HTTP requests between a client and server. Uniquely
            identifies each API call.
        x-fapi-interaction-id:
          schema:
            type: string
          required: false
          description: An RFC 4122 UID used  to consolidate multiple requests for
            ex. in a particular session of the customer /employee. Multiple requests  with
            unique  x-request-id's might have common  x-fapi-interactionid. If there
            is no need to link multiple API calls then the x-fapi-interaction-id values
            is the same as x-request-id.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
    429:
      description: Too many requests
      headers:
        x-request-id:
          schema:
            type: string
          required: false
          description: Correlates HTTP requests between a client and server. Uniquely
            identifies each API call.
        x-fapi-interaction-id:
          schema:
            type: string
          required: false
          description: An RFC 4122 UID used  to consolidate multiple requests for
            ex. in a particular session of the customer /employee. Multiple requests  with
            unique  x-request-id's might have common  x-fapi-interactionid. If there
            is no need to link multiple API calls then the x-fapi-interaction-id values
            is the same as x-request-id.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
    500:
      description: Internal Server Error
      headers:
        x-request-id:
          schema:
            type: string
          required: false
          description: Correlates HTTP requests between a client and server. Uniquely
            identifies each API call.
        x-fapi-interaction-id:
          schema:
            type: string
          required: false
          description: An RFC 4122 UID used  to consolidate multiple requests for
            ex. in a particular session of the customer /employee. Multiple requests  with
            unique  x-request-id's might have common  x-fapi-interactionid. If there
            is no need to link multiple API calls then the x-fapi-interaction-id values
            is the same as x-request-id.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
    504:
      description: Integration or Backend Timeout
      headers:
        x-request-id:
          schema:
            type: string
          required: false
          description: Correlates HTTP requests between a client and server. Uniquely
            identifies each API call.
        x-fapi-interaction-id:
          schema:
            type: string
          required: false
          description: An RFC 4122 UID used  to consolidate multiple requests for
            ex. in a particular session of the customer /employee. Multiple requests  with
            unique  x-request-id's might have common  x-fapi-interactionid. If there
            is no need to link multiple API calls then the x-fapi-interaction-id values
            is the same as x-request-id.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
    pain002:
      description: OK
      headers:
        x-request-id:
          schema:
            type: string
          required: true
          description: Correlates HTTP requests between a client and server. Uniquely
            identifies each API call.
        x-fapi-interaction-id:
          schema:
            type: string
          required: true
          description: An RFC 4122 UID used  to consolidate multiple requests for
            ex. in a particular session of the customer /employee. Multiple requests  with
            unique  x-request-id's might have common  x-fapi-interactionid. If there
            is no need to link multiple API calls then the x-fapi-interaction-id values
            is the same as x-request-id.
        x-et-response-code:
          description: A numeric response code specifying the outcome of the message.A
            successful call will return a response code of 0 and http response code
            '200', along with any additional response data."
          schema:
            type: integer
          required: false
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SPGPSResponseBody'
    gpspain002:
      description: OK
      headers:
        x-request-id:
          schema:
            type: string
          required: true
          description: Correlates HTTP requests between a client and server. Uniquely
            identifies each API call.
        x-fapi-interaction-id:
          schema:
            type: string
          required: true
          description: An RFC 4122 UID used  to consolidate multiple requests for
            ex. in a particular session of the customer /employee. Multiple requests  with
            unique  x-request-id's might have common  x-fapi-interactionid. If there
            is no need to link multiple API calls then the x-fapi-interaction-id values
            is the same as x-request-id.
        x-et-response-code:
          description: A numeric response code specifying the outcome of the message.A
            successful call will return a response code of 0 and http response code
            '200', along with any additional response data."
          schema:
            type: integer
          required: false
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GPSResponseBody'
    pain014:
      description: OK
      headers:
        x-request-id:
          schema:
            type: string
          required: false
          description: Correlates HTTP requests between a client and server. Uniquely
            identifies each API call.
        x-fapi-interaction-id:
          schema:
            type: string
          required: false
          description: An RFC 4122 UID used  to consolidate multiple requests for
            ex. in a particular session of the customer /employee. Multiple requests  with
            unique  x-request-id's might have common  x-fapi-interactionid. If there
            is no need to link multiple API calls then the x-fapi-interaction-id values
            is the same as x-request-id.
        x-et-response-code:
          description: A numeric response code specifying the outcome of the message.A
            successful call will return a response code of 0 and http response code
            '200', along with any additional response data."
          schema:
            type: integer
          required: false
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RFPResponseBody'
    acmt024:
      description: ok.
      headers:
        x-request-id:
          schema:
            type: string
          required: true
          description: Correlates HTTP requests between a client and server. Uniquely
            identifies each API call.
        x-fapi-interaction-id:
          schema:
            type: string
          required: true
          description: An RFC 4122 UID used  to consolidate multiple requests for
            ex. in a particular session of the customer /employee. Multiple requests  with
            unique  x-request-id's might have common  x-fapi-interactionid. If there
            is no need to link multiple API calls then the x-fapi-interaction-id values
            is the same as x-request-id.
        x-et-response-code:
          description: A numeric response code specifying the outcome of the message.A
            successful call will return a response code of 0 and http response code
            '200', along with any additional response data."
          schema:
            type: integer
          required: false
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/getPayOptionsResponseBody'
    camt029:
      description: ok.
      headers:
        x-request-id:
          schema:
            type: string
          required: true
          description: Correlates HTTP requests between a client and server. Uniquely
            identifies each API call.
        x-fapi-interaction-id:
          schema:
            type: string
          required: true
          description: An RFC 4122 UID used  to consolidate multiple requests for
            ex. in a particular session of the customer /employee. Multiple requests  with
            unique  x-request-id's might have common  x-fapi-interactionid. If there
            is no need to link multiple API calls then the x-fapi-interaction-id values
            is the same as x-request-id.
        x-et-response-code:
          description: A numeric response code specifying the outcome of the message.A
            successful call will return a response code of 0 and http response code
            '200', along with any additional response data."
          schema:
            type: integer
          required: false
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/cancelPaymentResponseBody'
  parameters:
    x-fapi-financial-id:
      in: header
      name: x-fapi-financial-id
      schema:
        type: string
      required: false
      description: The unique id of the financial institution to which the request
        is issued. BMO is 001
    x-crypto-key:
      name: x-crypto-key
      in: header
      description: Cryptographic key which can be used to decrypt the data. The format
        is  BASE64URL(key-id.JWE Encrypted Key.hashed.CEK)||'.'|| BASE64URL(Initialization
        Vector).
      schema:
        type: string
      required: false
    true-client-ip:
      in: header
      name: true-client-ip
      schema:
        type: string
      required: true
      description: Akamai will populate this field and cascade to APIC and EMTOS
    x-fapi-customer-last-logged-time:
      in: header
      name: x-fapi-customer-last-logged-time
      schema:
        type: string
      required: false
      description: The time when the Payment Services User last logged in with the
        Third Party Provider
    x-fapi-customer-ip-address:
      in: header
      name: x-fapi-customer-ip-address
      schema:
        type: string
      required: false
      description: The Payment Services User’s IP address if the Payment Services
        User is currently logged in with the Third Party Provider
    x-fapi-customer-user-agent:
      name: x-fapi-customer-user-agent
      in: header
      description: The header indicates the user-agent that the PSU is using. The
        API client may populate this field with the User-Agent header string if browser
        is being used. If the mobile app is being used then the x-fapi-customer-user-agent
        content must be different from browser based user-agent strings.
      schema:
        type: string
      required: false
    x-fapi-interaction-id:
      in: header
      name: x-fapi-interaction-id
      schema:
        type: string
      required: true
      description: An RFC 4122 UID used  to consolidate multiple requests for ex.
        in a particular session of the customer/employee. Multiple requests  with
        unique  x-request-id’s might have common  x-fapi-interactionid. If the is
        no need to link multiple API calls then the x-fapi-interaction-id values is
        the same as x-request-id.
    x-client-id:
      in: header
      name: x-client-id
      schema:
        type: string
      required: true
      description: Client Id generated during Third Party Provider application registration.
    x-request-id:
      in: header
      name: x-request-id
      schema:
        type: string
      required: true
      description: Correlates HTTP requests between a client and server. Uniquely
        identifies each API call.
    Authorization:
      in: header
      name: Authorization
      schema:
        type: string
      required: true
      description: An Authorisation Token as per https:#tools.ietf.org/html/rfc6750
    x-api-key:
      in: header
      name: x-api-key
      schema:
        type: string
      required: true
      description: The unique id used to identify caller of the API. (For legacy,
        AppCatId value could be used)
    x-app-cat-id:
      in: header
      name: x-app-cat-id
      schema:
        type: string
      required: false
      description: BMO Application Catalogue ID of the consumer of the API. To be
        provided if API call is initiated by a BMO Application. BMO Application Catalogue
        https:#appcat.bmogc.net/servlet/ApmServer
  schemas:
    cancelPaymentRequestBody:
      type: object
      properties:
        SECURE:
          type: object
          properties:
            encrypted:
              type: boolean
            data:
              type: string
              description: /components/schemas/customerPaymentCancellationRequestV08
    customerPaymentCancellationRequestV08:
      type: object
      required:
      - customerPaymentCancellationRequestV08
      properties:
        customerPaymentCancellationRequestV08:
          $ref: '#/components/schemas/CustomerPaymentCancellationRequestV08'
    CustomerPaymentCancellationRequestV08:
      additionalProperties: false
      properties:
        assignment:
          $ref: '#/components/schemas/CaseAssignment5'
        case:
          $ref: '#/components/schemas/Case5'
        controlData:
          $ref: '#/components/schemas/ControlData1'
        underlying:
          minItems: 1
          items:
            $ref: '#/components/schemas/UnderlyingTransaction24'
          type: array
      required:
      - assignment
      - underlying
      type: object
    CaseAssignment5:
      additionalProperties: false
      properties:
        identification:
          $ref: '#/components/schemas/Max35Text'
        assigner:
          $ref: '#/components/schemas/Party40Choice'
        assignee:
          $ref: '#/components/schemas/Party40Choice'
        creationDateTime:
          $ref: '#/components/schemas/ISODateTime'
      required:
      - identification
      - assigner
      - assignee
      - creationDateTime
      type: object
    ControlData1:
      additionalProperties: false
      properties:
        numberOfTransactions:
          $ref: '#/components/schemas/Max15NumericText'
      required:
      - numberOfTransactions
      type: object
    UnderlyingTransaction24:
      additionalProperties: false
      properties:
        originalGroupInformationAndCancellation:
          $ref: '#/components/schemas/OriginalGroupHeader15'
        originalPaymentInformationAndCancellation:
          items:
            $ref: '#/components/schemas/OriginalPaymentInstruction34'
          type: array
      type: object
    OriginalGroupHeader15:
      additionalProperties: false
      required:
      - originalMessageIdentification
      - originalMessageNameIdentification
      properties:
        groupCancellationIdentification:
          $ref: '#/components/schemas/Max35Text'
        case:
          $ref: '#/components/schemas/Case5'
        originalMessageIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalMessageNameIdentification:
          $ref: '#/components/schemas/Max35Text'
      type: object
    OriginalPaymentInstruction34:
      additionalProperties: false
      properties:
        paymentCancellationIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalPaymentInformationIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalGroupInformation:
          $ref: '#/components/schemas/OriginalGroupInformation29'
        paymentInformationCancellation:
          $ref: '#/components/schemas/GroupCancellationIndicator'
        cancellationReasonInformation:
          items:
            $ref: '#/components/schemas/PaymentCancellationReason5'
          type: array
        transactionInformation:
          items:
            $ref: '#/components/schemas/PaymentTransaction109'
          type: array
      required:
      - originalPaymentInformationIdentification
      type: object
    PaymentCancellationReason5:
      additionalProperties: false
      properties:
        originator:
          $ref: '#/components/schemas/PartyIdentification135'
        reason:
          $ref: '#/components/schemas/CancellationReason33Choice'
      type: object
    CancellationReason33Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalCancellationReason1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalCancellationReason1Code:
      minLength: 1
      maxLength: 4
      type: string
    GroupCancellationIndicator:
      type: boolean
    OriginalGroupInformation29:
      additionalProperties: false
      properties:
        originalMessageIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalMessageNameIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalCreationDateTime:
          $ref: '#/components/schemas/ISODateTime'
      required:
      - originalMessageIdentification
      - originalMessageNameIdentification
      type: object
    PaymentTransaction109:
      additionalProperties: false
      properties:
        cancellationIdentification:
          $ref: '#/components/schemas/Max35Text'
        case:
          $ref: '#/components/schemas/Case5'
        originalInstructionIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalEndToEndIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalInstructedAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        originalRequestedExecutionDate:
          $ref: '#/components/schemas/DateAndDateTime2Choice'
        cancellationReasonInformation:
          items:
            $ref: '#/components/schemas/PaymentCancellationReason5'
          type: array
        originalTransactionReference:
          $ref: '#/components/schemas/OriginalTransactionReference28Req'
        supplementaryData:
          items:
            $ref: '#/components/schemas/SupplementaryData1Canc'
          type: array
      type: object
    Case5:
      required:
      - identification
      - creator
      properties:
        identification:
          $ref: '#/components/schemas/Max35Text'
        creator:
          $ref: '#/components/schemas/Party40Choice'
      additionalProperties: false
      type: object
    OriginalTransactionReference28Req:
      additionalProperties: false
      properties:
        amount:
          $ref: '#/components/schemas/AmountType4ChoiceCanc'
        paymentTypeInformation:
          $ref: '#/components/schemas/PaymentTypeInformation27'
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethod4Code'
        remittanceInformation:
          $ref: '#/components/schemas/RemittanceInformation16'
        ultimateDebtor:
          $ref: '#/components/schemas/Party40Choice'
        debtor:
          $ref: '#/components/schemas/Party40Choice'
        debtorAccount:
          $ref: '#/components/schemas/CashAccount38'
        debtorAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        creditorAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        creditor:
          $ref: '#/components/schemas/Party40Choice'
        creditorAccount:
          $ref: '#/components/schemas/CashAccount38'
        ultimateCreditor:
          $ref: '#/components/schemas/Party40Choice'
      type: object
    AmountType4ChoiceCanc:
      oneOf:
      - required:
        - instructedAmount
      - required:
        - equivalentAmount
      properties:
        instructedAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        equivalentAmount:
          $ref: '#/components/schemas/EquivalentAmount2Canc'
      additionalProperties: false
      type: object
    EquivalentAmount2Canc:
      additionalProperties: false
      properties:
        amount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        currencyOfTransfer:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode'
      required:
      - amount
      - currencyOfTransfer
      type: object
    SPRequestBody:
      type: object
      properties:
        SECURE:
          type: object
          properties:
            encrypted:
              type: boolean
            data:
              type: string
              description: /components/schemas/customerCreditTransferInitiation
    customerCreditTransferInitiation:
      type: object
      required:
      - customerCreditTransferInitiationV09
      properties:
        customerCreditTransferInitiationV09:
          $ref: '#/components/schemas/CustomerCreditTransferInitiationV09'
    GroupHeader85:
      additionalProperties: false
      properties:
        messageIdentification:
          $ref: '#/components/schemas/Max35Text'
        creationDateTime:
          $ref: '#/components/schemas/ISODateTime'
        numberOfTransactions:
          $ref: '#/components/schemas/Max15NumericText'
        controlSum:
          $ref: '#/components/schemas/DecimalNumber'
        initiatingParty:
          $ref: '#/components/schemas/PartyIdentification135'
      required:
      - messageIdentification
      - creationDateTime
      - numberOfTransactions
      - initiatingParty
      type: object
    Max35Text:
      description: Specifies a character string with a maximum length of 35 characters.
      minLength: 1
      maxLength: 35
      type: string
    ISODateTime:
      type: string
    Max128Text:
      description: Specifies a character string with a maximum length of 128 characters.
      minLength: 1
      maxLength: 128
      type: string
    Max15NumericText:
      description: Specifies a numeric string with a maximum length of 15 digits.
      pattern: ^[0-9]{1,15}$
      type: string
    DecimalNumber:
      maxLength: 18
      type: string
    PartyIdentification135:
      additionalProperties: false
      properties:
        name:
          $ref: '#/components/schemas/Max140Text'
        postalAddress:
          $ref: '#/components/schemas/PostalAddress24'
        identification:
          $ref: '#/components/schemas/Party38Choice'
        countryOfResidence:
          $ref: '#/components/schemas/CountryCode'
        contactDetails:
          $ref: '#/components/schemas/Contact4'
      type: object
    Max140Text:
      description: Specifies a character string with a maximum length of 140 characters.
      minLength: 1
      maxLength: 140
      type: string
    PostalAddress24:
      additionalProperties: false
      properties:
        addressType:
          $ref: '#/components/schemas/AddressType3Choice'
        department:
          $ref: '#/components/schemas/Max70Text'
        subDepartment:
          $ref: '#/components/schemas/Max70Text'
        streetName:
          $ref: '#/components/schemas/Max70Text'
        buildingNumber:
          $ref: '#/components/schemas/Max16Text'
        buildingName:
          $ref: '#/components/schemas/Max35Text'
        floor:
          $ref: '#/components/schemas/Max70Text'
        postBox:
          $ref: '#/components/schemas/Max16Text'
        room:
          $ref: '#/components/schemas/Max70Text'
        postCode:
          $ref: '#/components/schemas/Max16Text'
        townName:
          $ref: '#/components/schemas/Max35Text'
        townLocationName:
          $ref: '#/components/schemas/Max35Text'
        districtName:
          $ref: '#/components/schemas/Max35Text'
        countrySubDivision:
          $ref: '#/components/schemas/Max35Text'
        country:
          $ref: '#/components/schemas/CountryCode'
        addressLine:
          maxItems: 7
          items:
            $ref: '#/components/schemas/Max70Text'
          type: array
      type: object
    AddressType3Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/AddressType2Code'
        proprietary:
          $ref: '#/components/schemas/GenericIdentification30'
      additionalProperties: false
      type: object
    AddressType2Code:
      enum:
      - HOME
      - BIZZ
      - ADDR
      - PBOX
      - MLTO
      - DLVY
      type: string
    GenericIdentification30:
      additionalProperties: false
      properties:
        identification:
          $ref: '#/components/schemas/Exact4AlphaNumericText'
        issuer:
          $ref: '#/components/schemas/Max35Text'
        schemeName:
          $ref: '#/components/schemas/Max35Text'
      required:
      - identification
      - issuer
      type: object
    Exact4AlphaNumericText:
      description: Specifies an alphanumeric string with a length of 4 characters.
      pattern: ^[a-zA-Z0-9]{4}$
      type: string
    Max70Text:
      description: Specifies a character string with a maximum length of 70characters.
      minLength: 1
      maxLength: 70
      type: string
    Max16Text:
      description: Specifies a character string with a maximum length of 16 characters.
      minLength: 1
      maxLength: 16
      type: string
    CountryCode:
      pattern: ^[A-Z]{2,2}$
      type: string
    Party38Choice:
      oneOf:
      - required:
        - organisationIdentification
      - required:
        - privateIdentification
      properties:
        organisationIdentification:
          $ref: '#/components/schemas/OrganisationIdentification29'
        privateIdentification:
          $ref: '#/components/schemas/PersonIdentification13'
      additionalProperties: false
      type: object
    OrganisationIdentification29:
      additionalProperties: false
      properties:
        anyBIC:
          $ref: '#/components/schemas/AnyBICDec2014Identifier'
        LEI:
          $ref: '#/components/schemas/LEIIdentifier'
        other:
          items:
            $ref: '#/components/schemas/GenericOrganisationIdentification1'
          type: array
      type: object
    AnyBICDec2014Identifier:
      pattern: ^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$
      type: string
    LEIIdentifier:
      pattern: ^[A-Z0-9]{18,18}[0-9]{2,2}$
      type: string
    GenericOrganisationIdentification1:
      additionalProperties: false
      properties:
        identification:
          $ref: '#/components/schemas/Max35Text'
        schemeName:
          $ref: '#/components/schemas/OrganisationIdentificationSchemeName1Choice'
        issuer:
          $ref: '#/components/schemas/Max35Text'
      required:
      - identification
      type: object
    OrganisationIdentificationSchemeName1Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalOrganisationIdentification1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalOrganisationIdentification1Code:
      minLength: 1
      maxLength: 4
      type: string
    PersonIdentification13:
      additionalProperties: false
      properties:
        dateAndPlaceOfBirth:
          $ref: '#/components/schemas/DateAndPlaceOfBirth1'
        other:
          items:
            $ref: '#/components/schemas/GenericPersonIdentification1'
          type: array
      type: object
    DateAndPlaceOfBirth1:
      additionalProperties: false
      properties:
        birthDate:
          $ref: '#/components/schemas/ISODate'
        provinceOfBirth:
          $ref: '#/components/schemas/Max35Text'
        cityOfBirth:
          $ref: '#/components/schemas/Max35Text'
        countryOfBirth:
          $ref: '#/components/schemas/CountryCode'
      required:
      - birthDate
      - cityOfBirth
      - countryOfBirth
      type: object
    ISODate:
      type: string
    GenericPersonIdentification1:
      additionalProperties: false
      properties:
        identification:
          $ref: '#/components/schemas/Max35Text'
        schemeName:
          $ref: '#/components/schemas/PersonIdentificationSchemeName1Choice'
        issuer:
          $ref: '#/components/schemas/Max35Text'
      required:
      - identification
      type: object
    PersonIdentificationSchemeName1Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalPersonIdentification1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalPersonIdentification1Code:
      minLength: 1
      maxLength: 4
      type: string
    Contact4:
      additionalProperties: false
      properties:
        namePrefix:
          $ref: '#/components/schemas/NamePrefix2Code'
        name:
          $ref: '#/components/schemas/Max140Text'
        phoneNumber:
          $ref: '#/components/schemas/PhoneNumber'
        mobileNumber:
          $ref: '#/components/schemas/PhoneNumber'
        faxNumber:
          $ref: '#/components/schemas/PhoneNumber'
        emailAddress:
          $ref: '#/components/schemas/Max2048Text'
        emailPurpose:
          $ref: '#/components/schemas/Max35Text'
        jobTitle:
          $ref: '#/components/schemas/Max35Text'
        responsibility:
          $ref: '#/components/schemas/Max35Text'
        department:
          $ref: '#/components/schemas/Max70Text'
        other:
          items:
            $ref: '#/components/schemas/OtherContact1'
          type: array
        preferredMethod:
          $ref: '#/components/schemas/PreferredContactMethod1Code'
      type: object
    NamePrefix2Code:
      enum:
      - DOCT
      - MIST
      - MISS
      - MADM
      - MIKS
      type: string
    PhoneNumber:
      description: |-
        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).
      pattern: ^\+[0-9]{1,3}-[0-9()+\-]{1,30}$
      type: string
    Max2048Text:
      description: Specifies a character string with a maximum length of 2048 characters.
      minLength: 1
      maxLength: 2048
      type: string
    OtherContact1:
      additionalProperties: false
      properties:
        channelType:
          $ref: '#/components/schemas/Max4Text'
        identification:
          $ref: '#/components/schemas/Max128Text'
      required:
      - channelType
      type: object
    Max4Text:
      description: Specifies a character string with a maximum length of 4 characters.
      minLength: 1
      maxLength: 4
      type: string
    PreferredContactMethod1Code:
      enum:
      - LETT
      - MAIL
      - PHON
      - FAXX
      - CELL
      type: string
    BranchAndFinancialInstitutionIdentification6:
      additionalProperties: false
      properties:
        financialInstitutionIdentification:
          $ref: '#/components/schemas/FinancialInstitutionIdentification18'
        branchIdentification:
          $ref: '#/components/schemas/BranchData3'
      required:
      - financialInstitutionIdentification
      type: object
    FinancialInstitutionIdentification18:
      additionalProperties: false
      properties:
        BICFI:
          $ref: '#/components/schemas/BICFIDec2014Identifier'
        clearingSystemMemberIdentification:
          $ref: '#/components/schemas/ClearingSystemMemberIdentification2'
        LEI:
          $ref: '#/components/schemas/LEIIdentifier'
        name:
          $ref: '#/components/schemas/Max140Text'
        postalAddress:
          $ref: '#/components/schemas/PostalAddress24'
        other:
          $ref: '#/components/schemas/GenericFinancialIdentification1'
      type: object
    BICFIDec2014Identifier:
      pattern: ^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$
      type: string
    ClearingSystemMemberIdentification2:
      additionalProperties: false
      properties:
        clearingSystemIdentification:
          $ref: '#/components/schemas/ClearingSystemIdentification2Choice'
        memberIdentification:
          $ref: '#/components/schemas/Max35Text'
      required:
      - memberIdentification
      type: object
    ClearingSystemIdentification2Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalClearingSystemIdentification1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalClearingSystemIdentification1Code:
      minLength: 1
      maxLength: 5
      type: string
    GenericFinancialIdentification1:
      additionalProperties: false
      properties:
        identification:
          $ref: '#/components/schemas/Max35Text'
        schemeName:
          $ref: '#/components/schemas/FinancialIdentificationSchemeName1Choice'
        issuer:
          $ref: '#/components/schemas/Max35Text'
      required:
      - identification
      type: object
    FinancialIdentificationSchemeName1Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalFinancialInstitutionIdentification1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalFinancialInstitutionIdentification1Code:
      minLength: 1
      maxLength: 4
      type: string
    BranchData3:
      additionalProperties: false
      properties:
        identification:
          $ref: '#/components/schemas/Max35Text'
        LEI:
          $ref: '#/components/schemas/LEIIdentifier'
        name:
          $ref: '#/components/schemas/Max140Text'
        postalAddress:
          $ref: '#/components/schemas/PostalAddress24'
      type: object
    PaymentInstruction30:
      additionalProperties: false
      properties:
        paymentInformationIdentification:
          $ref: '#/components/schemas/Max35Text'
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethod3Code'
        numberOfTransactions:
          $ref: '#/components/schemas/Max15NumericText'
        controlSum:
          $ref: '#/components/schemas/DecimalNumber'
        paymentTypeInformation:
          $ref: '#/components/schemas/PaymentTypeInformation26'
        requestedExecutionDate:
          $ref: '#/components/schemas/DateAndDateTime2Choice'
        poolingAdjustmentDate:
          $ref: '#/components/schemas/ISODate'
        debtor:
          $ref: '#/components/schemas/PartyIdentification135'
        debtorAccount:
          $ref: '#/components/schemas/CashAccount38'
        debtorAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        debtorAgentAccount:
          $ref: '#/components/schemas/CashAccount38'
        instructionForDebtorAgent:
          items:
            $ref: '#/components/schemas/InstructionForDebtorAgent1'
          type: array
        ultimateDebtor:
          $ref: '#/components/schemas/PartyIdentification135'
        chargesAccount:
          $ref: '#/components/schemas/CashAccount38'
        chargesAccountAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        creditTransferTransactionInformation:
          minItems: 1
          items:
            $ref: '#/components/schemas/CreditTransferTransaction34'
          type: array
      required:
      - paymentInformationIdentification
      - paymentMethod
      - requestedExecutionDate
      - debtor
      - debtorAccount
      - debtorAgent
      - creditTransferTransactionInformation
      type: object
    PaymentMethod3Code:
      enum:
      - CHK
      - TRF
      - TRA
      type: string
    PaymentTypeInformation26:
      additionalProperties: false
      properties:
        instructionPriority:
          $ref: '#/components/schemas/Priority2Code'
        serviceLevel:
          items:
            $ref: '#/components/schemas/ServiceLevel8Choice'
          type: array
        localInstrument:
          $ref: '#/components/schemas/LocalInstrument2Choice'
        categoryPurpose:
          $ref: '#/components/schemas/CategoryPurpose1Choice'
      type: object
    Priority2Code:
      enum:
      - HIGH
      - NORM
      type: string
    ServiceLevel8Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalServiceLevel1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalServiceLevel1Code:
      minLength: 1
      maxLength: 4
      type: string
    LocalInstrument2Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalLocalInstrument1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalLocalInstrument1Code:
      minLength: 1
      maxLength: 35
      type: string
    CategoryPurpose1Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalCategoryPurpose1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalCategoryPurpose1Code:
      minLength: 1
      maxLength: 4
      type: string
    DateAndDateTime2Choice:
      oneOf:
      - required:
        - date
      - required:
        - dateTime
      properties:
        date:
          $ref: '#/components/schemas/ISODate'
        dateTime:
          $ref: '#/components/schemas/ISODateTime'
      additionalProperties: false
      type: object
    CashAccount38:
      additionalProperties: false
      properties:
        identification:
          $ref: '#/components/schemas/AccountIdentification4Choice'
        type:
          $ref: '#/components/schemas/CashAccountType2Choice'
        currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode'
        name:
          $ref: '#/components/schemas/Max70Text'
        proxy:
          $ref: '#/components/schemas/ProxyAccountIdentification1'
      required:
      - identification
      type: object
    AccountIdentification4Choice:
      oneOf:
      - required:
        - IBAN
      - required:
        - other
      properties:
        IBAN:
          $ref: '#/components/schemas/IBAN2007Identifier'
        other:
          $ref: '#/components/schemas/GenericAccountIdentification1'
      additionalProperties: false
      type: object
    IBAN2007Identifier:
      pattern: ^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$
      type: string
    GenericAccountIdentification1:
      additionalProperties: false
      properties:
        identification:
          $ref: '#/components/schemas/Max34Text'
        schemeName:
          $ref: '#/components/schemas/AccountSchemeName1Choice'
        issuer:
          $ref: '#/components/schemas/Max35Text'
      required:
      - identification
      type: object
    Max34Text:
      description: Specifies a character string with a maximum length of 34 characters.
      minLength: 1
      maxLength: 34
      type: string
    AccountSchemeName1Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalAccountIdentification1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalAccountIdentification1Code:
      minLength: 1
      maxLength: 4
      type: string
    CashAccountType2Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalCashAccountType1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalCashAccountType1Code:
      minLength: 1
      maxLength: 4
      type: string
    ActiveOrHistoricCurrencyCode:
      pattern: ^[A-Z]{3,3}$
      type: string
    ProxyAccountIdentification1:
      additionalProperties: false
      properties:
        type:
          $ref: '#/components/schemas/ProxyAccountType1Choice'
        identification:
          $ref: '#/components/schemas/Max2048Text'
      required:
      - identification
      type: object
    ProxyAccountType1Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalProxyAccountType1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalProxyAccountType1Code:
      minLength: 1
      maxLength: 4
      type: string
    ChargeBearerType1Code:
      enum:
      - DEBT
      - CRED
      - SHAR
      - SLEV
      type: string
    CreditTransferTransaction34:
      additionalProperties: false
      properties:
        paymentIdentification:
          $ref: '#/components/schemas/PaymentIdentification6'
        paymentTypeInformation:
          $ref: '#/components/schemas/PaymentTypeInformation26'
        amount:
          $ref: '#/components/schemas/AmountType4Choice'
        exchangeRateInformation:
          $ref: '#/components/schemas/ExchangeRate1'
        chargeBearer:
          $ref: '#/components/schemas/ChargeBearerType1Code'
        chequeInstruction:
          $ref: '#/components/schemas/Cheque11'
        ultimateDebtor:
          $ref: '#/components/schemas/PartyIdentification135'
        intermediaryAgent1:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        intermediaryAgent1Account:
          $ref: '#/components/schemas/CashAccount38'
        intermediaryAgent2:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        intermediaryAgent2Account:
          $ref: '#/components/schemas/CashAccount38'
        IntermediaryAgent3:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        intermediaryAgent3Account:
          $ref: '#/components/schemas/CashAccount38'
        creditorAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        creditorAgentAccount:
          $ref: '#/components/schemas/CashAccount38'
        creditor:
          $ref: '#/components/schemas/PartyIdentification135'
        creditorAccount:
          $ref: '#/components/schemas/CashAccount38'
        ultimateCreditor:
          $ref: '#/components/schemas/PartyIdentification135'
        instructionForCreditorAgent:
          items:
            $ref: '#/components/schemas/InstructionForCreditorAgent1'
          type: array
        purpose:
          $ref: '#/components/schemas/Purpose2Choice'
        regulatoryReporting:
          maxItems: 10
          items:
            $ref: '#/components/schemas/RegulatoryReporting3'
          type: array
        tax:
          $ref: '#/components/schemas/TaxInformation8'
        relatedRemittanceInformation:
          maxItems: 10
          items:
            $ref: '#/components/schemas/RemittanceLocation7'
          type: array
        remittanceInformation:
          $ref: '#/components/schemas/RemittanceInformation16'
        supplementaryData:
          items:
            $ref: '#/components/schemas/SupplementaryData1'
          type: array
      required:
      - paymentIdentification
      - amount
      type: object
    PaymentIdentification6:
      additionalProperties: false
      properties:
        instructionIdentification:
          $ref: '#/components/schemas/Max35Text'
        endToEndIdentification:
          $ref: '#/components/schemas/Max35Text'
        UETR:
          $ref: '#/components/schemas/UUIDv4Identifier'
      required:
      - endToEndIdentification
      type: object
    UUIDv4Identifier:
      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
    AmountType4Choice:
      oneOf:
      - required:
        - instructedAmount
      - required:
        - equivalentAmount
      properties:
        instructedAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        equivalentAmount:
          $ref: '#/components/schemas/EquivalentAmount2'
      additionalProperties: false
      type: object
    ActiveOrHistoricCurrencyAndAmount:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/CurrencyAmountType'
        currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode'
    CurrencyAmountType:
      type: number
      x-precision: 2
    EquivalentAmount2:
      additionalProperties: false
      properties:
        amount:
          $ref: '#/components/schemas/CurrencyAmountType'
        currencyOfTransfer:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode'
      required:
      - amount
      - currencyOfTransfer
      type: object
    ExchangeRate1:
      additionalProperties: false
      properties:
        unitCurrency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode'
        exchangeRate:
          $ref: '#/components/schemas/BaseOneRate'
        rateType:
          $ref: '#/components/schemas/ExchangeRateType1Code'
        contractIdentification:
          $ref: '#/components/schemas/Max35Text'
      type: object
    BaseOneRate:
      pattern: ^[0-9][.][0-9]{10}
      maxLength: 11
      type: string
    ExchangeRateType1Code:
      enum:
      - SPOT
      - SALE
      - AGRD
      type: string
    Cheque11:
      additionalProperties: false
      properties:
        chequeType:
          $ref: '#/components/schemas/ChequeType2Code'
        chequeNumber:
          $ref: '#/components/schemas/Max35Text'
        chequeFrom:
          $ref: '#/components/schemas/NameAndAddress16'
        deliveryMethod:
          $ref: '#/components/schemas/ChequeDeliveryMethod1Choice'
        deliverTo:
          $ref: '#/components/schemas/NameAndAddress16'
        instructionPriority:
          $ref: '#/components/schemas/Priority2Code'
        chequeMaturityDate:
          $ref: '#/components/schemas/ISODate'
        formsCode:
          $ref: '#/components/schemas/Max35Text'
        memoField:
          maxItems: 2
          items:
            $ref: '#/components/schemas/Max35Text'
          type: array
        regionalClearingZone:
          $ref: '#/components/schemas/Max35Text'
        printLocation:
          $ref: '#/components/schemas/Max35Text'
        signature:
          maxItems: 5
          items:
            $ref: '#/components/schemas/Max70Text'
          type: array
      type: object
    ChequeType2Code:
      enum:
      - CCHQ
      - CCCH
      - BCHQ
      - DRFT
      - ELDR
      type: string
    NameAndAddress16:
      additionalProperties: false
      properties:
        name:
          $ref: '#/components/schemas/Max140Text'
        address:
          $ref: '#/components/schemas/PostalAddress24'
      required:
      - name
      - address
      type: object
    ChequeDeliveryMethod1Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ChequeDelivery1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ChequeDelivery1Code:
      enum:
      - MLDB
      - MLCD
      - MLFA
      - CRDB
      - CRCD
      - CRFA
      - PUDB
      - PUCD
      - PUFA
      - RGDB
      - RGCD
      - RGFA
      type: string
    InstructionForCreditorAgent1:
      additionalProperties: false
      properties:
        code:
          $ref: '#/components/schemas/Instruction3Code'
        instructionInformation:
          $ref: '#/components/schemas/Max140Text'
      type: object
    InstructionForDebtorAgent1:
      additionalProperties: false
      properties:
        code:
          $ref: '#/components/schemas/Instruction3Code'
        instructionInformation:
          $ref: '#/components/schemas/Max140Text'
      type: object
    Instruction3Code:
      enum:
      - CHQB
      - HOLD
      - PHOB
      - TELB
      type: string
    Purpose2Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalPurpose1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalPurpose1Code:
      minLength: 1
      maxLength: 4
      type: string
    RegulatoryReporting3:
      additionalProperties: false
      properties:
        debitCreditReportingIndicator:
          $ref: '#/components/schemas/RegulatoryReportingType1Code'
        authority:
          $ref: '#/components/schemas/RegulatoryAuthority2'
        details:
          items:
            $ref: '#/components/schemas/StructuredRegulatoryReporting3'
          type: array
      type: object
    RegulatoryReportingType1Code:
      enum:
      - CRED
      - DEBT
      - BOTH
      type: string
    RegulatoryAuthority2:
      additionalProperties: false
      properties:
        name:
          $ref: '#/components/schemas/Max140Text'
        country:
          $ref: '#/components/schemas/CountryCode'
      type: object
    StructuredRegulatoryReporting3:
      additionalProperties: false
      properties:
        type:
          $ref: '#/components/schemas/Max35Text'
        date:
          $ref: '#/components/schemas/ISODate'
        country:
          $ref: '#/components/schemas/CountryCode'
        Code:
          $ref: '#/components/schemas/Max10Text'
        amount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        information:
          items:
            $ref: '#/components/schemas/Max35Text'
          type: array
      type: object
    Max10Text:
      description: Specifies a character string with a maximum length of 10 characters.
      minLength: 1
      maxLength: 10
      type: string
    TaxInformation8:
      additionalProperties: false
      properties:
        debtor:
          $ref: '#/components/schemas/TaxParty2'
        totalTaxAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        date:
          $ref: '#/components/schemas/ISODate'
        record:
          items:
            $ref: '#/components/schemas/TaxRecord2'
          type: array
      type: object
    TaxParty1:
      additionalProperties: false
      properties:
        taxIdentification:
          $ref: '#/components/schemas/Max35Text'
        registrationIdentification:
          $ref: '#/components/schemas/Max35Text'
        taxType:
          $ref: '#/components/schemas/Max35Text'
      type: object
    TaxParty2:
      additionalProperties: false
      properties:
        taxIdentification:
          $ref: '#/components/schemas/Max35Text'
        registrationIdentification:
          $ref: '#/components/schemas/Max35Text'
        taxType:
          $ref: '#/components/schemas/Max35Text'
        authorisation:
          $ref: '#/components/schemas/TaxAuthorisation1'
      type: object
    TaxAuthorisation1:
      additionalProperties: false
      properties:
        title:
          $ref: '#/components/schemas/Max35Text'
        name:
          $ref: '#/components/schemas/Max140Text'
      type: object
    Number:
      pattern: '[0-9]{18}'
      maxLength: 18
      type: string
    TaxRecord2:
      additionalProperties: false
      properties:
        type:
          $ref: '#/components/schemas/Max35Text'
        category:
          $ref: '#/components/schemas/Max35Text'
        categoryDetails:
          $ref: '#/components/schemas/Max35Text'
        period:
          $ref: '#/components/schemas/TaxPeriod2'
        taxAmount:
          $ref: '#/components/schemas/TaxAmount2'
      type: object
    TaxPeriod2:
      additionalProperties: false
      properties:
        year:
          $ref: '#/components/schemas/ISODate'
        type:
          $ref: '#/components/schemas/TaxRecordPeriod1Code'
        fromToDate:
          $ref: '#/components/schemas/DatePeriod2'
      type: object
    TaxRecordPeriod1Code:
      enum:
      - MM01
      - MM02
      - MM03
      - MM04
      - MM05
      - MM06
      - MM07
      - MM08
      - MM09
      - MM10
      - MM11
      - MM12
      - QTR1
      - QTR2
      - QTR3
      - QTR4
      - HLF1
      - HLF2
      type: string
    DatePeriod2:
      additionalProperties: false
      properties:
        fromDate:
          $ref: '#/components/schemas/ISODate'
        toDate:
          $ref: '#/components/schemas/ISODate'
      required:
      - fromDate
      - toDate
      type: object
    TaxAmount2:
      additionalProperties: false
      properties:
        totalAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
      type: object
    TaxRecordDetails2:
      additionalProperties: false
      properties:
        period:
          $ref: '#/components/schemas/TaxPeriod2'
        amount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
      required:
      - amount
      type: object
    RemittanceLocation7:
      additionalProperties: false
      properties:
        remittanceIdentification:
          $ref: '#/components/schemas/Max35Text'
        remittanceLocationDetails:
          items:
            $ref: '#/components/schemas/RemittanceLocationData1'
          type: array
      type: object
    RemittanceLocationData1:
      additionalProperties: false
      properties:
        method:
          $ref: '#/components/schemas/RemittanceLocationMethod2Code'
        electronicAddress:
          $ref: '#/components/schemas/Max2048Text'
        postalAddress:
          $ref: '#/components/schemas/NameAndAddress16'
      required:
      - method
      type: object
    RemittanceLocationMethod2Code:
      enum:
      - FAXI
      - EDIC
      - URID
      - EMAL
      - POST
      - SMSM
      type: string
    RemittanceInformation16:
      additionalProperties: false
      properties:
        unstructured:
          items:
            $ref: '#/components/schemas/Max140Text'
          type: array
        structured:
          items:
            $ref: '#/components/schemas/StructuredRemittanceInformation16'
          type: array
      type: object
    StructuredRemittanceInformation16:
      additionalProperties: false
      properties:
        referredDocumentInformation:
          items:
            $ref: '#/components/schemas/ReferredDocumentInformation7'
          type: array
        referredDocumentAmount:
          $ref: '#/components/schemas/RemittanceAmount2'
        creditorReferenceInformation:
          $ref: '#/components/schemas/CreditorReferenceInformation2'
        invoicer:
          $ref: '#/components/schemas/PartyIdentification135'
        invoicee:
          $ref: '#/components/schemas/PartyIdentification135'
        taxRemittance:
          $ref: '#/components/schemas/TaxInformation7'
        garnishmentRemittance:
          $ref: '#/components/schemas/Garnishment3'
        additionalRemittanceInformation:
          maxItems: 3
          items:
            $ref: '#/components/schemas/Max140Text'
          type: array
      type: object
    ReferredDocumentInformation7:
      additionalProperties: false
      properties:
        type:
          $ref: '#/components/schemas/ReferredDocumentType4'
        number:
          $ref: '#/components/schemas/Max35Text'
        relatedDate:
          $ref: '#/components/schemas/ISODate'
        lineDetails:
          items:
            $ref: '#/components/schemas/DocumentLineInformation1'
          type: array
      type: object
    ReferredDocumentType4:
      additionalProperties: false
      properties:
        codeOrProprietary:
          $ref: '#/components/schemas/ReferredDocumentType3Choice'
        issuer:
          $ref: '#/components/schemas/Max35Text'
      required:
      - codeOrProprietary
      type: object
    ReferredDocumentType3Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/DocumentType6Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    DocumentType6Code:
      enum:
      - MSIN
      - CNFA
      - DNFA
      - CINV
      - CREN
      - DEBN
      - HIRI
      - SBIN
      - CMCN
      - SOAC
      - DISP
      - PUOR
      - BOLD
      - VCHR
      - AROI
      - TSUT
      type: string
    DocumentLineInformation1:
      additionalProperties: false
      properties:
        identification:
          minItems: 1
          items:
            $ref: '#/components/schemas/DocumentLineIdentification1'
          type: array
        description:
          $ref: '#/components/schemas/Max2048Text'
        amount:
          $ref: '#/components/schemas/RemittanceAmount3'
      required:
      - identification
      type: object
    DocumentLineIdentification1:
      additionalProperties: false
      properties:
        type:
          $ref: '#/components/schemas/DocumentLineType1'
        number:
          $ref: '#/components/schemas/Max35Text'
        relatedDate:
          $ref: '#/components/schemas/ISODate'
      type: object
    DocumentLineType1:
      additionalProperties: false
      properties:
        codeOrProprietary:
          $ref: '#/components/schemas/DocumentLineType1Choice'
        issuer:
          $ref: '#/components/schemas/Max35Text'
      required:
      - codeOrProprietary
      type: object
    DocumentLineType1Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalDocumentLineType1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalDocumentLineType1Code:
      minLength: 1
      maxLength: 4
      type: string
    RemittanceAmount3:
      additionalProperties: false
      properties:
        duePayableAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        discountAppliedAmount:
          items:
            $ref: '#/components/schemas/DiscountAmountAndType1'
          type: array
        creditNoteAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        taxAmount:
          items:
            $ref: '#/components/schemas/TaxAmountAndType1'
          type: array
        adjustmentAmountAndReason:
          items:
            $ref: '#/components/schemas/DocumentAdjustment1'
          type: array
        remittedAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
      type: object
    DiscountAmountAndType1:
      additionalProperties: false
      properties:
        type:
          $ref: '#/components/schemas/DiscountAmountType1Choice'
        amount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
      required:
      - amount
      type: object
    DiscountAmountType1Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalDiscountAmountType1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalDiscountAmountType1Code:
      minLength: 1
      maxLength: 4
      type: string
    TaxAmountAndType1:
      additionalProperties: false
      properties:
        type:
          $ref: '#/components/schemas/TaxAmountType1Choice'
        amount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
      required:
      - amount
      type: object
    TaxAmountType1Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalTaxAmountType1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalTaxAmountType1Code:
      minLength: 1
      maxLength: 4
      type: string
    DocumentAdjustment1:
      additionalProperties: false
      properties:
        amount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        creditDebitIndicator:
          $ref: '#/components/schemas/CreditDebitCode'
        reason:
          $ref: '#/components/schemas/Max4Text'
        additionalInformation:
          $ref: '#/components/schemas/Max140Text'
      required:
      - amount
      type: object
    CreditDebitCode:
      enum:
      - DBIT
      - CRDT
      type: string
    RemittanceAmount2:
      additionalProperties: false
      properties:
        duePayableAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        discountAppliedAmount:
          items:
            $ref: '#/components/schemas/DiscountAmountAndType1'
          type: array
        creditNoteAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        taxAmount:
          items:
            $ref: '#/components/schemas/TaxAmountAndType1'
          type: array
        adjustmentAmountAndReason:
          items:
            $ref: '#/components/schemas/DocumentAdjustment1'
          type: array
        remittedAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
      type: object
    CreditorReferenceInformation2:
      additionalProperties: false
      properties:
        type:
          $ref: '#/components/schemas/CreditorReferenceType2'
        reference:
          $ref: '#/components/schemas/Max35Text'
      type: object
    CreditorReferenceType2:
      additionalProperties: false
      properties:
        codeOrProprietary:
          $ref: '#/components/schemas/CreditorReferenceType1Choice'
        issuer:
          $ref: '#/components/schemas/Max35Text'
      required:
      - codeOrProprietary
      type: object
    CreditorReferenceType1Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/DocumentType3Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    DocumentType3Code:
      enum:
      - RADM
      - RPIN
      - FXDR
      - DISP
      - PUOR
      - SCOR
      type: string
    TaxInformation7:
      additionalProperties: false
      properties:
        creditor:
          $ref: '#/components/schemas/TaxParty1'
        debtor:
          $ref: '#/components/schemas/TaxParty2'
        ultimateDebtor:
          $ref: '#/components/schemas/TaxParty2'
        administrationZone:
          $ref: '#/components/schemas/Max35Text'
        referenceNumber:
          $ref: '#/components/schemas/Max140Text'
        method:
          $ref: '#/components/schemas/Max35Text'
        totalTaxableBaseAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        totalTaxAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        date:
          $ref: '#/components/schemas/ISODate'
        sequenceNumber:
          $ref: '#/components/schemas/Number'
        record:
          items:
            $ref: '#/components/schemas/TaxRecord2'
          type: array
      type: object
    Garnishment3:
      additionalProperties: false
      properties:
        type:
          $ref: '#/components/schemas/GarnishmentType1'
        garnishee:
          $ref: '#/components/schemas/PartyIdentification135'
        garnishmentAdministrator:
          $ref: '#/components/schemas/PartyIdentification135'
        referenceNumber:
          $ref: '#/components/schemas/Max140Text'
        date:
          $ref: '#/components/schemas/ISODate'
        remittedAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        familyMedicalInsuranceIndicator:
          $ref: '#/components/schemas/TrueFalseIndicator'
        employeeTerminationIndicator:
          $ref: '#/components/schemas/TrueFalseIndicator'
      required:
      - type
      type: object
    TrueFalseIndicator:
      type: boolean
    SupplementaryData1:
      additionalProperties: false
      properties:
        envelope:
          $ref: '#/components/schemas/SupplementaryDataEnvelope1'
      required:
      - envelope
      type: object
    Max350Text:
      description: Specifies a character string with a maximum length of 350 characters.
      minLength: 1
      maxLength: 350
      type: string
    SupplementaryDataEnvelope1:
      type: object
      properties:
        document:
          type: object
          properties:
            transferAuthentication:
              type: object
              properties:
                securityQuestion:
                  type: string
                securityAnswer:
                  type: string
                expiryDate:
                  type: string
    CustomerCreditTransferInitiationV09:
      additionalProperties: false
      properties:
        groupHeader:
          $ref: '#/components/schemas/GroupHeader85'
        paymentInformation:
          minItems: 1
          items:
            $ref: '#/components/schemas/PaymentInstruction30'
          type: array
        supplementaryData:
          items:
            $ref: '#/components/schemas/SupplementaryData1'
          type: array
      required:
      - groupHeader
      - paymentInformation
      type: object
    GarnishmentType1:
      additionalProperties: false
      properties:
        codeOrProprietary:
          $ref: '#/components/schemas/GarnishmentType1Choice'
        issuer:
          $ref: '#/components/schemas/Max35Text'
      required:
      - codeOrProprietary
      type: object
    GarnishmentType1Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalGarnishmentType1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalGarnishmentType1Code:
      minLength: 1
      maxLength: 4
      type: string
    SPGPSResponseBody:
      type: object
      properties:
        SECURE:
          type: object
          properties:
            encrypted:
              type: boolean
            data:
              type: string
              description: /components/schemas/customerPaymentStatusReportV10
    GPSResponseBody:
      type: object
      properties:
        SECURE:
          type: object
          properties:
            encrypted:
              type: boolean
            data:
              type: string
              description: /components/schemas/gpscustomerPaymentStatusReportV10
    gpscustomerPaymentStatusReportV10:
      properties:
        customerPaymentStatusReportV10:
          $ref: '#/components/schemas/gpsCustomerPaymentStatusReportV10'
      required:
      - customerPaymentStatusReportV10
      type: object
    gpsCustomerPaymentStatusReportV10:
      properties:
        groupHeader:
          $ref: '#/components/schemas/GroupHeader86'
        originalGroupInformationAndStatus:
          $ref: '#/components/schemas/OriginalGroupHeader17'
        originalPaymentInformationAndStatus:
          items:
            $ref: '#/components/schemas/OriginalPaymentInstruction32'
          type: array
        supplementaryData:
          items:
            $ref: '#/components/schemas/SupplementaryDataGPS'
          type: array
      required:
      - groupHeader
      - originalGroupInformationAndStatus
      type: object
    customerPaymentStatusReportV10:
      properties:
        customerPaymentStatusReportV10:
          $ref: '#/components/schemas/CustomerPaymentStatusReportV10'
      required:
      - customerPaymentStatusReportV10
      type: object
    GroupHeader86:
      properties:
        messageIdentification:
          $ref: '#/components/schemas/Max35Text'
        creationDateTime:
          $ref: '#/components/schemas/ISODateTime'
        initiatingParty:
          $ref: '#/components/schemas/PartyIdentification135'
      required:
      - messageIdentification
      - creationDateTime
      type: object
    OriginalGroupHeader17:
      properties:
        originalMessageIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalMessageNameIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalCreationDateTime:
          $ref: '#/components/schemas/ISODateTime'
        originalNumberOfTransactions:
          $ref: '#/components/schemas/Max15NumericText'
        originalControlSum:
          $ref: '#/components/schemas/DecimalNumber'
        groupStatus:
          $ref: '#/components/schemas/ExternalPaymentGroupStatus1Code'
        statusReasonInformation:
          items:
            $ref: '#/components/schemas/StatusReasonInformation12'
          type: array
        numberOfTransactionsPerStatus:
          items:
            $ref: '#/components/schemas/NumberOfTransactionsPerStatus5'
          type: array
      required:
      - originalMessageIdentification
      - originalMessageNameIdentification
      type: object
    ExternalPaymentGroupStatus1Code:
      minLength: 1
      maxLength: 4
      type: string
    StatusReasonInformation12:
      properties:
        originator:
          $ref: '#/components/schemas/PartyIdentification135'
        reason:
          $ref: '#/components/schemas/StatusReason6Choice'
        additionalInformation:
          items:
            $ref: '#/components/schemas/Max105Text'
          type: array
      type: object
    StatusReason6Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalStatusReason1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      type: object
    ExternalStatusReason1Code:
      minLength: 1
      maxLength: 4
      type: string
    Max105Text:
      description: Specifies a character string with a maximum length of 105 characters.
      minLength: 1
      maxLength: 105
      type: string
    NumberOfTransactionsPerStatus5:
      properties:
        detailedNumberOfTransactions:
          $ref: '#/components/schemas/Max15NumericText'
        detailedStatus:
          $ref: '#/components/schemas/ExternalPaymentTransactionStatus1Code'
        detailedControlSum:
          $ref: '#/components/schemas/DecimalNumber'
      required:
      - detailedNumberOfTransactions
      - detailedStatus
      type: object
    ExternalPaymentTransactionStatus1Code:
      minLength: 1
      maxLength: 4
      type: string
    OriginalPaymentInstruction32:
      properties:
        originalPaymentInformationIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalNumberOfTransactions:
          $ref: '#/components/schemas/Max15NumericText'
        originalControlSum:
          $ref: '#/components/schemas/DecimalNumber'
        paymentInformationStatus:
          $ref: '#/components/schemas/ExternalPaymentGroupStatus1Code'
        statusReasonInformation:
          items:
            $ref: '#/components/schemas/StatusReasonInformation12'
          type: array
        numberOfTransactionsPerStatus:
          items:
            $ref: '#/components/schemas/NumberOfTransactionsPerStatus5'
          type: array
        transactionInformationAndStatus:
          items:
            $ref: '#/components/schemas/PaymentTransaction105'
          type: array
      required:
      - originalPaymentInformationIdentification
      type: object
    PaymentTransaction105:
      properties:
        statusIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalInstructionIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalEndToEndIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalUETR:
          $ref: '#/components/schemas/UUIDv4Identifier'
        transactionStatus:
          $ref: '#/components/schemas/ExternalPaymentTransactionStatus1Code'
        statusReasonInformation:
          items:
            $ref: '#/components/schemas/StatusReasonInformation12'
          type: array
        acceptanceDateTime:
          $ref: '#/components/schemas/ISODateTime'
        accountServicerReference:
          $ref: '#/components/schemas/Max35Text'
        clearingSystemReference:
          $ref: '#/components/schemas/Max35Text'
        originalTransactionReference:
          $ref: '#/components/schemas/OriginalTransactionReference28'
      type: object
    ActiveCurrencyAndAmount:
      properties:
        amount:
          $ref: '#/components/schemas/CurrencyAmountType'
        activeCurrencyCode:
          $ref: '#/components/schemas/ActiveCurrencyCode'
    ActiveCurrencyCode:
      pattern: ^[A-Z]{3,3}$
      type: string
    OriginalTransactionReference28:
      properties:
        interbankSettlementAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        amount:
          $ref: '#/components/schemas/AmountType4Choice'
        interbankSettlementDate:
          $ref: '#/components/schemas/ISODate'
        requestedCollectionDate:
          $ref: '#/components/schemas/ISODate'
        requestedExecutionDate:
          $ref: '#/components/schemas/DateAndDateTime2Choice'
        paymentTypeInformation:
          $ref: '#/components/schemas/PaymentTypeInformation27'
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethod4Code'
        remittanceInformation:
          $ref: '#/components/schemas/RemittanceInformation16'
        debtor:
          $ref: '#/components/schemas/Party40Choice'
        creditor:
          $ref: '#/components/schemas/Party40Choice'
        debtorAccount:
          $ref: '#/components/schemas/debtorAccount'
        creditorAccount:
          $ref: '#/components/schemas/creditorAccount'
        debtorAgent:
          $ref: '#/components/schemas/debtorAgent'
        creditorAgent:
          $ref: '#/components/schemas/creditorAgent'
      type: object
    creditorAccount:
      type: object
      required:
      - identification
      properties:
        identification:
          $ref: '#/components/schemas/accountIdentification'
    accountIdentification:
      type: object
      oneOf:
      - required:
        - other
      properties:
        other:
          $ref: '#/components/schemas/otherAccountIdentification'
    otherAccountIdentification:
      type: object
      required:
      - identification
      properties:
        identification:
          $ref: '#/components/schemas/Max35Text'
    debtorAccount:
      type: object
      required:
      - identification
      properties:
        identification:
          $ref: '#/components/schemas/accountIdentification'
    debtorAgent:
      required:
      - financialInstitutionIdentification
      properties:
        financialInstitutionIdentification:
          $ref: '#/components/schemas/agentFinancialInstitution'
      additionalProperties: false
      type: object
    agentFinancialInstitution:
      additionalProperties: false
      type: object
      properties:
        clearingSystemMemberIdentification:
          $ref: '#/components/schemas/agentMemberIdentification'
    agentMemberIdentification:
      type: object
      properties:
        memberIdentification:
          $ref: '#/components/schemas/Max35Text'
    creditorAgent:
      required:
      - financialInstitutionIdentification
      properties:
        financialInstitutionIdentification:
          $ref: '#/components/schemas/agentFinancialInstitution'
      additionalProperties: false
      type: object
    PaymentTypeInformation27:
      properties:
        instructionPriority:
          $ref: '#/components/schemas/Priority2Code'
        clearingChannel:
          $ref: '#/components/schemas/ClearingChannel2Code'
        serviceLevel:
          items:
            $ref: '#/components/schemas/ServiceLevel8Choice'
          type: array
        localInstrument:
          $ref: '#/components/schemas/LocalInstrument2Choice'
        sequenceType:
          $ref: '#/components/schemas/SequenceType3Code'
        categoryPurpose:
          $ref: '#/components/schemas/CategoryPurpose1Choice'
      type: object
    ClearingChannel2Code:
      enum:
      - RTGS
      - RTNS
      - MPNS
      - BOOK
      type: string
    SequenceType3Code:
      enum:
      - FRST
      - RCUR
      - FNAL
      - OOFF
      - RPRE
      type: string
    PaymentMethod4Code:
      enum:
      - CHK
      - TRF
      - DD
      - TRA
      type: string
    PercentageRate:
      pattern: ^[0-9][.][0-9]{10}$
      maxLength: 11
      type: string
    Party40Choice:
      oneOf:
      - required:
        - party
      - required:
        - agent
      properties:
        party:
          $ref: '#/components/schemas/PartyIdentification135'
        agent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
      type: object
    CustomerPaymentStatusReportV10:
      properties:
        groupHeader:
          $ref: '#/components/schemas/GroupHeader86'
        originalGroupInformationAndStatus:
          $ref: '#/components/schemas/OriginalGroupHeader17'
        originalPaymentInformationAndStatus:
          items:
            $ref: '#/components/schemas/OriginalPaymentInstruction32'
          type: array
      required:
      - groupHeader
      - originalGroupInformationAndStatus
      type: object
    GPSRequestBody:
      type: object
      properties:
        SECURE:
          type: object
          properties:
            encrypted:
              type: boolean
            data:
              type: string
              description: /components/schemas/getPaymentRequest
    getPaymentRequest:
      properties:
        getTransactionV08:
          $ref: '#/components/schemas/GetTransactionV08'
      required:
      - getTransactionV08
      type: object
    getTransactionV08:
      properties:
        getTransactionV08:
          $ref: '#/components/schemas/GetTransactionV08'
      required:
      - getTransactionV08
      type: object
    MessageHeader9:
      additionalProperties: false
      properties:
        messageIdentification:
          $ref: '#/components/schemas/Max35Text'
        creationDateTime:
          $ref: '#/components/schemas/ISODateTime'
        requestType:
          $ref: '#/components/schemas/RequestType4Choice'
      required:
      - messageIdentification
      type: object
    RequestType4Choice:
      oneOf:
      - required:
        - paymentControl
      - required:
        - enquiry
      - required:
        - proprietary
      properties:
        paymentControl:
          $ref: '#/components/schemas/ExternalPaymentControlRequestType1Code'
        enquiry:
          $ref: '#/components/schemas/ExternalEnquiryRequestType1Code'
        proprietary:
          $ref: '#/components/schemas/GenericIdentification1'
      additionalProperties: false
      type: object
    ExternalPaymentControlRequestType1Code:
      minLength: 1
      maxLength: 4
      type: string
    ExternalEnquiryRequestType1Code:
      minLength: 1
      maxLength: 4
      type: string
    GenericIdentification1:
      additionalProperties: false
      properties:
        identification:
          $ref: '#/components/schemas/Max35Text'
        schemeName:
          $ref: '#/components/schemas/Max35Text'
        issuer:
          $ref: '#/components/schemas/Max35Text'
      required:
      - identification
      type: object
    TransactionQuery5:
      additionalProperties: false
      properties:
        queryType:
          $ref: '#/components/schemas/QueryType2Code'
        transactionCriteria:
          $ref: '#/components/schemas/TransactionCriteria5Choice'
      type: object
    QueryType2Code:
      enum:
      - ALLL
      - CHNG
      - MODF
      - DELD
      type: string
    TransactionCriteria5Choice:
      oneOf:
      - required:
        - queryName
      - required:
        - newCriteria
      properties:
        queryName:
          $ref: '#/components/schemas/Max35Text'
        newCriteria:
          $ref: '#/components/schemas/TransactionCriteria8'
      additionalProperties: false
      type: object
    TransactionCriteria8:
      properties:
        newQueryName:
          $ref: '#/components/schemas/Max35Text'
        searchCriteria:
          items:
            $ref: '#/components/schemas/TransactionSearchCriteria8'
          type: array
      additionalProperties: false
      type: object
    TransactionSearchCriteria8:
      properties:
        paymentTo:
          items:
            $ref: '#/components/schemas/SystemSearch4'
          type: array
        paymentFrom:
          items:
            $ref: '#/components/schemas/SystemSearch4'
          type: array
        paymentSearch:
          $ref: '#/components/schemas/PaymentSearch8'
      additionalProperties: false
      type: object
    SystemSearch4:
      properties:
        systemIdentification:
          items:
            $ref: '#/components/schemas/ClearingSystemIdentification3Choice'
          type: array
        memberIdentification:
          items:
            $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
          type: array
        country:
          $ref: '#/components/schemas/CountryCode'
        accountIdentification:
          $ref: '#/components/schemas/AccountIdentification4Choice'
      additionalProperties: false
      type: object
    ClearingSystemIdentification3Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalCashClearingSystem1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalCashClearingSystem1Code:
      minLength: 1
      maxLength: 3
      type: string
    PaymentSearch8:
      additionalProperties: false
      properties:
        messageIdentification:
          items:
            $ref: '#/components/schemas/Max35Text'
          type: array
        requestedExecutionDate:
          items:
            $ref: '#/components/schemas/DateAndDateTimeSearch3Choice'
          type: array
        paymentIdentification:
          items:
            $ref: '#/components/schemas/PaymentIdentification6Choice'
          type: array
        status:
          items:
            $ref: '#/components/schemas/InstructionStatusSearch5'
          type: array
        instructedAmount:
          items:
            $ref: '#/components/schemas/ActiveOrHistoricAmountRange2Choice'
          type: array
        instructedAmountCurrency:
          items:
            $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode'
          type: array
        creditDebitIndicator:
          $ref: '#/components/schemas/CreditDebitCode'
        paymentMethod:
          items:
            $ref: '#/components/schemas/PaymentOrigin1Choice'
          type: array
        priority:
          items:
            $ref: '#/components/schemas/Priority1Choice'
          type: array
        processingValidityTime:
          items:
            $ref: '#/components/schemas/DateTimePeriod1Choice'
          type: array
        transactionIdentification:
          items:
            $ref: '#/components/schemas/Max35Text'
          type: array
        endToEndIdentification:
          items:
            $ref: '#/components/schemas/Max35Text'
          type: array
        parties:
          items:
            $ref: '#/components/schemas/PaymentTransactionParty3'
          type: array
      type: object
    Priority1Choice:
      required:
      - code
      properties:
        code:
          $ref: '#/components/schemas/Priority5Code'
      additionalProperties: false
      type: object
    PaymentIdentification6Choice:
      oneOf:
      - required:
        - transactionIdentification
      - required:
        - queueIdentification
      - required:
        - longBusinessIdentification
      - required:
        - shortBusinessIdentification
      - required:
        - proprietaryIdentification
      properties:
        transactionIdentification:
          $ref: '#/components/schemas/Max35Text'
        queueIdentification:
          $ref: '#/components/schemas/QueueTransactionIdentification1'
        longBusinessIdentification:
          $ref: '#/components/schemas/LongPaymentIdentification2'
        shortBusinessIdentification:
          $ref: '#/components/schemas/ShortPaymentIdentification2'
        proprietaryIdentification:
          $ref: '#/components/schemas/Max70Text'
      additionalProperties: false
      type: object
    QueueTransactionIdentification1:
      properties:
        queueIdentification:
          $ref: '#/components/schemas/Max16Text'
        positionInQueue:
          $ref: '#/components/schemas/Max16Text'
      required:
      - queueIdentification
      - positionInQueue
      additionalProperties: false
      type: object
    LongPaymentIdentification2:
      properties:
        transactionIdentification:
          $ref: '#/components/schemas/Max35Text'
        UETR:
          $ref: '#/components/schemas/UUIDv4Identifier'
        interBankSettlementAmount:
          $ref: '#/components/schemas/ImpliedCurrencyAmount'
        interBankSettlementDate:
          $ref: '#/components/schemas/ISODate'
        instructingAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        instructedAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        endToEndIdentification:
          $ref: '#/components/schemas/Max35Text'
      required:
      - interBankSettlementAmount
      - interBankSettlementDate
      - instructingAgent
      - instructedAgent
      additionalProperties: false
      type: object
    ShortPaymentIdentification2:
      properties:
        transactionIdentification:
          $ref: '#/components/schemas/Max35Text'
        interBankSettlementDate:
          $ref: '#/components/schemas/ISODate'
        instructingAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
      required:
      - transactionIdentification
      - interBankSettlementDate
      - instructingAgent
      additionalProperties: false
      type: object
    InstructionStatusSearch5:
      properties:
        paymentInstructionStatus:
          $ref: '#/components/schemas/PaymentStatusCodeSearch2Choice'
        proprietaryStatusReason:
          $ref: '#/components/schemas/Max4AlphaNumericText'
      additionalProperties: false
      type: object
    PaymentStatusCodeSearch2Choice:
      oneOf:
      - required:
        - pendingStatus
      - required:
        - finalStatus
      - required:
        - pendingAndFinalStatus
      properties:
        pendingStatus:
          $ref: '#/components/schemas/PendingStatus4Code'
        finalStatus:
          $ref: '#/components/schemas/FinalStatusCode'
        pendingAndFinalStatus:
          $ref: '#/components/schemas/CashPaymentStatus2Code'
      additionalProperties: false
      type: object
    ActiveOrHistoricAmountRange2Choice:
      oneOf:
      - required:
        - currencyAndAmountRange
      - required:
        - impliedCurrencyAndAmountRange
      properties:
        currencyAndAmountRange:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmountRange2'
        impliedCurrencyAndAmountRange:
          $ref: '#/components/schemas/impliedCurrencyAndAmountRange1'
      additionalProperties: false
      type: object
    impliedCurrencyAndAmountRange1:
      type: object
      required:
      - amount
      properties:
        amount:
          $ref: '#/components/schemas/ImpliedCurrencyAmountRange1Choice'
        creditDebitIndicator:
          $ref: '#/components/schemas/CreditDebitCode'
    ActiveOrHistoricCurrencyAndAmountRange2:
      properties:
        amount:
          $ref: '#/components/schemas/ImpliedCurrencyAmountRange1Choice'
        currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode'
      required:
      - amount
      - currency
      additionalProperties: false
      type: object
    ImpliedCurrencyAmountRange1Choice:
      oneOf:
      - required:
        - fromAmount
      - required:
        - toAmount
      - required:
        - fromToAmount
      - required:
        - equalAmount
      - required:
        - notEqualAmount
      properties:
        fromAmount:
          $ref: '#/components/schemas/AmountRangeBoundary1'
        toAmount:
          $ref: '#/components/schemas/AmountRangeBoundary1'
        fromToAmount:
          $ref: '#/components/schemas/FromToAmountRange1'
        equalAmount:
          $ref: '#/components/schemas/ImpliedCurrencyAndAmount'
        notEqualAmount:
          $ref: '#/components/schemas/ImpliedCurrencyAndAmount'
      additionalProperties: false
      type: object
    FromToAmountRange1:
      required:
      - fromAmount
      - toAmount
      properties:
        fromAmount:
          $ref: '#/components/schemas/AmountRangeBoundary1'
        toAmount:
          $ref: '#/components/schemas/AmountRangeBoundary1'
      additionalProperties: false
      type: object
    AmountRangeBoundary1:
      properties:
        boundaryAmount:
          $ref: '#/components/schemas/ImpliedCurrencyAndAmount'
        included:
          $ref: '#/components/schemas/YesNoIndicator'
      required:
      - boundaryAmount
      - included
      type: object
    ImpliedCurrencyAndAmount:
      type: object
      properties:
        amount:
          type: number
          minimum: 0
      required:
      - amount
    YesNoIndicator:
      type: boolean
    PaymentOrigin1Choice:
      additionalProperties: false
      properties:
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      required:
      - proprietary
      type: object
    PendingStatus4Code:
      enum:
      - ACPD
      - VALD
      - MATD
      - AUTD
      - INVD
      - UMAC
      - STLE
      - STLM
      - SSPD
      - PCAN
      - PSTL
      - PFST
      - SMLR
      - RMLR
      - SRBL
      - AVLB
      - SRML
      type: string
    FinalStatusCode:
      enum:
      - STLD
      - RJTD
      - CAND
      - FNLD
      type: string
    CashPaymentStatus2Code:
      enum:
      - PDNG
      - FINL
      type: string
    PaymentTransactionParty3:
      properties:
        ultimateDebtor:
          $ref: '#/components/schemas/Party40Choice'
        debtor:
          $ref: '#/components/schemas/Party40Choice'
        debtorAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        creditorAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        creditor:
          $ref: '#/components/schemas/Party40Choice'
        ultimateCreditor:
          $ref: '#/components/schemas/Party40Choice'
      type: object
    DateAndDateTimeSearch3Choice:
      properties:
        dateTimeSearch:
          $ref: '#/components/schemas/DateTimePeriod1Choice'
        dateSearch:
          $ref: '#/components/schemas/DatePeriodSearch1Choice'
      oneOf:
      - required:
        - dateTimeSearch
      - required:
        - dateSearch
      additionalProperties: false
      type: object
    DateTimePeriod1Choice:
      oneOf:
      - required:
        - fromDateTime
      - required:
        - toDateTime
      - required:
        - dateTimeRange
      properties:
        fromDateTime:
          $ref: '#/components/schemas/ISODateTime'
        toDateTime:
          $ref: '#/components/schemas/ISODateTime'
        dateTimeRange:
          $ref: '#/components/schemas/DateTimePeriod1'
      additionalProperties: false
      type: object
    DateTimePeriod1:
      additionalProperties: false
      properties:
        fromDateTime:
          $ref: '#/components/schemas/ISODateTime'
        toDateTime:
          $ref: '#/components/schemas/ISODateTime'
      required:
      - fromDateTime
      - toDateTime
      type: object
    DatePeriodSearch1Choice:
      oneOf:
      - required:
        - fromDateTime
      - required:
        - toDateTime
      - required:
        - fromToDate
      - required:
        - equalDate
      properties:
        fromDate:
          $ref: '#/components/schemas/ISODate'
        toDate:
          $ref: '#/components/schemas/ISODate'
        fromToDate:
          $ref: '#/components/schemas/DatePeriod2'
        equalDate:
          $ref: '#/components/schemas/ISODate'
      additionalProperties: false
      type: object
    Max4AlphaNumericText:
      description: Specifies an alphanumeric string with a maximum length of 4 characters.
      minLength: 1
      maxLength: 4
      pattern: ^[a-zA-Z0-9]{1,4}$
      type: string
    Priority5Code:
      enum:
      - HIGH
      - LOWW
      - NORM
      - URGT
      type: string
    GetTransactionV08:
      additionalProperties: false
      properties:
        messageHeader:
          $ref: '#/components/schemas/MessageHeader9'
        transactionQueryDefinition:
          $ref: '#/components/schemas/TransactionQuery5'
        supplementaryData:
          items:
            $ref: '#/components/schemas/SupplementaryData1'
          type: array
      required:
      - messageHeader
      type: object
    ImpliedCurrencyAmount:
      type: object
    getPayOptionsRequestBody:
      type: object
      properties:
        SECURE:
          type: object
          properties:
            encrypted:
              type: boolean
            data:
              type: string
              description: /components/schemas/gpoRequestBody
    gpoRequestBody:
      required:
      - document
      type: object
      properties:
        document:
          $ref: '#/components/schemas/document'
    document:
      required:
      - identificationVerificationRequestV03
      type: object
      properties:
        identificationVerificationRequestV03:
          $ref: '#/components/schemas/IdentificationVerificationRequestV03'
    IdentificationVerificationRequestV03:
      required:
      - assignment
      - verification
      type: object
      properties:
        assignment:
          $ref: '#/components/schemas/IdentificationAssignment3'
        verification:
          items:
            $ref: '#/components/schemas/IdentificationVerification4'
          type: array
        supplementaryData:
          items:
            $ref: '#/components/schemas/supplementaryData'
          type: array
    IdentificationVerification4:
      required:
      - identification
      - partyAndAccountIdentification
      type: object
      properties:
        identification:
          $ref: '#/components/schemas/Max35Text'
        partyAndAccountIdentification:
          $ref: '#/components/schemas/IdentificationInformation4'
    IdentificationInformation4:
      type: object
      properties:
        party:
          $ref: '#/components/schemas/PartyIdentification135'
        account:
          $ref: '#/components/schemas/CashAccount40'
        agent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
    CashAccount40:
      type: object
      properties:
        identification:
          $ref: '#/components/schemas/AccountIdentification4Choice'
        type:
          $ref: '#/components/schemas/CashAccountType2Choice'
        currency:
          type: string
          pattern: '[A-Z]{3,3}'
        name:
          $ref: '#/components/schemas/Max70Text'
        proxy:
          $ref: '#/components/schemas/ProxyAccountIdentification1'
    supplementaryData:
      required:
      - envelope
      type: object
      properties:
        placeAndName:
          type: string
          minLength: 1
          maxLength: 350
        envelope:
          $ref: '#/components/schemas/SupplementaryDataEnvelope1'
    IdentificationAssignment3:
      required:
      - messageIdentification
      - creationDateTime
      - assigner
      - assignee
      type: object
      properties:
        messageIdentification:
          $ref: '#/components/schemas/Max35Text'
        creationDateTime:
          $ref: '#/components/schemas/ISODateTime'
        creator:
          $ref: '#/components/schemas/Party40Choice'
        firstAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        assigner:
          $ref: '#/components/schemas/Party40Choice'
        assignee:
          $ref: '#/components/schemas/Party40Choice'
    getPayOptionsResponseBody:
      type: object
      properties:
        SECURE:
          type: object
          properties:
            encrypted:
              type: boolean
            data:
              type: string
              description: /components/schemas/gpoResponseBody
    gpoResponseBody:
      required:
      - document
      properties:
        document:
          $ref: '#/components/schemas/document1'
    document1:
      required:
      - identificationVerificationReportV03
      type: object
      properties:
        identificationVerificationReportV03:
          $ref: '#/components/schemas/IdentificationVerificationReportV03'
    IdentificationVerificationReportV03:
      required:
      - assignment
      - report
      type: object
      properties:
        assignment:
          $ref: '#/components/schemas/IdentificationAssignment3'
        originalAssignment:
          $ref: '#/components/schemas/MessageIdentification7'
        report:
          items:
            $ref: '#/components/schemas/VerificationReport4'
          type: array
        supplementaryData:
          items:
            $ref: '#/components/schemas/supplementaryData'
          type: array
    MessageIdentification7:
      type: object
      properties:
        messageIdentification:
          $ref: '#/components/schemas/Max35Text'
        creationDateTime:
          $ref: '#/components/schemas/ISODateTime'
        firstAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
    VerificationReason1Choice:
      type: object
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          type: string
          minLength: 1
          maxLength: 4
        proprietary:
          $ref: '#/components/schemas/Max35Text'
    VerificationReport4:
      required:
      - originalIdentification
      - verification
      type: object
      properties:
        originalIdentification:
          $ref: '#/components/schemas/Max35Text'
        verification:
          type: boolean
        reason:
          $ref: '#/components/schemas/VerificationReason1Choice'
        originalPartyAndAccountIdentification:
          $ref: '#/components/schemas/IdentificationInformation4'
        updatedPartyAndAccountIdentification:
          $ref: '#/components/schemas/IdentificationInformation4'
    RFPRequestBody:
      type: object
      properties:
        SECURE:
          type: object
          properties:
            encrypted:
              type: boolean
            data:
              type: string
              description: /components/schemas/creditorPaymentActivationRequestV07
    creditorPaymentActivationRequestV07:
      type: object
      required:
      - creditorPaymentActivationRequestV07
      properties:
        creditorPaymentActivationRequestV07:
          $ref: '#/components/schemas/CreditorPaymentActivationRequestV07'
    GroupHeader78:
      additionalProperties: false
      properties:
        messageIdentification:
          $ref: '#/components/schemas/Max35Text'
        creationDateTime:
          $ref: '#/components/schemas/ISODateTime'
        numberOfTransactions:
          $ref: '#/components/schemas/Max15NumericText'
        controlSum:
          $ref: '#/components/schemas/DecimalNumber'
        initiatingParty:
          $ref: '#/components/schemas/PartyIdentification135'
      required:
      - messageIdentification
      - creationDateTime
      - numberOfTransactions
      - initiatingParty
      type: object
    PaymentInstruction31:
      additionalProperties: false
      properties:
        paymentInformationIdentification:
          $ref: '#/components/schemas/Max35Text'
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethod7Code'
        paymentTypeInformation:
          $ref: '#/components/schemas/PaymentTypeInformation26'
        requestedExecutionDate:
          $ref: '#/components/schemas/DateAndDateTime2Choice'
        expiryDate:
          $ref: '#/components/schemas/DateAndDateTime2Choice'
        paymentCondition:
          $ref: '#/components/schemas/PaymentCondition1'
        debtor:
          $ref: '#/components/schemas/PartyIdentification135'
        debtorAccount:
          $ref: '#/components/schemas/CashAccount38'
        debtorAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        ultimateDebtor:
          $ref: '#/components/schemas/PartyIdentification135'
        creditTransferTransaction:
          minItems: 1
          items:
            $ref: '#/components/schemas/CreditTransferTransaction35'
          type: array
      required:
      - paymentMethod
      - requestedExecutionDate
      - debtor
      - debtorAgent
      - creditTransferTransaction
      type: object
    PaymentMethod7Code:
      enum:
      - CHK
      - TRF
      type: string
    CreditTransferTransaction35:
      additionalProperties: false
      properties:
        paymentIdentification:
          $ref: '#/components/schemas/PaymentIdentification6'
        paymentTypeInformation:
          $ref: '#/components/schemas/PaymentTypeInformation26'
        paymentCondition:
          $ref: '#/components/schemas/PaymentCondition1'
        amount:
          $ref: '#/components/schemas/AmountType4Choice'
        chargeBearer:
          $ref: '#/components/schemas/ChargeBearerType1Code'
        chequeInstruction:
          $ref: '#/components/schemas/Cheque11'
        creditorAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        creditor:
          $ref: '#/components/schemas/PartyIdentification135'
        creditorAccount:
          $ref: '#/components/schemas/CashAccount38'
        ultimateCreditor:
          $ref: '#/components/schemas/PartyIdentification135'
        instructionForCreditorAgent:
          items:
            $ref: '#/components/schemas/InstructionForCreditorAgent1'
          type: array
        relatedRemittanceInformation:
          maxItems: 10
          items:
            $ref: '#/components/schemas/RemittanceLocation7'
          type: array
        remittanceInformation:
          $ref: '#/components/schemas/RemittanceInformation16'
        enclosedFile:
          items:
            $ref: '#/components/schemas/Document12'
          type: array
        supplementaryData:
          items:
            $ref: '#/components/schemas/SupplementaryData1'
          type: array
      required:
      - paymentIdentification
      - amount
      - chargeBearer
      - creditor
      - creditorAgent
      type: object
    Document12:
      additionalProperties: false
      properties:
        type:
          $ref: '#/components/schemas/DocumentType1Choice'
        identification:
          $ref: '#/components/schemas/Max35Text'
        issueDate:
          $ref: '#/components/schemas/DateAndDateTime2Choice'
        name:
          $ref: '#/components/schemas/Max140Text'
        format:
          $ref: '#/components/schemas/DocumentFormat1Choice'
        fileName:
          $ref: '#/components/schemas/Max140Text'
        enclosure:
          $ref: '#/components/schemas/Max10MbBinary'
      required:
      - type
      - identification
      - issueDate
      - format
      - enclosure
      type: object
    DocumentType1Choice:
      additionalProperties: false
      properties:
        code:
          $ref: '#/components/schemas/ExternalDocumentType1Code'
      required:
      - code
      type: object
    ExternalDocumentType1Code:
      minLength: 1
      maxLength: 4
      type: string
    DocumentFormat1Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalDocumentFormat1Code'
        proprietary:
          $ref: '#/components/schemas/GenericIdentification1'
      additionalProperties: false
      type: object
    ExternalDocumentFormat1Code:
      minLength: 1
      maxLength: 4
      type: string
    Max10MbBinary:
      minLength: 1
      maxLength: 10485760
      type: string
    PaymentCondition1:
      additionalProperties: false
      properties:
        amountModificationAllowed:
          $ref: '#/components/schemas/TrueFalseIndicator'
        earlyPaymentAllowed:
          $ref: '#/components/schemas/TrueFalseIndicator'
        guaranteedPaymentRequested:
          $ref: '#/components/schemas/TrueFalseIndicator'
      required:
      - amountModificationAllowed
      - earlyPaymentAllowed
      - guaranteedPaymentRequested
      type: object
    CreditorPaymentActivationRequestV07:
      additionalProperties: false
      properties:
        groupHeader:
          $ref: '#/components/schemas/GroupHeader78'
        paymentInformation:
          minItems: 1
          items:
            $ref: '#/components/schemas/PaymentInstruction31'
          type: array
        supplementaryData:
          items:
            $ref: '#/components/schemas/SupplementaryDataRfp'
          type: array
      required:
      - groupHeader
      - paymentInformation
      type: object
    SupplementaryDataRfp:
      additionalProperties: false
      properties:
        envelope:
          $ref: '#/components/schemas/SupplementaryDataEnvelopeRfp'
      required:
      - envelope
      type: object
    SupplementaryDataGPS:
      additionalProperties: false
      properties:
        envelope:
          $ref: '#/components/schemas/SupplementaryDataEnvelopeGPS'
      required:
      - envelope
      type: object
    SupplementaryDataEnvelopeGPS:
      type: object
      properties:
        document:
          type: object
          properties:
            gatewayURL:
              type: string
    SupplementaryDataEnvelopeRfp:
      type: object
      properties:
        document:
          type: object
          properties:
            suppressResponderNotifications:
              type: boolean
            returnURL:
              type: string
    RFPResponseBody:
      type: object
      properties:
        SECURE:
          type: object
          properties:
            encrypted:
              type: boolean
            data:
              type: string
              description: /components/schemas/creditorPaymentActivationRequestStatusReportV07
    creditorPaymentActivationRequestStatusReportV07:
      type: object
      required:
      - creditorPaymentActivationRequestStatusReportV07
      properties:
        creditorPaymentActivationRequestStatusReportV07:
          $ref: '#/components/schemas/CreditorPaymentActivationRequestStatusReportV07'
    GroupHeader87:
      additionalProperties: false
      properties:
        messageIdentification:
          $ref: '#/components/schemas/Max35Text'
        creationDateTime:
          $ref: '#/components/schemas/ISODateTime'
        initiatingParty:
          $ref: '#/components/schemas/PartyIdentification135'
        debtorAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        creditorAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
      required:
      - messageIdentification
      - creationDateTime
      - initiatingParty
      type: object
    OriginalGroupInformation30:
      additionalProperties: false
      properties:
        originalMessageIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalMessageNameIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalCreationDateTime:
          $ref: '#/components/schemas/ISODateTime'
        originalNumberOfTransactions:
          $ref: '#/components/schemas/Max15NumericText'
        originalControlSum:
          $ref: '#/components/schemas/DecimalNumber'
        groupStatus:
          $ref: '#/components/schemas/ExternalPaymentGroupStatus1Code'
        statusReasonInformation:
          items:
            $ref: '#/components/schemas/StatusReasonInformation12'
          type: array
        numberOfTransactionsPerStatus:
          items:
            $ref: '#/components/schemas/NumberOfTransactionsPerStatus5'
          type: array
      required:
      - originalMessageIdentification
      - originalMessageNameIdentification
      type: object
    OriginalPaymentInstruction31:
      additionalProperties: false
      properties:
        originalPaymentInformationIdentification:
          $ref: '#/components/schemas/Max35Text'
        transactionInformationAndStatus:
          items:
            $ref: '#/components/schemas/PaymentTransaction104'
          type: array
      required:
      - originalPaymentInformationIdentification
      type: object
    PaymentTransaction104:
      additionalProperties: false
      properties:
        originalInstructionIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalEndToEndIdentification:
          $ref: '#/components/schemas/Max35Text'
        transactionStatus:
          $ref: '#/components/schemas/ExternalPaymentTransactionStatus1Code'
        statusReasonInformation:
          items:
            $ref: '#/components/schemas/StatusReasonInformation12'
          type: array
        paymentConditionStatus:
          items:
            $ref: '#/components/schemas/PaymentConditionStatus1'
          type: array
        acceptanceDateTime:
          $ref: '#/components/schemas/ISODateTime'
        clearingSystemReference:
          $ref: '#/components/schemas/Max35Text'
        originalTransactionReference:
          $ref: '#/components/schemas/OriginalTransactionReference29'
      type: object
    PaymentConditionStatus1:
      additionalProperties: false
      properties:
        acceptedAmount:
          $ref: '#/components/schemas/ActiveCurrencyAndAmount'
        guaranteedPayment:
          $ref: '#/components/schemas/TrueFalseIndicator'
        earlyPayment:
          $ref: '#/components/schemas/TrueFalseIndicator'
      required:
      - guaranteedPayment
      - earlyPayment
      type: object
    OriginalTransactionReference29:
      additionalProperties: false
      properties:
        amount:
          $ref: '#/components/schemas/AmountType4Choice'
        requestedExecutionDate:
          $ref: '#/components/schemas/DateAndDateTime2Choice'
        creditorAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        creditor:
          $ref: '#/components/schemas/PartyIdentification135'
      type: object
    CreditorPaymentActivationRequestStatusReportV07:
      additionalProperties: false
      properties:
        groupHeader:
          $ref: '#/components/schemas/GroupHeader87'
        originalGroupInformationAndStatus:
          $ref: '#/components/schemas/OriginalGroupInformation30'
        originalPaymentInformationAndStatus:
          items:
            $ref: '#/components/schemas/OriginalPaymentInstruction31'
          type: array
        supplementaryData:
          items:
            $ref: '#/components/schemas/SupplementaryDataRfpResp'
          type: array
      required:
      - groupHeader
      - originalGroupInformationAndStatus
      type: object
    SupplementaryDataRfpResp:
      additionalProperties: false
      properties:
        envelope:
          $ref: '#/components/schemas/SupplementaryDataEnvelopeRfpResp'
      required:
      - envelope
      type: object
    SupplementaryDataEnvelopeRfpResp:
      type: object
    cancelPaymentResponseBody:
      type: object
      properties:
        SECURE:
          type: object
          properties:
            encrypted:
              type: boolean
            data:
              type: string
              description: /components/schemas/resolutionOfInvestigationV09
    resolutionOfInvestigationV09:
      type: object
      required:
      - resolutionOfInvestigationV09
      properties:
        resolutionOfInvestigationV09:
          $ref: '#/components/schemas/ResolutionOfInvestigationV09'
    ResolutionOfInvestigationV09:
      additionalProperties: false
      properties:
        assignment:
          $ref: '#/components/schemas/CaseAssignment5'
        resolvedCase:
          $ref: '#/components/schemas/Case5'
        status:
          $ref: '#/components/schemas/InvestigationStatus5Choice'
        cancellationDetails:
          items:
            $ref: '#/components/schemas/UnderlyingTransaction22'
          type: array
        modificationDetails:
          $ref: '#/components/schemas/PaymentTransaction107'
        supplementaryData:
          items:
            $ref: '#/components/schemas/SupplementaryData1Canc'
          type: array
      required:
      - assignment
      - status
      type: object
    SupplementaryData1Canc:
      additionalProperties: false
      properties:
        placeAndName:
          $ref: '#/components/schemas/Max350Text'
        envelope:
          $ref: '#/components/schemas/SupplementaryDataEnvelope1Canc'
      required:
      - envelope
      type: object
    SupplementaryDataEnvelope1Canc:
      additionalProperties: false
      properties:
        originalClearingSystemReference:
          $ref: '#/components/schemas/Max2048Text'
        OriginalMessageNameIdentification:
          $ref: '#/components/schemas/Max35Text'
      type: object
      required:
      - OriginalMessageNameIdentification
    PaymentTransaction107:
      required:
      - originalGroupInformation
      properties:
        modificationStatusIdentification:
          $ref: '#/components/schemas/Max35Text'
        resolvedCase:
          $ref: '#/components/schemas/Case5'
        originalGroupInformation:
          $ref: '#/components/schemas/OriginalGroupInformation29'
        originalInstructionIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalEndToEndIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalTransactionReference:
          $ref: '#/components/schemas/OriginalTransactionReference28Resp'
      type: object
    OriginalTransactionReference28Resp:
      additionalProperties: false
      properties:
        amount:
          $ref: '#/components/schemas/AmountType4ChoiceCanc'
        paymentTypeInformation:
          $ref: '#/components/schemas/PaymentTypeInformation27'
        paymentMethod:
          $ref: '#/components/schemas/Party40Choice'
        ultimateDebtor:
          $ref: '#/components/schemas/Party40Choice'
        debtor:
          $ref: '#/components/schemas/Party40Choice'
        debtorAccount:
          $ref: '#/components/schemas/CashAccount38'
        debtorAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        creditorAgent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
        creditor:
          $ref: '#/components/schemas/Party40Choice'
        creditorAccount:
          $ref: '#/components/schemas/CashAccount38'
        ultimateCreditor:
          $ref: '#/components/schemas/Party40Choice'
      type: object
    UnderlyingTransaction22:
      additionalProperties: false
      properties:
        originalGroupInformationAndStatus:
          $ref: '#/components/schemas/OriginalGroupHeader14'
        originalPaymentInformationAndStatus:
          items:
            $ref: '#/components/schemas/OriginalPaymentInstruction30'
          type: array
        transactionInformationAndStatus:
          items:
            $ref: '#/components/schemas/PaymentTransaction102'
          type: array
      type: object
    PaymentTransaction102:
      additionalProperties: false
      properties:
        cancellationStatusIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalGroupInformation:
          $ref: '#/components/schemas/OriginalGroupInformation29'
        originalInstructionIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalEndToEndIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalTransactionIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalClearingSystemReference:
          $ref: '#/components/schemas/Max35Text'
        transactionCancellationStatus:
          $ref: '#/components/schemas/CancellationIndividualStatus1Code'
        cancellationStatusReasonInformation:
          items:
            $ref: '#/components/schemas/CancellationStatusReason4'
          type: array
        resolutionRelatedInformation:
          $ref: '#/components/schemas/ResolutionData1'
        originalTransactionReference:
          $ref: '#/components/schemas/OriginalTransactionReference28Resp'
      type: object
    ResolutionData1:
      additionalProperties: false
      properties:
        interbankSettlementAmount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        interbankSettlementDate:
          $ref: '#/components/schemas/ISODate'
        clearingChannel:
          $ref: '#/components/schemas/ClearingChannel2Code'
        charges:
          items:
            $ref: '#/components/schemas/Charges7'
          type: array
      type: object
    Charges7:
      additionalProperties: false
      required:
      - amount
      - agent
      properties:
        amount:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyAndAmount'
        agent:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification6'
      type: object
    OriginalPaymentInstruction30:
      additionalProperties: false
      required:
      - originalPaymentInformationIdentification
      properties:
        originalPaymentInformationCancellationIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalPaymentInformationIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalGroupInformation:
          $ref: '#/components/schemas/OriginalGroupInformation29'
        cancellationStatusReasonInformation:
          items:
            $ref: '#/components/schemas/CancellationStatusReason4'
          type: array
        numberOfTransactionsPerCancellationStatus:
          items:
            $ref: '#/components/schemas/NumberOfCancellationsPerStatus1'
          type: array
        transactionInformationAndStatus:
          items:
            $ref: '#/components/schemas/PaymentTransaction103'
          type: array
      type: object
    PaymentTransaction103:
      additionalProperties: false
      properties:
        cancellationStatusIdentification:
          $ref: '#/components/schemas/Max35Text'
        resolvedCase:
          $ref: '#/components/schemas/Case5'
        originalInstructionIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalEndToEndIdentification:
          $ref: '#/components/schemas/Max35Text'
        transactionCancellationStatus:
          $ref: '#/components/schemas/CancellationIndividualStatus1Code'
        cancellationStatusReasonInformation:
          items:
            $ref: '#/components/schemas/CancellationStatusReason4'
          type: array
        originalTransactionReference:
          $ref: '#/components/schemas/OriginalTransactionReference28Resp'
      type: object
    CancellationIndividualStatus1Code:
      enum:
      - RJCR
      - ACCR
      - PDCR
      type: string
    NumberOfCancellationsPerStatus1:
      additionalProperties: false
      required:
      - detailedNumberOfTransactions
      - detailedStatus
    OriginalGroupHeader14:
      additionalProperties: false
      properties:
        resolvedCase:
          $ref: '#/components/schemas/Case5'
        originalMessageIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalMessageNameIdentification:
          $ref: '#/components/schemas/Max35Text'
        originalCreationDateTime:
          $ref: '#/components/schemas/ISODateTime'
        groupCancellationStatus:
          $ref: '#/components/schemas/GroupCancellationStatus1Code'
        cancellationStatusReasonInformation:
          items:
            $ref: '#/components/schemas/CancellationStatusReason4'
          type: array
      required:
      - originalMessageIdentification
      - originalMessageNameIdentification
      type: object
    CancellationStatusReason4:
      additionalProperties: false
      properties:
        reason:
          $ref: '#/components/schemas/CancellationStatusReason3Choice'
        additonalInformation:
          items:
            $ref: '#/components/schemas/Max105Text'
          type: array
      type: object
    CancellationStatusReason3Choice:
      oneOf:
      - required:
        - code
      - required:
        - proprietary
      properties:
        code:
          $ref: '#/components/schemas/ExternalPaymentCancellationRejection1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      additionalProperties: false
      type: object
    ExternalPaymentCancellationRejection1Code:
      minLength: 1
      maxLength: 4
      type: string
    GroupCancellationStatus1Code:
      type: string
      enum:
      - PACR
      - RJCR
      - ACCR
      - PDCR
    InvestigationStatus5Choice:
      additionalProperties: false
      oneOf:
      - required:
        - confirmation
      - required:
        - rejectedModification
      properties:
        confirmation:
          $ref: '#/components/schemas/ExternalInvestigationExecutionConfirmation1Code'
        rejectedModification:
          items:
            $ref: '#/components/schemas/ModificationStatusReason1Choice'
          type: array
      type: object
    ModificationStatusReason1Choice:
      required:
      - proprietary
      properties:
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      type: object
    ExternalInvestigationExecutionConfirmation1Code:
      minLength: 1
      maxLength: 4
      type: string
    Problem:
      type: object
      properties:
        type:
          type: string
          description: The problem type.
        title:
          type: string
          description: A short, summary of the problem type. Written in english and
            readable for engineers (usually not suited for non technical stakeholders
            and not localized);
        status:
          type: integer
          description: The HTTP status code generated by the origin server for this
            occurrence of the problem.
          format: int32
        detail:
          type: string
          description: A detailed message text human readable explanation specific
            to this occurrence of the problem.
        instance:
          type: string
          description: An absolute URI that identifies the specific occurrence of
            the problem. It may or may not yield further information if dereferenced.
  securitySchemes:
    api-key-1:
      type: apiKey
      in: header
      x-key-type: client_id
      name: x-api-key
    OAuth:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/authorize
          tokenUrl: https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/token
          scopes:
            bmo.tppinterac.payment-initiation.read: bmo.tppinterac.payment-initiation.read
            bmo.tppinterac.payment-initiation.create: bmo.tppinterac.payment-initiation.create
      x-ibm-oauth-provider: apic-oauth-ob-commercial-sb-provider
x-amazon-apigateway-gateway-responses:
  INVALID_SIGNATURE:
    statusCode: 403
    responseTemplates:
      application/json: |-
        {
         "type": "Invalid Signature",
         "title": "Failure",
         "status": "403",
         "detail": $context.error.messageString
        }
  RESOURCE_NOT_FOUND:
    statusCode: 404
    responseTemplates:
      application/json: |-
        {
         "type": "Resource Not Found",
         "title": "Failure",
         "status": "404",
         "detail": $context.error.messageString
        }
  UNSUPPORTED_MEDIA_TYPE:
    statusCode: 415
    responseTemplates:
      application/json: |-
        {
         "type": "Unsupported Media Type",
         "title": "Failure",
         "status": "415",
         "detail": $context.error.messageString
        }
  AUTHORIZER_CONFIGURATION_ERROR:
    statusCode: 500
    responseTemplates:
      application/json: |-
        {
         "type": "Authorizer Configuration Error",
          "title": "Failure",
         "status": "500",
         "detail": $context.error.messageString
        }
  BAD_REQUEST_BODY:
    statusCode: 400
    responseTemplates:
      application/json: |-
        {
         "type": "Input Violation Exception",
         "title": "Failure",
         "status": "400",
         "detail": $context.error.messageString
        }
  THROTTLED:
    statusCode: 429
    responseTemplates:
      application/json: |-
        {
         "type": "Throttled",
         "title": "Failure",
         "status": "429",
         "detail": $context.error.messageString
        }
  ACCESS_DENIED:
    statusCode: 403
    responseTemplates:
      application/json: |-
        {
         "type": "Access Denied",
         "title": "Failure",
         "status": "403",
         "detail": $context.error.messageString
        }
  INTEGRATION_TIMEOUT:
    statusCode: 504
    responseTemplates:
      application/json: |-
        {
         "type": "Integration Timeout",
         "title": "Failure",
         "status": "504",
         "detail": $context.error.messageString
        }
  REQUEST_TOO_LARGE:
    statusCode: 413
    responseTemplates:
      application/json: |-
        {
         "type": "Request Too Large",
         "title": "Failure",
         "status": "413",
         "detail": $context.error.messageString
        }
  QUOTA_EXCEEDED:
    statusCode: 429
    responseTemplates:
      application/json: |-
        {
         "type": "Quota Exceeded",
         "title": "Failure",
         "status": "429",
         "detail": $context.error.messageString
        }
  INVALID_API_KEY:
    statusCode: 403
    responseTemplates:
      application/json: |-
        {
         "type": "Invalid API Key",
         "title": "Failure",
         "status": "403",
         "detail": $context.error.messageString
        }
  EXPIRED_TOKEN:
    statusCode: 403
    responseTemplates:
      application/json: |-
        {
         "type": "Expired Token",
         "title": "Failure",
         "status": "403",
         "detail": $context.error.messageString
        }
  AUTHORIZER_FAILURE:
    statusCode: 500
    responseTemplates:
      application/json: |-
        {
         "type": "Authorizer Failure",
         "title": "Failure",
         "status": "500",
         "detail": $context.error.messageString
        }
  API_CONFIGURATION_ERROR:
    statusCode: 500
    responseTemplates:
      application/json: |-
        {
         "type": "API Configuration Error",
         "title": "Failure",
         "status": "500",
         "detail": $context.error.messageString
        }
  BAD_REQUEST_PARAMETERS:
    statusCode: 400
    responseTemplates:
      application/json: |-
        {
         "type": "Input Violation Exception",
         "title": "Failure",
         "status": "400",
         "detail": $context.error.messageString
        }
  MISSING_AUTHENTICATION_TOKEN:
    statusCode: 403
    responseTemplates:
      application/json: |-
        {
         "type": "Missing Authentication Token",
         "title": "Failure",
         "status": "403",
         "detail": $context.error.messageString
        }
  INTEGRATION_FAILURE:
    statusCode: 504
    responseTemplates:
      application/json: |-
        {
         "type": "Integration Failure",
         "title": "Failure",
         "status": "504",
         "detail": $context.error.messageString
        }
  UNAUTHORIZED:
    statusCode: 401
    responseTemplates:
      application/json: |-
        {
         "type": "Unauthorized",
         "title": "Failure",
         "status": "401",
         "detail": $context.error.messageString
        }
x-amazon-apigateway-request-validators:
  Validate body, query string parameters, and headers:
    validateRequestParameters: false
x-amazon-apigateway-policy:
  Version: "2012-10-17"
  Statement:
  - Effect: Allow
    Principal: '*'
    Action: execute-api:Invoke
    Resource: executeApiArn
    Condition:
      StringEquals:
        aws:SourceVpc:
        - VpcId
x-ibm-configuration:
  type: rest
  phase: realized
  enforced: true
  testable: true
  categories:
  - bian--bd--operationalservices
  cors:
    enabled: true
  oauth-servers:
    OAuth:
      authorizationCode:
        tokenUrls:
        - https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/token
        authorizationUrls:
        - https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/authorize
        refreshUrls: []
x-ibm-endpoints:
- url: https://sandbox-open-api.bmo.com/open-banking/commercial-sb
  type:
  - production
  - development
...
