openapi: 3.0.2
info:
#---------------------------------------------------
# Information to contact the API provider
#---------------------------------------------------
  title: RTP and Wire Payments API
  description: Initiate an RTP or Wire payment transaction.
  contact:    
    name: "KeyBank API Support"
    email: "developers@keybank.com"
  version: "1.1.3"
servers:
#---------------------------------------------------
# List of environments for the API
#---------------------------------------------------
  - url: https://partner-api-qv.keybank.com
  - url: https://partner-api.keybank.com
paths:
#---------------------------------------------------
# List of All API Flows
#---------------------------------------------------
  /rtp/v1/payment/healthCheck:
    get:
      tags:
      - HealthCheck
      summary: Health check 
      description: Verify you can connect to the API service.
      operationId: healthCheckv1
      security:
        - bearerAuth: []
      parameters:
      - name: X-CorrelationId
        in: header
        description: Apply a universal ID to trace the transaction across all the systems involved. The ID is unique to each request. The ID must be alphanumeric with no spaces and cannot exceed 16 characters. If this field is left blank, the system generates a unique ID with the response.
        required: false
        style: simple        
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          headers:
            X-CorrelationId:
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
              style: simple              
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/healthResponse'
              example: 
                Status: "Ok"
                Source: "Roundtrip"
                Timestamp: "2022-09-16T02:36:20"
                ClientIp: "156.77.111.28"
                X-Forwarded-For: "[156.77.111.28]"
  /rtp/v1/payment/initiate:
    post:
      tags:
      - Initiate
      summary: Initiate a payment
      description: Initiate an RTP or Wire payment transaction. 
      operationId: Payment-Initiate      
      security:
        - bearerAuth: []  
      parameters:
      - name: Accept
        in: header
        description: Specify the format of the request. This can either be application/json or application/xml.
        required: true
        style: simple
        schema:
          type: string
          example: application/json
      - name: Content-Type
        in: header
        description: Specify what information is being sent to the browser. This can either be application/json or application/xml.
        required: true
        style: simple
        schema:
          type: string
          example: application/json      
      - name: X-CorrelationId
        in: header
        description: Apply a universal ID to trace the transaction across all the systems involved. The ID is unique to each request. The ID must be alphanumeric with no spaces and cannot exceed 16 characters. If this field is left blank, the system generates a unique ID with the response.
        schema:
          type: string
        required: false
      - name: KeyClientId
        in: header
        description: Enter the KeyBank client ID provided by KeyBank. This is a 32-character string that identifies you as the client.
        schema:
          type: string
        required: true
      requestBody:
        content:                 
          application/json:
            schema:
              $ref: '#/components/schemas/paymentTransactionRequestV1'            
            example:
                requestedService: RTP/WIRE
                requestReference: UNIQUE REQUEST REFERENCE
                type: PAYMENT
                sendersReference: UNIQUE SENDERS REFERENCE
                receiversReference: REFERENCE TO BENEFICIARY
                requestedValueDate: 2021-05-24
                debitParty:
                  name: YOUR COMPANY NAME HERE
                  accountNumber: "000000000000"
                creditPartyBank:
                  name: BENEFICIARY BANK NAME
                  aba: "000000000"
                creditParty:
                  name: BENEFICIARY NAME
                  accountNumber: "000000000000"
                  postalAddress:
                    adrLine:
                    - BENEFICIARY ADDRESS LINE 1
                    - BENEFICIARY ADDRESS LINE 2
                transferAmount: "10.00"
                transferCurrency: USD
      responses:
        '200':
          description: Successful response
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/paymentTransactionResponse'
              example:
                status: IN_PROCESS 
                transactionId: US21052400000000
                requestReference: 01623178067027R
                sendersReference: KTT01623178067027R
                valueDate: "2021-05-24"
                doddFrank: NO 
        '400':
          description: Missing data in the request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend service"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "US21052400000000"        
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError:
                status: FAILED
                requestReference: RR-220818-01
                sendersReference: SR-220818-01
                error:
                  code: KEY-1006
                  title: Required field missing
                  description: Object creditPartyBank is required
        '401':
          description: Received request is unauthorized
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The The universal ID to trace the transaction across all the systems involved. The ID is unique to each request. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
               ErrorMessage: Error received from backend service
               TransactionId: rrt-621075741872460927-c-gce-9129-15867185-4
               X-CorrelationId: 80457bcb-2c3b-8c55-8cd6-3520c3157e8f
               TransactionTime: '2022-04-04T11:41:13.754Z'
               ServiceError:
                  status: ERROR
                  requestReference: REQUEST-REF-220314.1
                  sendersReference: SENDER-REF-220314.1
                  error:
                    code: KEY-0006
                    title: Not authorized for requested service
                    description: null
        '403':
          description: Request is forbidden to access the resource
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Access to requested resource is forbidden"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '404':
          description: Requested resource is not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested resource is not found, please verify the resource and resubmit the request"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Requested method is not allowed.
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested method is not allowed, please verify the method and resubmit the request"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Requested unsupported media type
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          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"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Too many requests received
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Number requests threshold reached, please resubmit the request after sometime"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
               TransactionTime: "2021-06-11T16:31:34.041Z"    
        '500':
          description: Internal server error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: Error received from backend service
                TransactionId: 359681587523_SR-RMC-210729-11081
                X-CorrelationId: 7ad7fdfb-2ade-a3ab-b97c-523dc5312688
                TransactionTime: '2022-04-05T07:59:15.422Z'
                ServiceError:
                  status: ERROR
                  requestReference: RR-RMC-210720-0123458981
                  sendersReference: SR-RMC-210729-11081
                  error:
                    code: KEY-9999
                    title: Unknown error
                    description: 'Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials.'
        '502':
          description: Bad Gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend service"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError: 
                 ConnectError: "Connectivity error occured 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: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend service"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
               TransactionTime: "2021-06-11T16:31:34.041Z" 
               ServiceError: 
                 ConnectError: "Service is currently unavailable(NoActiveTargets), please check with appplication support before resubmitting the request."
        '504':
          description: Gateway timeout
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend service"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
               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"
  /rtp/v1/payment/rtp/participant:
    get:
      tags:
      - Participant
      summary: Get a list of RTP participants
      description: Retrieve a list of active, online RTP-participating banks.
      operationId: participantList
      security:
        - bearerAuth: []  
      parameters:
      - name: Accept
        in: header
        description: Specify the format of the request. This can either be application/json or application/xml.
        required: true
        style: simple
        schema:
          type: string
          example: application/json
      - name: limit
        in: query
        description: Enter the maximum number of records to return in the response. 
        required: true
        schema:
          type: integer
      - name: offset
        in: query
        description: Enter the number of records skipped before generating the output.
        required: true
        schema:
          type: integer      
      - name: X-CorrelationId
        in: header
        description: Apply a universal ID to trace the transaction across all the systems involved. The ID is unique to each request. The ID must be alphanumeric with no spaces and cannot exceed 16 characters. If this field is left blank, the system generates a unique ID with the response.
        schema:
          type: string
        required: false
      - name: KeyClientId
        in: header
        description: Enter the KeyBank client ID provided by KeyBank. This is a 32-character string that identifies you as the client.
        schema:
          type: string
        required: false
      responses:
        '200':
          description: Successful response
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/participantListResponse'
              example:
                count: "65"
                limit: "10"
                offset: '0'
                parties:
                  name: CITIZENS BANK, NA
                  aba: "011500120"
                  postalAddress:
                    twnNm: "NEW YORK"
                    ctrySubDvsn: "NY"
                    adrLine:
                    - BENEFICIARY ADDRESS LINE 1
                    - BENEFICIARY ADDRESS LINE 2
        '400':
          description: Missing data in the request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend service"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "US21052400000000"        
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError:
                status: FAILED
                requestReference: RR-220818-01
                sendersReference: SR-220818-01
                error:
                  code: KEY-1006
                  title: Required field missing
                  description: Object creditPartyBank is required
        '401':
          description: Received request is unauthorized
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
                ErrorMessage: Error received from backend service
                TransactionId: rrt-621075741872460927-c-gce-9129-15867185-4
                X-CorrelationId: 80457bcb-2c3b-8c55-8cd6-3520c3157e8f
                TransactionTime: '2022-04-04T11:41:13.754Z'
                ServiceError:
                  status: ERROR
                  requestReference: REQUEST-REF-220314.1
                  sendersReference: SENDER-REF-220314.1
                  error:
                    code: KEY-0006
                    title: Not authorized for requested service
                    description: null
        '403':
          description: Request is forbidden to access the resource
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Access to requested resource is forbidden"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '404':
          description: Requested resource is not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested resource is not found, please verify the resource and resubmit the request"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Requested method is not allowed.
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested method is not allowed, please verify the method and resubmit the request"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"      
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Requested unsupported media type
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          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"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Too many requests received
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Number requests threshold reached, please resubmit the request after sometime"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               TransactionTime: "2021-06-11T16:31:34.041Z" 
        '500':
          description: Internal server error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: Error received from backend service
                TransactionId: 359681587523_SR-RMC-210729-11081
                X-CorrelationId: 7ad7fdfb-2ade-a3ab-b97c-523dc5312688
                TransactionTime: '2022-04-05T07:59:15.422Z'
                ServiceError:
                  status: ERROR
                  requestReference: RR-RMC-210720-0123458981
                  sendersReference: SR-RMC-210729-11081
                  error:
                    code: KEY-9999
                    title: Unknown error
                    description: 'Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials.'
        '502':
          description: Bad Gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend service"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError: 
                 ConnectError: "Connectivity error occured 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: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend service"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError: 
                 ConnectError: "Service is currently unavailable(NoActiveTargets), please check with appplication support before resubmitting the request."
        '504':
          description: Gateway timeout
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend service"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
               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"
  /rtp/v1/payment/rtp/participant/{routingNumber}:
    get:
      tags:
      - Participant
      summary: Get information about one RTP participant
      description: Retrieve an active, participating RTP bank with a routing number.
      operationId: participant
      security:
        - bearerAuth: []  
      parameters:
      - name: Accept
        in: header
        description: Specify the format of the request. This can either be application/json or application/xml.
        required: true
        style: simple
        schema:
          type: string
          example: application/json
      - name: routingNumber
        in: path
        description: In the URL path, specify the routing number of the participating RTP bank.
        required: true
        schema:
          type: string      
      - name: X-CorrelationId
        in: header
        description: Apply a universal ID to trace the transaction across all the systems involved. The ID is unique to each request. The ID must be alphanumeric with no spaces and cannot exceed 16 characters. If this field is left blank, the system generates a unique ID with the response.
        schema:
          type: string
        required: false
      - name: KeyClientId
        in: header
        description: Enter the KeyBank client ID provided by KeyBank. This is a 32-character string that identifies you as the client.
        schema:
          type: string
        required: false
      responses:
        '200':
          description: Successful response
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/party'
              example:
                  name: CITIZENS BANK, NA
                  aba: "011500120"
                  postalAddress:
                    twnNm: "NEW YORK"
                    ctrySubDvsn: "NY"
                    adrLine:
                    - BENEFICIARY ADDRESS LINE 1
                    - BENEFICIARY ADDRESS LINE 2
        '400':
          description: Missing data in the request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend service"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "US21052400000000"        
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError:
                status: FAILED
                requestReference: RR-220818-01
                sendersReference: SR-220818-01
                error:
                  code: KEY-1006
                  title: Required field missing
                  description: Object creditPartyBank is required
        '401':
          description: Received request is unauthorized
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:
            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
                ErrorMessage: Error received from backend service
                TransactionId: rrt-621075741872460927-c-gce-9129-15867185-4
                X-CorrelationId: 80457bcb-2c3b-8c55-8cd6-3520c3157e8f
                TransactionTime: '2022-04-04T11:41:13.754Z'
                ServiceError:
                  status: ERROR
                  requestReference: REQUEST-REF-220314.1
                  sendersReference: SENDER-REF-220314.1
                  error:
                    code: KEY-0006
                    title: Not authorized for requested service
                    description: null
        '403':
          description: Request is forbidden to access the resource
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Access to requested resource is forbidden"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '404':
          description: Requested resource is not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested resource is not found, please verify the resource and resubmit the request"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Requested method is not allowed.
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Requested method is not allowed, please verify the method and resubmit the request"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"      
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Requested unsupported media type
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          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"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Too many requests received
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Number requests threshold reached, please resubmit the request after sometime"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               TransactionTime: "2021-06-11T16:31:34.041Z" 
        '500':
          description: Internal server error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: Error received from backend service
                TransactionId: 359681587523_SR-RMC-210729-11081
                X-CorrelationId: 7ad7fdfb-2ade-a3ab-b97c-523dc5312688
                TransactionTime: '2022-04-05T07:59:15.422Z'
                ServiceError:
                  status: ERROR
                  requestReference: RR-RMC-210720-0123458981
                  sendersReference: SR-RMC-210729-11081
                  error:
                    code: KEY-9999
                    title: Unknown error
                    description: 'Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials.'
        '502':
          description: Bad Gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend service"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError: 
                 ConnectError: "Connectivity error occured 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: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend service"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
               TransactionTime: "2021-06-11T16:31:34.041Z"
               ServiceError: 
                 ConnectError: "Service is currently unavailable(NoActiveTargets), please check with appplication support before resubmitting the request."
        '504':
          description: Gateway timeout
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
               ErrorMessage: "Error received from backend service"
               X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
               TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
               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"    
  /rtp/v1/payment/status/transactionId/{transactionId}:
    get:
      tags:
      - Status
      summary: Get the status with the transaction ID
      description: Get the status of an RTP transaction.
      operationId: TransactionId
      security:
        - bearerAuth: []  
      parameters:
      - name: Accept
        in: header
        description: Specify the format of the request. This can either be application/json or application/xml.
        required: true
        style: simple
        schema:
          type: string
          example: application/json
      - name: transactionId
        in: path
        description: Enter the transaction ID number associated with the original payment.
        required: true
        schema:
          type: string        
      - name: X-CorrelationId
        in: header
        description: Apply a universal ID to trace the transaction across all the systems involved. The ID is unique to each request. The ID must be alphanumeric with no spaces and cannot exceed 16 characters. If this field is left blank, the system generates a unique ID with the response.
        schema:
          type: string
        required: false
      - name: KeyClientId
        in: header
        description: Enter the KeyBank client ID provided by KeyBank. This is a 32-character string that identifies you as the client.
        schema:
          type: string
        required: false
      responses:
        '200':
          description: Successful response
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/paymentTransactionResponse'
              example:
                status: IN_PROCESS 
                transactionId: US21052400000000
                requestReference: RR-KEY-999999-01
                sendersReference: SR-KEY-999999-01
                valueDate: "2021-05-24"
                error:
                doddFrank: YES-
        '400':
          description: Missing data in the request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Error received from backend service"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "US21052400000000"        
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError:
                status: FAILED
                requestReference: RR-220818-01
                sendersReference: SR-220818-01
                error:
                  code: KEY-1006
                  title: Required field missing
                  description: Object creditPartyBank is required
        '401':
          description: Received request is unauthorized
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
                ErrorMessage: Error received from backend service
                TransactionId: rrt-621075741872460927-c-gce-9129-15867185-4
                X-CorrelationId: 80457bcb-2c3b-8c55-8cd6-3520c3157e8f
                TransactionTime: '2022-04-04T11:41:13.754Z'
                ServiceError:
                  status: ERROR
                  requestReference: REQUEST-REF-220314.1
                  sendersReference: SENDER-REF-220314.1
                  error:
                    code: KEY-0006
                    title: Not authorized for requested service
                    description: null
        '403':
          description: Request is forbidden to access the resource
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Access to requested resource is forbidden"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '404':
          description: Requested resource is not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Requested resource is not found, please verify the resource and resubmit the request"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Requested method is not allowed.
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Requested method is not allowed, please verify the method and resubmit the request"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"      
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Requested unsupported media type
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          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"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Too many requests received
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Number requests threshold reached, please resubmit the request after sometime"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '500':
          description: Internal server error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: Error received from backend service
                TransactionId: 359681587523_SR-RMC-210729-11081
                X-CorrelationId: 7ad7fdfb-2ade-a3ab-b97c-523dc5312688
                TransactionTime: '2022-04-05T07:59:15.422Z'
                ServiceError:
                  status: ERROR
                  requestReference: RR-RMC-210720-0123458981
                  sendersReference: SR-RMC-210729-11081
                  error:
                    code: KEY-9999
                    title: Unknown error
                    description: 'Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials.'
        '502':
          description: Bad Gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Error received from backend service"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError: "Connectivity error occured 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: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Error received from backend service"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError: "Service is currently unavailable(NoActiveTargets), please check with appplication support before resubmitting the request."
        '504':
          description: Gateway timeout
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Error received from backend service"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
                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"
  /rtp/v1/payment/status/debitAccount/{debitAccount}/reference/{reference}:
    get:
      tags:
      - Status
      summary: Get the status with the request reference
      description: Get the status of a debit account payment transaction with the request reference field. This is commonly used for troubleshooting.
      operationId: reference
      security:
        - bearerAuth: []  
      parameters:
      - name: Accept
        in: header
        description: Specify the format of the request. This can either be application/json or application/xml.
        required: true
        style: simple
        schema:
          type: string
          example: application/json
      - name: debitAccount
        in: path
        description: In the URL path, specify the debit account number. 
        required: true
        schema:
          type: string
      - name: reference
        in: path
        description: Enter the unique request reference number from the original payment request.
        required: true
        schema:
          type: string      
      - name: X-CorrelationId
        in: header
        description: Apply a universal ID to trace the transaction across all the systems involved. The ID is unique to each request. The ID must be alphanumeric with no spaces and cannot exceed 16 characters. If this field is left blank, the system generates a unique ID with the response.
        schema:
          type: string
        required: false
      - name: KeyClientId
        in: header
        description: Enter the KeyBank client ID provided by KeyBank. This is a 32-character string that identifies you as the client.
        schema:
          type: string
        required: false
      responses:
        '200':
          description: Successful response
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/paymentTransactionResponse'
              example:
                status: IN_PROCESS 
                transactionId: US21052400000000
                requestReference: RR-KEY-999999-01
                sendersReference: SR-KEY-999999-01
                valueDate: "2021-05-24"
                error:
                doddFrank: YES
        '400':
          description: Missing data in the request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Error received from backend service"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "US21052400000000"        
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError:
                status: FAILED
                requestReference: RR-220818-01
                sendersReference: SR-220818-01
                error:
                  code: KEY-1006
                  title: Required field missing
                  description: Object creditPartyBank is required
        '401':
          description: Received request is unauthorized
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
                ErrorMessage: Error received from backend service
                TransactionId: rrt-621075741872460927-c-gce-9129-15867185-4
                X-CorrelationId: 80457bcb-2c3b-8c55-8cd6-3520c3157e8f
                TransactionTime: '2022-04-04T11:41:13.754Z'
                ServiceError:
                  status: ERROR
                  requestReference: REQUEST-REF-220314.1
                  sendersReference: SENDER-REF-220314.1
                  error:
                    code: KEY-0006
                    title: Not authorized for requested service
                    description: null
        '403':
          description: Request is forbidden to access the resource
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Access to requested resource is forbidden"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '404':
          description: Requested resource is not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Requested resource is not found, please verify the resource and resubmit the request"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"         
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Requested method is not allowed.
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Requested method is not allowed, please verify the method and resubmit the request"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"      
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Requested unsupported media type
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          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"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Too many requests received
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Number requests threshold reached, please resubmit the request after sometime"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
                TransactionTime: "2021-06-11T16:31:34.041Z"    
        '500':
          description: Internal server error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: Error received from backend service
                TransactionId: 359681587523_SR-RMC-210729-11081
                X-CorrelationId: 7ad7fdfb-2ade-a3ab-b97c-523dc5312688
                TransactionTime: '2022-04-05T07:59:15.422Z'
                ServiceError:
                  status: ERROR
                  requestReference: RR-RMC-210720-0123458981
                  sendersReference: SR-RMC-210729-11081
                  error:
                    code: KEY-9999
                    title: Unknown error
                    description: 'Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials.'
        '502':
          description: Bad Gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Error received from backend service"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError: "Connectivity error occured 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: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Error received from backend service"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError: "Service is currently unavailable(NoActiveTargets), please check with appplication support before resubmitting the request."
        '504':
          description: Gateway timeout
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Error received from backend service"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
                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"
  /rtp/v1/payment/validate:
    post:
      tags:
      - Validate
      summary: Perform validation checks 
      description: Run validation checks without creating a payment.
      operationId: Payment-Validate
      security:
        - bearerAuth: []  
      parameters:
      - name: Accept
        in: header
        description: Specify the format of the request. This can either be application/json or application/xml.
        required: true
        style: simple
        schema:
          type: string
          example: application/json
      - name: Content-Type
        in: header
        description: Specify what information is being sent to the browser. This can either be application/json or application/xml.
        required: true
        style: simple
        schema:
          type: string
          example: application/json      
      - name: X-CorrelationId
        in: header
        description: Apply a universal ID to trace the transaction across all the systems involved. The ID is unique to each request. The ID must be alphanumeric with no spaces and cannot exceed 16 characters. If this field is left blank, the system generates a unique ID with the response.
        schema:
          type: string
        required: false
      - name: KeyClientId
        in: header
        description: Enter the KeyBank client ID provided by KeyBank. This is a 32-character string that identifies you as the client.
        schema:
          type: string
        required: true
      requestBody:
        content:          
          application/json:
            schema:              
              $ref: '#/components/schemas/paymentTransactionRequestV1'                
            example:
                requestedService: RTP/WIRE
                requestReference: UNIQUE REQUEST REFERENCE
                type: PAYMENT
                sendersReference: UNIQUE SENDERS REFERENCE
                receiversReference: REFERENCE TO BENEFICIARY
                requestedValueDate: 2021-05-24
                debitParty:
                  name: YOUR COMPANY NAME HERE
                  accountNumber: "000000000000"
                creditPartyBank:
                  name: BENEFICIARY BANK NAME
                  aba: "000000000"
                creditParty:
                  name: BENEFICIARY NAME
                  accountNumber: "000000000000"
                  postalAddress:
                    adrLine:
                    - BENEFICIARY ADDRESS LINE 1
                    - BENEFICIARY ADDRESS LINE 2
                transferAmount: "10.00"
                TransferCurrency: USD
      responses:
        '200':
          description: Successful response
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/paymentTransactionResponse'
              example:
                status: IN_PROCESS 
                transactionId: US21052400000000
                requestReference: RR-KEY-999999-01
                sendersReference: SR-KEY-999999-01
                valueDate: "2021-05-24"
                error:
                doddFrank: YES
        '400':
          description: Missing data in the request
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Error received from backend service"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "US21052400000000"        
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError:
                status: FAILED
                requestReference: RR-220818-01
                sendersReference: SR-220818-01
                error:
                  code: KEY-1006
                  title: Required field missing
                  description: Object creditPartyBank is required
        '401':
          description: Received request is unauthorized
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:               
                ErrorMessage: Error received from backend service
                TransactionId: rrt-621075741872460927-c-gce-9129-15867185-4
                X-CorrelationId: 80457bcb-2c3b-8c55-8cd6-3520c3157e8f
                TransactionTime: '2022-04-04T11:41:13.754Z'
                ServiceError:
                  status: ERROR
                  requestReference: REQUEST-REF-220314.1
                  sendersReference: SENDER-REF-220314.1
                  error:
                    code: KEY-0006
                    title: Not authorized for requested service
                    description: null
        '403':
          description: Request is forbidden to access the resource
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Access to requested resource is forbidden"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '404':
          description: Requested resource is not found
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Requested resource is not found, please verify the resource and resubmit the request"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '405':
          description: Requested method is not allowed.
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Requested method is not allowed, please verify the method and resubmit the request"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '415':
          description: Requested unsupported media type
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          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"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
                TransactionTime: "2021-06-11T16:31:34.041Z"
        '429':
          description: Too many requests received
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Number requests threshold reached, please resubmit the request after sometime"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
                TransactionTime: "2021-06-11T16:31:34.041Z" 
        '500':
          description: Internal server error
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: Error received from backend service
                TransactionId: 359681587523_SR-RMC-210729-11081
                X-CorrelationId: 7ad7fdfb-2ade-a3ab-b97c-523dc5312688
                TransactionTime: '2022-04-05T07:59:15.422Z'
                ServiceError:
                  status: ERROR
                  requestReference: RR-RMC-210720-0123458981
                  sendersReference: SR-RMC-210729-11081
                  error:
                    code: KEY-9999
                    title: Unknown error
                    description: 'Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials.'
        '502':
          description: Bad Gateway
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Error received from backend service"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"        
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError: "Connectivity error occured 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: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Error received from backend service"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"
                TransactionTime: "2021-06-11T16:31:34.041Z"
                ServiceError: 
                  ConnectError: "Service is currently unavailable(NoActiveTargets), please check with appplication support before resubmitting the request."
        '504':
          description: Gateway timeout
          headers:
            X-CorrelationId:
              schema:
                type: string
              description: The universal ID to trace the transaction across all the systems involved. The ID is unique to each request.
          content:            
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
              example:
                ErrorMessage: "Error received from backend service"
                X-CorrelationId: "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab"
                TransactionId:  "rrt-7709400285867417207-b-gce-27587-2383364-1"       
                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:
