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 QR Payments API

The QR Payments API from Shift4 — 4 operation(s) for qr payments.

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

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

This API exposes 4 operations across 4 paths, and defines 93 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.

4 operations 4 paths 93 schemas 4 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 QR Payments 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 4

Across 4 paths, the API surfaces 4 operations — 4 POST. Each is listed below with its method, path, parameters, and response codes.

QR Payments 4
POST
/qrpayments/getqrcode
Get QR Code
getqrcode 4 params body → 200400504
POST
/qrpayments/getqrdetails
Get QR Details
getqrdetails 4 params body → 200400504
POST
/qrpayments/getqrpaymentstatus
Get QR Payment Status
getqrpaymentstatus 4 params body → 200400504
POST
/qrpayments/cancelqrpayment
Cancel QR Payment
cancelqrpayment 4 params body → 200400504

Schemas 93

The contract defines 93 schemas that model the data the API accepts and returns. The most detailed are CardResponse (10 properties), Amount (8 properties), Error (6 properties), AVS (4 properties). Each schema is shown below with its type and property counts.

TransactionResponseCode
string
Code indicating the Shift4 host response. Value | Description | Details -------|-------------------------------------------------------------------------------…
AVSPostalCodeVerified
string
Identifies whether the ZIP/postal code was verified (‘Y’) or not (‘N’) in an AVS check with a processor.
Error
object
6 properties
MerchantDayEndingTime
string
The time the merchant’s business day ends as configured with Shift4. Note: This is only applicable for merchants based in the USA. If the merchant is not based…
CardLevelResult
string
Classifies the type of card used in an authorization/sale request. This field is returned in a response if the data is provided by the processor. See [Card Lev…
VoiceCenter
object
2 properties
MerchantName
string
The merchant’s business name as configured with Shift4.
CredentialApiSerialNumber
string
The serial number for the merchant account. This field is only used for backwards compatibility with older interfaces and has been replaced by the Access Token.
QRPayConfig
object
3 properties
TransactionVendorReference
string
Optional field for information that can be searched in the merchant portal.
ErrorSeverity
string
Severity level of the error. | Severity | Description | | -------- | ---------------------------------------------------------------- | | Info | Action not req…
ClerkResponse
object
1 property
MerchantAddressLine1
string
First line in the merchant’s business address as configured with Shift4.
MerchantCity
string
City of the merchant’s business address as configured with Shift4.
TransactionSaleFlagQR
string
Specifies a transaction is a sale (‘S’) or authorization (‘A’). Value sent in the [Get QR Code](/apis/payments-platform-rest/openapi/qr-payments/getqrcode) req…
AmountSurcharge
number
Conditional: Send in the request if a surcharge was applied to the transaction. In a sale or authorization transaction, the surcharge field specifies a fee amo…
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.
Receipt
object
3 properties
QRPayConfigTipEnabled
string
Specifies whether tip prompting is enabled or disabled for the merchant Value|Description -----|----------- Y | Tip prompting is enabled. N | Tip prompting is…
SignatureData
string
The base64-encoded data sent when a signature is captured as a Portable Network Graphics (PNG) file.
MerchantAddressLine2
string
Second line in the merchant’s business address as configured with Shift4.
AmountCheckTotal
number
Optional field specifying the total amount of the entire bill/invoice that this transaction is part of. It can be larger than amount.total in scenarios where t…
TransactionSaleFlag
string
Specifies a transaction is a sale (‘S’) or credit (‘C’). In an [Invoice Information](/apis/payments-platform-rest/openapi/transactions/getinvoice) request, an…
Server
object
1 property
QRCodeResponseValue
string
Contains the QR Code URL string. This string can be converted to a QR code for printing on receipts or displaying on devices.
MerchantMID
number
The merchant ID associated with the merchant account.
CustomerLastNameResponse
string
Specifies a consumer’s last name. This field is returned whenever the customer name is supplied in the request or if the track/EMV data contains the cardholder…
ServerName
string
The name of the server that processed the request.
CardTypeResp
string
An abbreviation used to specify the type of card that was used when processing a transaction. Value| Description -----|------------ AX | American Express AP |…
ReceiptArray
array
Array of receipt key/value pairs that should be printed on the receipt.
QRCodeRequestValue
string
Contains the QR Code URL string. This must match the value received in the [Get QR Code](/apis/payments-platform-rest/openapi/qr-payments/getqrcode) response.
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…
TransactionInvoice
string
10-digit invoice number assigned by the interface to identify a transaction. An invoice number serves as a unique key that identifies a transaction within a ba…
ErrorLongText
string
Extended error message that is returned if an error condition exists.
QRPayConfigSplitEnabled
string
Specifies whether split check processing is enabled or disabled for QR Code Payments Value|Description -----|----------- Y | Split check proessing is enabled.…
AmexPropertyCode
string
The code that contains a Merchant-assigned store or location number (or name) that uniquely identifies where the transaction took place.
BalanceAmount
number
The balance remaining on the card. Depending on which processor is being used, the balance may be returned for a gift card, debit card, EBT card, or other stor…
MerchantPostalCode
string
ZIP/Postal Code of the merchant’s business address as configured with Shift4.
CredentialAccessToken
string
A security credential used to authenticate API requests and all [i4Go®](https://s4-myportal.s3.amazonaws.com/downloads/documentation/i4go/i4go%20technical%20re…
CardEntryMode
string
Conditional: The Card Entry Mode should be sent in an initial request; in subsequent requests, it should be left blank or not sent. When using a Universal Tran…
MerchantCardTypesArray
array
Array of Merchant Card Types
CardSecurityCodeResult
string
Conditional: Returned if card.securityCode.indicator and card.securityCode.value are sent in the request. The result of a CSC check. This field will be used by…
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…
CardResponse
object
10 properties
Signature
object
2 properties
ErrorSecondaryCode
integer
This code supplements the code specified in the error.primaryCode field to provide additional information about the error that occurred.
AmountTax
number
The amount of sales tax charged for a transaction. The tax amount is used by businesses to track tax expenses for accounting purposes. Identifying the tax amou…
MerchantIndustry
string
Classifies the merchant type for a merchant’s account with Shift4. Value|Description -----|----------- A | Auto Rental F | Food & Beferage (F&B) H | Hotel M |…
IIASAmountsArray
array
Conditional: Send in the request if processing for a health care merchant. For Vision related charges you must send only iiasAmounts.type = 4V and the correspo…
TransactionAuthorizationCode
string
The authorization code provided by the consumer’s issuing bank. It is provided in a response if an online authorization or sale request is approved. Following…
MerchantCardTypesPhoneNumber
string
The phone number a clerk must call to obtain a voice authorization code. This field is returned in response to a [Merchant Information](/apis/payments-platform…
AVSStreetVerified
string
Identifies whether the street number was verified (‘Y’) or not (‘N’) in an AVS check with a processor.
IIASType
string
This code classifies eligible healthcare expenses. Value|Description -----|----------- 4O | Cash Disbursement (Discover Only) – Amount of Cash Back Being Reque…
MerchantResponse
object
2 properties
AVSValid
string
Simplified AVS result based on the merchant’s list of accepted responses as configured with Shift4: (‘Y’) if accepted or (‘N’) if not accepted.
SignatureFormat
string
The data format the signature data will be in. "P" for PNG format.
AVSResult
string
Identifies the response code returned from an Address Verification System (AVS) check with a processor. Value|Description -----|----------- A | Street address…
AmountCashback
number
Specifies the cashback amount in a transaction. When using a UTG-controlled PIN pad with the ALLOWCASHBACK API Option, this field will return the cashback amou…
MerchantCardTypes
object
2 properties
MerchantSerialNumber
string
The serial number of the merchant's account with Shift4.
TransactionResponseCodeQRCancel
string
Code indicating that the QR code was cancelled and if it was reversed Value |Description -------|----------- C | The QR Payment was cancelled. The QR code had…
CardDebitType
string
Specifies the type of debit card that was used when processing a transaction. Only returned if card.type = DB
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.
QRPayConfigTipPresetsArray
array
Tip preset percentages configured by the merchant.
QRCodeResponse
object
1 property
ClerkNumericId
integer
A number used to identify the point-of-sale (POS) or property management system (PMS) clerk or user. The value cannot be 0. An interface must be able to dynami…
AmountTip
number
Conditional: Send in the request if a tip is included. The tip amount of the transaction.
CredentialAuthToken
string
A unique encrypted identifier that refers to a specific merchant account. It is required when making an [Access Token Exchange](/apis/payments-platform-rest/op…
MerchantCardTypesAccountNumber
string
The merchant’s account number as configured with Shift4. This field is returned in response to a [Merchant Information](/apis/payments-platform-rest/openapi/me…
AVS
object
4 properties
TransactionAmex
object
1 property
CardPresent
string
Conditional: Send in the initial authorization/sale request Indicates whether a card was present (‘Y’) or not (‘N’) at the time a transaction took place. This…
CardBalance
object
1 property
CardSecurityCodeResponse
object
Conditional: Returned if card.securityCode was sent in the request.
2 properties
MerchantPhone
string
The merchant’s business telephone number as configured with Shift4.
QRCodeRequest
object
1 property 1 required
CardTokenResponse
object
1 property
IIASAmount
number
The subtotal for this type of healthcare expenses.
CustomerFirstNameResponse
string
Specifies a consumer’s first name. This field is returned whenever the customer name is supplied in the request or if the track/EMV data contains the cardholde…
CardExpirationDateResponse
integer
Conditional: Requires API Option "RETURNEXPDATE". Card expiration date in MMYY format. This value will only be populated if "RETURNEXPDATE" is included in the…
UniversalToken
object
1 property
CardMaskedNumber
string
The card number field will always be masked when returned in a response.
ErrorShortText
string
Abbreviated error message that is always returned if an error condition exists
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.
TransactionAuthSource
string
In a response, a code returned by the processor to indicate which host issued the response. Value | Description -------|---------------------------- E | Engine…
IIASAmounts
object
2 properties
UniversalTokenValue
string
An identifier for a card or payment account across all Shift4 merchants.
CardTokenValue
string
This field is used to specify a card token. Whenever CHD is sent in a request, a card token will be returned in this field. Your interface should be designed t…
Amount
object
Object containing information regarding the amount being requested. The total field within the object is required and specifies the amount being requested. All…
8 properties 2 required
AmountTaxIndicator
string
Value|Description -----|----------- Y | Tax is included N | Tax is not included
TransactionResponseCodeQRPaymentStatus
string
Code indicating that the status of the QR code payment Value |Description -------|----------- A | The QR Payment was processed and approved. C | The QR Payment…
MerchantRegion
string
Region (State) of the merchant’s business address as configured with Shift4.
CardSecurityCodeValid
string
Conditional: Returned if card.securityCode.indicator and card.securityCode.value are sent in the request. A simplified CSC check result based on the value in t…

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

shift4-qr-payments-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 Devices API
Shift4 Gift Cards API
Shift4 Merchants API
Shift4 Mode API
Shift4 OCT API
Where this information came from

This is an independent, third-party profile of Shift4 QR Payments 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.