openapi: 3.0.1
info:
  title: Clover Card Present REST API
  version: 4.1.0
  x-clover-package-name: com.clover.connect.model
  x-clover-timeout: 120
  x-clover-timeout-wait: 5
servers:
  - description: Secure URL for requests to REST Pay Display (local network)
    url: https://deviceIpOrHost:12346/connect
  - description: Secure URL for requests to Cloud Pay Display (web-based POS systems)
    url: https://sandbox.dev.clover.com/connect
security:
  - BearerAuth: []
tags:
  - name: PAYMENTS
  - name: CARD
  - name: CREDITS
  - name: DEVICE
  - name: RECEIPTS
paths:
  /v1/card/read:
    post:
      description: >-
        A call to this endpoint initiates a read card operation on a Clover
        device and returns the card track data. The data will be encrypted
        unless the card read is not a financial card or the card's BIN has been
        allowlisted.
      operationId: READ_CARD
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReadCardRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReadCardResponse'
          description: The card was read.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Read a card's track data using a Clover device
      tags:
        - CARD
      x-clover-operation-type: FOREGROUND
  /v1/card/tokens:
    post:
      description: >-
        A call to the token endpoint is used to create either a single-use or
        multi-pay token that can be used for  subsequent transactions. Note:
        Tokenization through REST Pay Display API is not supported in Europe.
      operationId: REQUEST_TOKEN
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponse'
          description: A token was created.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Create a card token for use with subsequent payments
      tags:
        - CARD
      x-clover-idempotent:
        - tokenType
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 60
  /v1/credits:
    post:
      description: A credit is a refund that is not associated with an existing payment.
      operationId: CREDIT
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditResponse'
          description: A valid CreditResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Send a credit request to the Clover device
      tags:
        - CREDITS
      x-clover-idempotent:
        - amount
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 135
  /v1/credits/{creditId}:
    get:
      description: Get information about a credit by specifying its Clover credit UUID.
      operationId: GET_CREDIT
      parameters:
        - description: A Clover credit UUID.
          in: path
          name: creditId
          required: true
          schema:
            maxLength: 13
            minLength: 13
            type: string
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditResponse'
          description: A valid CreditResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Get a credit
      tags:
        - CREDITS
      x-clover-operation-type: BACKGROUND
      x-clover-timeout: 60
  /v1/credits/{creditId}/receipt:
    post:
      description: Deliver a credit receipt in the format specified in the request.
      operationId: DELIVER_CREDIT_RECEIPT
      parameters:
        - description: Clover credit UUID
          in: path
          name: creditId
          required: true
          schema:
            maxLength: 13
            minLength: 13
            type: string
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditReceiptDeliveryRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptDeliveryResponse'
          description: A valid ReceiptDeliveryResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Deliver a credit receipt
      tags:
        - RECEIPTS
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 60
  /v1/device/cancel:
    post:
      description: >-
        Sends a cancel command from the POS software to stop any in-flight
        operations. See the following pages for more information about canceling
        and the possible impact on in-progress payments:

        * [Tracking transactions with idempotency
        keys](https://docs.clover.com/docs/tracking-transactions-with-idempotency-keys)

        * [Payment reconciliation and
        recovery](https://docs.clover.com/docs/payment-reconciliation-and-recovery-rest-pay)  
      operationId: CANCEL
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: >-
            Cancel received. This does not indicate that the cancel was
            processed correctly, only that it was received.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Cancel any in-flight operations
      tags:
        - DEVICE
        - PAYMENTS
      x-clover-operation-type: BACKGROUND
      x-clover-reset: true
  /v1/device/cash-drawer/open:
    post:
      description: >-
        Sends a signal to open the specified cash drawer attached to a Clover
        device.
      operationId: OPEN_ATTACHED_CASH_DRAWER
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenCashDrawerRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenCashDrawerResponse'
          description: >-
            A response from a Clover device indicating whether or not the cash
            drawer may have opened.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Opens the specified cash drawer
      tags:
        - DEVICE
      x-clover-operation-type: BACKGROUND
  /v1/device/cash-drawers:
    get:
      description: >-
        Retrieve a list of the device's connected cash drawers. Discovery of a
        cash drawer only indicates that it is either connected now, or there is
        an available hardware port allowing one to be connected. For example,
        local RJ12-type cash drawers may or may not actually be connected at the
        time this operation is invoked but will be returned regardless. Other
        types of cash drawers (e.g. USB cash drawers) may only be discovered if
        they are physically connected at the time of the call.
      operationId: RETRIEVE_CASH_DRAWERS
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CashDrawersResponse'
          description: >-
            A response from a Clover device containing a list of cash drawers
            supported at this time by this device.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Retrieve a list of cash drawers
      tags:
        - DEVICE
      x-clover-operation-type: BACKGROUND
  /v1/device/custom/activity:
    post:
      description: >-
        Launches the specified activity that has been previously installed to
        the device.
      operationId: CUSTOM_ACTIVITY
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomActivityRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomActivityResponse'
          description: >-
            If blocking, indicates that the user specified activity was launched
            and has completed.  Otherwise, indicates that the activity was
            launched and it will continue to run until another FOREGROUND
            operation is executed.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Execute a custom activity
      tags:
        - DEVICE
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 180
  /v1/device/devices:
    get:
      description: Gets activated and associated devices for the merchant
      operationId: GET_DEVICES
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevicesResponse'
          description: The devices were successfully queried
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Get merchant devices
      tags:
        - DEVICE
      x-clover-operation-type: BACKGROUND
  /v1/device/display:
    post:
      description: >-
        A call to the display endpoint sends a text string that is displayed on
        the idle terminal.
      operationId: DISPLAY_MESSAGE
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisplayRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: The text was displayed to the customer
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Display a message
      tags:
        - DEVICE
      x-clover-operation-type: FOREGROUND
  /v1/device/display-order:
    post:
      description: >-
        Displays the order screen on the idle terminal.  The values passed in
        this request are used as is. They are not used in any calculations,
        updating of existing order.  This is strictly a UI request that shows a
        helpful screen to customers to show them what they are purchasing before
        starting a payment request.
      operationId: DISPLAY_ORDER
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisplayOrderRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: The display order screen was displayed to the customer.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Display an order
      tags:
        - DEVICE
      x-clover-operation-type: FOREGROUND
  /v1/device/ping:
    get:
      description: Check that your app can connect to the Clover device.
      operationId: PING_DEVICE_GET
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PingResponse'
          description: The device was successfully reached.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Verify connectivity
      tags:
        - DEVICE
    post:
      description: Check that your app can connect to the Clover device.
      operationId: PING_DEVICE
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PingResponse'
          description: The device was successfully reached.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Verify connectivity
      tags:
        - DEVICE
      x-clover-operation-type: BACKGROUND
  /v1/device/print-job/{printJobId}/status:
    get:
      description: Checks the status of a previously sent print job.
      operationId: GET_PRINT_JOB_STATUS
      parameters:
        - description: The id of the print job to retrieve status for.
          in: path
          name: printJobId
          required: true
          schema:
            maxLength: 32
            minLength: 1
            type: string
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrintJobStatusResponse'
          description: A valid PrintJobStatusResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Get the status of a print job
      tags:
        - DEVICE
      x-clover-operation-type: BACKGROUND
      x-clover-timeout: 60
  /v1/device/print/image:
    post:
      description: Sends an image print job to a Clover device.
      operationId: PRINT_IMAGE_ON_DEVICE
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrintImageRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrintImageResponse'
          description: A PrintImageResponse from a Clover device.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Print an image
      tags:
        - DEVICE
      x-clover-operation-type: BACKGROUND
      x-clover-timeout: 180
  /v1/device/print/text:
    post:
      description: Sends a text print job to a Clover device.
      operationId: PRINT_TEXT_ON_DEVICE
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrintTextRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrintTextResponse'
          description: A PrintTextResponse from a Clover device.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Print text
      tags:
        - DEVICE
      x-clover-operation-type: BACKGROUND
  /v1/device/printers:
    get:
      deprecated: true
      description: Retrieve a list of the device's connected printers.
      operationId: RETRIEVE_PRINTERS_GET
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrintersResponse'
          description: A response from a Clover device containing a list of printers.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Retrieve a list of printers
      tags:
        - DEVICE
      x-clover-operation-type: BACKGROUND
    post:
      deprecated: true
      description: Retrieve a list of the device's connected printers.
      operationId: RETRIEVE_PRINTERS
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrintersResponse'
          description: A response from a Clover device containing a list of printers.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Retrieve a list of printers
      tags:
        - DEVICE
      x-clover-operation-type: BACKGROUND
  /v2/device/printers:
    get:
      description: >-
        Retrieve a list of all the device's connected printers. Filterable with
        printerType query parameter.
      operationId: RETRIEVE_PRINTERS_V2
      parameters:
        - description: The type of printers to retrieve.
          in: query
          name: type
          schema:
            $ref: '#/components/schemas/PrinterType'
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrintersResponse'
          description: A response from a Clover device containing a list of printers.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Retrieve a list of printers
      tags:
        - DEVICE
      x-clover-operation-type: BACKGROUND
  /v1/device/read-confirmation:
    post:
      description: >-
        Retrieves a confirmation response (`true` or `false`) from the specified
        Clover terminal. This is typically used to ask a customer a yes-no
        question.
      operationId: READ_CONFIRMATION
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfirmationRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BooleanResponse'
          description: Returns a true or false response based on user input
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Get a user confirmation response
      tags:
        - DEVICE
      x-clover-operation-type: FOREGROUND
  /v1/device/read-input:
    post:
      description: >-
        Displays a request for information and returns the data entered by the
        customer. The request can also specify a data entry format to make it
        easier for the customer to provide their information.
      operationId: READ_INPUT
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FormatDisplayRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TextResponse'
          description: Returns a text response based on user input
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Get a text response
      tags:
        - DEVICE
      x-clover-authorization:
        - auth: READ_INPUT
      x-clover-operation-type: FOREGROUND
  /v1/device/read-signature:
    post:
      description: >-
        Displays the signature entry screen so the user can acknowledge
        acceptance with  their signatures. Apps do not need to call this
        endpoint to get a customer's signature  for a payment. The signature
        screen will appear automatically if the merchant's settings are
        configured to require one for a given transaction.
      operationId: READ_SIGNATURE
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SignatureRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignatureResponse'
          description: Returns the signature image data in the specified format
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Get a signature
      tags:
        - DEVICE
      x-clover-operation-type: FOREGROUND
  /v1/device/read-tip:
    post:
      description: >-
        Displays a message on a Clover device requesting customer selection of a
        tip amount or percentage.
      operationId: READ_TIP
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TipDisplayRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegerResponse'
          description: The tip screen was displayed to the customer.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Get a tip
      tags:
        - DEVICE
      x-clover-operation-type: FOREGROUND
  /v1/device/receipt-options:
    post:
      description: Presents the customer with choices for their transaction receipt.
      operationId: RECEIPT_OPTIONS
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReceiptOptionsRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptOptionsResponse'
          description: A valid ReceiptOptionsResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Display receipt options
      tags:
        - RECEIPTS
      x-clover-operation-type: FOREGROUND
  /v1/device/reset:
    put:
      description: >-
        Resets the device to an initial state, cancelling all in-flight
        commands, if any, from the POS software. See the following pages for
        more information about the possible impact on in-progress payments:

        * [Tracking transactions with idempotency
        keys](https://docs.clover.com/docs/tracking-transactions-with-idempotency-keys)

        * [Payment reconciliation and
        recovery](https://docs.clover.com/docs/payment-reconciliation-and-recovery-rest-pay)
      operationId: RESET_DEVICE
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: >-
            Reset received. This does not indicate that the reset was processed
            correctly, only that it was received.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Resets the device and cancels any in-flight operations
      tags:
        - DEVICE
        - PAYMENTS
      x-clover-operation-type: BACKGROUND
      x-clover-reset: true
  /v1/device/send-debug:
    post:
      description: >-
        Requests a snapshot of the on-device logs be created and uploaded to 
        the Clover server infrastructure for storage for subsequent analysis.
        Note that this operation is explicitly limited to once every 30 minutes
        for a device.
      operationId: SEND_DEBUG
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendDebugRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: Request received and processed successfully.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Sends the device logs to the Clover server infrastructure.
      tags:
        - DEVICE
      x-clover-operation-type: BACKGROUND
  /v1/device/status:
    get:
      description: Requests the status of the Clover device.
      operationId: DEVICE_STATUS
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceStatusResponse'
          description: A valid DeviceStatusResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Get the device's status
      tags:
        - DEVICE
      x-clover-operation-type: BACKGROUND
      x-clover-timeout: 30
  /v1/device/thank-you:
    post:
      description: Displays the thank you screen on the idle terminal.
      operationId: SHOW_THANK_YOU
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: The thank you screen was displayed to the customer.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Display a thank you screen
      tags:
        - DEVICE
      x-clover-operation-type: FOREGROUND
  /v1/device/welcome:
    post:
      description: Displays the welcome screen on the idle terminal.
      operationId: SHOW_WELCOME
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: The welcome screen was displayed to the customer.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Display the welcome screen
      tags:
        - DEVICE
      x-clover-operation-type: FOREGROUND
  /v1/payments:
    post:
      description: >-
        Starts the payment flow for the transaction type specified in the
        request. Once the customer finishes their payment, a payment response is
        returned, and the device returns to the idle state.
      operationId: PAY
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayResponse'
          description: A valid PayResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Send a payment request to a Clover device
      tags:
        - PAYMENTS
      x-clover-authorization:
        - auth: PREAUTH
          fields:
            - name: capture
              test: EQ
              value: false
            - name: final
              test: EQ
              value: false
          operator: AND
        - auth: OFFLINE
          fields:
            - name: deviceOptions.offlineOptions.allowOfflinePayment
              test: EQ
              value: true
        - auth: FORCE_OFFLINE
          fields:
            - name: deviceOptions.offlineOptions.forceOfflinePayment
              test: EQ
              value: true
        - auth: TOKENIZE
          fields:
            - name: deviceOptions.vaultCard
              test: EQ
              value: true
        - auth: COF_PROMPT
          fields:
            - name: deviceOptions.suppressConfirmation
              test: EQ
              value: true
      x-clover-idempotent:
        - externalPaymentId
        - capture
        - final
        - amount
        - tipAmount
        - vaultedCard.token
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 135
  /v1/payments/external/{externalPaymentId}:
    get:
      description: Get information about a payment by a specifying its `externalPaymentId`.
      operationId: GET_PAYMENT_BY_EXTERNAL_PAYMENT_ID
      parameters:
        - description: An externalPaymentId.
          in: path
          name: externalPaymentId
          required: true
          schema:
            maxLength: 32
            type: string
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
          description: A valid PaymentResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Get a payment by externalPaymentId
      tags:
        - PAYMENTS
      x-clover-operation-type: BACKGROUND
      x-clover-timeout: 60
  /v1/payments/{paymentId}:
    get:
      description: Get information about a payment by specifying its Clover payment UUID.
      operationId: GET_PAYMENT
      parameters:
        - description: A Clover payment UUID.
          in: path
          name: paymentId
          required: true
          schema:
            maxLength: 13
            minLength: 13
            type: string
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
          description: A valid PaymentResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Get a payment
      tags:
        - PAYMENTS
      x-clover-operation-type: BACKGROUND
      x-clover-timeout: 60
  /v1/payments/{paymentId}/capture:
    post:
      description: Finish a pre-auth transaction by capturing the final amount.
      operationId: CAPTURE
      parameters:
        - description: Clover payment UUID
          in: path
          name: paymentId
          required: true
          schema:
            maxLength: 13
            minLength: 13
            type: string
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaptureRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaptureResponse'
          description: A valid CaptureResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Capture a pre-auth payment
      tags:
        - PAYMENTS
      x-clover-idempotent:
        - amount
        - paymentId
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 60
  /v1/payments/{paymentId}/increment:
    post:
      description: >-
        Increase the authorized amount of a transaction to verify the cardholder
        has sufficient funds for the purchase.
      operationId: INCREMENT_AUTH
      parameters:
        - description: Clover payment UUID
          in: path
          name: paymentId
          required: true
          schema:
            maxLength: 13
            minLength: 13
            type: string
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncrementAuthRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncrementAuthResponse'
          description: A valid IncrementAuthResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Increment an authorization (pre-auth)
      tags:
        - PAYMENTS
      x-clover-authorization:
        - auth: INCREMENT_AUTH
      x-clover-idempotent:
        - amount
        - paymentId
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 60
  /v1/payments/{paymentId}/receipt:
    post:
      description: Deliver a payment receipt in the format specified in the request.
      operationId: DELIVER_PAYMENT_RECEIPT
      parameters:
        - description: Clover payment UUID
          in: path
          name: paymentId
          required: true
          schema:
            maxLength: 13
            minLength: 13
            type: string
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentReceiptDeliveryRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptDeliveryResponse'
          description: A valid ReceiptDeliveryResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Deliver a payment receipt
      tags:
        - RECEIPTS
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 60
  /v1/payments/{paymentId}/refunds:
    post:
      description: Returns some or all of a payment amount to the cardholder.
      operationId: REFUND
      parameters:
        - description: Clover payment UUID
          in: path
          name: paymentId
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefundResponse'
          description: A valid RefundResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Refund a payment
      tags:
        - CREDITS
      x-clover-idempotent:
        - amount
        - paymentId
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 135
  /v1/payments/{paymentId}/tip-adjust:
    post:
      description: >-
        For an unclosed payment, add a `tipAmount` or update an existing tip.
        Tips are not additive;  the most recent amount is applied at closeout.
      operationId: TIP_ADJUST_PAYMENT
      parameters:
        - description: Clover payment UUID
          in: path
          name: paymentId
          required: true
          schema:
            maxLength: 13
            minLength: 13
            type: string
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TipAdjustRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TipAdjustResponse'
          description: A valid TipAdjustResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Tip adjust a payment
      tags:
        - PAYMENTS
      x-clover-idempotent:
        - paymentId
        - tipAmount
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 60
  /v1/payments/{paymentId}/void:
    post:
      description: >-
        Cancels the specified payment before it is settled. The payment will be
        recorded as a void, but Clover may convert the void into a refund at the
        payment gateway under certain conditions. For final payments (where the
        `final` flag is set to `true`), a void cannot be processed outside of
        the settlement window (more than 25 minutes after the payment). When a
        void is not possible, Clover performs a refund instead of a void.
      operationId: VOID
      parameters:
        - description: Clover payment UUID
          in: path
          name: paymentId
          required: true
          schema:
            maxLength: 13
            minLength: 13
            type: string
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VoidRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VoidResponse'
          description: A valid VoidResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Void a payment
      tags:
        - CREDITS
      x-clover-idempotent:
        - paymentId
        - voidReason
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 60
  /v1/payments/{paymentId}/void/receipt:
    post:
      description: >-
        Deliver a void receipt in the format specified in the request. `PRINT`
        is the only supported format at this time.
      operationId: DELIVER_VOID_RECEIPT
      parameters:
        - description: Clover payment UUID
          in: path
          name: paymentId
          required: true
          schema:
            maxLength: 13
            minLength: 13
            type: string
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentVoidReceiptDeliveryRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptDeliveryResponse'
          description: A valid ReceiptDeliveryResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Deliver a void receipt
      tags:
        - RECEIPTS
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 60
  /v1/refunds/{refundId}/receipt:
    post:
      description: Deliver a refund receipt in the format specified in the request.
      operationId: DELIVER_REFUND_RECEIPT
      parameters:
        - description: Clover refund UUID
          in: path
          name: refundId
          required: true
          schema:
            maxLength: 13
            minLength: 13
            type: string
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundReceiptDeliveryRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptDeliveryResponse'
          description: A valid ReceiptDeliveryResponse
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Deliver a refund receipt
      tags:
        - RECEIPTS
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 60
  /v2/card/tokens:
    post:
      description: >-
        A call to the token endpoint is used to create a multi-pay token that
        can be used for subsequent transactions. This endpoint meets all
        card-on-file compliance requirements. Note: Tokenization through REST
        Pay Display API is not supported in Europe.
      operationId: REQUEST_TOKEN_V2
      parameters:
        - $ref: '#/components/parameters/DeviceId'
        - $ref: '#/components/parameters/PosId'
        - $ref: '#/components/parameters/Timeout'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenV2Request'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponse'
          description: A token was created.
        '209':
          $ref: '#/components/responses/209'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      summary: Create a card token for use with subsequent payments
      tags:
        - CARD
      x-clover-authorization:
        - auth: TOKENIZE
        - auth: COF_PROMPT
          fields:
            - name: suppressConfirmation
              test: EQ
              value: true
      x-clover-operation-type: FOREGROUND
      x-clover-timeout: 60
components:
  securitySchemes:
    BearerAuth:
      scheme: bearer
      type: http
  schemas:
    TipAdjustRequest:
      properties:
        tipAmount:
          description: The tip amount, in cents.
          format: int64
          maximum: 999999999
          minimum: 0
          type: integer
      required:
        - tipAmount
      title: TipAdjustRequest
      type: object
    RefundId:
      description: A Clover refund UUID
      maxLength: 13
      minLength: 13
      title: RefundId
      type: string
    CreditId:
      description: A Clover credit UUID
      maxLength: 13
      minLength: 13
      title: CreditId
      type: string
    RefundReceiptDeliveryRequest:
      properties:
        deliveryOption:
          $ref: '#/components/schemas/ReceiptDeliveryOption'
        printJobId:
          type: string
      title: RefundReceiptDeliveryRequest
      type: object
    PaymentVoidReceiptDeliveryRequest:
      properties:
        deliveryOption:
          $ref: '#/components/schemas/ReceiptDeliveryOption'
        printJobId:
          type: string
      title: PaymentVoidReceiptDeliveryRequest
      type: object
    PaymentReceiptDeliveryRequest:
      properties:
        deliveryOption:
          $ref: '#/components/schemas/ReceiptDeliveryOption'
        printJobId:
          type: string
      title: PaymentReceiptDeliveryRequest
      type: object
    Error:
      description: An error object.
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode'
        message:
          type: string
        type:
          $ref: '#/components/schemas/ErrorType'
      required:
        - message
        - type
      title: Error
      type: object
    CardEntryMethod:
      description: |
        `DEFAULT` is an alias for `MAG_STRIPE`, `EMV`, and `NFC`.
      enum:
        - MAG_STRIPE
        - EMV
        - NFC
        - MANUAL
        - DEFAULT
      title: CardEntryMethod
      type: string
      x-complex-enum:
        - MAG_STRIPE(33025)
        - EMV(33282)
        - NFC(33796)
        - MANUAL(34824)
        - DEFAULT(34567)
    ReadCardRequest:
      description: Used to retrieve the track data from a card
      properties:
        cardEntryMethods:
          description: A collection of supported card entry methods for the operation.
          items:
            $ref: '#/components/schemas/CardEntryMethod'
          type: array
      title: ReadCardRequest
      type: object
    ReadCardResponse:
      description: The track data read from the card
      properties:
        cardholderName:
          type: string
        encrypted:
          type: boolean
        exp:
          type: string
        first6:
          type: string
        firstName:
          type: string
        last4:
          type: string
        lastName:
          type: string
        pan:
          type: string
        track1:
          type: string
        track2:
          type: string
        track3:
          type: string
      title: ReadCardResponse
      type: object
    ErrorResponse:
      description: An error object
      properties:
        code:
          type: string
        message:
          type: string
        requestId:
          type: string
        requestType:
          type: string
        type:
          type: string
      required:
        - message
        - type
      title: ErrorResponse
      type: object
    TokenRequest:
      description: A request to generate a token for use in subsequent transactions.
      example:
        tokenType: ECOMM_COMPAT
      properties:
        cardEntryMethods:
          description: A collection of supported card entry methods for the operation.
          items:
            $ref: '#/components/schemas/CardEntryMethod'
          type: array
        tokenType:
          description: >-
            The type of token requested. If not specified, a Clover legacy token
            will be returned. Supported values: ECOMM_COMPAT
          type: string
      title: TokenRequest
      type: object
    CardExpirationDate:
      description: >
        A four-digit number representing the expiration month (first two digits)
        and year (last two digits)
      format: '####'
      pattern: ^\d{4}$
      title: CardExpirationDate
      type: string
    CardFirst6:
      description: The first 6 digits
      example: 123456
      format: '######'
      maxLength: 6
      minLength: 6
      pattern: ^\d{6}$
      title: CardFirst6
      type: string
    CardLast4:
      description: The last 4 digits
      example: '1234'
      format: '####'
      maxLength: 4
      minLength: 4
      pattern: ^\d{4}$
      title: CardLast4
      type: string
    CardToken:
      description: >
        A string representing a token which may be used in a future payment
        operation
      maxLength: 72
      title: CardToken
      type: string
    TokenResponse:
      description: The information about the created token
      properties:
        confirmationSuppressed:
          default: false
          description: >-
            Set to `true` if the default Clover user confirmation screen was NOT
            presented to the customer. If false, or not set, the user did not
            confirm authorization of card on file tokenization, and the
            integrator is responsible for obtaining customer confirmation.
          type: boolean
        expirationDate:
          $ref: '#/components/schemas/CardExpirationDate'
        first6:
          $ref: '#/components/schemas/CardFirst6'
        last4:
          $ref: '#/components/schemas/CardLast4'
        name:
          type: string
        token:
          $ref: '#/components/schemas/CardToken'
        tokenType:
          type: string
      title: TokenResponse
      type: object
    CardEntryMethods:
      description: >-
        The card entry methods/payment options that will be presented to the
        customer (for example, NFC and MAG_STRIPE).
      items:
        $ref: '#/components/schemas/CardEntryMethod'
      type: array
    CardNotPresent:
      default: false
      description: >-
        If true, the secure payments application will skip the CVM entry screen
        when manual card entry is used.  The cardEntryMethods must contain the
        `MANUAL` value for this flag to be significant.  This indicates that the
        customer was not present to (for example) sign for the transaction.
      type: boolean
    DisableRestartTransactionOnFail:
      description: >-
        If the transaction times out or fails because of decline, do not restart
        it
      type: boolean
      title: DisableRestartTransactionOnFail
    DeviceCreditOptions:
      properties:
        cardEntryMethods:
          $ref: '#/components/schemas/CardEntryMethods'
        cardNotPresent:
          $ref: '#/components/schemas/CardNotPresent'
        disableRestartTransactionOnFail:
          $ref: '#/components/schemas/DisableRestartTransactionOnFail'
      title: DeviceCreditOptions
    CreditRequest:
      properties:
        amount:
          description: The amount of the credit, in cents.
          format: int64
          maximum: 999999999
          minimum: 1
          type: integer
        deviceOptions:
          $ref: '#/components/schemas/DeviceCreditOptions'
      required:
        - amount
      title: CreditRequest
      type: object
    CardholderName:
      description: The Name of the card holder
      maxLength: 26
      type: string
    AvsResult:
      enum:
        - SUCCESS
        - ZIP_CODE_MATCH
        - ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED
        - ADDRESS_MATCH
        - ADDRESS_MATCH_ZIP_NOT_CHECKED
        - NEITHER_MATCH
        - SERVICE_FAILURE
        - SERVICE_UNAVAILABLE
        - NOT_CHECKED
        - ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED
        - ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED
      title: AvsResult
      type: string
    CardType:
      enum:
        - VISA
        - MC
        - AMEX
        - DISCOVER
        - DINERS_CLUB
        - JCB
        - MAESTRO
        - SOLO
        - LASER
        - CHINA_UNION_PAY
        - CARTE_BLANCHE
        - UNKNOWN
        - GIFT_CARD
        - EBT
        - GIROCARD
        - INTERAC
        - RUPAY
        - UPI_COBRAND
        - OTHER
      title: CardType
      type: string
    CardEntryType:
      enum:
        - UNKNOWN
        - SWIPED
        - KEYED
        - VOICE
        - VAULTED
        - OFFLINE_SWIPED
        - OFFLINE_KEYED
        - EMV_CONTACT
        - EMV_CONTACTLESS
        - MSD_CONTACTLESS
        - PINPAD_MANUAL_ENTRY
        - QR_CODE
        - SCANNED
        - THREEDSECURE
      title: CardEntryType
      type: string
    CardTransactionState:
      description: >-
        -> CLOSED if the payment is a sale (type AUTH) or auth/pre-auth (type
        PREAUTH) with captured=true. PENDING if the payment is a auth/pre-auth
        (type PREAUTH) with captured=false/null.
      enum:
        - UNKNOWN
        - PENDING
        - CLOSED
      title: CardTransactionState
      type: string
    CardTransactionType:
      description: >-
        -> A sale will have a type of AUTH An auth or pre-auth will have a type
        of PREAUTH
      enum:
        - UNKNOWN
        - AUTH
        - PREAUTH
        - PREAUTHCAPTURE
        - ADJUST
        - VOID
        - VOIDRETURN
        - RETURN
        - REFUND
        - NAKEDREFUND
        - GETBALANCE
        - BATCHCLOSE
        - ACTIVATE
        - BALANCE_LOCK
        - LOAD
        - CASHOUT
        - CASHOUT_ACTIVE_STATUS
        - REDEMPTION
        - REDEMPTION_UNLOCK
        - RELOAD
        - CASH_ADVANCE
        - VOID_CREDIT
        - REFUND_CREDIT
        - INTERNET_ACTIVATE
        - TOKEN_REQUEST
        - VERIFICATION
      title: CardTransactionType
      type: string
    VaultedCard:
      properties:
        cardholderName:
          $ref: '#/components/schemas/CardholderName'
        first6:
          $ref: '#/components/schemas/CardFirst6'
        last4:
          $ref: '#/components/schemas/CardLast4'
        expirationDate:
          $ref: '#/components/schemas/CardExpirationDate'
        token:
          $ref: '#/components/schemas/CardToken'
      title: VaultedCard
      type: object
    CardTransaction:
      properties:
        cardholderName:
          $ref: '#/components/schemas/CardholderName'
        first6:
          $ref: '#/components/schemas/CardFirst6'
        last4:
          $ref: '#/components/schemas/CardLast4'
        authCode:
          description: |
            Authorization code (if successful)
          maxLength: 255
          type: string
        avsResult:
          $ref: '#/components/schemas/AvsResult'
        begBalance:
          format: int64
          type: integer
        captured:
          description: >-
            -> For an auth or pre-auth (type PREAUTH) true  - the payment has
            been captured through the Gateway false - the payment is ready to be
            captured, but hasn't been captured yet. null  - the payment is not
            ready to be captured, or has been voided.

            For a sale (type AUTH) false  - default state. null   - the payment
            has been voided.
          type: boolean
        cardType:
          $ref: '#/components/schemas/CardType'
        currency:
          description: |
            Currency code
          maxLength: 3
          type: string
        endBalance:
          format: int64
          type: integer
        entryType:
          $ref: '#/components/schemas/CardEntryType'
        extra:
          additionalProperties:
            type: string
          description: |
            Extra info to be stored as part of gateway/card transaction
          type: object
        referenceId:
          maxLength: 32
          type: string
        state:
          $ref: '#/components/schemas/CardTransactionState'
        token:
          $ref: '#/components/schemas/CardToken'
        transactionNo:
          maxLength: 255
          type: string
        type:
          $ref: '#/components/schemas/CardTransactionType'
        vaultedCard:
          $ref: '#/components/schemas/VaultedCard'
      title: CardTransaction
      type: object
    Reference:
      properties:
        id:
          description: |
            Unique identifier
          maxLength: 13
          type: string
      title: Reference
      type: object
    Credit:
      properties:
        amount:
          format: int64
          maximum: 999999999
          minimum: 1
          type: integer
        cardTransaction:
          $ref: '#/components/schemas/CardTransaction'
        createdTime:
          description: |
            Time payment was recorded on server
          format: int64
          type: integer
        device:
          $ref: '#/components/schemas/Reference'
        employee:
          $ref: '#/components/schemas/Reference'
        id:
          description: |
            Unique identifier
          type: string
        taxAmount:
          description: |
            Amount paid in tax
          format: int64
          type: integer
      title: Credit
      type: object
    CreditResponse:
      properties:
        credit:
          $ref: '#/components/schemas/Credit'
      title: CreditResponse
    ReceiptDeliveryOption:
      properties:
        additionalData:
          description: >
            Additional data that can be passed in the request for certain
            delivery types. For method EMAIL the additionalData will
            pre-populate the email field

            in the customer facing UI. For method SMS the additionalData will
            pre-populate the phone number field in the customer facing UI.
          type: string
        method:
          enum:
            - NO_RECEIPT
            - PRINT
            - EMAIL
            - SMS
          type: string
      title: ReceiptDeliveryOption
    CreditReceiptDeliveryRequest:
      properties:
        deliveryOption:
          $ref: '#/components/schemas/ReceiptDeliveryOption'
        printJobId:
          type: string
      title: CreditReceiptDeliveryRequest
      type: object
    ReceiptDeliveryResponse:
      properties:
        message:
          type: string
        printJobId:
          type: string
        printJobStatus:
          type: string
      title: ReceiptDeliveryResponse
      type: object
    OpenCashDrawerRequest:
      properties:
        cashDrawerId:
          description: >-
            An id obtained from the list of ids in the retrieve cash drawers
            call, or null for default.
          type: string
        reason:
          description: The reason for opening the cash drawer
          type: string
      title: OpenCashDrawerRequest
      type: object
    OpenCashDrawerResponse:
      properties:
        cashDrawerId:
          description: >-
            The id of the cash drawer that was signaled to open. Note that a
            successful response actually indicates that the the cash drawer
            likely opened, but could have failed due to mechanical/electrical
            issues or because that cash drawer is not actually connected, or it
            may simply be locked.
          type: string
      title: OpenCashDrawerResponse
      type: object
    CashDrawer:
      properties:
        id:
          description: String which uniquely identifies a cash drawer
          type: string
        name:
          type: string
        number:
          description: The drawer number, starting at 1.
          format: int32
          type: integer
      title: CashDrawer
      type: object
    CashDrawersResponse:
      properties:
        drawers:
          items:
            $ref: '#/components/schemas/CashDrawer'
          type: array
      title: CashDrawersResponse
      type: object
    CustomActivityRequest:
      properties:
        action:
          description: The Intent action used to launch the Activity.
          type: string
        block:
          default: true
          description: >-
            Whether or not the operation should wait for the launched activity
            to complete, or return immediately after launching.
          type: boolean
        payload:
          description: >-
            Additional payload data packaged with the starting intent for the
            activity.
          type: string
      required:
        - action
      title: CustomActivityRequest
      type: object
    CustomActivityResponse:
      properties:
        payload:
          description: >-
            Payload data provided by the completed Android activity.  Note that
            this field will not be set if the request was for a non-blocking
            activity.
          type: string
      title: CustomActivityResponse
      type: object
    Device:
      properties:
        id:
          description: |
            Unique identifier
          maxLength: 13
          type: string
        model:
          maxLength: 64
          type: string
        productName:
          type: string
        serial:
          description: |
            The device's serial number
          maxLength: 32
          type: string
      title: Device
      type: object
    DevicesResponse:
      properties:
        devices:
          items:
            $ref: '#/components/schemas/Device'
          type: array
      title: DevicesResponse
      type: object
    DisplayRequest:
      description: Used when calling a device endpoint that needs a display message.
      example:
        beep: true
        text: Message to display to a customer
      properties:
        beep:
          description: >-
            A true/false flag that indicates if a beep should be played when the
            text is initially displayed.
          type: boolean
        text:
          type: string
      required:
        - text
      title: DisplayRequest
      type: object
    DisplayDiscount:
      properties:
        amount:
          description: The amount of the discount
          type: string
        name:
          description: Informative title to differentiate different discounts
          type: string
      title: DisplayDiscount
      type: object
    DisplayModification:
      properties:
        amount:
          description: An additional string that can be used to add more description
          type: string
        name:
          description: Informative title to differentiate different modifiers
          type: string
      title: DisplayModification
      type: object
    DisplayLineItem:
      properties:
        binName:
          description: A way to "bin" common items under a category
          type: string
        discount:
          $ref: '#/components/schemas/DisplayDiscount'
        modifiers:
          description: Array of modifications applied to a single line item
          items:
            $ref: '#/components/schemas/DisplayModification'
          type: array
        name:
          type: string
        note:
          description: A way to describe the line item or discounts in more detail
          type: string
        price:
          description: The cost associated with the line item.
          type: string
        quantity:
          type: string
      title: DisplayLineItem
      type: object
    DisplayPayment:
      properties:
        amount:
          type: string
        label:
          type: string
      title: DisplayPayment
      type: object
    DisplayOrderRequest:
      example:
        discounts:
          - amount: 10%
            name: Student
        lineItems:
          - name: Item 1
            price: $1.00
          - name: Item 2
            price: $2.00
        subtotal: $2.70
        tax: $0.18
        total: $2.88
      properties:
        amountRemaining:
          description: >-
            If a previous payment has been made then there could be a remaining
            amount that the customer still owes. For this to be displayed there
            must be at least one DisplayPayment in the payments array. The
            provided amounts are not calculated in anyway and must be passed
            exactly as intended to be displayed.
          type: string
        discounts:
          description: An array of discounts that lower the cost of the order.
          items:
            $ref: '#/components/schemas/DisplayDiscount'
          type: array
        lineItems:
          description: An array of individual items that make up the order.
          items:
            $ref: '#/components/schemas/DisplayLineItem'
          type: array
        payments:
          description: An array of processed payments already applied to the order.
          items:
            $ref: '#/components/schemas/DisplayPayment'
          type: array
        serviceChargeAmount:
          description: >-
            An additional charge applied to the order for extra services
            provided.
          type: string
        serviceChargeName:
          description: >-
            Descriptive title that informs the customer of what extra services
            are included in the order.
          type: string
        subtotal:
          description: >-
            The total before tax, surcharges, order discounts and other things
            are included.
          type: string
        tax:
          description: >-
            An amount of the order that will be ear marked for paying government
            taxes.
          type: string
        total:
          description: >-
            The sum of all line items, amounts, discounts, taxes, surcharges and
            anything else.
          type: string
      title: DisplayOrderRequest
      type: object
    PingResponse:
      properties:
        connected:
          description: The result of a ping request
          type: boolean
      title: PingResponse
      type: object
    PrintJobStatus:
      enum:
        - IN_QUEUE
        - PRINTING
        - DONE
        - ERROR
        - UNKNOWN
        - NOT_FOUND
      title: PrintJobStatus
      type: string
    PrintJobStatusResponse:
      properties:
        printJobId:
          type: string
        status:
          $ref: '#/components/schemas/PrintJobStatus'
      title: PrintJobStatusResponse
      type: object
    PrintImageRequest:
      properties:
        image:
          description: Base-64 encoded image data
          type: string
        printDeviceId:
          description: >-
            An id obtained from the list of ids in the retrieve printers call,
            or null for default.
          type: string
        printJobId:
          description: A unique id for the request
          type: string
      title: PrintImageRequest
      type: object
    PrintImageResponse:
      properties:
        printJobId:
          description: The requestId
          type: string
        status:
          $ref: '#/components/schemas/PrintJobStatus'
      title: PrintImageResponse
      type: object
    PrintTextRequest:
      properties:
        printDeviceId:
          description: >-
            An id obtained from the list of ids in the retrieve printers call,
            or null for default.
          type: string
        printJobId:
          description: A unique id for the request
          type: string
        text:
          items:
            type: string
          type: array
      title: PrintTextRequest
      type: object
    PrintTextResponse:
      properties:
        printJobId:
          description: The requestId
          type: string
        status:
          $ref: '#/components/schemas/PrintJobStatus'
      title: PrintTextResponse
      type: object
    PrinterType:
      enum:
        - ORDER
        - RECEIPT
        - FISCAL
        - LABEL
      type: string
      title: PrinterType
    Printer:
      properties:
        id:
          description: Unique identifier
          type: string
        ipAddress:
          description: The IP Address of a network printer
          type: string
        model:
          type: string
        name:
          type: string
        network:
          description: >
            True if the printer is a network printer, and false if the printer
            is internal or connected via USB.
          type: boolean
        type:
          $ref: '#/components/schemas/PrinterType'
      title: Printer
      type: object
    PrintersResponse:
      properties:
        printers:
          items:
            $ref: '#/components/schemas/Printer'
          type: array
      title: PrintersResponse
      type: object
    ConfirmationRequest:
      description: >-
        Used when calling a device endpoint that needs to solicit confirmation
        from the user.
      example:
        acceptText: 'Yes'
        rejectText: 'No'
        text: Would you like to continue?
      properties:
        acceptText:
          description: Label text displayed on the button for positive confirmation
          type: string
        beep:
          description: >-
            A true/false flag that indicates if a beep should be played when the
            screen is initially displayed.
          type: boolean
        rejectText:
          description: Label text displayed on the button for negative confirmation
          type: string
        text:
          type: string
      required:
        - text
      title: ConfirmationRequest
      type: object
    BooleanResponse:
      description: A true/false response
      example:
        response: true
      properties:
        response:
          type: boolean
      title: BooleanResponse
      type: object
    FormatDisplayRequest:
      description: Message used to call to the display endpoint sends a text string.
      example:
        format: MONTHYEAR
        text: Enter card expiration date
      properties:
        beep:
          description: >-
            A true/false flag that indicates if a beep should be played when the
            screen is initially displayed.
          type: boolean
        format:
          description: |-
            The data format to be used for the prompt.
            The device will show a format-appropriate keyboard for each value.
          enum:
            - PHONE
            - AMOUNT
            - MONTHYEAR
            - TEXT
          type: string
        text:
          type: string
      required:
        - format
        - text
      title: FormatDisplayRequest
      type: object
    TextResponse:
      description: ''
      example:
        response: mike@clover.com
      properties:
        response:
          type: string
      title: TextResponse
      type: object
    SignatureFormat:
      description: >-
        * `PNG` - The image data will be a PNG image in base-64 format.

        Example: "RXhhbXBsZSBpbWFnZQ=="


        * `JPG` - The image data will be a Jpeg image in base-64 format.

        Example: "RXhhbXBsZSBpbWFnZQ=="


        * `BMP` - The image data will be a Bitmap image in base-64 format.

        Example: "RXhhbXBsZSBpbWFnZQ=="


        * `SVG` - The image data will be the HTML representation of an SVG
        element.

        Example: "<svg>...</svg>"


        * `RAW` - The image data will be an array of array of points in JSON
        format.

        Example:
        "[[[10,0],[20,20],[0,20],[10,0]],[[20,0],[30,20],[40,0],[20,0]]]"
      enum:
        - PNG
        - JPG
        - BMP
        - SVG
        - RAW
      title: SignatureFormat
      type: string
    SignatureRequest:
      description: Message used to call to the display endpoint sends a text string.
      example:
        beep: true
        signatureFormat: JPG
        text: some text
      properties:
        gzip:
          description: >-
            A flag that indicates true if the data should be gzipped before
            performing the base64 encoding
          type: boolean
        signatureFormat:
          $ref: '#/components/schemas/SignatureFormat'
      title: SignatureRequest
      type: object
    Signature:
      description: The signature
      example:
        format: BMP
        gzip: true
        response: <base64-encoded, gzipped data>
      properties:
        data:
          description: base64-encoded, optionally gzipped data
          type: string
        format:
          $ref: '#/components/schemas/SignatureFormat'
        gzip:
          description: >-
            A flag that indicates true if the data was gzipped before performing
            the base64 encoding
          type: boolean
      required:
        - gzip
      title: Signature
      type: object
    SignatureResponse:
      description: The response to a request for a signature
      example:
        signature:
          format: BMP
          gzip: true
          response: <base64-encoded, gzipped data>
      properties:
        signature:
          $ref: '#/components/schemas/Signature'
      title: SignatureResponse
      type: object
    TipSuggestion:
      description: >-
        A configuration for tip suggestions. Each suggestion can include either
        an `amount` or `percentage`.
      example:
        name: 20 percent
        percentage: 20
      properties:
        amount:
          description: An absolute amount to use for the suggestion.
          format: int32
          type: integer
        name:
          description: >-
            A string to display on the suggestion. If omitted, either the amount
            of the tip, or the percentage will be displayed.
          type: string
        percentage:
          description: A percentage to use when calculating the suggestion.
          format: int32
          type: integer
      title: TipSuggestion
      type: object
    TipDisplayRequest:
      description: >-
        A request to display the tip screen with optional message, base amount
        and tip configurations.
      example:
        baseAmount: 23
        tipSuggestions:
          - name: Best service ever!
            percentage: 25
          - name: Really good service
            percentage: 20
          - name: Good service
            percentage: 18
          - name: Ok service
            percentage: 15
          - amount: 200
            name: Two Dollars
          - name: Two Fifty
            percentage: 250
      properties:
        baseAmount:
          description: >-
            For percentage tip suggestions, this is the amount the calculated
            tips will be based upon. This is an integer with 2 decimal points
            implied, for example 100 = 1.00
          type: integer
        tipSuggestions:
          description: >-
            A set of tip configurations to use when displaying the tip screen.
            If omitted defaults will be used. The options 'custom tip' and 'no
            tip' are always offered.
          items:
            $ref: '#/components/schemas/TipSuggestion'
          type: array
      title: TipDisplayRequest
      type: object
    IntegerResponse:
      description: This is an integer with 2 decimal points implied, for example 100 = 1.00
      example:
        response: 100
      properties:
        response:
          format: int32
          type: integer
      title: IntegerResponse
      type: object
    ReceiptOptionsRequest:
      properties:
        deliveryOptions:
          description: >
            A list of options that will be displayed.  Note that the options of
            type 'NO_RECEIPT' and 'PRINT' are always present and will always

            be available regardless of whether or not they are present.
          items:
            $ref: '#/components/schemas/ReceiptDeliveryOption'
        message:
          description: |
            Message to display on the receipt options screen.
          maxLength: 500
          type: string
      title: ReceiptOptionsRequest
    ReceiptOptionsResponse:
      properties:
        deliveryOption:
          items:
            $ref: '#/components/schemas/ReceiptDeliveryOption'
          type: array
      type: object
      title: ReceiptOptionsResponse
    SendDebugRequest:
      description: Request logs from the device.
      title: SendDebugRequest
      type: object
      properties:
        message:
          description: >-
            A user provided message that is written to the device logs prior to
            upload
          type: string
    DeviceStatusResponse:
      properties:
        status:
          enum:
            - IDLE
            - BUSY
            - WAITING_FOR_CUSTOMER
            - UNKNOWN
          type: string
      title: DeviceStatusResponse
      type: object
    OfflineOptions:
      properties:
        allowOfflinePayment:
          default: false
          description: If true then offline payments are allowed.
          type: boolean
        approveOfflinePaymentWithoutPrompt:
          default: false
          description: If true then offline payments will be approved without a prompt.
          type: boolean
        forceOfflinePayment:
          default: false
          description: If true then the payment will be taken offline.
          type: boolean
      title: OfflineOptions
      type: object
    DevicePaymentOptions:
      properties:
        cardEntryMethods:
          $ref: '#/components/schemas/CardEntryMethods'
        cardNotPresent:
          $ref: '#/components/schemas/CardNotPresent'
        disableRestartTransactionOnFail:
          $ref: '#/components/schemas/DisableRestartTransactionOnFail'
        disableCashback:
          default: false
          description: If true, cashback selection is disabled for DEBIT.
          type: boolean
        offlineOptions:
          $ref: '#/components/schemas/OfflineOptions'
        suppressConfirmation:
          default: false
          description: >-
            The flag used to determine if the default Clover user confirmation
            screen will be displayed confirming the user authorization of card
            on file tokenization.  If set to true, the integrator is required to
            provide their own confirmation screen prior to performing this
            operation.  Note that this field is only significant if vaultCard is
            set to 'true'
          type: boolean
        vaultCard:
          default: false
          description: >-
            If true, the secure payments application will tokenize the card as
            part of the transaction processing to be used in subsequent
            transactions.
          type: boolean
      title: DevicePaymentOptions
      type: object
    ExternalPaymentId:
      description: >
        A unique id assigned by the POS to identify this transaction. Critical
        for reconciliation and recovery.
      maxLength: 32
      title: ExternalPaymentId
      type: string
    PayRequest:
      properties:
        amount:
          description: The amount of the payment, in cents.
          format: int64
          maximum: 999999999
          minimum: 1
          type: integer
        capture:
          default: true
          description: >-
            If set to `true` (auth), the payment is automatically and
            immediately captured, but it may be adjustable until closeout runs
            at which time it will be settled/closed. If set to `false`
            (pre-auth), the payment will not be automatically captured, and a
            subsequent call to capture is required. Once captured, the payment
            will be settled/closed the next time closeout runs. NOTE:  This
            value is ignored if the `final` field is set to true.
          type: boolean
        deviceOptions:
          $ref: '#/components/schemas/DevicePaymentOptions'
        externalPaymentId:
          $ref: '#/components/schemas/ExternalPaymentId'
        externalReferenceId:
          description: >-
            An ID that can be passed to the merchant's gateway and ultimately
            appears in settlement records.
          maxLength: 12
          type: string
        final:
          default: false
          description: >-
            If set to `true`, the payment will run as a closed, non-adjustable
            transaction (sale), the `capture` field will be ignored, and the tip
            will be set to the amount in the `tipAmount` field, or 0 if the
            `tipAmount` is not specified.  If set to `false` then the `capture`
            flag is evaluated to determine if the payment will be automatically
            captured or if a subsequent call to capture is required.  In
            addition, if set to `false` setting the `tipAmount` field will
            result in a validation error.
          type: boolean
        taxAmount:
          description: The tax amount, in cents.
          format: int64
          maximum: 999999999
          minimum: 0
          type: integer
        tipAmount:
          description: >-
            The tip amount, in cents.  NOTE:  If the `final` field is set to
            `false`, setting this field will result in a validation error.
          format: int64
          maximum: 999999999
          minimum: 0
          type: integer
        vaultedCard:
          $ref: '#/components/schemas/VaultedCard'
      required:
        - amount, externalPaymentId
      title: PayRequest
      type: object
    Result:
      enum:
        - SUCCESS
        - FAIL
        - INITIATED
        - VOIDED
        - VOIDING
        - VOID_FAILED
        - AUTH
        - AUTH_COMPLETED
        - DISCOUNT
        - OFFLINE_RETRYING
        - PENDING
      title: Result
      type: string
    Tender:
      properties:
        id:
          description: |
            Unique identifier
          maxLength: 13
          type: string
        labelKey:
          description: |
            Label Key
          maxLength: 127
          type: string
        label:
          description: |
            Label
          type: string
        opensCashDrawer:
          description: |
            If this tender opens the cash drawer
          type: boolean
      title: Tender
      type: object
    AdditionalChargeType:
      enum:
        - INTERAC
        - CREDIT_SURCHARGE
        - CONVENIENCE_FEE
        - INTERAC_V2
      title: AdditionalChargeType
      type: string
    AdditionalChargeAmount:
      properties:
        id:
          description: |
            Additional charge id
          maxLength: 13
          type: string
        amount:
          description: |
            Amount of the additional charge
          format: int64
          minimum: 0
          type: integer
        rate:
          description: |
            Percent rate of the additional charge times 10000
          format: int64
          minimum: 0
          type: integer
        type:
          $ref: '#/components/schemas/AdditionalChargeType'
      title: AdditionalChargeAmount
      type: object
    VoidReason:
      enum:
        - USER_CANCEL
        - TRANSPORT_ERROR
        - REJECT_SIGNATURE
        - REJECT_PARTIAL_AUTH
        - NOT_APPROVED
        - FAILED
        - AUTH_CLOSED_NEW_CARD
        - DEVELOPER_PAY_PARTIAL_AUTH
        - REJECT_DUPLICATE
        - REJECT_OFFLINE
        - GIFTCARD_LOAD_FAILED
        - USER_GIFTCARD_LOAD_CANCEL
        - DEVELOPER_PAY_TIP_ADJUST_FAILED
        - USER_CUSTOMER_CANCEL
        - FRAUD
        - REJECT_GREATER_APPROVED_AMOUNT
      title: VoidReason
      type: string
    Refund:
      properties:
        additionalCharges:
          items:
            $ref: '#/components/schemas/AdditionalChargeAmount'
          type: array
        amount:
          description: |
            Total amount refunded, including tax and tip
          format: int64
          type: integer
        cardTransaction:
          $ref: '#/components/schemas/CardTransaction'
        createdTime:
          description: |
            The time when the refund was recorded on the server
          format: int64
          type: integer
        device:
          $ref: '#/components/schemas/Reference'
        employee:
          $ref: '#/components/schemas/Reference'
        externalReferenceId:
          description: |
            The external reference id if associated with the refund
          maxLength: 12
          type: string
        id:
          description: |
            Unique identifier
          type: string
        orderRef:
          $ref: '#/components/schemas/Reference'
        payment:
          $ref: '#/components/schemas/Reference'
        taxAmount:
          description: |
            Tax amount refunded
          format: int64
          type: integer
        tipAmount:
          description: |
            Tip amount refunded
          format: int64
          type: integer
        voidReason:
          $ref: '#/components/schemas/VoidReason'
        voided:
          type: boolean
      title: Refund
    DCCInfo:
      properties:
        baseAmount:
          format: int64
          type: integer
        baseCurrencyCode:
          type: string
        dccApplied:
          type: boolean
        dccEligible:
          type: boolean
        exchangeRate:
          format: double
          type: number
        exchangeRateId:
          type: string
        exchangeRateSourceName:
          type: string
        exchangeRateSourceTimeStamp:
          type: string
        foreignAmount:
          format: int64
          type: integer
        foreignCurrencyCode:
          type: string
        inquiryRateId:
          format: int64
          type: integer
        marginRatePercentage:
          type: string
        rateRequestId:
          type: string
      title: DccInfo
      type: object
    Payment:
      properties:
        id:
          description: |
            Unique identifier
          maxLength: 13
          minLength: 13
          type: string
        result:
          $ref: '#/components/schemas/Result'
        note:
          maxLength: 255
          type: string
        amount:
          description: |
            Total amount paid
          format: int64
          maximum: 999999999
          minimum: 1
          type: integer
        tipAmount:
          description: |
            Amount paid in tips
          format: int64
          type: integer
        taxAmount:
          description: |
            Amount paid in tax
          format: int64
          type: integer
        cashTendered:
          description: |
            Amount of cash given by the customer
          format: int64
          type: integer
        cashbackAmount:
          description: |
            Amount given back in a cash back transaction
          format: int64
          type: integer
        offline:
          default: false
          type: boolean
        createdTime:
          description: |
            Time payment was recorded on server
          format: int64
          type: integer
        clientCreatedTime:
          description: |
            Time payment was recorded with client
          format: int64
          type: integer
        modifiedTime:
          description: |
            Last modified time of the payment
          format: int64
          type: integer
        tender:
          description: >
            The tender type associated with this payment, e.g. credit card,
            cash, etc.
          $ref: '#/components/schemas/Tender'
        cardTransaction:
          description: |
            Information about the card used for credit/debit card payments
          $ref: '#/components/schemas/CardTransaction'
        refunds:
          items:
            $ref: '#/components/schemas/Refund'
          type: array
        additionalCharges:
          items:
            $ref: '#/components/schemas/AdditionalChargeAmount'
          type: array
        voidPaymentRef:
          description: |
            If voided, the corresponding successful payment, and vice versa
          $ref: '#/components/schemas/Reference'
        voidReason:
          description: |
            If voided, the reason why (when available)
          $ref: '#/components/schemas/VoidReason'
        externalReferenceId:
          description: >
            The external reference id such as Invoice number, if associated with
            the payment
          maxLength: 12
          type: string
        externalPaymentId:
          $ref: '#/components/schemas/ExternalPaymentId'
        employee:
          description: |
            The employee who processed the payment
          $ref: '#/components/schemas/Reference'
        order:
          description: |
            The order with which the payment is associated
          $ref: '#/components/schemas/Reference'
        dccInfo:
          description: |
            Dynamic Currency Conversion information
          $ref: '#/components/schemas/DCCInfo'
        device:
          description: >
            Device which processed the transaction for this payment, a 128-bit
            UUID, not a normal base-13 Clover ID
          $ref: '#/components/schemas/Device'
      title: Payment
      type: object
    PaymentIssueDuplicate:
      properties:
        description:
          type: string
      description: |
        Present if the payment was flagged as a duplicate.
      title: PaymentIssueDuplicate
    PaymentIssueOffline:
      properties:
        description:
          type: string
      description: |
        Present if the payment was flagged as being taken offline.
      title: PaymentIssueOffline
    PaymentIssuePartialPayment:
      description: |
        Present if the payment was flagged as a partial payment.
      properties:
        description:
          type: string
        actualAmount:
          format: int64
          maximum: 999999999
          minimum: 0
          type: integer
        requestedAmount:
          format: int64
          maximum: 999999999
          minimum: 1
          type: integer
      title: PaymentIssuePartialPayment
      type: object
    PaymentIssueSignature:
      description: >-
        -> Present if a signature was taken with the payment. If the signature
        was taken on the device it will be provided in the signature property.
        If the signature was taken on the receipt, the signature property will
        be null.
      properties:
        description:
          type: string
        signature:
          $ref: '#/components/schemas/Signature'
      title: PaymentIssueSignature
      type: object
    PaymentIssueTokenizationFailure:
      properties:
        description:
          type: string
      description: >
        Present if tokenization was requested and failed, but the payment was
        successful.
      title: PaymentIssueTokenizationFailure
    PaymentIssues:
      properties:
        duplicate:
          $ref: '#/components/schemas/PaymentIssueDuplicate'
        offline:
          $ref: '#/components/schemas/PaymentIssueOffline'
        partialPayment:
          $ref: '#/components/schemas/PaymentIssuePartialPayment'
        signature:
          $ref: '#/components/schemas/PaymentIssueSignature'
        tokenizationFailure:
          $ref: '#/components/schemas/PaymentIssueTokenizationFailure'
      title: PaymentIssues
      type: object
    PayResponse:
      properties:
        payment:
          $ref: '#/components/schemas/Payment'
        issues:
          $ref: '#/components/schemas/PaymentIssues'
        token:
          $ref: '#/components/schemas/TokenResponse'
      title: PayResponse
      type: object
    PaymentResponse:
      properties:
        payment:
          $ref: '#/components/schemas/Payment'
      title: PaymentResponse
      type: object
    CaptureRequest:
      properties:
        amount:
          description: The amount to capture, in cents.
          format: int64
          maximum: 999999999
          minimum: 0
          type: integer
        tipAmount:
          description: The tip amount, in cents.
          format: int64
          maximum: 999999999
          minimum: 0
          type: integer
      required:
        - amount
      title: CaptureRequest
      type: object
    PaymentId:
      description: A Clover payment UUID
      maxLength: 13
      minLength: 13
      title: PaymentId
      type: string
    CaptureResponse:
      properties:
        amount:
          description: The amount, in cents.
          format: int64
          type: integer
        paymentId:
          $ref: '#/components/schemas/PaymentId'
        tipAmount:
          description: The tip amount, in cents.
          format: int64
          type: integer
      title: CaptureResponse
      type: object
    IncrementAuthRequest:
      properties:
        amount:
          description: The amount to increment the auth, in cents.
          format: int64
          maximum: 999999999
          minimum: 0
          type: integer
      required:
        - amount
      title: IncrementAuthRequest
      type: object
    Authorization:
      properties:
        payment:
          $ref: '#/components/schemas/Payment'
        amount:
          description: The amount, in cents.
          format: int64
          type: integer
        authCode:
          description: |
            Authorization code (if successful)
          type: string
        cardType:
          $ref: '#/components/schemas/CardType'
        closingPayment:
          $ref: '#/components/schemas/Payment'
        createdTime:
          description: |
            Time payment was recorded on server
          format: int64
          type: integer
        id:
          description: |
            Unique identifier
          type: string
      title: Authorization
    IncrementAuthResponse:
      properties:
        authorization:
          $ref: '#/components/schemas/Authorization'
        paymentId:
          $ref: '#/components/schemas/PaymentId'
      title: IncrementAuthResponse
      type: object
    RefundRequest:
      properties:
        amount:
          description: The amount to be refunded, in cents, ignored if fullRefund is true.
          format: int64
          maximum: 999999999
          minimum: 1
          type: integer
        fullRefund:
          default: false
          description: >-
            true if a full refund should be performed. If true, amount will be
            ignored.
          type: boolean
      title: RefundRequest
      type: object
    RefundResponse:
      properties:
        refund:
          $ref: '#/components/schemas/Refund'
        payment:
          $ref: '#/components/schemas/Payment'
        paymentId:
          $ref: '#/components/schemas/PaymentId'
      title: RefundResponse
      type: object
    TipAdjustResponse:
      properties:
        tipAmount:
          description: The tip amount, in cents.
          format: int64
          type: integer
      title: TipAdjustResponse
      type: object
    VoidRequest:
      properties:
        voidReason:
          $ref: '#/components/schemas/VoidReason'
      required:
        - voidReason
      title: VoidRequest
      type: object
    VoidResponse:
      properties:
        payment:
          $ref: '#/components/schemas/Payment'
        paymentId:
          $ref: '#/components/schemas/PaymentId'
        voidReason:
          $ref: '#/components/schemas/VoidReason'
        voidStatus:
          enum:
            - SENT_TO_SERVER
            - IN_DEVICE_QUEUE
          type: string
      title: VoidResponse
      type: object
    TokenV2Request:
      description: A request to generate a token for use in subsequent transactions.
      properties:
        cardEntryMethods:
          description: A collection of supported card entry methods for the operation.
          items:
            $ref: '#/components/schemas/CardEntryMethod'
          type: array
        suppressConfirmation:
          default: false
          description: >-
            The flag used to determine if the default Clover user confirmation
            screen will be displayed confirming the user authorization of card
            on file tokenization.  If set to true, the integrator is required to
            provide their own confirmation screen prior to performing this
            operation.
          type: boolean
      title: TokenV2Request
      type: object
    ErrorCode:
      enum:
        - amount_too_small
        - card_declined
        - payment_already_captured
        - payment_already_refunded
        - email_invalid
        - invalid_amount
        - invalid_external_payment_id
        - invalid_external_reference_id
        - invalid_tip_amount
        - invalid_tax_amount
        - invalid_cvc
        - invalid_expiry_month
        - invalid_expiry_year
        - invalid_number
        - missing
        - offline_payment_not_allowed
        - parameter_invalid_empty
        - parameter_invalid_integer
        - parameter_invalid_string_blank
        - parameter_invalid_string_empty
        - parameter_missing
        - parameter_unknown
        - processing_error
        - resource_missing
        - invalid_request
      title: ErrorCode
      type: string
    ErrorType:
      enum:
        - action_not_allowed
        - api_connection_error
        - api_error
        - authentication_error
        - card_error
        - idempotency_error
        - invalid_request_error
        - validation_error
        - unknown
      title: ErrorType
      type: string
    OperationId:
      type: string
      enum:
        - READ_CARD
        - REQUEST_TOKEN
        - CREDIT
        - GET_CREDIT
        - DELIVER_CREDIT_RECEIPT
        - CANCEL
        - OPEN_ATTACHED_CASH_DRAWER
        - RETRIEVE_CASH_DRAWERS
        - CUSTOM_ACTIVITY
        - GET_DEVICES
        - DISPLAY_MESSAGE
        - DISPLAY_ORDER
        - PING_DEVICE_GET
        - PING_DEVICE
        - GET_PRINT_JOB_STATUS
        - PRINT_IMAGE_ON_DEVICE
        - PRINT_TEXT_ON_DEVICE
        - RETRIEVE_PRINTERS_GET
        - RETRIEVE_PRINTERS
        - RETRIEVE_PRINTERS_V2
        - READ_CONFIRMATION
        - READ_INPUT
        - READ_SIGNATURE
        - READ_TIP
        - RECEIPT_OPTIONS
        - RESET_DEVICE
        - SEND_DEBUG
        - DEVICE_STATUS
        - SHOW_THANK_YOU
        - SHOW_WELCOME
        - PAY
        - GET_PAYMENT_BY_EXTERNAL_PAYMENT_ID
        - GET_PAYMENT
        - CAPTURE
        - INCREMENT_AUTH
        - DELIVER_PAYMENT_RECEIPT
        - REFUND
        - TIP_ADJUST_PAYMENT
        - VOID
        - DELIVER_VOID_RECEIPT
        - DELIVER_REFUND_RECEIPT
        - REQUEST_TOKEN_V2
  parameters:
    DeviceId:
      description: The Clover device to route the request to.
      in: header
      name: X-Clover-Device-Id
      required: true
      schema:
        type: string
    PosId:
      description: An identifier for the POS making the request.
      in: header
      name: X-POS-Id
      required: true
      schema:
        type: string
    Timeout:
      description: >-
        The amount of time, in seconds, that this operation will process before
        timing out. A value of 0 indicates no timeout will be enforced by Remote
        Pay, although protocol specified timeouts may still apply.
      in: header
      name: X-Clover-Timeout
      required: false
      schema:
        maximum: 300
        minimum: 0
        type: integer
    IdempotencyKeyOptional:
      description: The idempotency key transmitted during the request, if any.
      in: header
      name: Idempotency-Key
      required: false
      schema:
        type: string
    IdempotencyKey:
      description: The idempotency key transmitted during the request, if any.
      in: header
      name: Idempotency-Key
      required: true
      schema:
        type: string
  responses:
    '209':
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Operation was canceled.
    '400':
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: >-
        The request is invalid, and subsequent calls will continue to fail; do
        not repeat the call.
    '401':
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: >-
        An invalid bearer token has been provided. The call may be repeated if
        the provided bearer token is updated.
    '415':
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: >-
        The request is invalid, and contains request data in an unsupported
        format. This call may be repeated if the content is changed to a
        supported format.
    '500':
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: >-
        The request processing failed with an unknown error, and the processing
        state of the operation is indeterminate. Do not repeat the call without
        additional analysis.
    '501':
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: >-
        The device does not have the ability to respond to the requested
        operation; do not repeat the call.
    '503':
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: >-
        The device is not available because it is currently servicing another
        call. This can be repeated at a later time, or cancel may be called to
        end the current operation.
    '504':
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: >-
        The Device did not respond in a timely manner. This can be repeated at a
        later time.
