openapi: 3.0.1
#---------------------------------------------------
# Information to contact the Service provider
#-------------------------------------------------
info:
  title:  ACH Inquiry
  description: Use the ACH Inquiry API to get the status on ACH transactions based on your query criteria. For clients with a non-consolidated settlement, you can receive collected (in progress), posted (processed), and returned transactions. For clients with a consolidated settlement, you only receive collected and returned transactions. Posted transactions is not an available status for consolidated settlement.
  contact: 
   name: "KeyBank Developers Support"
   email: "developers@keybank.com"
  version: 1.1.4

servers:
#---------------------------------------------------
# List of environments for the API
#---------------------------------------------------
 - url: https://partner-api-qv.keybank.com
 - url: https://partner-api.keybank.com
 
paths:
#---------------------------------------------------
# List of Environments for the API
#---------------------------------------------------
  
  /accounts/transactions/v1/healthCheck:
    get:
      tags: # Apigee Product: Logical group based on functionality
        - HealthCheck 
      summary: Health check            
      description: Verify you can connect to the API service.
      operationId: healthCheck
      security:
        - bearerAuth: []
      parameters:
        - name: X-CorrelationId
          in: header
          schema:
            type: string
          required: false
          description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. CorrelationId is unique per request.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/healthResponse'
              example:
                 Status: Ok
                 Source: Roundtrip
                 Timestamp: '2022-09-15T04:49:03'
                 ClientIp: 156.77.111.28
                 X-Forwarded-For: '[156.77.111.28]'
  /accounts/transactions/v1/ACHStatusInquiry/list:
    post:
      operationId: ACHStatusInquiry
      security:
        - bearerAuth: []
      tags: 
      - ACH Transactions
      summary: Get the status of ACH transactions
      description: Inquire about the status of an ACH transaction with a trace number or PAR number. Use the trace number or PAR number from the response of the originating transaction request. You cannot use both the trace number and PAR number for a query. You can look up multiple transactions with either number. When you submit an inquiry for multiple numbers, separate the values with a comma.
      parameters:
        - name: X-CorrelationId
          in: header
          schema:
            type: string
          required: false
          description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/achStatusInquiryParRequest'
                - $ref: '#/components/schemas/achStatusInquiryTraceNumberRequest'
            example: 
              getACHStatusInquiryRequest:
                accountNumber:
                  - "987654321"
                  - "123456789" 
                parNumber: ["22018007665985"]
                traceNumber: []
                mdmId: "ABCD12FG34"
                startRowIndex: "1"
                endRowIndex: ""
        required: true
      responses:
        '200':
          description: Successful response
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achStatusInquiryResponse'
              example:
                  responseHeader:
                    status: S
                    statusDescription: Successfully returned results for the requested range 1 to
                      1000
                    retrivedRows: '1'
                    totalRows: '1'
                    dataLoadDate: '2023-03-10'
                  ACHTransactionStatus:
                  - ACHStatus: COLLECTED
                    ACHCollectedTransaction:
                      transactionParNumber: '1234567891113'
                      sourceBankNumber: '1234'
                      sourceAccountNumber: '123456789'
                      transactionCode: '22'
                      transactionAmount: '10.01'
                      creditOrDebitCode: C
                      sourceTransactionProcessDate: '2021-03-08'
                      sourceTransactionProcessTime: '060011'
                      sourceTransactionProcessTimestamp: '2021-03-08 06:00:11'
                      sourceTransactionPostDate: '2021-03-08'
                      receivingCustomerName: TEST COMPANY 1, LLC
                      receivingCompanyName: TEST COMPANY 2, LLC
                      receivingCustIdentificationNumber: TESTCOMPANY
                      originatingCompanyName: TESTCOMPANY VRU
                      originatingCustomerName: TEST CORP DEP
                      nachaSecCode: ABC
                      traceNumber: '000000000000000'
                      transactionDescription: VALIDATION             
        '400':
          description: Missing data
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Please make sure your request is correct and try again."
                TransactionId:  "rrt-770941720727587-2383364-1"        
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '401':
          description: Unauthorized request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
                ErrorMessage: "Please make sure you're using the correct credentials. Then log in again."
                TransactionId:  "rrt-770941720727587-2383364-1"    
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '403':
          description: Access denied
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "You don't have access to this resource. Contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"         
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"  
        '404':
          description: Not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "We can't seem to find what you're looking for. Please verify the resource and try again."
                TransactionId:  "rrt-770941720727587-2383364-1"         
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Requested method denied
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: Looks like something went wrong. Please check your request method and try again."
                TransactionId:  "rrt-770941720727587-2383364-1"         
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Media type not supported
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "We currently don't support that format. Please check the format type defined in your request and try again. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"  
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Too many requests
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like you've sent too many requests. Please wait a moment and try again later."
                TransactionId:  "rrt-770941720727587-2383364-1" 
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '500':
          description: Internal server error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like something went wrong. Please try again when you're ready. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"       
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '502':
          description: Bad gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like something went wrong. Please try again when you're ready. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution. "
                TransactionId:  "rrt-770941720727587-2383364-1"        
                TransactionTime: "2021-06-11T16:31:34.041Z"
                X-CorrelationId: "2ebd0e8d5a70-e91"
                ServiceError: 
                  ConnectError : "A connectivity error occurred with the downstream service(unexpected end of file at the target). Please check with your KeyBank Client Success Manager or email developers@keybank.com before trying the request again."
        '503':
          description: Service unavailable
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like something went wrong. Please try again later. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"     
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError : "This service is currently unavailable(there are no active targets). Please check with your KeyBank Client Success Manager or email developers@keybank.com before trying the request again."
        '504':
          description: Gateway timeout
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Your request took too long to process. Please try again. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"       
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError : "The request could not be processed on time (gateway timeout). Please wait a moment and try again later."
  /accounts/transactions/v1/collectedACHtransactions/list:
    post:
      operationId: collectedACHtransactions
      security:
        - bearerAuth: []
      tags: 
      - ACH Transactions
      summary: Get detailed information about a collected transaction
      description: Look up a list of collected ACH transactions by account number and date. 
      parameters:
        - name: X-CorrelationId
          in: header
          schema:
            type: string
          required: false
          description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/achCollectedTransactionsRequest'
            example: 
              getACHCollectedTransactionsRequest:
                accountNumber:
                  - "123456789"
                fromDate: "2022-03-12"
                toDate: "2022-04-12"
                sourceTransactionSettledDate: "2022-04-12"
                creditOrDebitCode: "C"
                fromAmount: "01.00"
                toAmount: "180.00"
                addendaFlag: "N"
                secCode: ""
                traceNumber: "0612123100888473"
                parNumber: ""
                detailsFlag: "N"
                mdmId: "ABCD12FG34"
                startRowIndex: "1"
                endRowIndex: "1"
        required: true
      responses:
        '200':
          description: Successful response
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achCollectedTransactionsResponse'
              example:
                getACHCollectedTransactionsResponse:                  
                  responseHeader:
                    status: "S"
                    statusDescription: "Successfully returned results for the requested range 1 to 1"
                    retrivedRows: "1"
                    totalRows: "1"
                    dataLoadDate: "2022-04-07"
                  ACHCollectedTransaction:
                    - transactionParNumber: "22081003123797"
                      sourceBankNumber: "1000"
                      sourceAccountNumber: "123456789"
                      origAcctSuffix: "XX"
                      sourceSysCode: "DDA"
                      sourceSysOfRecordCode: "ACH"
                      snapshotDate: "2022-03-22"
                      transactionCode: "22"
                      transactionCodeDescription: "Automated Deposit"
                      transactionFlowTypeCode: "INTRA"
                      transactionFlowTypeDescription: "Intrabank"
                      originatingReceiverCode: "OI"
                      transactionAmount: "31.05"
                      transactionDescription: "DEPOSIT"
                      creditOrDebitCode: "C"
                      inboundCollectionWindow: "0500"
                      sourceTransactionProcessDate: "2022-03-22"
                      sourceTransactionProcessTime: "050022"
                      sourceTransactionProcessTimestamp: "2022-03-22 05:00:22"
                      sourceTransactionSettledDate: 2022-03-22
                      sourceTransactionSettledTime: "1715"
                      sourceTransactionSettledTimestamp: "2022-03-22 17:15:42"
                      sourceTransactionPostDate: "2022-03-22"
                      sourceTransactionPostTime: "1716"
                      sourceTransactionPostTimestamp: "2022-03-22 17:16:02"
                      deliveryStatusCode: "DEL"
                      deliveryStatusDescription: "DELIVERED"
                      receivingAccountNumber: "987654321"
                      receivingFIBankNumber: "0001"
                      receivingFIRoutingNumber: "123456789"
                      receivingCustIdentificationNumber: "1234567"
                      receivingCustomerName: "CUSTOMER NAME 1"
                      receivingCompanyName: "COMPANY NAME 1"
                      originatingAccountNumber: "123456789012"
                      originatingFIBankNumber: "0000"
                      originatingFIRoutingNumber: "1234567890"
                      originatingCustIdentificationNumber: "0580215200"
                      originatingCompanyName: "MERCHANT"
                      originatingCustomerName: "TEST MERCHANT"
                      checkSerialNumber: "4345"
                      nachaBatchNumber: "0000006"
                      nachaFileHeadRefererenceNumber: "22081000015"
                      nachaSecCode: "CCD"
                      nachaSecDescription: "Cash Concentration or Disbursement"
                      traceNumber: "061000100888473"
                      addendaPresentFlag: "0"
                      addendaRecordNumber: "0000000000"
                      originatingReceiverDescription: "Originating Item"
                      goRoutingNumber: "222370040"
                      authorizedCustomerName: "TEST CUSTOMER1"
                      iatFlag: "N"
                      collectionPoint: "TESTPOINT"
                      batchId: "26052"
                      transactionTraceId: "041001032851213"
                      addendaInformation: 
                        nonIatAddendum: 
                            addendaParNumber: "21063004069232"
                            payInformation: "TXP51662854201101210305T*0004081318"
                            addendaTypeCode: "05"
                            addendaTypeDescription: "Addenda Record (Applies to CCD, CIE, CTX, PPD, TRX, and WEB entries)"
                            entryDetailSequenceNumber: "986756"
                            keyBankTransactionReferenceNumber: "0"
                      customData: "merchant:status"
        '400':
          description: Missing data
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Please make sure your request is correct and try again."
                TransactionId:  "rrt-770941720727587-2383364-1"        
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '401':
          description: Unauthorized request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
                ErrorMessage: "Please make sure you're using the correct credentials. Then log in again."
                TransactionId:  "rrt-770941720727587-2383364-1"    
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '403':
          description: Access denied
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "You don't have access to this resource. Contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"         
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"  
        '404':
          description: Not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "We can't seem to find what you're looking for. Please verify the resource and try again."
                TransactionId:  "rrt-770941720727587-2383364-1"         
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Requested method denied
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: Looks like something went wrong. Please check your request method and try again."
                TransactionId:  "rrt-770941720727587-2383364-1"         
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Media type not supported
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "We currently don't support that format. Please check the format type defined in your request and try again. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"  
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Too many requests
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like you've sent too many requests. Please wait a moment and try again later."
                TransactionId:  "rrt-770941720727587-2383364-1" 
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '500':
          description: Internal server error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like something went wrong. Please try again when you're ready. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"       
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '502':
          description: Bad gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like something went wrong. Please try again when you're ready. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution. "
                TransactionId:  "rrt-770941720727587-2383364-1"        
                TransactionTime: "2021-06-11T16:31:34.041Z"
                X-CorrelationId: "2ebd0e8d5a70-e91"
                ServiceError: 
                  ConnectError : "A connectivity error occurred with the downstream service(unexpected end of file at the target). Please check with your KeyBank Client Success Manager or email developers@keybank.com before trying the request again."
        '503':
          description: Service unavailable
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like something went wrong. Please try again later. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"     
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError : "This service is currently unavailable(there are no active targets). Please check with your KeyBank Client Success Manager or email developers@keybank.com before trying the request again."
        '504':
          description: Gateway timeout
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Your request took too long to process. Please try again. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"       
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError : "The request could not be processed on time (gateway timeout). Please wait a moment and try again later."
  /accounts/transactions/v1/postedACHtransactions/list:
    post:
      operationId: postedACHtransactions
      security:
        - bearerAuth: []
      tags: 
      - ACH Transactions
      summary: Get the status of posted ACH transactions
      description: Retrieves a list of posted ACH transactions for queried accounts.
      parameters:
        - name: X-CorrelationId
          in: header
          schema:
            type: string
          required: false
          description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/achPostedTransactionsRequest'
            example: 
              getACHPostedTransactionsRequest:
                accountNumber:
                  - "123456789" 
                fromDate: "2022-01-12"
                toDate: "2022-04-12"
                creditOrDebitCode: ""
                fromAmount: "01.00"
                toAmount: "180.00"
                parNumber: ""
                mdmId: "ABCD12FG34"
                startRowIndex: "1"
                endRowIndex: "1"
        required: true
      responses:
        '200':
          description: Successful response
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achPostedTransactionsResponse'
              example:
                getACHPostedTransactionsResponse:
                  responseHeader:
                    status: "S"
                    statusDescription: "Successfully returned results for the requested range 1 to 1"
                    retrivedRows: "1"
                    totalRows: "1"
                    dataLoadDate: "2022-03-04"
                  ACHPostedTransaction:
                    - snapshotDate: "2022-02-04"
                      processDate: "2022-02-04"
                      sourceBankNumber: "0000"
                      sourceAccountNumber: "987654321"
                      transactionParNumber: "22023411528113"
                      transactionAmount: "10.0"
                      creditOrDebitCode: "C"
                      hoganTransactionCode: "1007"
                      baiCode: "169"
                      transactionCode: "22"
                      regulationDescription1: "TEST CORP DEP"
                      regulationDescription2: "TEST*527042600*01101*2"
                      regulationDescription3: "20201**04324"
                      postingWindow: "0600"
                      batchID: "18102"
        '400':
          description: Missing data
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Please make sure your request is correct and try again."
                TransactionId:  "rrt-770941720727587-2383364-1"        
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '401':
          description: Unauthorized request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
                ErrorMessage: "Please make sure you're using the correct credentials. Then log in again."
                TransactionId:  "rrt-770941720727587-2383364-1"    
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '403':
          description: Access denied
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "You don't have access to this resource. Contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"         
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"  
        '404':
          description: Not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "We can't seem to find what you're looking for. Please verify the resource and try again."
                TransactionId:  "rrt-770941720727587-2383364-1"         
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Requested method denied
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: Looks like something went wrong. Please check your request method and try again."
                TransactionId:  "rrt-770941720727587-2383364-1"         
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Media type not supported
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "We currently don't support that format. Please check the format type defined in your request and try again. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"  
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Too many requests
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like you've sent too many requests. Please wait a moment and try again later."
                TransactionId:  "rrt-770941720727587-2383364-1" 
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '500':
          description: Internal server error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like something went wrong. Please try again when you're ready. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"       
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '502':
          description: Bad gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like something went wrong. Please try again when you're ready. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution. "
                TransactionId:  "rrt-770941720727587-2383364-1"        
                TransactionTime: "2021-06-11T16:31:34.041Z"
                X-CorrelationId: "2ebd0e8d5a70-e91"
                ServiceError: 
                  ConnectError : "A connectivity error occurred with the downstream service(unexpected end of file at the target). Please check with your KeyBank Client Success Manager or email developers@keybank.com before trying the request again."
        '503':
          description: Service unavailable
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like something went wrong. Please try again later. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"     
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError : "This service is currently unavailable(there are no active targets). Please check with your KeyBank Client Success Manager or email developers@keybank.com before trying the request again."
        '504':
          description: Gateway timeout
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Your request took too long to process. Please try again. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"       
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError : "The request could not be processed on time (gateway timeout). Please wait a moment and try again later."
  /accounts/transactions/v1/returnACHtransactions/list:
    post:
      operationId: returnACHtransactionslist
      security:
        - bearerAuth: []
      tags: 
      - ACH Transactions
      summary: Get the status of a returned ACH transaction
      description: Retrieve a list of returned ACH transactions for queried accounts.
      parameters:
        - name: X-CorrelationId
          in: header
          schema:
            type: string
          required: false
          description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/achReturnTransactionsRequest'
            example: 
              getACHReturnTransactionsRequest:
                accountNumber:
                  - "123456789"
                fromDate: "2021-06-12"
                toDate: "2021-07-12"
                creditOrDebitCode: "C"
                fromAmount: "01.00"
                toAmount: "180.00"
                parNumber: ""
                detailsFlag: "Y"
                mdmId: "ABCD12FG34"
                startRowIndex: "1"
                endRowIndex: "10"
        required: true
      responses:
        '200':
          description: Successful response
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification.  Adding content here.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/returnACHtransactionslistResponse'
              example:
                getACHReturnTransactionsResponse:
                  responseHeader:
                      status: "S"
                      statusDescription: "Successfully returned results for the requested range 1 to 1"
                      retrivedRows: "1"
                      totalRows: "1"
                      dataLoadDate: "2022-07-16"
                  ACHReturnTransaction:
                    - returnTransactionParNumber: "21181233817881"
                      sourceBankNumber: "1234"
                      sourceAccountNumber: "123456789"
                      sourceTransactionRecordNumber: "2118123373937"
                      sourceSysCode: "DDA"
                      sourceSysOfRecordCode: "ACH"
                      snapshotDate: "2021-07-22"
                      originalACHTransactionParNumber: "21176003985391"
                      originalTransactionProcessDate: "2021-06-25"
                      originalTransactionProcessTime: "153644"
                      originalTransactionProcessTimestamp: "2021-06-25 15:36:44"
                      originatingReceiverCode: "OR"
                      originatingReceiverDescription: "Originating Return"
                      transactionCode: "21"
                      transactionCodeDescription: "Automated Return or Notification of Change for original transaction code 22, 23, or 24"
                      transactionFlowTypeCode: "INTRA"
                      transactionFlowTypeDescription: "Intrabank"
                      transactionAmount: "128.7"
                      transactionDescription1: "RETURN NOTE"
                      creditOrDebitCode: "C"
                      sourceTransactionCreatedDate: "2021-06-25"
                      sourceTransactionCreatedTime: "1406"
                      sourceTransactionCreatedTimestamp: "2021-06-25 14:06:00"
                      sourceTransactionProcessDate: "2021-06-25"
                      sourceTransactionProcessTime: "153644"
                      sourceTransactionProcessTimestamp: "2021-06-25 15:36:44"
                      inboundCollectionWindow: "1600"
                      outboundCollectionWindow: "2000"
                      sourceTransactionSettledDate: "2021-06-28"
                      receivingAccountNumber: "12345123234"
                      receivingCustIdentificationNumber: "34344"
                      receivingCustomerName: "Test receiveCustomer Name"
                      receivingCompanyName: "Test receiveCompany Name"
                      receivingFIBankNumber: "1234"
                      receivingFIRoutingNumber: "437364783"
                      originatingAccountNumber: "123456789"
                      originatingCustIdentificationNumber: "146013200U"
                      originatingCustomerName: "Test origCustomerName"
                      originatingCompanyName: "Test origCompanyName"
                      originatingFIBankNumber: "5556"
                      originatingFIRoutingNumber: "454646334"
                      authorizedCustomerName: "Test authCustName"
                      immediateDestinationID: "021300077"
                      returnReleaseDate: "2021-06-29"
                      returnReasonCode: "R02"
                      returnReasonDescription: "Account Closed"
                      nachaBatchNumber: "0000013"
                      nachaFileHeadRefererenceNumber: "21176000442"
                      nachaSecCode: "PPD"
                      nachaSecDescription: "Prearranged Payment & Deposit Entry"
                      traceId: "041001012851361"
                      collectionPoint: "TESTPOINT"
                      batchID: "1125"
        '400':
          description: Missing data
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Please make sure your request is correct and try again."
                TransactionId:  "rrt-770941720727587-2383364-1"        
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '401':
          description: Unauthorized request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
                ErrorMessage: "Please make sure you're using the correct credentials. Then log in again."
                TransactionId:  "rrt-770941720727587-2383364-1"    
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '403':
          description: Access denied
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "You don't have access to this resource. Contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"         
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"  
        '404':
          description: Not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "We can't seem to find what you're looking for. Please verify the resource and try again."
                TransactionId:  "rrt-770941720727587-2383364-1"         
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Requested method denied
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: Looks like something went wrong. Please check your request method and try again."
                TransactionId:  "rrt-770941720727587-2383364-1"         
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Media type not supported
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "We currently don't support that format. Please check the format type defined in your request and try again. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"  
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Too many requests
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like you've sent too many requests. Please wait a moment and try again later."
                TransactionId:  "rrt-770941720727587-2383364-1" 
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '500':
          description: Internal server error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like something went wrong. Please try again when you're ready. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"       
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '502':
          description: Bad gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like something went wrong. Please try again when you're ready. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution. "
                TransactionId:  "rrt-770941720727587-2383364-1"        
                TransactionTime: "2021-06-11T16:31:34.041Z"
                X-CorrelationId: "2ebd0e8d5a70-e91"
                ServiceError: 
                  ConnectError : "A connectivity error occurred with the downstream service(unexpected end of file at the target). Please check with your KeyBank Client Success Manager or email developers@keybank.com before trying the request again."
        '503':
          description: Service unavailable
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Looks like something went wrong. Please try again later. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"     
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError : "This service is currently unavailable(there are no active targets). Please check with your KeyBank Client Success Manager or email developers@keybank.com before trying the request again."
        '504':
          description: Gateway timeout
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Your request took too long to process. Please try again. If you experience more issues, contact your KeyBank Client Success Manager or email developers@keybank.com for help with a resolution."
                TransactionId:  "rrt-770941720727587-2383364-1"       
                X-CorrelationId: "2ebd0e8d5a70-e91"
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError : "The request could not be processed on time (gateway timeout). Please wait a moment and try again later."
components:
  schemas:
    exception:
      type: object
      title: exceptionSchema
      properties:
        ErrorMessage: 
          type: string
          description: A human-readable message that describes the type or source of the error.
        TransactionId:
          type: string
          description: A unique transaction ID returned with the response, useful for traceability. 
        TransactionTime: 
          type: string
          description: Date (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
        ServiceError:
          type: object
          title: ServiceError
          description: Detailed service-level error details, if available. 
          oneOf:
          - $ref: '#/components/schemas/serviceErrorData'
          - $ref: '#/components/schemas/connectError'
    serviceErrorData:
      type: object
      title: ServiceErrorData
      description: Detailed service-level error details, if available. 
      oneOf:
      - $ref: '#/components/schemas/returnACHtransactionslistResponse'
      - $ref: '#/components/schemas/achCollectedTransactionsResponse'
      - $ref: '#/components/schemas/achPostedTransactionsResponse'
      - $ref: '#/components/schemas/achStatusInquiryResponse'
    connectError:
      type: object
      properties:
        ConnectError:
          type: string
          description: API connectivity error information, if available.         
    returnACHtransactionslistResponse:
      type: object
      description: Contains the returned ACH transaction response payload.
      properties:
        getACHReturnTransactionsResponse:
          $ref: '#/components/schemas/achReturnTransactionsResponse'
    ACHReturnTransaction:
      type: object
      description: Contains the response payload for the ACH returned transactions.
      properties:
        returnTransactionParNumber:
          type: string
          description: The unique PAR number assigned to the the transaction by the ACH product processor.
        sourceBankNumber:
          type: string
          description: Originating entry bank number
        sourceAccountNumber:
          type: string
          description: Originating account number
        sourceTransactionRecordNumber: 
          type: string
          description: Originating record number for the transaction
        sourceSysCode:
          type: string
          description: Do not use. This field is for internal purpose only. 
        sourceSysOfRecordCode:
          type: string
          description: Do not use. This field is for internal purpose only.
        snapshotDate:
          type: string
          description: This field is for internal purpose only. 
          format: date
        originalACHTransactionParNumber:
          type: string
          description: The assigned PAR number for the original ACH transaction.
        originalTransactionProcessDate:
          type: string
          description: 'Date the transaction is processed. Format: YYYY-MM-DD'
        originalTransactionProcessTime:
          type: string
          description: 'Time the transaction is processed in 24-hour time. Format: HHMMSS'
        originalTransactionProcessTimestamp:
          type: string
          description: 'The date and time the transaction is processed. Format: YYYY-MM-DD HH:MM:SS'
        originatingReceiverCode: 
          type: string
          description: Two-character code that identifies the transaction type as originating (O) or receiving (R) and if the transaction is incoming (I) or outgoing (O). Codes can be OI, OO, RI, or RO.
        originatingReceiverDescription: 
          type: string
          description: Description for the returned originating receiver code.
        transactionCode:
          type: string
          description: Two-digit code identifying the account type at the receiving financial institution.
        transactionCodeDescription:
          type: string
          description: Description for the transaction code.
        transactionFlowTypeCode: 
          type: string
          description: "Identifies if transaction is intra-bank (within a single financial institution) or interbank (between two or more banks). Valid values: INTRA, INTER"
        transactionFlowTypeDescription: 
          type: string
          description: Description for the transaction flow type code.
        transactionAmount:
          type: string
          description: The dollar amount of the transaction.
        transactionDescription1:
          type: string
          description: A free form text field that provides the receiver with a description about the purpose of the transaction. 
        transactionDescription2:
          type: string
          description: Additional transaction description information.
        creditOrDebitCode:
          type: string
          description: 'Identifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.'
        sourceTransactionCreatedDate: 
          type: string
          description: "Date when the user created the ACH transaction. Format: YYYY-MM-DD"
        sourceTransactionCreatedTime: 
          type: string
          description: "Time when the user created the ACH transaction. The time format uses the 24-hour clock. Format: HHMM"
        sourceTransactionCreatedTimestamp: 
          type: string
          description: 'The date and time that the ACH transaction was created. Format: YYYY-MM-DD HH:MM:SS'
        sourceTransactionProcessDate: 
          type: string
          description: "Date when the transaction was collected by the ACH product processor. Format: YYYY-MM-DD"
          format: date
        sourceTransactionProcessTime: 
          type: string
          description: "Time when the transaction was collected by the ACH product processor. The time format uses the 24-hour clock. Format: HHMMSS"
        sourceTransactionProcessTimestamp: 
          type: string
          description: "The date and time the ACH transaction was collected by the ACH product processor. Format: YYYY-MM-DD HH:MM:SS"
        inboundCollectionWindow: 
          type: string
          description: 'The time window when the transaction collection is processed. The time format uses the 24-hour clock. Format: HHMM'
        outboundCollectionWindow: 
          type: string
          description: 'The outbound processing window for the transaction collection. The time format uses the 24-hour clock. Format: HHMM'
        sourceTransactionSettledDate:
          type: string
          format: date
          description: 'Date when the transaction is settled. Format: YYYY-MM-DD'
        sourceTransactionSettledTime: 
          type: string
          description: 'The time window when the transaction is settled. The time format uses the 24-hour clock. Format: HHMM'
        sourceTransactionSettledTimestamp: 
          type: string
          description: 'The date and time the ACH transaction is settled. Format: YYYY-MM-DD HH:MM:SS'
        receivingAccountNumber: 
          type: string
          description: Account number of the person or institution receiving the funds. 
        receivingCustIdentificationNumber: 
          type: string
          description: The customer identification number for the person receiving the transaction.
        receivingCustomerName: 
          type: string
          description: Customer name of the person receiving the funds.
        receivingCompanyName: 
          type: string
          description: Company name of the institution getting the funds. 
        receivingFIBankNumber: 
          type: string
          description: Bank number for the financial institution receiving the funds. 
        receivingFIRoutingNumber: 
          type: string
          description: Routing number for the receiving financial institution. 
        originatingAccountNumber: 
          type: string
          description: Account number of the ACH transaction originator.
        originatingCustIdentificationNumber: 
          type: string
          description: Originating customer identification number
        originatingCustomerName: 
          type: string
          description: Originating customer name
        originatingCompanyName: 
          type: string
          description: Originating company name
        originatingFIBankNumber: 
          type: string
          description: Originating financial institution bank number
        originatingFIRoutingNumber: 
          type: string
          description: Originating financial institution routing number
        authorizedCustomerName:
          type: string
          description: Authorized customer name
          example: "Test authCustName"
        immediateDestinationID:
          type: string
          description: The ID indicates the next location of the file once it leaves KeyBank. 
        returnReleaseDate:
          type: string
          format: date
          description: 'Release date of the returned transaction to the ACH system. Format: YYYY-MM-DD'
        returnReasonCode:
          type: string
          description: "The code associated with the reason for returning the ACH transaction. The code is the letter 'R' for reason followed by a two-digit numeric code. Format: R00"
        returnReasonDescription:
          type: string
          description: Description as to why the ACH transaction is returned.
        checkSerialNumber:
          type: string
          description: Serial number for the check converted to an ACH transaction. 
          example: 4345
        nachaBatchNumber:
          type: string
          description: The sequential number of the Nacha batch job.
        nachaFileHeadRefererenceNumber:
          type: string
          description: The Nacha transaction file reference number.
        nachaSecondarySecCode:
          type: string
          description: 'The secondary Nacha standard entry class (SEC) code for the transaction, if applicable. Valid values: CCD, CTX, PPD, TEL, WEB.'
        nachaSecondarySecDescription:
          type: string
          description: The description for the secondary Nacha SEC code.
        traceId:
          type: string
          description: The trace ID number from the source application.
        postCompanyCostcontrolNumber:
          type: string
          description: Do not use. This field is for internal purpose only.
        glAccountNumber:
          type: string
          description: Do not use. This field is for internal purpose only.
        collectionPoint:
          type: string
          description: Transaction collection point
        collectionApplicationTypeCode:
          type: string
          description: Do not use. This field is for internal purpose only.
        collectionApplicationTypeDescription:
          type: string
          description: Do not use. This field is for internal purpose only.
        batchID:
          type: string
          description: The identification number for the batch job. 
          example: 1125
        customData:
          type: string
          description: Custom data from the originating payment request.
    businessFault:
      type: object
      description: Indicates business fault error details.
      properties:
        errorCode:
          type: string
          description: Business error code
        errorDescription:
          type: string
          description: Business error description 
    achReturnTransactionsResponse:
      type: object
      description: Contains the response payload for the submitted request.
      required:
      - responseHeader      
      properties:
        responseHeader:
          $ref: '#/components/schemas/responseHeader'
        ACHReturnTransaction:
          type: array
          items:
            $ref: '#/components/schemas/ACHReturnTransaction'
        errorResponse:
          $ref: '#/components/schemas/errorResponse'
    systemFault:
      type: object
      description: Indicates system fault error details.
      properties:
        errorCode:
          type: string
          description: System error code
        errorDescription:
          type: string
          description: System error description   
    achReturnTransactionsRequest:
      type: object
      description: Contains the request payload for the submitted request.
      properties:
        getACHReturnTransactionsRequest:
          $ref: '#/components/schemas/getACHReturnTransactionsRequest'
    getACHReturnTransactionsRequest:
      required:
      - accountNumber
      - fromDate
      - toDate
      - detailsFlag
      type: object
      description: Contains request parameters for ACH return transactions.
      properties:
        accountNumber:
          type: array          
          description: One or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed than 16 characters.
          items:
            type: string
        fromDate:
          type: string
          description: 'The starting date range for the transaction. The date must be less than or equal to the current date. Transaction data can be recalled from the previous 24 months. Date range cannot exceed more than one year. Format: YYYY-MM-DD'
          format: date
        toDate:
          type: string
          description: 'The ending date range for the transaction. The date must be be less than or equal to the current date. Transaction data can be recalled from the previous 24 months. Date range cannot exceed more than one year. Format: YYYY-MM-DD'
          format: date
        creditOrDebitCode:
          type: string
          description: 'Identifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.'
        fromAmount:
          type: string
          description: Transaction amount lower limit value to be searched.
        toAmount:
          type: string
          description: Transaction amount upper limit value to be searched.
        parNumber:
          type: string
          description: The PAR (Payment Assigned Reference) number is a unique identifier assigned by the ACH Product Processor. Use a comma to separate multiple PAR numbers.
        detailsFlag:
          type: string
          description: 'Return a detailed response (Y) or a brief response (N). Valid values: Y, N'
        receivingCustIdentificationNumber:
          type: string
          description: The unique ID number associated with the payment recipient. This number is defined in the originating payment request.
        mdmId:
          type: string
          description: The MDM ID will soon deprecate. This is an ID number that can associate with a single account or many accounts for verification and data retrieval.
        startRowIndex:
          type: string
          description: Pagination parameter that indicates the starting count available for the records. If this parameter is not provided, value will default to 1.
        endRowIndex:
          type: string
          description: Pagination parameter that indicates the last count available for the records. If this parameter is not provided, value will default to 1000. The request can't exceed more than 1000 records from the startRowIndex.
    responseHeader:
      required:
      - status
      - statusDescription
      type: object
      description: Provides status information of the processed request.
      properties:
        status:
          type: string
          description: 'Indicates whether the result was successful or not. Valid values: accepted, failure'
        statusDescription:
          type: string
          description: Description of the status
        retrivedRows:
          type: string
          description: Total number of transactions retrieved.
        totalRows:
          type: string
          description: Total number of transactions matching the requested criteria.
        dataLoadDate:
          type: string
          description: 'Indicates the date that the requested data was loaded. Format: YYYY-MM-DD'
    errorResponse:
      type: object
      description: Detailed error information generated by the chain of services involved either as a business fault or system fault.
      properties:
        businessFault:
          type: array
          items:
            $ref: '#/components/schemas/businessFault'
        systemFault:
          type: array
          items:
            $ref: '#/components/schemas/systemFault'
    achCollectedTransactionsRequest:
      type: object
      description: Contains the request payload for the submitted request.
      properties:
        getACHCollectedTransactionsRequest:
          $ref: "#/components/schemas/getACHCollectedTransactionsRequest"
    getACHCollectedTransactionsRequest:
      type: object
      description: Contains request parameters for ACH collected transactions list.
      required:
      - accountNumber
      - addendaFlag
      - fromDate
      - toDate
      - detailsFlag
      properties:
        accountNumber:
          type: array
          description: One or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed than 16 characters.
          items:
            type: string
        fromDate:
          type: string
          description: 'The starting date range for the transaction. The date must be less than or equal to the current date. Transaction data can be recalled from the previous 24 months. Date range cannot exceed more than one year. Format: YYYY-MM-DD'
          format: date
        toDate:
          type: string
          description: 'The ending date range for the transaction. The date must be be less than or equal to the current date. Transaction data can be recalled from the previous 24 months. Date range cannot exceed more than one year. Format: YYYY-MM-DD'
          format: date
        sourceTransactionSettledDate:
          type: string
          format: date
          description: 'Date when the transaction is settled. Format: YYYY-MM-DD'
        creditOrDebitCode:
          type: string
          description: 'Identifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.'
        fromAmount:
          type: string
          description: Transaction amount lower limit value to be searched.
        toAmount:
          type: string
          description: Transaction amount upper limit value to be searched.
        addendaFlag:
          type: string
          description: 'Retrieves addenda information if set to Y for yes. Valid values: Y, N.'
        secCode:
          type: string
          description: 'The three-digit Standard Entry Class code based on Nacha rules. Valid values: CCD, CTX, PPD, TEL, WEB.'
        traceNumber:
          type: string
          description: The unique number for the transaction provided by the originator. Multiple trace numbers can be comma separated.
        parNumber:
          type: string
          description: The PAR (Payment Assigned Reference) number is a unique identifier assigned by the ACH Product Processor. Use a comma to separate multiple PAR numbers.
        detailsFlag:
          type: string
          description: 'Return a detailed response (Y) or a brief response (N). Valid values: Y, N'
        receivingCustIdentificationNumber:
          type: string
          description: The unique ID number associated with the payment recipient. This number is defined in the originating payment request.
        mdmId:
          type: string
          description: The MDM ID will soon deprecate. This is an ID number that can associate with a single account or many accounts for verification and data retrieval.
        startRowIndex:
          type: string
          description: Pagination parameter that indicates the starting count available for the records. If this parameter is not provided, value will default to 1.
        endRowIndex:
          type: string
          description: Pagination parameter that indicates the last count available for the records. If this parameter is not provided, value will default to 1000. The request can't exceed more than 1000 records from the startRowIndex.
    achStatusInquiryParRequest:
      type: object
      description: Contains the request payload by PAR number for the submitted request.
      properties:
        getACHStatusInquiryRequest:
          $ref: "#/components/schemas/getACHStatusInquiryParRequest"
    achStatusInquiryTraceNumberRequest:
      type: object
      description: Contains the request payload by trace number for the submitted request.
      properties:
        getACHStatusInquiryRequest:
          $ref: "#/components/schemas/getACHStatusInquiryTraceNumberRequest"
    getACHStatusInquiryParRequest:
      type: object
      required:
      - accountNumber
      - parNumber
      properties:
        accountNumber:
          type: array
          description: One or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed than 16 characters.
          items:
            type: string
        parNumber:
          type: array
          description: The PAR (Payment Assigned Reference) number is a unique identifier assigned by the ACH Product Processor. Use a comma to separate multiple PAR numbers.
          items:
            type: string
          minLength: 1
        traceNumber:
          type: array
          description: The unique number for the transaction provided by the originator. Multiple trace numbers can be comma separated.
          items:
            type: string
          maxItems: 0
        receivingCustIdentificationNumber:
          type: string
          description: The unique ID number associated with the payment recipient. This number is defined in the originating payment request.
        mdmId:
          type: string
          description: The MDM ID will soon deprecate. This is an ID number that can associate with a single account or many accounts for verification and data retrieval.
        startRowIndex:
          type: string
          description: Pagination parameter that indicates the starting count available for the records. If this parameter is not provided, value will default to 1.
        endRowIndex:
          type: string
          description: Pagination parameter that indicates the last count available for the records. If this parameter is not provided, value will default to 1000. The request can't exceed more than 1000 records from the startRowIndex.
      description: Contains request parameters for ACH status inquiry with accounts and PAR numbers combination.
    getACHStatusInquiryTraceNumberRequest:
      type: object
      required:
      - accountNumber
      - traceNumber
      properties:
        accountNumber:
          type: array
          description: One or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed than 16 characters.
          items:
            type: string
        traceNumber:
          type: array
          description: The unique number for the transaction provided by the originator. Multiple trace numbers can be comma separated.
          items:
            type: string
        parNumber:
          type: array
          description: The PAR (Payment Assigned Reference) number is a unique identifier assigned by the ACH Product Processor. Use a comma to separate multiple PAR numbers.
          items:
            type: string
          maxItems: 0
        receivingCustIdentificationNumber:
          type: string
          description: The unique ID number associated with the payment recipient. This number is defined in the originating payment request.
        mdmId:
          type: string
          description: The MDM ID will soon deprecate. This is an ID number that can associate with a single account or many accounts for verification and data retrieval.
        startRowIndex:
          type: string
          description: Pagination parameter that indicates the starting count available for the records. If this parameter is not provided, value will default to 1.
        endRowIndex:
          type: string
          description: This is a pagination field. It indicates the last count available for the records. If the field is not provided, value will default to 1000. The request can't exceed more than 1000 records from the startRowIndex.
      description: Contains request parameters for ACH status inquiry with accounts and trace numbers combination.
    achPostedTransactionsRequest:
      type: object
      description: Contains the request payload for the submitted request.
      properties:
        getACHPostedTransactionsRequest:
          $ref: "#/components/schemas/getACHPostedTransactionsRequest"
    getACHPostedTransactionsRequest:
      type: object
      required:
      - accountNumber
      - fromDate
      - toDate
      properties:
        accountNumber:
          type: array
          description: One or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed than 16 characters.
          items:
            type: string
        fromDate:
          type: string
          format: date
          description: 'The starting date range for the transaction. The date must be less than or equal to the current date. Transaction data can be recalled from the previous 24 months. Date range cannot exceed more than one year. Format: YYYY-MM-DD'
        toDate:
          type: string
          format: date
          description: 'The ending date range for the transaction. The date must be be less than or equal to the current date. Transaction data can be recalled from the previous 24 months. Date range cannot exceed more than one year. Format: YYYY-MM-DD'
        creditOrDebitCode:
          type: string
          description: 'Identifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.'
        fromAmount:
          type: string
          description: Transaction amount lower limit value to be searched.
        toAmount:
          type: string
          description: Transaction amount upper limit value to be searched.
        parNumber:
          type: string
          description: The PAR (Payment Assigned Reference) number is a unique identifier assigned by the ACH Product Processor. Use a comma to separate multiple PAR numbers.
        receivingCustIdentificationNumber:
          type: string
          description: The unique ID number associated with the payment recipient. This number is defined in the originating payment request.
        mdmId:
          type: string
          description: The MDM ID will soon deprecate. This is an ID number that can associate with a single account or many accounts for verification and data retrieval.
        startRowIndex:
          type: string
          description: Pagination parameter that indicates the starting count available for the records. If this parameter is not provided, value will default to 1.
        endRowIndex:
          type: string
          description: Pagination parameter that indicates the last count available for the records. If this parameter is not provided, value will default to 1000. The request can't exceed more than 1000 records from the startRowIndex.
      description: Contains request parameters for ACH posted transactions list.
    achCollectedTransactionsResponse:
      type: object
      description: Contains the response payload for the submitted request.
      required:
      - getACHCollectedTransactionsResponse
      properties:
        getACHCollectedTransactionsResponse:
          $ref: "#/components/schemas/getACHCollectedTransactionsResponse"
    getACHCollectedTransactionsResponse:
      type: object
      required:
      - responseHeader
      properties:
        responseHeader:
          $ref: "#/components/schemas/responseHeader"
        ACHCollectedTransaction:
          type: array
          items:
            $ref: "#/components/schemas/achCollectedTransactionsResult"
        errorResponse:
          $ref: "#/components/schemas/errorResponse"
      description: Contains the response payload for the ACH collected transactions.
    achCollectedTransactionsResult:
      type: object
      description: Contains the response payload for the ACH collected transactions.
      properties:
        transactionParNumber:
          type: string
          description: The unique PAR number assigned to the transaction by the ACH product processor.
        sourceBankNumber:
          type: string
          description: Originating entry bank number
        sourceAccountNumber:
          type: string
          description: Originating account number.         
        origAcctSuffix:
          type: string
          description: Do not use. This field is for internal purpose only.
        sourceSysCode:
          type: string
          description: Do not use. This field is for internal purpose only.
        sourceSysOfRecordCode:
          type: string
          description: Do not use. This field is for internal purpose only.
          format: date
        snapshotDate:
          type: string 
          format: date
          description: This field is for internal purpose only.
        transactionCode:
          type: string
          description: Two-digit code identifying the account type at the receiving financial institution.
        transactionCodeDescription:
          type: string
          description: Description for the transaction code.
        transactionFlowTypeCode:
          type: string
          description: 'Identifies if transaction is intrabank (within a single financial institution) or interbank (between two or more banks). Valid values: INTRA, INTER'
        transactionFlowTypeDescription:
          type: string
          description: Description for the transaction flow type code.
        originatingReceiverCode:
          type: string
          description: Two-character code that identifies the transaction type as originating (O) or receiving (R) and if the transaction is incoming (I) or outgoing (O). Codes can be OI, OO, RI, or RO.
        transactionAmount:
          type: string
          description: The dollar amount of the transaction.
        transactionDescription:
          type: string
          description: A free form text field that provides the receiver with a description about the purpose of the transaction. 
        creditOrDebitCode:
          type: string
          description: 'Identifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.'
        inboundCollectionWindow:
          type: string
          description: 'The time window when the transaction collection is processed. The time format uses the 24-hour clock. Format: HHMM'
        sourceTransactionProcessDate: 
          type: string
          description: "Date when the transaction was collected by the ACH product processor. Format: YYYY-MM-DD"
          format: date
        sourceTransactionProcessTime: 
          type: string
          description: "Time when the transaction was collected by the ACH product processor. The time format uses the 24-hour clock. Format: HHMMSS"
        sourceTransactionProcessTimestamp: 
          type: string
          description: "The date and time the ACH transaction was collected by the ACH product processor. Format: YYYY-MM-DD HH:MM:SS"
        sourceTransactionSettledDate:
          type: string
          format: date
          description: 'Date when the transaction is settled. Format: YYYY-MM-DD'
        sourceTransactionSettledTime: 
          type: string
          description: 'The time window when the transaction is settled. The time format uses the 24-hour clock. Format: HHMM'
        sourceTransactionSettledTimestamp: 
          type: string
          description: 'The date and time the ACH transaction is settled. Format: YYYY-MM-DD HH:MM:SS'
        sourceTransactionPostDate:
          type: string
          format: date
          description: 'Date the ACH transaction is posted. Format: YYYY-MM-DD'
        sourceTransactionPostTime:
          type: string
          description: 'Time the ACH transaction is posted. The time format uses the 24-hour clock. Format: HHMMSS'
        sourceTransactionPostTimestamp:
          type: string
          description: 'The date and time the transaction is posted. Format: YYYY-MM-DD HH:MM:SS'
        deliveryStatusCode:
          type: string
          description: The code abbreviation for the delivery status of the ACH transaction.
        deliveryStatusDescription:
          type: string
          description: The delivery status description for the abbreviated code. 
        receivingAccountNumber:
          type: string
          description: Account number of the person or institution receiving the funds. 
        receivingFIBankNumber:
          type: string
          description: Bank number for the financial institution receiving the funds. 
        receivingFIRoutingNumber:
          type: string
          description: Routing number for the receiving financial institution. 
        receivingCustIdentificationNumber:
          type: string
          description: The customer identification number for the person receiving the transaction.
        receivingCustomerName:
          type: string
          description: Customer name of the person receiving the funds.
        receivingCompanyName:
          type: string
          description: Company name of the institution getting the funds. 
        originatingAccountNumber:
          type: string
          description: Account number of the ACH transaction originator.
        originatingFIBankNumber:
          type: string
          description: Originating financial institution bank number
        originatingFIRoutingNumber:
          type: string
          description: Originating financial institution routing number
        originatingCustIdentificationNumber:
          type: string
          description: Originating customer identification number
        originatingCompanyName:
          type: string
          description: Originating company name
        originatingCustomerName:
          type: string
          description: Originating customer name
        checkSerialNumber:
          type: string
          description: Serial number for the check converted to an ACH transaction. 
          example: 4345
        nachaBatchNumber:
          type: string
          description: The sequential number of the Nacha batch job.
        nachaFileHeadRefererenceNumber:
          type: string
          description: The Nacha transaction file reference number.
        nachaSecCode:
          type: string
          description: 'The Nacha standard entry class (SEC) code for the transaction. Valid values: CCD, CTX, PPD, TEL WEB'
        nachaSecDescription:
          type: string
          description: The description for the Nacha SEC code.
        traceNumber:
          type: string
          description: The unique number for the transaction provided by the originator. Multiple trace numbers can be comma separated.
        postCompanyCostcontrolNumber:
          type: string
          description: Do not use. This field is for internal purpose only.
        glAccountNumber:
          type: string
          description: Do not use. This field is for internal purpose only.
        addendaPresentFlag:
          type: string
          description: Indicates if there are addenda records or not.
        addendaRecordNumber:
          type: string
          description: Number of addenda records.
        originatingReceiverDescription:
          type: string
          description: Description for the collected originating receiver code.
        goRoutingNumber:
          type: string
          description: Gateway operator routing number for international transactions.
        authorizedCustomerName:
          type: string
          description: Authorized customer name
          example: "Test authCustName"
        iatFlag:
          type: string
          description: International transaction identifier
        collectionPoint:
          type: string
          description: Transaction collection point
        batchId:
          type: string
          description: The identification number for the batch job. 
          example: 26052
        transactionTraceId:
          type: string
          description: The trace ID number from the source application.
        addendaInformation:
          $ref: "#/components/schemas/addendaInformation"
        customData:
          type: string
          description: Custom data from the originating payment request.
    achPostedTransactionsResponse:
      type: object
      description: Contains the response payload for the submitted request.
      required:
      - getACHPostedTransactionsResponse
      properties:
        getACHPostedTransactionsResponse:
          $ref: "#/components/schemas/getACHPostedTransactionsResponse"   
    getACHPostedTransactionsResponse:
      type: object
      required:
      - responseHeader
      properties:
        responseHeader:
          $ref: "#/components/schemas/responseHeader"
        ACHPostedTransaction:
          type: array
          items:
            $ref: "#/components/schemas/achPostedTransactionsResult"
        errorResponse:
          $ref: "#/components/schemas/errorResponse"
      description: Contains the ACH posted transactions response object.             
    achPostedTransactionsResult:
      type: object
      description: Contains the response payload for the ACH posted transactions.
      properties:
        snapshotDate:
          type: string
          format: date
          description: Do not use. This field is for internal purpose only.
        processDate:
          type: string
          format: date
          description: 'Date the transaction was processed. Format: YYYY-MM-DD'
        sourceBankNumber:
          type: string
          description: Originating entry bank number
        sourceAccountNumber:
          type: string
          description: Originating account number
        transactionParNumber:
          type: string
          description: The unique PAR number assigned to the the transaction by the ACH product processor. 
        transactionAmount:
          type: string
          description: The dollar amount of the transaction.
        creditOrDebitCode:
          type: string
          description: 'Identifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.'
        hoganTransactionCode:
          type: string
          description: The KeyBank Hogan code for the transaction.
        baiCode:
          type: string
          description: The three-digit BAI (Bank Administration Institute) code for the transaction. 
          example: 169
        transactionCode:
          type: string
          description: Two-digit code identifying the account type at the receiving financial institution.
        regulationDescription1:
          type: string
          description: Regulation description for the transaction.
        regulationDescription2:
          type: string
          description: Additional regulation information for the transaction.
        regulationDescription3:
          type: string
          description: Additional regulation information for the transaction.
        regulationDescription4:
          type: string
          description: Additional regulation information for the transaction.
        postingWindow:
          type: string
          description: 'The time window when the transaction collection is posted. The time format uses the 24-hour clock. Format: HHMM'
        batchID:
          type: string
          description: The identification number for the batch job. 
          example: 18102 
        customData:
          type: string
          description: Custom data from the originating payment request.
    achStatusInquiryResponse:
      type: object
      description: Contains the response payload for the submitted request.
      required:
      - responseHeader      
      properties:
        responseHeader:
          $ref: '#/components/schemas/responseHeader'
        ACHTransactionStatus:
          type: array
          items:
            $ref: '#/components/schemas/achStatusInquiryResult'
        errorResponse:
          $ref: '#/components/schemas/errorResponse'
    achStatusInquiryResult:
      type: object
      description: Contains the response payload for the submitted request.
      properties:
        ACHStatus:
          type: "string"
          description: 'The status what stage the ACH transaction is at in its lifecycle once it has been received by KeyBank. Valid values: COLLECTED, POSTED, or RETURNED'
        ACHCollectedTransaction:
          $ref: "#/components/schemas/achCollectedTransactionsStatusResult"
        ACHPostedTransaction:
          $ref: "#/components/schemas/achPostedTransactionsStatusResult"
        ACHReturnTransaction:
          $ref: "#/components/schemas/achReturnTransactionsStatusResult"
    achCollectedTransactionsStatusResult:
      type: object
      description: Contains the status details for ACH collected transactions.
      required:
      - receivingCustIdentificationNumber
      properties:
        transactionParNumber:
          type: string
          description: The unique PAR number assigned to the the transaction by the ACH product processor.
        sourceBankNumber:
          type: string
          description: Originating entry bank number
        sourceAccountNumber:
          type: string
          description: Originating account number.
        transactionCode:
          type: string
          description: Two-digit code identifying the account type at the receiving financial institution.
        transactionAmount:
          type: string
          description: The dollar amount of the transaction.
        creditOrDebitCode:
          type: string
          description: 'Identifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.'
          format: date
        sourceTransactionProcessDate: 
          type: string
          format: date
          description: "Date when the transaction was collected by the ACH product processor. Format: YYYY-MM-DD"
        sourceTransactionProcessTime: 
          type: string
          description: "Time when the transaction was collected by the ACH product processor. The time format uses the 24-hour clock. Format: HHMMSS"
        sourceTransactionProcessTimestamp: 
          type: string
          description: "The date and time the ACH transaction was collected by the ACH product processor. Format: YYYY-MM-DD HH:MM:SS"
        sourceTransactionSettledDate:
          type: string
          format: date
          description: 'Date when the transaction is settled. Format: YYYY-MM-DD'
        sourceTransactionSettledTime: 
          type: string
          description: 'The time window when the transaction is settled. The time format uses the 24-hour clock. Format: HHMM'
        sourceTransactionSettledTimestamp: 
          type: string
          description: 'The date and time the ACH transaction is settled. Format: YYYY-MM-DD HH:MM:SS'
        sourceTransactionPostDate:
          type: string
          format: date
          description: 'Date the ACH transaction is posted. Format: YYYY-MM-DD'
        sourceTransactionPostTime:
          type: string
          description: 'Time the ACH transaction is posted. The time format uses the 24-hour clock. Format: HHMMSS'
        sourceTransactionPostTimestamp:
          type: string
          description: 'The date and time the transaction is posted. Format: YYYY-MM-DD HH:MM:SS'
        receivingCustomerName:
          type: string
          description: Customer name of the person receiving the funds.
        receivingCompanyName:
          type: string
          description: Company name of the institution getting the funds.
        originatingCompanyName:
          type: string
          description: Originating company name
        originatingCustomerName:
          type: string
          description: Originating customer name
        nachaSecCode:
          type: string
          description: 'The Nacha standard entry class (SEC) code for the transaction. Valid values: CCD, CTX, PPD, TEL, WEB'
        traceNumber:
          type: string
          description: The unique number for the transaction provided by the originator. Multiple trace numbers can be comma separated.
        transactionDescription:
          type: string
          description:  A free form text field that provides the receiver with a description about the purpose of the transaction. 
        receivingCustIdentificationNumber:
          type: string
          description: The unique ID number associated with the payment recipient. This number is defined in the originating payment request.
    achPostedTransactionsStatusResult:
      type: object
      description: Contains the status details for ACH posted transactions.
      properties:
        processDate:
          type: string
          format: date
          description: 'Date the transaction was processed. Format: YYYY-MM-DD'
        transactionParNumber:
          type: string
          description: The unique PAR number assigned to the the transaction by the ACH product processor.
        transactionAmount:
          type: string
          description: The dollar amount of the transaction.
        creditOrDebitCode:
          type: string
          description: 'Identifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.'
        baiCode:
          type: string
          description: The three-digit BAI (Bank Administration Institute) code for the transaction. 
          example: 451
        transactionCode:
          type: string
          description: Two-digit code identifying the account type at the receiving financial institution.
        regulationDescription1:
          type: string
          description: Regulation description for the transaction. 
        regulationDescription2:
          type: string
          description: Additional regulation information for the transaction.
        regulationDescription3:
          type: string
          description: Additional regulation information for the transaction.
        regulationDescription4:
          type: string
          description: Additional regulation information for the transaction.
        postingWindow:
          type: string
          description: 'The time window when the transaction collection is posted. The time format uses the 24-hour clock. Format: HHMM'            
    achReturnTransactionsStatusResult:
      type: object
      description: Contains the status details for ACH returned transactions.
      properties:
        transactionParNumber:
          type: string
          description: The unique PAR number assigned to the transaction by the ACH product processor.
        transactionCode:
          type: string
          description: Two digit code identifying the account type at the receiving financial institution.
        transactionCodeDescription:
          type: string
          description: Description for the transaction code.
        transactionAmount:
          type: string
          description: The dollar amount of the transaction.
        transactionDescription1:
          type: string
          description:  A free form text field that provides the receiver with a description about the purpose of the transaction. 
        transactionDescription2:
          type: string
          description: Additional transaction description information.
        creditOrDebitCode:
          type: string
          description: 'Identifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.'
        returnReleaseDate:
          type: string
          format: date
          description: 'Release date of the returned transaction to the ACH system. Format: YYYY-MM-DD'
        returnReasonCode:
          type: string
          description: "The code associated with the reason for returning the ACH transaction. The code is the letter 'R' for reason followed by a two-digit numeric code. Format: R00"
        returnReasonDescription:
          type: string
          description: Description as to why the ACH transaction is returned.  
    addendaInformation:
      type: object
      description: Contains addenda information by type. This includes International ACH Transactions (IAT), non-IAT, and Notification of Change (NOC) addenda types.
      properties:
        iatAddendum:
          $ref: "#/components/schemas/iatAddendum"
        nonIatAddendum:
          $ref: "#/components/schemas/nonIatAddendum"
        nocAddendum:
          $ref: "#/components/schemas/nocAddendum"
    iatAddendum:
      type: object
      properties:
        addendaParNumber:
          type: string
          description: The unique PAR number assigned to the addendum by the ACH product processor.
        snapshotDate:
          type: string
          format: date
          description: Do not use. This field is for internal purpose only.
        transactionParNumber:
          type: string
          description: The unique PAR number assigned to the transaction by the ACH product processor.
        payInformation:
          type: string
          description: Additional information about the remittance payment. 
        addendaTypeCode:
          type: string
          description: Two-digit code identifying the type of information.
        addendaTypeDescription:
          type: string
          description: Description of the addenda type associated with the code.
        transactionTypeCode:
          type: string
          description: This field contains a three-character code used to identify the type of transaction.
        transactionTypeDescr:
          type: string
          description: This field contains description of the the transaction type code
        originatingFiIdentificationNumberCode:
          type: string
          description: Originating financial institution code
        originatingFiName:
          type: string
          description: Originating financial institution name
        originatingFiIdentificationNumber:
          type: string
          description: Originating financial institution identification number
        originatingFiBranchCountryCode:
          type: string
          description: Originating company country branch code
        originatingCompanyName:
          type: string
          description: Originating company name
        originatingCompanyAddress1:
          type: string
          description: Originating bank physical street address, line 1
        originatingCompanyAddress2:
          type: string
          description: Originating bank physical street address, line 2
        originatingCompanyCityStateProvince:
          type: string
          description: Originator city and state
        originatingCompanyCountryPostalCode:
          type: string
          description: Originator country and postal code
        receivingFiName:
          type: string
          description: Receiving financial institution name
        receivingFiIdentificationNumber:
          type: string
          description: Receiving financial institution identification number
        receivingFiIdentificationNumberCode:
          type: string
          description: Receiving financial institution code
        receivingFiBranchCountryCode:
          type: string
          description: Receiving company country branch code
        receivingCustomerName:
          type: string
          description: Receiving customer name
        receivingCompanyName:
          type: string
          description: Receiving company name
        receivingCompanyNumber:
          type: string
          description: Receiving company number
        receivingCompanyAddress1:
          type: string
          description: Receiving company physical address, line 1
        receivingCompanyAddress2:
          type: string
          description: Receiving company physical address, line 2
        receivingCompanyCityStateProvince:
          type: string
          description: Receiving company city and state
        receivingCompanyCountryPostalCode:
          type: string
          description: Receiving company country and postal code
        foreignCorrespondentFiIdNumberCode:
          type: string
          description: Foreign correspondent bank identification number qualifier
        foreignCorrespondentFiName:
          type: string
          description: Correspondent bank name
        foreignCorrespondentFiBRCountryCode:
          type: string
          description: Correspondent bank country code
        foreignCorrespondentBankIdNumber:
          type: string
          description: Correspondent bank identifier
        foreignOriginatingAmount:
          type: string
          description: Foreign payment amount
        foreignOriginatingCurrencyCode:
          type: string
          description: Foreign currency code
        foreignTraceNumber:
          type: string
          description: Identifier number of the foreign transaction.
        addendaSequenceNumber:
          type: string
          description: The sequence number of the addenda. The number cannot exceed 4 digits.
        entryDetailSequenceNumber:
          type: string
          description: Sequence number of the entry detail
        operatorCommandFlag:
          type: string
          description: Operator command flag
    nonIatAddendum:
      type: object
      properties:
        addendaParNumber:
          type: string
          description: The unique PAR number assigned to the addendum by the ACH product processor.
        snapshotDate:
          type: string
          format: date
          description: Do not use. This field is for internal purpose only.
        transactionParNumber:
          type: string
          description: The unique PAR number assigned to the the transaction by the ACH product processor.
        transactionSerialNumber:
          type: string
          description: Serial number for the transaction
        transactionDescription:
          type: string
          description: A free form text field that provides the receiver with a description about the purpose of the transaction. 
        sourceTransactionCreatedDate:
          type: string
          description: 'Date when the user created the ACH transaction. Format: YYYY-MM-DD'
        sourceTransactionCreatedTime:
          type: string
          description: 'Time when the user created the ACH transaction. The time format uses the 24-hour clock. Format: HHMM'
        payInformation:
          type: string
          description: Additional information associated with the payment transaction.
        addendaTypeCode:
          type: string
          description: Two-digit code identifying the type of information.
        addendaTypeDescription:
          type: string
          description: Description of the addenda type associated with the code.
        entryDetailSequenceNumber:
          type: string
          description: Sequence number of the entry detail
        referenceInformation1:
          type: string
          description: Free form text field with additional reference information. 
        referenceInformtion2:
          type: string
          description: Free form text field with additional reference information. 
        networkIdentificationCode:
          type: string
          description: Network identification code (NIC)
        terminalIdentificationCode:
          type: string
          description: Terminal identification code
        terminalCity:
          type: string
          description: City location of the terminal 
        terminalState:
          type: string
          description: State location of the terminal
        keyBankTransactionReferenceNumber:
          type: string
          description: Unique ACH transaction identifier created by KeyBank.
        operatorCommandFlag:
          type: string
          description: Operator command flag
    nocAddendum:
      type: object
      properties:
        addendaParNumber:
          type: string
          description: The unique PAR number assigned to the addendum by the ACH product processor.
        snapshotDate:
          type: string
          format: date
          description: Do not use. This field is for internal purpose only. 
        transactionParNumber:
          type: string
          description: The unique PAR number assigned to the the transaction by the ACH product processor.
        addendaTypeCode:
          type: string
          description: Two-digit code identifying the type of information.
        addendaTypeDescription:
          type: string
          description: Description of the addenda type associated with the code.
        changeCode:
          type: string
          description: The three-character change code begins with the letter 'C'. This code is applied to all NOCs to indicate the information that is being changed.
        changeDescription:
          type: string
          description: The description associated with the change code.
        receivingFiIdentificationNumber:
          type: string
          description: Receiving financial institution identification number
        correctedData:
          type: string
          description: The corrected data per the correction change code.
        externalFiTransactionIdentificationNumber:
          type: string
          description: The number used by an external financial institution to identify the transaction.
        keyBankTransactionReferenceNumber:
          type: string
          description: Unique ACH transaction identifier created by KeyBank.
        operatorCommandFlag:
          type: string
          description: Operator command flag
    healthResponse:
      type: object
      title: healthResponse
      properties:
        Status:
          type: string
          description: Status of the health check response.
        Source:
          type: string
          description: System producing the health response. Genesis of the response could either be just from “gateway” or “roundtrip” from the farthest possible system involved in generating this response.
        Timestamp:
          type: string
          description: Timestamp when the health response is being returned by this service.
        ClientIp:
          type: string
          description: IP of the client from which this request for health check is received by the gateway.
        X-Forwarded-For:
          type: string
          description: Sequence of all the Ips of the systems involved between the client and the gateway.
  securitySchemes:    
    bearerAuth:    # security scheme for authentication based on F5 APM token
      type: http
      scheme: bearer
