How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Shift4 Devices API

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

Shift4 Devices API is one of 21 APIs that Shift4 publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Devices. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an API reference.

This API exposes 14 operations across 13 paths, and defines 157 schemas. It is described by OpenAPI 3.2.0, at version 1.7.57.

Requests are made against 2 base URLs: https://api.shift4test.com/api/rest/v1, https://api.shift4api.net/api/rest/v1.

14 operations 13 paths 157 schemas 1 DELETE1 GET12 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.7.57
Base URL
https://api.shift4api.net/api/rest/v1
Authentication
API Key, HTTP Hmac-Sha256
Resource Areas
1

Authentication & Security 2

Shift4 Devices API declares 2 security schemes for authenticating requests. An API key is passed in the header as AccessToken (AccessToken). It uses HTTP hmac-sha256 authentication (HMAC-SHA256).

  • AccessToken — A security credential used to authenticate API requests and all [i4Go®](https://s4-myportal.s3.amazonaws.com/downloads/documentation/i4go/i4go%20technical%20re…
  • HMAC-SHA256 — Authentication using HMAC-256 signatures as the authorization scheme. Sent in the Authorization header in the following format: Authorization: HMAC-SHA256 Cred…

Paths & Operations 14

Across 13 paths, the API surfaces 14 operations — 1 DELETE, 1 GET, 12 POST. Each is listed below with its method, path, parameters, and response codes.

Devices 14
POST
/devices/promptsignature
Request Signature
devicessignatures 4 params body → 200400504
POST
/devices/promptconfirmation
Prompt Confirmation
devicespromptconfirmation 4 params body → 200400504
POST
/devices/termsandconditions
Prompt Terms and Conditions
devicestermsandconditions 4 params body → 200400504
POST
/devices/lineitems
Display Line Items
deviceslineitems 4 params body → 200400504
DELETE
/devices/lineitems
Clear Line Items
devicesdeletelineitems 5 params → 200400504
GET
/devices/info
Device Information
devicesinfo 5 params → 200400504
POST
/devices/initializereaders
Initialize Readers
devicesinitializereaders 4 params body → 200400504
POST
/devices/reset
Reset Device
devicesreset 4 params body → 200400504
POST
/devices/promptcardread
Prompt Card Read
devicespromptcardread 4 params body → 200400504
POST
/devices/promptinput
Prompt for Input
devicespromptinput 4 params body → 200400504
POST
/devices/processform
Display Custom Form
devicesprocessform 4 params body → 200400504
POST
/devices/print
Print Receipts
devicesprint 4 params body → 200400504
POST
/devices/getstatus
Get Device Status
devicesgetstatus 4 params body → 200400504
POST
/devices/prompttip
Prompt Tip
devicesprompttip 4 params body → 200400504

Schemas 157

The contract defines 157 schemas that model the data the API accepts and returns. The most detailed are TipObject (8 properties), DeviceProcessFormTypeMultiButtonScrollingText (6 properties), devices_promptcardread_comengdevice (6 properties), Error (6 properties). Each schema is shown below with its type and property counts.

AmountPromptTip
object
2 properties 1 required
FirmwareFirmwareVersion
string
The firmware version.
DevicePromptConfirmationValue
string
This field displays text, such as an email address or legal text, for a consumer’s confirmation.
devices_processform_response_utg
object
1 property
UIRequest
object
2 properties
DeviceOnlyTID
object
1 property 1 required
DeviceNextStep
object
An optional object used to control the device behavior after processing the request. If included in the request, the type sub-field is required
4 properties
devices_promptsignature_comengdevice
object
3 properties 1 required
DevicePromptInput
object
2 properties 1 required
Error
object
6 properties
DeviceDisplayText
string
Optional field that specifies the text to display on the device.
devices_reset_utgdevice
object
2 properties 2 required
AmountTipBasis
number
The amount Commerce Engine will use to calclulate the tip percentage amounts on the tip screen. This is an optional field that will be used instead of amount.t…
DevicePromptTermsAndConditionsAckText
string
Contains the text to display in the acknowledgement check box. If not sent, the acknowledgement check box will display I agree to the terms and conditions.
devices_print_comengcloud_structured
object
3 properties 3 required
PrintDataArray
array
Array containing the value to print.
FirmwareCTLSKernelVersion
string
The card brand contactless kernel versions.
SecurityP2PEVersion
string
The P2PE application version
DeviceFormFooter
object
1 property
ErrorSeverity
string
Severity level of the error. | Severity | Description | | -------- | ---------------------------------------------------------------- | | Info | Action not req…
HardwareStorageMbTotal
string
The amount of total storage space in megabytes.
TipHeader
string
Optional field to override the header text. If not sent, the header text will display Add Tip in the terminal's configured language.
devices_termsandconditions_comengdevice
object
3 properties 2 required
DevicePromptConfirmation
object
3 properties
DevicePromptTermsAndConditionsResult
string
Returns the result of the Terms and Conditions screen on the PIN pad (based on the consumer’s input). Value| Description -----|------------ A | Accepted D | De…
AmountTotal
number
The amount being charged for a particular transaction. If other amount fields are sent, they must be included in the total amount. Amount cannot be zero.
DeviceFormItems
object
2 properties
HardwareRamMb
string
The total amount of RAM in megabytes.
DeviceNextStepType
string
Determines the device behavior after processing the request. If no additional request is received after 120 seconds the device will return to idle as a failsaf…
DevicePromptTermsAndConditionsHeader
string
Contains the text to display in the header. If not sent, the header will display Terms and Conditions.
ApiOptions
array
API Options modify the request being made. See the [API Options](/guides/appendices/api-options.md) section for more information.
ReceiptDevicesPrint
object
2 properties 2 required
SignatureData
string
The base64-encoded data sent when a signature is captured as a Portable Network Graphics (PNG) file.
DeviceFormTimeout
number
The number of seconds until the custom form will timeout. Defaults to 120 seconds if form.timeout is not sent in the request.
Server
object
1 property
devices_info_comeng
object
1 property
devices_processform_utgdevice
object
2 properties 2 required
Print
object
Object contain elements for printing. See the [Supporting Built-In Receipt Printing Capability on Devices](/guides/core-concepts/printing-receiptssupporting-bu…
3 properties 3 required
UISuppressAll
boolean
When true, the terminal suppresses all UI. Example use case: capturing employee/badge swipe data without displaying Commerce Engine UI.
DeviceTerminalIdComEng
string
This field is optional and is for backwards compatibility with existing vendors that are used to processing via UTG controlled devices. Since Commerce Engine i…
DeviceFormHeader
object
1 property
ServerName
string
The name of the server that processed the request.
PrintFormatVersion
string
Specifies the receipt printing format version being used.
CardTypeResp
string
An abbreviation used to specify the type of card that was used when processing a transaction. Value| Description -----|------------ AX | American Express AP |…
DeviceFormName
string
Specifies a 12-character, alphanumeric string containing the form name to display on a UTG-controlled PIN pad. The file extension should not be included in the…
DeviceProcessFormTypeMessage
object
5 properties 1 required
DevicePromptInputResult
string
This field contains the value collected from a consumer using a UTG-controlled PIN pad.
devices_reset_comengdevice
object
2 properties 1 required
devices_info_utgingenico
object
1 property
devices_prompttip_comengcloud
object
5 properties 3 required
DateTime
string
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 ex…
devices_getstatus_comengcloud
object
2 properties 2 required
DevicePromptInputIndex
string
This field specifies a value to be collected from a consumer using a UTG-controlled PIN pad. Value| Description | Return Format -----|-------------------------…
ErrorLongText
string
Extended error message that is returned if an error condition exists.
TipObject
object
The optional tip object allows integrators to control the display and behavior of the tip screen presented to customers during payment processing.
8 properties 1 required
ServerComEng
object
1 property
devices_getstatus_comengdevice
object
1 property 1 required
DevicePromptTermsAndConditionsAckCheckBox
boolean
Send true to enable the acknowledgement check box or false to disable it. Defaults to true if not sent.
DevicePromptTermsAndConditionsComEng
object
4 properties 1 required
DeviceFormUTG
object
2 properties 1 required
devices_promptinput_comengdevice
object
3 properties 2 required
ErrorCode
integer
Code indicating the type of error that occurred. Refer to the [Error Codes](/guides/appendices/error-codes) section of this document for more details. Note: Th…
devices_prompttip_comengdevice
object
4 properties 3 required
devices_info_utgverifone
object
1 property
Signature
object
2 properties
DevicePromptTermsAndConditions
object
2 properties 1 required
devices_processform_comengdevice
object
4 properties 2 required
ErrorSecondaryCode
integer
This code supplements the code specified in the error.primaryCode field to provide additional information about the error that occurred.
PrintFormat
string
Specifies the receipt printing format being used.
DeviceFormQRCode
object
1 property
ConnectivityGateway
string
Default gateway
DeviceLineItemsArray
array
An array of line items to display on the UTG-controlled device.
devices_print_comengdevice_legacy
object
2 properties 2 required
HardwareBatteryLevel
string
The current battery level on the device. Returns null if the device does not have a battery
ServerNameComEng
string
The name of the server that processed the request.
FirmwareEMVKernelVersion
string
The EMV kernel version.
DeviceFormResult
string
A five-character, alphanumeric string containing the ID of the button pressed by the consumer on a UTG-controlled PIN pad.
Timeout
number
Optional field that will set the timeout value in seconds. Sending 0 will set an indefinite timeout that can only be cancelled by sending a /devices/reset requ…
TipPreset2
number
The preset value for the preset number 2. If presetType = percent send the percentage value. If presetType = amount send the amount value.
ReceiptArrayDevicesPrint
array
Array containing the receipt text data to print. See the [Supporting Built-In Receipt Printing Capability on Devices](/guides/core-concepts/printing-receiptssu…
UIMode
string
Set the UI to light mode by sending light or dark mode by sending dark
DeviceTerminalIdRequired
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.
ConnectivityDNS1
string
Primary DNS server address
devices_promptsignature_utgdevice
object
2 properties 2 required
SignatureFormat
string
The data format the signature data will be in. "P" for PNG format.
devices_promptcardread_utgdevice
object
2 properties 2 required
TipPresetType
string
The tip option selected by the cardholder. | Value | Description | |---------|---------------------------------------------------------------------------------…
CloudConnected
string
Specifies whether or not the device is successfully connected to the cloud service. | Value | Description | |-------|------------------------------------------…
TipDisplayNoTip
boolean
Send as true if you want to display No Tip instead of Cash Tip on the tip entry screen. Default: false
DeviceSerialNumber
string
Specifies the serial number of the device.
devices_promptcardread_comengcloud
object
5 properties 2 required
TipPreset3
number
The preset value for the preset number 3. If presetType = percent send the percentage value. If presetType = amount send the amount value.
devices_print_comengdevice_structured
object
2 properties 2 required
DevicePromptConfirmationQuestion
string
This field displays an inquiry prompting a consumer's confirmation.
ErrorPrimaryCode
integer
Code indicating the type of error that occurred. Refer to the [Error Codes](/guides/appendices/error-codes) section of this document for more details.
devices_print_comengcloud_legacy
object
3 properties 3 required
DeviceProcessFormTypeMultiButtonScrollingText
object
6 properties 2 required
FirmwareAndroidVersion
string
The Android OS version.
DeviceInfoArray
array
An array of details regarding a UTG-controlled device.
DevicePromptTermsAndConditionsValue
string
Contains the Terms and Conditions text for the UTG or Commerce Engine controlled PIN pad to display to a consumer. Add \r\n to force a new line.
UILanguageResponse
string
ISO 639-1 2-letter language code specifying the UI display language (e.g. "en", "fr", "de").
HardwareStorageMbFree
string
The amout of free storage space in megabytes.
DeviceFormText
object
1 property
P2PEFormat
string
Classifies the type of payment device being used for P2PE. Value|Description -----|----------- 01 | IDTech Enhanced Encryption format 02 | IDTech Enhanced Encr…
DeviceFormSubHeader
object
1 property
Volume
object
1 property
DeviceModelDevicesInfo
string
Specifies the model of the device.
HardwareCPU
string
The CPU model information.
SecurityPCIFirmwareVersion
string
The PCI firmware version
CloudRegistered
string
Specifies whether or not the device is registerd with the cloud service. | Value | Description | |-------|-----------------------------------------------------…
ConnectivityInterfaces
object
3 properties
devices_termsandconditions_utgdevice
object
2 properties 2 required
PrintDataAlignment
string
Specifies where the print element should be aligned
ApplicationsArray
array
devices_processform_response_comeng_message
object
1 property
P2PE
object
3 properties 2 required
devices_termsandconditions_comengcloud
object
3 properties 2 required
DeviceOnlyTIDResponse
object
1 property
DeviceFormItemsArray
array
An array of key/value pairs used to populate fields on the custom form
DeviceFormResponse
object
2 properties
P2PEKSN
string
The key serial number which was used to encrypt the P2PE data.
devices_promptinput_utgdevice
object
2 properties 2 required
ConnectivityIP
string
The device IP address
HardwareStorageMbUsed
string
The amout of used storage space in megabytes.
DeviceManufacturer
string
Specifies the company which manufactured the device.
DeviceTerminalIdDevicesInfo
string
Terminal ID configured for the device.
DevicePromptConfirmationResult
string
In the response to a Prompt Confirmation request, this field specifies whether the consumer has opted to confirm ('Y') or deny ('N') the requested value.
P2PEData
string
The full output of a P2PE keypad/magnetic swipe reader (MSR).
UISupportedLanguages
array
Array of ISO 639-1 2-letter language codes supported by the device (e.g. "en", "fr", "de").
ConnectivityActiveInterface
string
The network interface that is active on the device
UILanguageRequest
string
ISO 639-1 2-letter language code specifying the UI display language for the transaction (e.g. "en", "fr", "de"). When provided, overrides the device's configur…
TipSelectedOption
string
The tip option selected by the cardholder. | Value | Description | |---------|------------------------------------------------| | preset1 | The cardholder sele…
DeviceTerminalId
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.
CardMaskedNumber
string
The card number field will always be masked when returned in a response.
ConnectivityDNS2
string
Secondary DNS server address
DeviceFormButtonArray
array
Array of 1 - 4 buttons to be displayed on the device.
ErrorShortText
string
Abbreviated error message that is always returned if an error condition exists
DeviceComEngCloud
object
3 properties 3 required
OfflineMode
string
Specifies whether or not the device is in offline mode. | Value | Description | |-------|--------------------| | Y | Device is offline | | N | Device is online…
devices_promptinput_comengcloud
object
3 properties 2 required
devices_promptcardread_comengdevice
object
6 properties 1 required
LighthouseDataResponse
string
Base64 encoded JSON formatted data that will be returned from Lighthouse to be passed back to SkyTab. This data will contain variable information.
TipBasisNotification
boolean
Send as true if you want to display the tip basis notification text on the tip screen. Must also include amount.tipBasis in the request if sending as true. Def…
ConnectivitySubnetMask
string
Subnet mask
TipPreset1
number
The preset value for the preset number 1. If presetType = percent send the percentage value. If presetType = amount send the amount value.
devices_print_utgdevice
object
3 properties 3 required
devices_processform_response_comeng_multiButtonScrollingText
object
1 property
devices_promptsignature_comengcloud
object
3 properties 2 required
SecurityPCIHardwareVersion
string
The PCI hardware version
AmountTipResponse
number
The tip amount of the transaction.
VolumeSuppressBeeper
boolean
When true, the terminal suppresses all audible beeper output during the card-read window only — Contactless tap confirmation, MSR swipe, error/decline tones.
DeviceProcessFormTypeQRDisplay
object
5 properties 2 required
PrintDataBMP
object
Used to print images, such as a company logo in BPM format. Can also be used to print the full receipt if the entire receipt data is formatted into a BMP image.
3 properties 3 required
CardEntryModeResponseTrackOnly
string
The method used to capture a payment card in an authorization/sale request. Value|Description -----|----------- 1 | Track 1 Only or Dual Track (Track 1 & 2) 2…
TipPresetDefault
string
The preset value that is selected by default. If not sent in the request it will default to to preset 2. | Value | Description | |-------|---------------------…
DeviceCloud
boolean
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…
devices_processform_comengcloud
object
4 properties 3 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

shift4-devices-api-openapi.yml Raw ↑

Other APIs Shift4 publishes across the network.

Shift4 3D Secure API
Shift4 ACH API
Shift4 Batches API
Shift4 Cards API
Shift4 Checkout Sessions API
Shift4 Credentials API
Shift4 DCC API
Shift4 Gift Cards API
Shift4 Merchants API
Shift4 Mode API
Shift4 OCT API
Shift4 Payment Links API
Where this information came from

This is an independent, third-party profile of Shift4 Devices API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.