---
title: "Print Receipts"
method: POST
path: "/devices/print"
tags: ["Devices"]
---

# Print Receipts

`POST /devices/print`

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.

## Headers

- `InterfaceVersion` string, required
- `InterfaceName` string, required
- `CompanyName` string, required
- `AccessToken` string, uuid, required

## Request body

- union
  - DevicesPrintComengdeviceStructured
    - `dateTime` string, ISO 8601, required — The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm). Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
    - `print` Print, required — Object contain elements for printing. See the [Supporting Built-In Receipt Printing Capability on Devices](/guides/core-concepts/printing-receipts#supporting-built-in-receipt-printing-capability-on-devices)
      - `format` 'structured', required — Specifies the receipt printing format being used.
      - `version` '1.0', required — Specifies the receipt printing format version being used.
      - `data` PrintDataBMP[], required — Array containing the value to print.
        - `type` 'bmp', required
        - `alignment` 'center' | 'left' | 'right', required — Specifies where the print element should be aligned
        - `value` string, required — Base64 encoded BMP image data
  - DevicesPrintComengcloudStructured
    - `dateTime` string, ISO 8601, required — The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm). Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
    - `device` DeviceComEngCloud, required
      - `cloud` boolean, required — Indicates the transaction will be processed via the Commerce Engine solution for cloud based POS/PMS systems. Value must be sent as `true` in order to route the request to the payment device at the merchant location.
      - `manufacturer` 'Ingenico' | 'Innowi' | 'PAX' | 'Verifone' | 'Castles' | 'Miura', required — Specifies the company which manufactured the device.
      - `serialNumber` string, required — Specifies the serial number of the device.
    - `print` Print, required — Object contain elements for printing. See the [Supporting Built-In Receipt Printing Capability on Devices](/guides/core-concepts/printing-receipts#supporting-built-in-receipt-printing-capability-on-devices)
      - `format` 'structured', required — Specifies the receipt printing format being used.
      - `version` '1.0', required — Specifies the receipt printing format version being used.
      - `data` PrintDataBMP[], required — Array containing the value to print.
        - `type` 'bmp', required
        - `alignment` 'center' | 'left' | 'right', required — Specifies where the print element should be aligned
        - `value` string, required — Base64 encoded BMP image data
  - DevicesPrintComengdeviceLegacy
    - `dateTime` string, ISO 8601, required — The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm). Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
    - `receipt` ReceiptDevicesPrint[], required — Array containing the receipt text data to print. See the [Supporting Built-In Receipt Printing Capability on Devices](/guides/core-concepts/printing-receipts#supporting-built-in-receipt-printing-capability-on-devices)
      - `key` string, required — Must be sent as `print`.
      - `printValue` string, required — The text that you want to print on the receipt.
  - DevicesPrintComengcloudLegacy
    - `dateTime` string, ISO 8601, required — The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm). Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
    - `device` DeviceComEngCloud, required
      - `cloud` boolean, required — Indicates the transaction will be processed via the Commerce Engine solution for cloud based POS/PMS systems. Value must be sent as `true` in order to route the request to the payment device at the merchant location.
      - `manufacturer` 'Ingenico' | 'Innowi' | 'PAX' | 'Verifone' | 'Castles' | 'Miura', required — Specifies the company which manufactured the device.
      - `serialNumber` string, required — Specifies the serial number of the device.
    - `receipt` ReceiptDevicesPrint[], required — Array containing the receipt text data to print. See the [Supporting Built-In Receipt Printing Capability on Devices](/guides/core-concepts/printing-receipts#supporting-built-in-receipt-printing-capability-on-devices)
      - `key` string, required — Must be sent as `print`.
      - `printValue` string, required — The text that you want to print on the receipt.
  - DevicesPrintUtgdevice
    - `dateTime` string, ISO 8601, required — The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm). Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
    - `device` DeviceOnlyTID, required
      - `terminalId` string, required — To prompt a specific UTG-controlled PIN pad in a request, the API Terminal ID configured in UTG TuneUp must be specified in this field.
    - `receipt` ReceiptDevicesPrint[], required — Array containing the receipt text data to print. See the [Supporting Built-In Receipt Printing Capability on Devices](/guides/core-concepts/printing-receipts#supporting-built-in-receipt-printing-capability-on-devices)
      - `key` string, required — Must be sent as `print`.
      - `printValue` string, required — The text that you want to print on the receipt.

## Response `200`

Request was processed

- object
  - `result` object[]
    - `dateTime` string, ISO 8601 — The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm). Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
    - `device` DeviceOnlyTIDResponse
      - `terminalId` string — To prompt a specific UTG-controlled PIN pad in a request, the API Terminal ID configured in UTG TuneUp must be specified in this field.
    - `server` Server
      - `name` string — The name of the server that processed the request.

## Other responses

- `400` — Error
- `504` — Timeout

---

[API](https://skmtc.dev/shift4/apis/shift4-payment-api.md) · [All operations](https://skmtc.dev/shift4/apis/shift4-payment-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/shift4/shift4-payment-api/revisions/2f85c87cc9e5/schema)
