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 Developer Support"
    email: "developers@keybank.com"
  version: 1.2.2

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. A bearer token is required.
      operationId: healthCheck
      security:
        - bearerAuth: []
      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/ach/detail/{parNumber}:
    get:
      security:
        - bearerAuth: []
      tags: 
        - ACH Transactions
      summary: Get details about an ACH transaction with a PAR number
      operationId: searchAchTransaction
      description: Use the PAR number to retrieve information about an ACH transaction. 
      parameters:
        - name: parNumber
          in: path
          description: The unique PAR number assigned to the the transaction by the ACH product processor.
          required: true
          schema: 
            maxLength: 50
            type: string
          example: 22053010727662
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                  $ref: '#/components/schemas/AchDetailTransaction'
              example:
                parNumber: "22018007665985"
                transactionStatus: "COLLECTED"
                traceNumber: "000000000000000"
                transactionAmount: 10.01
                settlementDate: "2021-03-08"
                transactionCode: "22"
                transactionCodeDescription: "Automated Deposit"
                transactionDescription:  "DEPOSIT"
                authorizedCustomerName: "TEST CUSTOMER1"
                standardEntryClassCode: "CCD"
                standardEntryClassDescription: "Cash Concentration or Disbursement"
                receivingAccount:
                  accountNumber: "123456789012"
                  bankNumber: "0000"
                  routingNumber: "1234567890"
                receivingParty:
                  customerIdentificationNumber: "099999999"
                  companyName: "MERCHANT"
                  customerName: "TEST MERCHANT"
                originatingAccount:
                  accountNumber: "123456789012"
                  bankNumber: "0000"
                  routingNumber: "1234567890"
                originatingParty:
                  customerIdentificationNumber: "1234567"
                  companyName: "COMPANY NAME 1"
                  customerName: "CUSTOMER NAME 1"
                returnDate: "2024-02-01"
                returnReasonCode: "R02"
                returnReasonDescription: "Account Closed"
                addendaCount: 1
                notificationOfChangeAddendaCount: 1
                internationalAddendaCount: 0
                customData: "merchant:status" 
                checkSerialNumber: "4345"
                transactionDirection: "Receiving Item"
                addenda:
                  - sequenceNumber: 1
                    entryDetailSequenceNumber: "188"
                    paymentRelatedInformation: "Addenda Record (Applies to CCD, CTX, PPD, and WEB entries)"
                notificationOfChange:
                  - changeCode: "C02"
                    changeDescription: "Incorrect transit/routing number"
                    correctedData: "1234567890"
        '404':
          description: Resource not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                type: object
                properties:
                  metadata:
                    description: Information about the data pages returned.
                    $ref: '#/components/schemas/Metadata'
                example:
                  metadata:
                    messages:
                      - code: "AI-Detail-404-no-records-100"
                        message: "Record Not Found"
  /accounts/transactions/v1/ach/list:
    post:
      operationId: searchAchTransactions
      security:
        - bearerAuth: []
      tags: 
        - ACH Transactions
      summary: Advanced search for ACH transactions
      description: Search for ACH transactions by passing certain search parameters.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - accountNumber
                - fromDate
                - toDate
              properties:
                accountNumber:
                  type: string
                  description: The bank account number. This field cannot exceed 16 characters.
                  minLength: 1
                  maxLength: 16
                  example: 3123456789
                fromDate:
                  description: "Start date for the date range. This date must be the current date or prior to the current date. Transaction data can be recalled within 180 days of the current date. Format: YYYY-MM-DD"
                  type: string
                  format: date
                  example: 2024-02-01
                toDate:
                  description: "End date for the date range. This date can be the current day or a later date from the start date (fromDate). The date range should not be longer than 31 days. Format: YYYY-MM-DD"
                  type: string
                  format: date
                  example: 2024-02-01
                minimumAmount:
                  description: The minimum dollar amount of the transaction. This amount must be less than or equal to the maximum amount. Leave blank or enter zero for no minimum amount.
                  type: number
                  format: currency
                  minimum: 0
                  maximum: 1000000000
                  example: 100.00
                maximumAmount:
                  description: The maximum dollar amount of the transaction. This amount must be greater than or equal to the minimum amount. Leave blank to retrieve all amounts. This amount cannot exceed one billion dollars.
                  type: number
                  format: currency
                  minimum: 0
                  maximum: 1000000000
                  example: 75020.50
                traceNumber:
                  description: The unique number for the transaction provided by the originator.
                  type: string
                  minLength: 1
                  maxLength: 16
                  example: "041001030016002"
                pageNumber:
                  type: integer
                  description: The number of the page being viewed. This number must be greater than or equal to 1. 
                  example: 1
                pageSize:
                  type: integer
                  description: The total number of pages returned. This number must be greater than or equal to 1 and cannot exceed 1000. 
                  example: 500
            example:
              accountNumber: "3123456789"
              fromDate: 2024-02-01
              toDate: 2024-02-01
              minimumAmount: 100.00
              maximumAmount: 75020.50
              traceNumber: "041001030016002"
              pageNumber: 1
              pageSize: 150
      responses:
        '200':
          description: Successful response 
          content:
            application/json:
              schema:
                type: object
                properties:
                  transactions:
                    type: array
                    description: List of transactions from search criteria.
                    items:
                      $ref: '#/components/schemas/AchListTransaction'
                  metadata:
                    description: Information about the data pages returned.
                    $ref: '#/components/schemas/Metadata'
              example:
                transactions:
                  - parNumber: "22018007665985"
                    transactionStatus: "COLLECTED"
                    traceNumber: "000000000000000"
                    transactionAmount: 10.01
                    settlementDate: "2021-03-08"
                    transactionCode: "22"
                    authorizedCustomerName: "TEST CUSTOMER1"
                    standardEntryClassCode: 'CCD'
                    receivingAccount:
                      accountNumber: "123456789012"
                    receivingParty:
                      customerIdentificationNumber: "099999999"
                      companyName: "MERCHANT"
                    originatingAccount:
                      accountNumber: "123456789012"
                    originatingParty:
                      customerIdentificationNumber: "1234567"
                      companyName: "COMPANY NAME 1"
                    returnDate: "2024-02-01"
                    returnReasonCode: "R02"
                    returnReasonDescription: "Account Closed"
                    addendaCount: 1
                    notificationOfChangeAddendaCount: 1
                    internationalAddendaCount: 0
                metadata:
                  messages:
                    - code: "099"
                      message: "Search results match the criteria"
                  page:
                    pageNumber: 1
                    pageSize: 10
                    totalPages: 10
                    totalRecords: 28
                    lastPage: true
        '400':
          description: Bad input parameter
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                type: object
                properties:
                  metadata:
                    description: Information about the data pages returned.
                    $ref: '#/components/schemas/Metadata'
              example:
                metadata:
                  messages:
                    - code: "001"
                      message: "There are no transactions that match the parNumber."
                  page:
                    pageNumber: 1
                    pageSize: 1
                    totalPages: 1
                    totalRecords: 0
                    lastPage: false
  /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.
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/achStatusInquiryParRequest'
                - $ref: '#/components/schemas/achStatusInquiryTraceNumberRequest'
            example: 
              getACHStatusInquiryRequest:
                accountNumber:
                  - "987654321"
                  - "123456789" 
                parNumber: ["22018007665985"]
                traceNumber: []
                startRowIndex: "1"
                endRowIndex: ""
        required: true
      responses:
        '200':
          description: Successful response
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achStatusInquiryResponse'
              example:
                  responseHeader:
                    status: "S"
                    statusDescription: "Successfully returned results for the requested range 1 to 1"
                    retrivedRows: "1"
                    totalRows: "1"
                    dataLoadDate: "2022-07-13"
                  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 mandatory information
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Mandatory data not provided, please verify the data and resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '401':
          description: Unauthorized request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
               ErrorMessage: "Received request is unauthorized, please provide valid credentials"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"    
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"  
        '403':
          description: Forbidden request access
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Access to requested resource is forbidden"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"  
        '404':
          description: Resource not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested resource is not found, please verify the resource then resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Requested method denied
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested method is not allowed, please verify the method and resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Media type not supported
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested media type is not allowed, please verify the media type and resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"  
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Too many requests
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Number requests threshold reached, please resubmit the request after sometime"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1" 
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '500':
          description: Internal server error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Runtime error occurred in the service, please check with application support team before resubmitting the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '502':
          description: Bad gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               TransactionTime: "2021-06-11T16:31:34.041Z"
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               ServiceError: 
                ConnectError : "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with appplication support team before resubmitting the request"
        '503':
          description: Service unavailable
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"     
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError: 
                ConnectError : "Service is currently unavailable (NoActiveTargets), please check with application support before resubmitting the request."
        '504':
          description: Unable to process request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError: 
                ConnectError : "Request could not be processed on time (GatewayTimeout), please wait a moment and resubmit the request."
  /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. 
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/achCollectedTransactionsRequest'
            example: 
              getACHCollectedTransactionsRequest:
                accountNumber:
                  - "123456789"
                fromDate: "2022-03-12"
                toDate: "2022-04-12"
                creditOrDebitCode: "C"
                fromAmount: "01.00"
                toAmount: "180.00"
                addendaFlag: "N"
                secCode: ""
                traceNumber: "0612123100888473"
                parNumber: ""
                detailsFlag: "N"
                startRowIndex: "1"
                endRowIndex: "1"
        required: true
      responses:
        '200':
          description: Successful response
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          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: "099999999"
                      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 mandatory information
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Mandatory data not provided, please verify the data and resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '401':
          description: Unauthorized request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
               ErrorMessage: "Received request is unauthorized, please provide valid credentials"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"    
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"  
        '403':
          description: Forbidden request access
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Access to requested resource is forbidden"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"  
        '404':
          description: Resource not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested resource is not found, please verify the resource then resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Invalid request method
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested method is not allowed, please verify the method and resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Invalid request type
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested media type is not allowed, please verify the media type and resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"  
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Request timeout
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Number requests threshold reached, please resubmit the request after sometime"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1" 
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '500':
          description: Unknown error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Runtime error occurred in the service, please check with application support team before resubmitting the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '502':
          description: Bad gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               TransactionTime: "2021-06-11T16:31:34.041Z"
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               ServiceError: 
                ConnectError : "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with application support team before resubmitting the request"
        '503':
          description: Unavailable service
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"     
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError: 
                ConnectError : "Service is currently unavailable (NoActiveTargets), please check with application support before resubmitting the request."
        '504':
          description: Unable to process request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError: 
                ConnectError : "Request could not be processed on time (GatewayTimeout), please wait a moment and resubmit the request."
  /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.
      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: ""
                startRowIndex: "1"
                endRowIndex: "1"
        required: true
      responses:
        '200':
          description: Successful response
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          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 mandatory information
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Mandatory data not provided, please verify the data and resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '401':
          description: Unauthorized request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
               ErrorMessage: "Received request is unauthorized, please provide valid credentials"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"    
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"  
        '403':
          description: Forbidden request access
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Access to requested resource is forbidden"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"  
        '404':
          description: Resource not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested resource is not found, please verify the resource then resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Requested method denied
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested method is not allowed, please verify the method and resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Media type not supported
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested media type is not allowed, please verify the media type and resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"  
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Too many requests
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Number requests threshold reached, please resubmit the request after sometime"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1" 
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '500':
          description: Internal server error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Runtime error occurred in the service, please check with application support team before resubmitting the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '502':
          description: Bad gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               TransactionTime: "2021-06-11T16:31:34.041Z"
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               ServiceError: 
                ConnectError : "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with application support team before resubmitting the request"
        '503':
          description: Service unavailable
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"     
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError: 
                ConnectError : "Service is currently unavailable (NoActiveTargets), please check with application support before resubmitting the request."
        '504':
          description: Gateway timeout
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError: 
                ConnectError : "Request could not be processed on time (GatewayTimeout), please wait a moment and resubmit the request."
  /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.
      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"
                startRowIndex: "1"
                endRowIndex: "10"
        required: true
      responses:
        '200':
          description: Successful response
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations.  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: "256071234"
                      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 mandatory information
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Mandatory data not provided, please verify the data and resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '401':
          description: Unauthorized request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
               ErrorMessage: "Received request is unauthorized, please provide valid credentials"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"    
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"  
        '403':
          description: Access denied
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Access to requested resource is forbidden"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"  
        '404':
          description: Resource not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested resource is not found, please verify the resource then resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Requested method denied
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested method is not allowed, please verify the method and resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Media type not supported
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested media type is not allowed, please verify the media type and resubmit the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"  
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Too many requests
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Number requests threshold reached, please resubmit the request after sometime"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1" 
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '500':
          description: Internal server error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Runtime error occurred in the service, please check with application support team before resubmitting the request"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '502':
          description: Bad gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               TransactionTime: "2021-06-11T16:31:34.041Z"
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               ServiceError: 
                ConnectError : "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with appplication support team before resubmitting the request"
        '503':
          description: Service unavailable
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"     
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError: 
                ConnectError : "Service is currently unavailable (NoActiveTargets), please check with application support before resubmitting the request."
        '504':
          description: Gateway timeout
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. 
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
               X-CorrelationId: "929618f2-6163-bf73-51b0-6c54a8533c74"
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError: 
                ConnectError : "Request could not be processed on time (GatewayTimeout), please wait a moment and resubmit the request."
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 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.
        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
          description: 'Date when the transaction is settled. Format: YYYY-MM-DD'
          format: date
        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 start date of a date range for submitted transactions. This date should be less than or equal to the current date. Date range cannot exceed more than one year. Format: YYYY-MM-DD' 
          format: date
        toDate:
          type: string
          description: 'The end date of a date range for the submitted transactions. The date must be later than the start date (fromDate). 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.
        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 start date of a date range for submitted transactions. This date should be less than or equal to the current date. Date range cannot exceed more than one year. Format: YYYY-MM-DD' 
          format: date
        toDate:
          type: string
          description: 'The end date of a date range for the submitted transactions. The date must be later than the start date (fromDate). 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.
        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.
        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.
        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.
        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 start date of a date range for submitted transactions. This date should be less than or equal to the current date. Date range cannot exceed more than one year. Format: YYYY-MM-DD'
        toDate:
          type: string
          format: date
          description: 'The end date of a date range for the submitted transactions. The date must be later than the start date (fromDate). 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.
        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
          description: 'Date when the transaction is settled. Format: YYYY-MM-DD'
          format: date
        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 informs you if the ACH transaction has been collected or returned. Valid values: COLLECTED 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
          description: 'Date when the transaction is settled. Format: YYYY-MM-DD'
          format: date
        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.
    AccountList:
      type: object
      description: List of accounts
      properties:
        accountNumber:
          type: string
          description: Bank account number.
    AccountDetail:
      type: object
      description: Contains details about the account like number, bank number, and routing number. 
      properties:
        accountNumber:
          type: string
          description: Bank account number of the ACH originator or receiver.
        bankNumber:
          type: string
          description: Bank number associated with the account number.
        routingNumber:
          type: string
          description: Nine-digit routing number for the account provided in the original request.
    AchDetailTransaction:
      type: object
      description: Contains transaction details associated with the queried PAR number.
      properties:
        parNumber:
          type: string
          description: The unique PAR number assigned to the the transaction by the ACH product processor.
        transactionStatus:
          type: string
          description: "The status of the ACH transaction. Valid values: COLLECTED, RETURNED, SETTLED"
        traceNumber:
          type: string
          description: The unique number for the transaction provided by the originator.
        transactionAmount:
          type: number
          description: The dollar amount of the transaction.
          format: currency
        settlementDate:
          type: string
          description: "The date the transaction settlement occurred. Format: YYYY-MM-DD"
          format: date
          example: 2024-02-01
        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.
        transactionDescription:
          type: string
          description: Description about the purpose of the transaction. 
        authorizedCustomerName:
          type: string
          description: Authorized customer name
        standardEntryClassCode:
          type: string
          description: The three-digit Standard Entry Class code based on Nacha rules.
        standardEntryClassDescription:
          type: string 
          description: The description for the Nacha SEC code.        
        receivingAccount:
          $ref: '#/components/schemas/AccountDetail'
          description: Details about the account receiving the funds.
        receivingParty:
          $ref: '#/components/schemas/PartyDetail'
          description: Details about the party receiving the funds.
        originatingAccount:
          $ref: '#/components/schemas/AccountDetail'
          description: Details about the originating account.
        originatingParty:
          $ref: '#/components/schemas/PartyDetail'
          description: Details about the originating party.
        returnDate:
          type: string
          description: "Date of the returned transaction to the ACH system. Format: YYYY-MM-DD"
          format: date
          example: 2024-02-01
        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.
        addendaCount:  
          type: integer  
          description: Count of addenda records.
        notificationOfChangeAddendaCount:
          type: integer
          description: Count of change notifications for addenda records.
        internationalAddendaCount:
          type: integer
          description: Count of international addenda records.
        customData:
          type: string
          description: The values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle. 
        checkSerialNumber:
          type: string
          description: Serial number for the check converted to an ACH transaction. 
        transactionDirection:
          type: string
          description: "Indicates the direction of the transaction. Valid values: ORIGINATING ITEM, RECEIVING ITEM"
        addenda:
          type: array
          description: List of addenda records
          items:
            $ref: '#/components/schemas/Addendum'
        notificationOfChange:
          type: array
          description: Applicable change notifications associated with the ACH transaction.
          items: 
            $ref: '#/components/schemas/NotificationOfChange'
    AchListTransaction:
      type: object
      description: Results from ACH transaction or account search.
      properties:
        parNumber:
          type: string
          description: The unique PAR number assigned to the the transaction by the ACH product processor.
        transactionStatus:
          type: string
          description: "The status of the ACH transaction. Valid values: COLLECTED, RETURNED, SETTLED"
        traceNumber:
          type: string
          description: The unique number for the transaction provided by the originator.
        transactionAmount:
          type: number
          description: The dollar amount of the transaction.
          format: currency
        settlementDate:
          type: string
          description: "The date the transaction settlement occurred. Format: YYYY-MM-DD"
          format: date
          example: 2024-02-01
        transactionCode:
          type: string
          description: Two-digit code identifying the account type at the receiving financial institution.
        authorizedCustomerName:
          type: string
          description: Authorized customer name
        standardEntryClassCode:
          type: string
          description: The three-digit Standard Entry Class code based on Nacha rules.
        receivingAccount:
          $ref: '#/components/schemas/AccountList'
          description: Details about the account receiving the funds.
        receivingParty:
          $ref: '#/components/schemas/PartyList'
          description: Details about the party receiving the funds.
        originatingAccount:
          $ref: '#/components/schemas/AccountList'
          description: Details about the originating account.
        originatingParty:
          $ref: '#/components/schemas/PartyList'
          description: Details about the originating party.
        returnDate:
          type: string
          description: "Date of the returned transaction to the ACH system. Format: YYYY-MM-DD"
          format: date
          example: 2024-02-01
        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.
        addendaCount:  
          type: integer  
          description: Count of addenda records.
        notificationOfChangeAddendaCount:
          type: integer
          description: Count of change notifications for addenda records.
        internationalAddendaCount:
          type: integer
          description: Count of international addenda records.
    Addendum:
      type: object
      description: Contains addenda record information.
      properties:
        sequenceNumber: 
          type: integer
          description: The addenda record item number in order of sequence. Number cannot exceed 4 digits.
          maxLength: 4
        entryDetailSequenceNumber:
          type: string
          description: The entry number in order of sequence. Number cannot exceed 7 digits.
          maxLength: 7
        paymentRelatedInformation:
          type: string
          description: The related payment information from the addenda records. The maximum character limit is 255. 
          maxLength: 255
    Message:
      type: object
      description: Informational message returned from the server. 
      properties:
        code:
          type: string
          description: Code for the related message. 
        message:
          type: string
          description: Message associated with the code.
    Page:
      type: object
      description: Page information returned from the server.
      properties:
        pageNumber:
          type: integer
          description: The number of the page being viewed.
        pageSize:
          type: integer
          description: The number of records per page.
        totalPages:
          type: integer
          description: The number of pages there are in total. 
        totalRecords:
          type: integer
          description: The total number of transactions available in the result set. 
        lastPage:
          type: boolean
          description: "Indicates if the current page (page number) is the last page of the result set. Valid values: true, false"
    Metadata:
      type: object
      description: Data information returned as a message or page information retrieved from the server.
      properties:
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
        page:
          $ref: '#/components/schemas/Page'
    PartyList:
      type: object
      description: Contains the customer identification number and company name.
      properties:
        customerIdentificationNumber:
          type: string
          description: The unique identification number associated with the customer. 
        companyName:
          type: string    
          description: The name of the corporation or institution making the request.
    PartyDetail:
      type: object
      description: Contains details about the party like ID number, company name, and the customer name. 
      properties:
        customerIdentificationNumber:
          type: string
          description: The unique identification number associated with the customer. 
        companyName:
          type: string
          description: The name of the corporation or institution making the request.
        customerName:
          type: string
          description: The name of the customer.
    NotificationOfChange:
      type: object
      description: Contains change details and corrected data.
      properties:
        changeCode:
          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.
          type: string
          maxLength: 50
        changeDescription: 
          description: The description associated with the change code.
          type: string
          maxLength: 255
        correctedData:
          description: The corrected data per the correction change code.
          type: string
          maxLength: 50
    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
