Shift4 Devices API

The Devices API from Shift4 — 13 operation(s) for devices.

Operations 14

POST /devices/promptsignature Request Signature #
POST /devices/promptconfirmation Prompt Confirmation #
POST /devices/termsandconditions Prompt Terms and Conditions #
POST /devices/lineitems Display Line Items #
DELETE /devices/lineitems Clear Line Items #
GET /devices/info Device Information #
POST /devices/initializereaders Initialize Readers #
POST /devices/reset Reset Device #
POST /devices/promptcardread Prompt Card Read #
POST /devices/promptinput Prompt for Input #
POST /devices/processform Display Custom Form #
POST /devices/print Print Receipts #
POST /devices/getstatus Get Device Status #
POST /devices/prompttip Prompt Tip #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/shift4-devices-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

shift4-devices-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.7.57
  title: Shift4 Payment Devices API
  contact:
    url: https://www.shift4.com/contact-us/
servers:
- url: https://api.shift4test.com/api/rest/v1
  description: Host Direct Test URL
- url: https://api.shift4api.net/api/rest/v1
  description: Host Direct Production URL
tags:
- name: Devices
paths:
  /devices/promptsignature:
    servers:
    - url: https://192.168.1.10:277/api/rest/v1
      description: Locally Installed UTG URL
    - url: https://192.168.1.20:8085/api/rest/v1
      description: Commerce Engine For On Premise URL
    - url: https://api.shift4test.com/api/rest/v1
      description: Commerce Engine For Cloud Test URL
    - url: https://api.shift4api.net/api/rest/v1
      description: Commerce Engine For Cloud Production URL
    post:
      tags:
      - Devices
      summary: Request Signature
      operationId: devicessignatures
      security:
      - AccessToken: []
      description: 'This function is used to request a prompt for signature on a UTG or Commerce Engine controlled PIN pad and returns the signature.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for more details on the various JSON body formats.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/devices_promptsignature_comengdevice'
              - $ref: '#/components/schemas/devices_promptsignature_comengcloud'
              - $ref: '#/components/schemas/devices_promptsignature_utgdevice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        signature:
                          $ref: '#/components/schemas/Signature'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/promptconfirmation:
    servers:
    - url: https://192.168.1.10:277/api/rest/v1
      description: Locally Installed UTG URL
    post:
      tags:
      - Devices
      summary: Prompt Confirmation
      operationId: devicespromptconfirmation
      security:
      - AccessToken: []
      description: 'This function is used to display text for a consumer’s confirmation on a UTG-controlled PIN pad.


        **Integration Methods:**

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
              - dateTime
              - device
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                device:
                  type: object
                  required:
                  - terminalId
                  properties:
                    terminalId:
                      $ref: '#/components/schemas/DeviceTerminalIdRequired'
                    promptConfirmation:
                      $ref: '#/components/schemas/DevicePromptConfirmation'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                            promptConfirmation:
                              $ref: '#/components/schemas/DevicePromptConfirmation'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/termsandconditions:
    servers:
    - url: https://192.168.1.10:277/api/rest/v1
      description: Locally Installed UTG URL
    post:
      tags:
      - Devices
      summary: Prompt Terms and Conditions
      operationId: devicestermsandconditions
      security:
      - AccessToken: []
      description: 'This function is used to display terms and conditions for a consumer to accept or decline on a Commerce Engine or UTG-controlled PIN pad.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/devices_termsandconditions_comengdevice'
              - $ref: '#/components/schemas/devices_termsandconditions_comengcloud'
              - $ref: '#/components/schemas/devices_termsandconditions_utgdevice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                            promptTermsAndConditions:
                              $ref: '#/components/schemas/DevicePromptTermsAndConditions'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/lineitems:
    servers:
    - url: https://192.168.1.10:277/api/rest/v1
      description: Locally Installed UTG URL
    post:
      tags:
      - Devices
      summary: Display Line Items
      operationId: deviceslineitems
      security:
      - AccessToken: []
      description: 'This function is used to display up to 10 line items on a UTG-controlled PIN pad. In additional Display Line Items requests, if the API Option APPENDLINEITEM is sent, the UTG will append the new line item(s) to the existing line item(s) displayed.


        **Integration Methods:**

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
              - dateTime
              - device
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                apiOptions:
                  $ref: '#/components/schemas/ApiOptions'
                device:
                  type: object
                  required:
                  - terminalId
                  - lineItems
                  properties:
                    terminalId:
                      $ref: '#/components/schemas/DeviceTerminalIdRequired'
                    lineItems:
                      $ref: '#/components/schemas/DeviceLineItemsArray'
            example:
              dateTime: '2021-04-15T09:18:23.283-07:00'
              device:
                lineItems:
                - Hamburger
                - Fries
                - Soda
                - Cookie
                terminalId: '1742'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
    delete:
      tags:
      - Devices
      summary: Clear Line Items
      operationId: devicesdeletelineitems
      security:
      - AccessToken: []
      description: 'This function is used to clear the line items displayed on a UTG-controlled PIN pad.


        *Note: The DELETE request does not support a request body. Sending an empty request body may result in an error.*


        **Integration Methods:**

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

        '
      parameters:
      - $ref: '#/components/parameters/TerminalID'
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/info:
    servers:
    - url: https://192.168.1.10:277/api/rest/v1
      description: Locally Installed UTG URL
    get:
      tags:
      - Devices
      summary: Device Information
      operationId: devicesinfo
      security:
      - AccessToken: []
      description: 'This function is used to request information regarding the status of a specific Commerce Engine or UTG-controlled PIN pad. Depending on the type of device in use, this request may return a variety of device information in the response, including the types of encryption keys injected on the device.


        *Note: The GET request does not support a request body. Sending an empty request body may result in an error.*


        **Integration Methods:**

        - Commerce Engine For On Premise

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

        '
      parameters:
      - $ref: '#/components/parameters/TerminalIDDevicesInfo'
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/devices_info_comeng'
                - $ref: '#/components/schemas/devices_info_utgingenico'
                - $ref: '#/components/schemas/devices_info_utgverifone'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/initializereaders:
    servers:
    - url: https://192.168.1.10:277/api/rest/v1
      description: Locally Installed UTG URL
    post:
      tags:
      - Devices
      summary: Initialize Readers
      operationId: devicesinitializereaders
      security:
      - AccessToken: []
      description: 'This function is used to request a card swipe, insert, tap (if applicable), etc. on a UTG-controlled PIN pad before an [Authorization](/apis/payments-platform-rest/openapi/transactions/transactionsauthorization) or [Sale/Purchase](/apis/payments-platform-rest/openapi/transactions/transactionssale) request.


        **Integration Methods:**

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
              - dateTime
              - device
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                device:
                  type: object
                  required:
                  - terminalId
                  properties:
                    terminalId:
                      $ref: '#/components/schemas/DeviceTerminalIdRequired'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/reset:
    servers:
    - url: https://192.168.1.10:277/api/rest/v1
      description: Locally Installed UTG URL
    post:
      tags:
      - Devices
      summary: Reset Device
      operationId: devicesreset
      security:
      - AccessToken: []
      description: 'This function is used to reset a Commerce Engine or UTG-controlled PIN pad to idle. When there is pending consumer input (e.g., waiting for the consumer to confirm the amount, swipe their card, select credit or debit, etc.), sending this request will cancel the request.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/devices_reset_comengdevice'
              - $ref: '#/components/schemas/devices_reset_utgdevice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/promptcardread:
    servers:
    - url: https://192.168.1.10:277/api/rest/v1
      description: Locally Installed UTG URL
    post:
      tags:
      - Devices
      summary: Prompt Card Read
      operationId: devicespromptcardread
      security:
      - AccessToken: []
      description: 'This function is used to prompt a P2PE-enabled, Commerce Engine or UTG controlled PIN pad to request a pass-through card swipe, causing the output of the swipe to be returned directly to the interface without any action or validation by Shift4 or the processor.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/devices_promptcardread_comengdevice'
              - $ref: '#/components/schemas/devices_promptcardread_comengcloud'
              - $ref: '#/components/schemas/devices_promptcardread_utgdevice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                oneOf:
                - title: Unencrypted Gift, Loyalty, or Employee Badge Data
                  properties:
                    result:
                      type: array
                      items:
                        type: object
                        properties:
                          dateTime:
                            $ref: '#/components/schemas/DateTime'
                          card:
                            type: object
                            properties:
                              entryMode:
                                $ref: '#/components/schemas/CardEntryModeResponseTrackOnly'
                              expirationDate:
                                type: integer
                                minLength: 3
                                maxLength: 4
                                format: MMYY
                                description: 'Card expiration date in MMYY format. This will only be returned for non-card brand cards such as gift cards and employee badge cards.


                                  This field will not be returned if the swipe data received is in a non-standard format.

                                  '
                              number:
                                type: string
                                maxLength: 32
                                description: 'The unencrypted card number. This will only be returned for non-card brand cards such as gift cards and employee badge cards.


                                  This field will not be returned if the swipe data received is in a non-standard format.

                                  '
                              trackData:
                                type: string
                                description: 'The raw track data read from the card swipe. This can contain track 1 data, track 2 data, or both. This will only be returned for non-card brand cards such as gift cards and employee badge cards.

                                  '
                          server:
                            $ref: '#/components/schemas/Server'
                - title: Encrypted Card Brand Data
                  properties:
                    result:
                      type: array
                      items:
                        type: object
                        properties:
                          dateTime:
                            $ref: '#/components/schemas/DateTime'
                          card:
                            type: object
                            properties:
                              entryMode:
                                $ref: '#/components/schemas/CardEntryModeResponseTrackOnly'
                              number:
                                $ref: '#/components/schemas/CardMaskedNumber'
                              type:
                                $ref: '#/components/schemas/CardTypeResp'
                          p2pe:
                            $ref: '#/components/schemas/P2PE'
                          server:
                            $ref: '#/components/schemas/Server'
              examples:
                unencryptedgiftcard:
                  summary: Unencrypted Gift Card
                  value:
                    result:
                    - dateTime: '2024-05-21T09:18:23.283-07:00'
                      card:
                        entryMode: '2'
                        expirationDate: 643
                        number: 0001366477393106
                        trackData: ;0001366477393106=430692960042575?
                      server:
                        name: Commerce Engine K
                unencryptedemployeecard:
                  summary: Unencrypted Employee Badge Data Card
                  value:
                    result:
                    - dateTime: '2024-05-21T09:18:23.283-07:00'
                      card:
                        entryMode: '2'
                        trackData: ;:<>4114952129?
                      server:
                        name: Commerce Engine K
                encryptedcard:
                  summary: Encrypted Card Brand Data
                  value:
                    result:
                    - dateTime: '2024-05-21T09:18:23.283-07:00'
                      card:
                        entryMode: '1'
                        number: XXXXXXXXXXXX6186
                        type: NS
                      p2pe:
                        data: a%B369989****6186^DC/TRACK1 ONLY^2212101**************************??b?c;FFFF49003614954000BB:1:0072:8B997BF3896636D43593897B86C58A4C7B684B69C5DC150FF53882A15C34C3FCBCEBCFEA0FA68FAC3F0148431B3C6470514A20A5104AF853BDF4D1BD8EBD0E9FAB493176BD2614DC
                        format: '03'
                      server:
                        name: U2API01CE
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/promptinput:
    servers:
    - url: https://192.168.1.10:277/api/rest/v1
      description: Locally Installed UTG URL
    post:
      tags:
      - Devices
      summary: Prompt for Input
      operationId: devicespromptinput
      security:
      - AccessToken: []
      description: 'This function is used to prompt a Commerce Engine or UTG-controlled PIN pad to collect a specified value from a consumer. The interface will specify the value based on the `device.promptInput.index` field. Each request will collect one specified value; when multiple values need to be collected, separate requests must be sent.


        **Integration Methods:**

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/devices_promptinput_comengdevice'
              - $ref: '#/components/schemas/devices_promptinput_comengcloud'
              - $ref: '#/components/schemas/devices_promptinput_utgdevice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                            promptInput:
                              $ref: '#/components/schemas/DevicePromptInput'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/processform:
    servers:
    - url: https://192.168.1.10:277/api/rest/v1
      description: Locally Installed UTG URL
    post:
      tags:
      - Devices
      summary: Display Custom Form
      operationId: devicesprocessform
      security:
      - AccessToken: []
      description: 'This function is used to display a custom form and text for a consumer’s input on a Commerce Engine or UTG controlled PIN pad.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/devices_processform_comengdevice'
              - $ref: '#/components/schemas/devices_processform_comengcloud'
              - $ref: '#/components/schemas/devices_processform_utgdevice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/devices_processform_response_utg'
                - $ref: '#/components/schemas/devices_processform_response_comeng_message'
                - $ref: '#/components/schemas/devices_processform_response_comeng_multiButtonScrollingText'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/print:
    servers:
    - url: https://192.168.1.10:277/api/rest/v1
      description: Locally Installed UTG URL
    post:
      tags:
      - Devices
      summary: Print Receipts
      operationId: devicesprint
      security:
      - AccessToken: []
      description: 'This function is used to print a receipt using a device’s built-in printer. The receipt may include a scannable bar code.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        Commerce Engine for On Premise and Commerce Engine For Cloud support both the legacy printing format for backwards compability with UTG integrations as well as a new structured printing format. With the new structured printing format you can format an entire receipt as a bmp image including text, QR codes, and images. In future Commerce Engine releases we will be enhancing the structured format to support handling text and bar codes.

        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for more details on the various JSON body formats.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
 

# --- truncated at 32 KB (160 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/shift4/refs/heads/main/openapi/shift4-devices-api-openapi.yml