#---------------------------------------------------
# Definitions
#---------------------------------------------------
  securitySchemes:    
    bearerAuth: # security scheme for authentication based on F5 APM token
      type: http
      scheme: bearer
  schemas:
    healthResponse:
      title: healthResponse
      type: object
      properties:
        Status:
          type: string
          description: The status of the health check response.
        Source:
          type: string
          description: The system that produces the health response. The origin of the response can be 'Gateway' or 'Roundtrip.' Roundtrip returns a response from the farthest system involved.
        Timestamp:
          type: string
          description: The date (YYYY-MM-DD) and time (HH:MM:SS) of response from the API service.
        ClientIp:
          type: string
          description: The client IP address the gateway receives from the request. 
        X-Forwarded-For: 
          type: string
          description: The sequence of the IP addresses for systems between the client and the gateway. Addresses are separated by a comma.
    exception:
      title: exceptionSchema
      type: object
      description: Error messages related to the gateway or software.
      properties:
        ErrorMessage: 
          type: string
          description: Error message that describes the type or source of the error.
        TransactionId:
          type: string
          description: The unique transaction ID returned with the response, useful for traceability.
        TransactionTime: 
          type: string
          description: The date (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.  
        ServiceError:
          type: object
          title: ServiceError
          description: Indicates the service error details, if available.   
          oneOf:          
          - $ref: '#/components/schemas/serviceErrorData'
          - $ref: '#/components/schemas/connectError'
    serviceErrorData:
      title: serviceErrorData
      required:
      - status
      type: object
      description: The service error returns the same response payload as a successful reponse with additional details specific to the error. 
      properties:
        status:
          description: The status of the payment transaction. Possible response values include IN PROCESS, COMPLETED, FAILED, RETURNED, ERROR, and VALID. 
          $ref: '#/components/schemas/paymentStatus'
        transactionId:
          type: string
          description: The unique transaction ID returned with the response, useful for traceability. 
        requestReference:
          type: string
          description: The request reference value from the original request. This is useful for traceability and reporting. 
          maxLength: 35
          minLength: 1
        sendersReference:
          type: string
          description: The sender reference value from the original request. This is useful for traceability and reporting. 
          maxLength: 35
          minLength: 1
        valueDate:
          type: string
          description: The date (YYYY-MM-DD) the transferred occurred. 
        error:
          description: Additional error information for payment transactions with the status ERROR.
          $ref: '#/components/schemas/paymentError'
        doddFrank:
          description: The initial assessment of whether the transaction qualifies as a Dodd-Frank wire transaction. This value can change during the payment cycle.
          $ref: '#/components/schemas/noYesType'
    connectError:
      type: object
      properties:
        ConnectError:
          type: string
          description: Error information about the connectivity with downstream service.
    paymentTransactionRequestV1:
      title: paymentTransactionRequestV1
      required:
      - requestedService
      - type
      - sendersReference
      - transferAmount
      - transferCurrency
      type: object
      properties:
        requestedService:
          type: string
          description: Enter RTP or WIRE for the transaction type.
          enum:
          - RTP
          - WIRE
        requestReference:
          type: string
          description: Enter a unique ID that is associated with the request. The ID must be alphanumeric with no spaces and cannot exceed 35 characters. This is backend metadata that is not sent with the payment.
          maxLength: 35
        type:
          type: string
          description: Indicate if the transaction type is a PAYMENT or a DRAFT. 
          enum:
          - PAYMENT
          - DRAFT
        requestedValueDate:
            type: string
            description: Enter the date (YYYY-MM-DD) for when the transfer will occur.
        originatorReference:
            type: string
            description: Enter an additional reference value that is meaningful to the party originating the payment. 
        sendersReference:
          type: string
          description: Enter the reference value provided by the sender. For outbound payments, this value is the transaction ID. 
          maxLength: 35
        receiversReference:
          type: string
          description: Enter a reference value for the beneficiary. This value cannot exceed 140 characters.
          maxLength: 140
        ultimateDebitParty:
          description: Enter a third-party name. Typically, this is the name of the party that instructed the debit party to initiate a payment. This value cannot exceed 140 characters.  
          $ref: '#/components/schemas/ultParty'
        debitParty:
          description: Enter details about the debit party in the transaction. You must enter a name for any party identified in the request. 
          $ref: '#/components/schemas/party'
        debitPartyBank:
          description: Enter details about the financial institution that will send the funds. You must enter a name for any party identified in the request.
          $ref: '#/components/schemas/party'
        creditPartyBank:
          description: Enter details about the financial institution that will receive the funds. You must enter a name for any party identified in the request.
          $ref: '#/components/schemas/party'
        creditParty:
          description: Enter details about the party that will receive the funds. You must enter a name for any party identified in the request.
          $ref: '#/components/schemas/party'
        transferAmount:
          type: number
          description: Enter the amount of money to transfer in the correct currency format.
        transferCurrency:
          type: string
          description: Enter the currency code for the transfer amount.
    party:
        title: party
        required:
        - name
        type: object
        properties:
          name:
            type: string
            description: The name of the party. This can be an individual, a financial institution, or a beneficiary. The name cannot exceed 140 characters.
            maxLength: 140
          accountNumber:
            description: The account number of the party.
            type: string
            maxLength: 34          
          aba:          
            type: string
            description: If the party is a financial institution, this is the ABA number or routing number.
          bic:          
            type: string
            description: The bank identifier code (BIC) for the party. 
          txid:
            type: string
            description: The tax identification number for the party. 
          foreignBankSystemId:
            description: If the financial institution is international or located outside of the United States, this is the global routing number and identification number. 
            $ref: '#/components/schemas/foreignBankSystemType'
          postalAddress:
            type: object
            description: The address of the party. The address cannot exceed 70 characters.
            properties:
              adrLine:
                type: array
                description: An unstructured address line. You can have up to three lines of text.
                items:
                  type: string
                  maxLength: 70
    participantListResponse:
      required:
      - count
      - limit
      - offset
      title: participantListResponse
      type: object
      properties:
        count:
          type: string
          description: The count of records that match the initial query.
        limit:
          type: integer
          description: The maximum number of records returned in the response. 
        offset:
          type: integer
          description: The number of records skipped before the response is returned. 
        parties:
          $ref: '#/components/schemas/party'
          description: Details about the parties involved in the transaction. 
    foreignBankSystemType:
      type: object
      properties:
        type:
          type: string
          description: Enter the 5-digit global routing code for a foreign financial institution.
          enum:
          - ATBLZ
          - AUBSB
          - CACPA
          - CHBCC
          - CHSIC
          - CNAPS
          - DEBLZ
          - ESNCC
          - GBDSC
          - GRBIC
          - HKNCC
          - IENCC
          - INFSC
          - ITNCC
          - JPZGN
          - NZNCC
          - PLKNR
          - PTNCC
          - RUCBC
          - SESBA
          - SGIBG
          - THCBC
          - TWNCC
          - USABA
          - USPID
          - ZANCC
        id:
          type: string    
          description: Enter the identification number associated with the foreign financial institution. 
    paymentTransactionResponse:
      required:
      - status
      type: object
      properties:
        status:
          description: The status of the payment transaction. Possible response values include IN PROCESS, COMPLETED, FAILED, RETURNED, ERROR, and VALID. 
          $ref: '#/components/schemas/paymentStatus'
        transactionId:
          type: string
          description: The unique transaction ID returned with the response, useful for traceability.
        requestReference:
          type: string
          description: The request reference value from the original request. This is useful for traceability and reporting. 
          maxLength: 35
        sendersReference:
          type: string
          description: The sender reference value from the original request. This is useful for traceability and reporting. 
          maxLength: 35      
        valueDate:
          type: string
          description: The date (YYYY-MM-DD) the transfer occurred. 
        error:
          $ref: '#/components/schemas/paymentError'
        doddFrank:
          description: The initial assessment of whether the transaction qualifies as a Dodd-Frank wire transaction. This value can change during the payment cycle.
          $ref: '#/components/schemas/noYesType'
    paymentStatus:
      type: string
      description: The status of the payment transaction. Possible response values include IN PROCESS, COMPLETED, FAILED, RETURNED, ERROR, and VALID. 
      enum:
      - IN_PROCESS
      - COMPLETED
      - FAILED
      - RETURNED
      - ERROR
      - VALID
    paymentError:
      required:
      - code      
      - title
      - detail
      type: object
      description: Error messages related to the API and backend services. 
      properties:
        code:
          type: string
          description: A status code assigned to each error type. 
        title:
          type: string
          description: A brief title about the error associated with the status code. 
        description:
          type: string
          description: A description of the error.
        detail:
          required:
          - code      
          - title
          type: object
          description: Additional details about the error from the payment network. 
          properties:
            code:
              type: string
              description: A static code assigned by the network or payment system.
            title:
              type: string
              description: A brief title about the error associated with the status code.
            description:
              type: string
              description: A description of the error.
    noYesType:
      type: string
      description: This field indicates whether the transaction qualifies for Dodd-Frank.
      enum:
      - YES
      - NO
    ultParty:
      type: string
      description: Enter a third-party name. Typically, this is the name of the party that instructed the debit party to initiate a payment. This value cannot exceed 140 characters.
      maxLength: 140
      minLength: 1
       
tags:
#---------------------------------------------------
# Tags
#---------------------------------------------------
  - name: Initiate
  - name: Validate
  - name: Participant
  - name: Status
  - name: HealthCheck