- PPRA-288: Added transaction history to the /giftcards/balance response when sending the
RETURNHIST
API Option in the request. - PPRA-292: Added Surcharge support
- PPRA-332: Updated the conditional statement for
plaid.redirectUrl
on the /ach/plaid/link_token/create endpoint - PPRA-333: Added a link to the Shift4 Payment API in the .Net SDK overview section.
- PPRA-334: Added
merchant.gtv.enabled
,merchant.surcharge.enabled
, andmerchant.autoClose.enabled
to the /merchants/merchant endpoint response. - PPRA-336: Added
dcc.marginOverEcb
anddcc.displayUnit
to thedcc
response object - PPRA-338: Updated the .Net SDK content
- Added Static Class Definition section
- Updated S4Response description
- Changed LogVerbosity to S4LogVerbosity in S4Request.SetConfig
- Updated S4Request.SetConfig description
- Added S4Response.GetHttpError
- Updated LogVerbosity description
- PPRA-339: Added support for the Java SDK
- PPRA-340: Added the Commerce Engine Root CA to the Commerce Engine section of the Guides.
- PPRA-331: Fixed where the /ach/verify endpoint was missing the request body
- PPRA-323: Added support for the .NET SDK
- PPRA-318: Updated
mPos.type
description to remove the dependency ontransaction.source
- PPRA-322: Corrected the
transaction.responseCode
values for the /ach/plaid/public_token/exchange endpoint response. - PPRA-324: Added the
D2
value tohostResponse.reaseonCode
- PPRA-326: Added
transaction.originalInvoice
to all /transactions/refund request bodies and removed the Linked Refund body. Linked refunds can be used with any request body by sending the optionaltransction.originalInvoice
field. - PPRA-327: Added
card.type
as an optional field to theP2PE - TDES DUKPT - EMV
,P2PE - TDES DUKPT - MSR/Manual
,P2PE - ID TECH - EMV/MSR/Manual
,P2PE - On-Guard SDE - EMV
, andP2PE - On-Guard SDE - MSR/Manual
request bodies for the following endpoints:- /transactions/sale
- /transactions/refund
- /transactions/authorization
- /transactions/manualauthorization
- /transactions/manualsale endpoints
- PPRA-328: Split the /devices/promptcardread response into separate responses for encrypted cards and unencrypted cards.
- PPRA-309: Added
transaction.responseCode
=P
to the /ach/plaid/public_token/exchange endpoint response - PPRA-311: Removed the /tappp, /trustly, /vippreferred, and /venmo endpoints
- PPRA-312: Added Pax L1400 and Verifone V660p, M425, and P630 to the list of Commerce Engine supported devices.
- PPRA-306: Added Dynamic Currency Conversion (DCC) receipt printing requirements
- PPRA-304: Marked
transaction.source
as conditional. Required when processing on an unattended device. - PPRA-305: Added
Miura
todevices.manufacturer
- PPRA-300: Added
Castles
todevices.manufacturer
- PPRA-301: Removed the conditional text from
card.number
,customer.firstName
andcustomer.lastName
- PPRA-302: Updated the description for the
USECARDNAME
apiOption to clarify its use
- PPRA-293: Added
device.nextStep
to the /devices/promptsignature, /devices/promptcardread, /devices/prompttermsandconditions, /devices/promptinput, /devices/processform, & /devices/prompttip endpoints. - PPRA-294: Added
Commerce Engine For On Premise
andCommerce Engine For Cloud
request bodies to the /devices/promptinput endpoint - PPRA-295: Added /devices/prompttip via
Commerce Engine For On Premise
andCommerce Engine For Cloud
- PPRA-296: Added i4Go and 4Res documentation links to the landing page
- PPRA-297: Marked
customer.phoneCountry
conditionally required in /3dsecure/standalone ifcustomer.phoneNumber
is included - PPRA-298: Increased
form.header.value
andform.subHeader.value
max length to 100 in the /devices/processform endpoint. - PPRA-299: Increase
device.promptTermsAndConditions.header
anddevice.promptTermsAndConditions.ackText
max length to 100 in the /devices/termsandconditions endpoint.
- PPRA-283: Removed the /3dsecure/sale, /3dsecure/authorization, and /3dsecure/verifycard endpoints and the 3d secure notification web hook
- PPRA-284: Clarified the 3D Secure process flow
- PPRA-291: Fixed the sale and auth endpoint examples so
transaction.invoice
matches on request and response. - PPRA-290: Added error 9551,88 no fallback to the error code list.
- PPRA-282: Updated the test trigger for
card.number = 4321000000011001
to returnerror.primaryCode = 9951
- PPRA-271: Added support for the POST /giftcards/cashback endpoint and deprecated the /giftcards/cashout endpoint
- PPRA-275: Added support for
threeDSecure.version
for merchants outside the United States. - PPRA-276: Updated the
threeDSecure.programProtocol
description to indicate it is for the United States only. - PPRA-280: Added
card.entryMode
to the /dcc/ratelookup endpoint for theP2PE - TDES DUKPT - EMV
andP2PE - TDES DUKPT - MSR/Manual
request bodies.
- PPRA-272: Added
amount.CheckTotal
to the /transactions/authorization, /transactions/capture, /transactions/sale, /giftcards/activate, /giftcards/allocate, and /giftcards/reload endpoints - PPRA-277: Added
transaction.authorizationCode
to the /giftcards/reload response
- PPRA-192: Added support for the /dcc/ratelookup endpoint and added the
dcc
object to the /transactions/authorization and /transactions/sale endpoints - PPRA-229: Added
dcc.enabled
,dcc.secondaryLookupDisclaimer
anddcc.cardTypes
to themerchant
object in the /merchants/merchant response.
- PPRA-228: Removed the duplicate TransactionCurrencyCode from the raw tags receipt option.
- PPRA-252: Removed
paypal.paymentMethodId
from PayPal Sale - PPRA-262: Added a
Linked Refunds
request body to the /transactions/refund endpoint. - PPRA-264: Removed the Max Length for
receipt.printValue
in the /devices/print endpoint. - PPRA-265: Added
Commerce Engine For On Premise
&Commerce Engine For Cloud
request bodies to the /devices/processform endpoint - PPRA-266: Added
Commerce Engine For On Premise
&Commerce Engine For Cloud
request bodies to the /devices/promptcardread endpoint - PPRA-267: Added
Commerce Engine For On Premise
request body to the /devices/reset endpoint - PPRA-268: Added
Commerce Engine For On Premise
&Commerce Engine For Cloud
request bodies to the /transactions/manualauthorization endpoint - PPRA-269: Added
Commerce Engine For On Premise
&Commerce Engine For Cloud
request bodies to the /transactions/manualsale endpoint - PPRA-270: Updated 3D Secure endpoints to indicate that only the /3dsecure/sale, /3dsecure/authorization, and /3dsecure/verifycard are limited to Europe but /3dsecure/standalone and /3dsecure/completion are not.
- PPRA-260: Marked
transaction.originalInvoice
as required on the /ach/refund endpoint - PPRA-263: Set
device.displayText
max length to 72 on the /devices/promptsignature endpoint for theCommerce Engine For On Premise
andCommerce Engine For Cloud
request bodies.
- PPRA-256: Marked
card.entryMode
as required for theUnencrypted Card
request body on the /transactions/sale and /transactions/authorization endpoints - PPRA-257: Set
customer.region
max length to 3 on the /risk/assess endpoint - PPRA-255: Fixed where the
GTV
request body on the /ach/refund endpoint was incorrectly formatted. - PPRA-258: Marked
cardBrandToken.requestorID
as required for the3D Secure Using Card Number
request body on the /transactions/sale and /transactions/authorization endpoints.
- PPRA-253: Added
Commerce Engine For On Premise
&Commerce Engine For Cloud
request bodies to the /devices/termsandconditions endpoint. Requires Commerce Engine version 2.6.4 or higher.
- PPRA-169: Removed
ach.verificationType
from the /ach/sale and /ach/refund requests and all ach fields exceptach.accountLastFour
from the /ach/plaid/public_token/exchange response. - PPRA-239: Updated the
customer.postalCode
field to min 1 max 9. - PPRA-241: The
merchant.mid
field is defined as a string but it should be a number. - PPRA-245: Added
paypal.paymentMethodId
andpaypal.paymentMethodIdUsage
to the /paypal/sale endpoint. - PPRA-256: Removed
correlationId
from the /ach/plaid/public_token/exchange endpoint response.
- PPRA-216: Added support for the /devices/getstatus endpoint
- PPRA-234: Added Bin Blocking error codes
- PPRA-235: Added
Commerce Engine For On Premise
&Commerce Engine For Cloud
request bodies to the /devices/print endpoint. Requires Commerce Engine version 2.6.2 or higher. - PPRA-237: Added a note to all GET and DELETE endpoints indicating that an empty body may result in an error.
- PPRA-225: Add support for Account Name Inquiry (ANI) on the /cards/verify request.
- PPRA-167: Added
merchant.supportedCurrencies
to the GET /merchants/merchant endpoint response. - PPRA-196: Updated
transaction.avs.result
to include values 1-8. - PPRA-200: Added a note to the /tokens/4words endpoint clarifying that it is for Legacy TrueToken style tokens only.
- PPRA-202: Updated all endpoints to clarify which integration methods are supported.
- PPRA-211: Added support for
amount.taxIndicator
- PPRA-213: Updated the Commerce Engine section to indicate the A35, A77, and A3700 devices are supported.
- PPRA-219: Added Account Update Status Triggers to the Test Server Trigger Values section.
- PPRA-222: Updated the description for
statementSuffix
to clarify that card issuers may cut off the end of the suffix if its too long. - PPRA-223: Added a note to the
transaction.hostResponse
field indicating it is processor dependent and not returned in the demo environment.
- PPRA-187: Set
risk.sessionId
max length to 32. - PPRA-195: Added
Commerce Engine For On Premise
&Commerce Engine For Cloud
request bodies to the /devices/promptsignature endpoint. - PPRA-197: Updated the
card.bin
field to max length 8 in the /cards/identify response. - PPRA-198: Fixed all references of True Token to be TrueToken
- PPRA-199: Renamed the
Commerce Engine Controlled Device
request body toCommerce Engine For On Premise
- PPRA-201: Added
Commerce Engine For On Premise
&Commerce Engine For Cloud
request bodies to the /tokens/add endpoint.
- PPRA-189: Updated Commerce Engine supported devices to include A930 and coming soon to include A77.
- PPRA-190: Added deployment model diagrams to the Commerce Engine section.
- PPRA-191: Moved the Device Functionality section above the Endpoints section.
- PPRA-175: Added travel fields to the paypal/sale endpoint
- PPRA-176: Added support for the paypal/initiate endpoint
- PPRA-177: Added timeout test trigger values to the Test Server Trigger Values
- PPRA-178: Removed the
payPal
object from the paypal/refund request - PPRA-180: Added a PayPal merchant flow diagram
- PPRA-182: Added the
TransactionCurrencyCode
,SignatureRequired
, andTerminalID
keys to the raw receipt table - PPRA-183: Removed
transaction.responseCode
from paypal/initiate
- PPRA-148: Added support for the /updater/request endpoint
- PPRA-149: Added support for the /updater/status endpoint
- PPRA-171: Updated
emv.fallback
to be on the MSR/Manual request bodies instead of the EMV request bodies and added it to the response body - PPRA-172: Added
card.type
to theP2PE - On-Guard SDE - MSR/Manual
andP2PE - TDES DUKPT - MSR/Manual
request bodies for the /transactions/sale, /transactions/authorization, and /transactions/refund endpoints - PPRA-174: Removed Venmo, Trustly, TAPPP, and VIP Preferred
- PPRA-110: Added card ranges to the /merchants/merchant endpoint response if the
RETURNPROCESSORS
API Option is sent - PPRA-113: Added support for the
Commerce Engine For Cloud
request body type - PPRA-158: Added support for the Commerce Engine request body type
- PPRA-160:
cardOnFile.recurringExpiry
andcardOnFile.recurringFrequency
have a typo in the description where its should be it's - PPRA-162:
hostResponse.reasonCode
has a typo in the description for value 77 - PPRA-163: The
P2PE - TDES DUKPT - MSR/Manual
request body example on the /tokens/add endpoint had incorrect values in thep2pe
object - PPRA-166: Update the 3D Secure Smart Adviser test triggers to the latest card numbers
- PPRA-170: Removed
transaction.auto
from the /transactions/sale endpoint.
- PPRA-152: Added
accountType
root level field for Interac contact EMV - PPRA-154: Added support for the Manual Card Entry - AES request body on the /tokens/add endpoints
- PPRA-155: Added the AccessToken securityScheme to all endpoints except for /credentials/accesstoken
- PPRA-156: Fixed examples on the following endpoints to ensure they match the request/response body format.
- 3D Secure Notification
- /vippreferred/enrollment
- /vippreferred/disbursement
- /vippreferred/checksale
- /vippreferred/addbanking
- /vippreferred/accountinquiry
- /oct/updaterecipient
- PPRA-157: Marked the 3059910000007215 and 30103869233631 test card numbers as Discover - Diners Club International
- PPRA-150: Fixed a typo in ACH mandate section where it said mandage instead of mandate
- PPRA-153: Updated array size of
device.lineItems
in the /devices/lineitems endpoint to allow a maximum of 10 items.
- PPRA-144: Added support for Ingenico On-Guard SDE P2PE
- PPRA-117: 3DS Standalone Fixes:
- Removed the value 2 “Bypass 3D Secure authentication” from threeDSecure.initiate field.
- Added a note to the customer and shipping elements indicating they are recommended to increase the possibility of frictionless flow”.
- Added threeDSecure.securityLevelIndicator to the response on the /3dsecure endpoints
- PPRA-118: Add the EMV body to the /tokens/add endpoint
- PPRA-119: Fixed the /devices/print request body as it was not correctly showing how to send the data to be printed.
- PPRA-122: Added a separate Legacy TrueToken request body for all endpoints with that have a token body
- PPRA-123: Added clarification to Two Pass Verification that an issuer can decline the transaction due to invalid CSC rather than returning an approval with an invalid CSC indicator.
- PPRA-124: 3D Secure enhancements:
- Added the Token request body to the /3dsecure/authorization and /3dsecure/sale endpoints.
- Marked the following items as requred for /transasctions/authorization and /transactions/sale using 3D Secure data
threeDSecure.cryptogram
threeDSecure.ecommIndicator
threeDSecure.securityLevelIndicator
threeDSecure.programProtocol
threeDSecure.directoryServerTranId
- Added
threeDSecure.programProtocol
to the /3dsecure/standalone completion response body - Removed 3DS 1.0 from
threeDSecure.programProtocol
. - Removed the Apple Pay/Google Pay information from the /transasctions/authorization and /transactions/sale 3D Secure data request bodies.
- PPRA-125: Removed
transaction.saleFlag
from the /3dsecure/standalone response sample. - PPRA-126: Added the F (Funded) value to the 3D Secure sale and refund status update notification webhooks.
- PPRA-127: Added
card.securityCode.value
andcard.securityCode.indicator
to the /3dsecure/standalone request body. - PPRA-130: Marked
batch.inclusive
as required in the /batches/submit endpoint - PPRA-132: Updated the description for the amount object to remove the quotes around the example values.
- PPRA-134: Added content describing the GTV format.
- PPRA-135: Fixed where the Printing Receipts section was showing Transaction Time as EMV tag 9C when it should be 9F21.
- PPRA-136: Added merchant.mid and merchant.name to the response for the following endpoints:
- /transactions/*
- /giftcards/*
- /tokens/*
- /cards/*
- /reports/batchtotals
- /batches/submit
- /qrpayments/*
- /risk/assess
- /3dsecure/*
- /trustly/*
- /tappp/*
- /paypal/*
- /venmo/*
- /vippreferred/*
- /oct/*
- /ach/*
- PPRA-137: Marked
threeDSecure.authenticationSource
as required in the /transactions/authorization and /transactions/sale endpoints 3D Secure request bodies - PPRA-138: Updated the Test Server Trigger Values OCT chart
- PPRA-139: Return
merchant.defaultCurrency
in the /merchants/merchant response. - PPRA-140: Added a note to the /merchants/merchant
merchant.dayEndingTime
response field indicating that its only application to US merchants. - PPRA-142: Added
statementSuffix
to the following endpoints:- /transactions/authorization
- /transactions/capture
- /transactions/sale
- /transactions/refund
- /transactions/manualauthorization
- /transactions/manualsale
- PPRA-114: Renamed the API from 'Shift4 Platform API' to 'Shift4 Payment API'
- PPRA-115: Clarified that SaleFlag is deprecated as a request field but still returned as
transaction.saleFlag
in the GET /transactions/invoice response to indicate the state of the transaction. - PPRA-116: Added a note to the
device.promptPostalCode
,device.promptCardSecurityCode
, anddevice.promptStreetNumber
fields to only send them when overriding the UTG MCE settings
- PPRA-54: Added ACH support
- PPRA-90: Updated
hostResponse.reasonCode
to indicated AVS failures will return77
and CVV failures will returnN7
. - PPRA-93: Added OCT Test Cards under the Test Card Numbers section of the Appendices.
- PPRA-94: Fixed a typo in the POSHANDLEAVSFAIL API Option section where it was referencing
transaction.responseCode
- PPRA-95: Added error 9083,1 to the error list
- PPRA-97: Added
transaction.deferredAuth
to the /transactions/sale, /transaction/authorization and /transactions/refund endpoints - PPRA-98: Added a note to the URLs section advising existing integrations may be using an older URL.
- PPRA-99: Removed
correlationId
from the API documentation. - PPRA-100: Updated references to 'Shift4 Payments' to be 'Shift4'
- PPRA-103: Updated char limit for
transaction.retrievalReference
on the OCT Payout response. - PPRA-105: Updated
customer.postalCode
to clarify that it is alphanumeric only and no special characters are allowed. - PPRA-106: Added
merchant.mid
to the DELETE /transactions/invoice response. - PPRA-108: Added
Token
as an optional request header parameter for the GET and DELETE /transactions/invoice endpoint. - PPRA-109: Added clarity to the P2PE Format section for handling EMV tags.
- PPRA-111: Added a note to card.present with examples of subsequent transactions
- PPRA-112: Updated
transaction.source
to specify value 3 should be sent for card present transactions that are manually entered on a payment device.
- PPRA-79 Marked
transaction.source
as required - PPRA-80 Marked the
mPos
object as conditionally required iftransaction.source
= 8 (mPos) - PPRA-84 Added mapping for FRC 22 to the FRC Mapping Table
- PPRA-85 Fixed the
dateTime
example value in the /credentials/accesstoken to use the proper format. - PPRA-86 Added the /tokens/delete endpoint
- PPRA-87 Fixed the /tokens/duplicate example to use a TrueToken instead of a GTV style token
- PPRA-50: Added mPOS.type to the /transactions/authorization and /transactions/sale endpoints.
- PPRA-52: Updated the
transaction.responseCode
list in /cards/verify to remove invalid values - PPRA-67: Added
correlationId
to OCT and OCT trigger values - PPRA-70: Added error 9961,9 to the error codes
- PPRA-73: Updated the offline processing section to indicate that UTG offline mode is now enabled by default.
- PPRA-74: Added
transaction.purchaseCard.customerReference
to the /cards/verify endpoint - PPRA-75: Made
card.entryMode
andcard.present
optional in the /oct/payout token request body. - PPRA-76: Fixed where the links in the Quick Chip EMV section were not properly linking to the Swipe Ahead section.
- PPRA-68: Fixed the test server trigger value header to be
card.securityCode.result
instead ofcard.securityCode.valid
. - PPRA-69: Fixed where the
transaction.responseCode
enums had 'T' listed instead of 'X' - PPRA-71: Fixed the incorrect text in the /trustly/statusinquiry description.
- PPRA-72: Removed
card.securityCode
from the risk/assess example.
- PPRA-63: Added the
risk
object to the /transactions/sale and /transactions/authorization endpoint 200 response. - PPRA-64: Fixed a typo in the
correlationId
description - PPRA-65: Updated the endpoint URLs for all endpoints
- PPRA-66: Removed
amount.surcharge
from all endpoints
- PPRA-55: Fixed the server URLs for the OCT, PayPal, TAPPP, Trustly, Venmo, and VIP Preferred endpoints
- PPRA-56: Updated the VIP Preferred endpoints to use
ach.accountNumber
andach.routingNumber
instead ofach.bankAccountNumber
andach.bankRoutingNumber
. - PPRA-57: Added
transaction.purchaseCard.customerReference
to the /risk/assess endpoint. - PPRA-58: Added support for
correlationID
- PPRA-61: Updated the
threeDSecure.cryptogram
,threeDSecure.ecommIndicator
, andthreeDSecure.xid
field definitions for Google Pay to remove the reference topaymentMethodData.tokenizationData.token
- PPRA-43: Added support for OTC Payout and Update Recipient
- PPRA-53: Add the 'N' value to the riskRules.result for the /risk/rulestatus endpoint
- PPRA-46: Updated the description for riskRules.result in the /risk/rulestatus endpoint to clarify that it is the success or failure of the status call.
- PPRA-47: Updated riskRules.status description to clarify that the 'A' value cannot be used when riskRules.parameter is card or token.
- PPRA-48: Changed riskRule.parameter values from cardNumber to card and emailAddress to email.
- PPRA-49: Updated riskRules.result to return 'E' when an error occurs.
- PPRA-51: Updated the Test Server Trigger Values to use the new trigger amounts for approval, decline, referral and demo host error
- PPRA-8: Added support for the /3dsecure/standalone endpoint
- PPRA-18: Updated the description for
transaction.source
to clarify that type 6 is Unattended Cardholder Activated Terminal - PPRA-20: Resolved an issue where The Understanding AVS and CSC Verification section was duplicated.
- PPRA-21: Updated the description for
transaction.responseCode
'S' and 'I' to clarify the use cases. - PPRA-23: Added a note to the AVS test triggers section indicating that if a value is sent in the
customer.addressLine1
orcustomer.postalCode
field and it does not match one of the triggers it will returntransaction.avs.result
= 'N' - PPRA-24: Updated the documentation so that references to API fields are displayed as code
- PPRA-25: The /trustly/deposit initial deposit response body was missing the
trusty.redirectReason
field - PPRA-27: Removed
card.type
from theP2PE via IDTech Device
,P2PE - TDES DUKPT - EMV
, andP2PE - TDES DUKPT - MSR/Manual
request bodies on the /transactions/sale, /transactions/authorization, /transactions/refund, /transactions/manualsale, and /transactions/manualauthorization endpoints - PPRA-28: Added
card.token.value
to the /risk/assess response. - PPRA-29: Added
customer.shipping
to the 3dsecure/sale, 3dsecure/authorization, 3dsecure/standalone, and 3dsecure/verifycard endpoints. - PPRA-30: Fixed the spelling of 'canceled' to be 'cancelled' to keep the documentation consistent.
- PPRA-31: Added value 6 to the
threeDSecure.eCommIndicator
field. - PPRA-32: Added
currencyCode
to the /tranasctions/capture request. - PPRA-33: Marked
postalCode
as optional for all 3dsecure endpoints. - PPRA-34: Created separate request bodies for Card Number and Token in the 3dsecure/sale, 3dsecure/authorization, 3dsecure/verifycard, and 3dsecure/standalone endpoints
- PPRA-35: Fixed the casing on the test and production URLs for the /venmo/customer endpoint.
- PPRA-36: Added support for the
reportingData
object in the /transactions/authorization, /transactions/sale, /transactions/refund, /transactions/manualauthorization, /transactions/manualsale, /transactions/capture, /3dsecure/authorization, and /3dsecure/sale endpoints. - PPRA-37: Added clarification to the Access Token Exchange section of the Development Quick Start Guide indicating that the Access Token should be stored securely.
- PPRA-38: Added support for the /risk/rulestatus and risk/ruleupdate endpoints
- PPRA-39: Added support for returning
emv.tlvData
in the /transactions/authorization, /transactions/sale, and /transactions/refund responses - PPRA-40: Added
transaction.source
to the /3dsecure/authorization, /3dsecure/sale, and /3dsecure/verifycard endpoints - PPRA-41: Removed
transaction.hotel
,transaction.auto
,transaction.airline
, andtransaction.amex
from all 3dsecure endpoints. - PPRA-42: Removed
receiptColumns
from all 3dsecure endpoints. - PPRA-44: Removed
transaction.businessDate
from all 3dsecure endpoints. - PPRA-45: Added the /risk/ruleupdate and /riks/rulestatus endpoints.
- PPRA-12:
cardOnFile.type
should only contain the 'U08' option on the /transactions/capture endpoint - PPRA-13:
cardOnFile.type
should only contain the storage options on the /3dsecure/verifycard endpoint - PPRA-14: Update
cardOnFile.transactionId
description to not store the new transationId received in subsequent transaction responses - PPRA-15: Break out the Wallet/3DSecure using Card Number body into separate bodies for 3D Secure, Apple Pay and Google Pay.
- PPRA-16: Add the date format to the
transaction.businessDate
field - PPRA-17: Update the
transaction.airline.tickets.passengerName
description to clarify that there are no dashes in the name
- PPRA-9: Updated the IIAS amounts to separate the Amount Type 4V 'Vision/Optical' and not include it under the type 4S 'Healthcare' total healthcare amount.
- PPRA-10: Added support for SCA contactless EMV requiring card insertion
- PPRA-2: Added
ReversalReason
to the header parameters in the DELETE /transactions/invoice endpoint - PPRA-3: Added
transaction.source
to the /transactions/authorization, /transactions/sale, /transactions/refund and /transactions/capture endpoint - PPRA-4: Simplified the Card On File API by deprecating many of the fields and replacing them with a
cardOnFile.type
field - PPRA-5: Updated the
amount.total
description to clarify that the amount can not be zero. - PPRA-6: Added support for contactless EMV SCA Online PIN required scenario by returning
transaction.responseCode = S
. - PPRA-7: Added the [Converting Legacy Interfaces]'#tag/Converting-From-Legacy-Interfaces' section to assist vendors who are upgrading from a legacy TCP or HTTP interface.
- Added support for the vippreferred/accountinquiry endpoint.
- Added support for the vippreferred/addbanking endpoint.
- Added support for the vippreferred/enrollment endpoint.
- Added support for the vippreferred/checksale endpoint.
- Added support for the vippreferred/disbursement endpoint.
- Added the 3D Secure Smart Adviser Test Triggers section.
- Added support for card not present payment processing in Europe.
- Added support for the 3D Secure Smart Adviser endpoints /3dsecure/sale, /3dsecure/authorization, /3dsecure/completion, /3dsecure/verifycard and 3D Secure Notification.
- Added
currencyCode
to the /transactions/sale, /transactions/authorization, /transactions/refund, /transactions/manualauth, and /transactions/manualsale endpoints. - Added 'Y', '1', '2', and '3' to the
card.securityCode.result
response field. - Added
recurringExpiry
andrecurringFrequency
to thetransaction.cardOnFile
object. - Added
transaction.authType
to the /transactions/authorization endpoint. - Added an incremental auth request body to the /transactions/authorization endpoint.
- Added
customer.phoneCountry
to the /trustly/capture and /trustly/deposit initial request bodies. - Added
error.code
anderror.severity
to the error response body. - Updated the
credentials.accessToken
field length to 52 characters. - Removed
card.securityCode
from the risk/assess request. - Removed the max length value form the
emv.tlvData
field. - Removed
token.serialNumber
from the giftcard/cancel endpoint. - Updated
customer.region
description to clarify that its using the ISO-3166-2 standard. - Added a Card On File use case table.
- Added a Currency Codes table.
- Added support for the /paypal/sale endpoint.
- Added support for the /paypal/refund endpoint.
- Added support for the /venmo/sale endpoint.
- Added support for the /venmo/refund endpoint.
- Added support for the /venmo/customer endpoint.
- Fixed
transaction.hostResponse.reasonCode
where it had the value 51 listed twice. - Updated
transaction.expirationDate
to clarify that its 3-4 characters. - Clarified that the
productDescriptors
array is limited to 4 elements and that each element can contain a maximum of 40 characters. - Added
trustly.redirectReason
to the /trustly/capture and /trustly/deposit responses. - Marked
transaction.airline.travelAgencyCode
andtransaction.airline.travelAgencyName
as conditional fields.
- Modified the trustly notification to be a webhook rather than an endpoint.
- Added
ticketFare
to thetransaction.airline.ticket
array.
- Fixed the 504 timeout error response example where the primaryCode was showing 995 instead of 9951.
- Added
customer.emailAddress
andcustomer.ipAddress
to the /transactions/sale and /transactions/authorization endpoints.
- Added clarifications to the
transaction.cardOnFile.usageIndicator
andtransaction.cardOnFile.transactionId
descriptions.
- Clarified the format for
transaction.airline.ticket.passengerName
- Added the /tokens/duplicate endpoint back to the doc with a note that it is for legacy style tokens only.
- Fixed the example in the Trustly notification where
trustly.account.profile
was showing as a string instead of an integer. - Marked the /batches/submit and /reports/batchtotals endpoints as being supported only through the hosted REST servers.
- Added support for the airlines industry.
- Fixed the production URL for the /risk/assess endpoint.
- Fixed the GET /merchants/merchant example where the
voiceCenter.accountNumber
was showing as an integer instead of a string.
- Renamed
transaction.id
totransaction.s4RiskId
andrisk.id
torisk.tranId
. - Added clarification to
transaction.responseCode
values 'D' and 'f' regarding the POSHANDLEAVSFAIL API Option. - Added clarification to the POSHANDLEAVSFAIL API Option that one pass AVS/CVV failures will result in
transaction.responseCode
'f'. - Renamed the Partial Authorization section to Partial Approval.
- Updated the /giftcards/activate, /giftcards/deactivate, /giftcards/cashout, /giftcards/, /giftcards/reactivate, /giftcards/reload, and /giftcards/balance endpoints to have unique request body schemas based on the request type.
- Updated the /tokens/add endpoint to have unique request body schemas based on the request type.
- Updated the /cards/verify and /cards/identify endpoints to have unique request body schemas based on the request type.
- Fixed a typo in the
shoppingCart
array where the fieldquantity
was misspelled.
- Updated all fields that were the type was set as currency to be set as number
- Fixed examples where SourceIp was incorrectly listed as SourceIP.
- Added support for the /risk/assess endpoint
- Added
transaction.id
,risk.id
andrisk.assessment
to the /transactions/sale and /transactions/authorization endpoints. These values must be sent if the /risk/assess call was made prior to the transaction. - Added the 'A' value to
transaction.authSource
- Added
transaction.authSource
,transaction.responseCode
, andtransaction.hostResponse
to the /trustly/capture, /trustly/deposit, /trustly/refund, and /trustly/cancel endpoints - Added the /trustly/statusinquiry endpoint
- Added
transaction.authSource
, andtransaction.responseCode
to the /tappp/cancel, /tappp/capture, /tappp/decryptpayload, /tappp/initiatepayment, and /tappp/tokenstatus endpoints.
- Added the
lighthouse
object back to the /transactions/sale endpoint with clarification that it is for Skytab transactions only.
- Added support for the /tappp/initiatepayment endpoint
- Added support for the /tappp/decryptpayload endpoint
- Added support for the /tappp/tokenstatus endpoint
- Added support for the /tappp/capture endpoint
- Added support for the /tappp/cancel endpoint
- Added
transaction.saleFlag
to the GET /transactions/invoice response
- Updated the transaction flow diagram to show the 9551,4 error will come back as a 200 response not a 400 response.
- Added
transaction.retrievalReference
to the /transactions/authorization, /transactions/capture, /transactions/sale, and /transactions/refund responses. - Added
card.token
to the /cards/verify response. - Added
transaction.cardOnFile
to the /cards/verify request and response. - Added
transaction.cardOnFile
to the /transactions/authorization response.
- Added the 'X' value to the
transaction.responseCode
field.
- Fixed the
device.promptInput.index
description so that the values are in a properly formatted table.
- Added a link to the P2PE format section when referencing P2PE format 05 in the various transaction endpoints.
- Added additional values to the
hostResponse.reasonCode
field to cover additional card brands.
- Added the [Development Quick Start]'#section/Development-Quick-Start' section.
- Added
merchant.mid
to the merchants/merchant response - Added
transaction.vendorReference
to the trustly notification request.
- Broke down the /trustly/capture and /trustly/deposit process flow into eparate diagrams for initial and subsequent requests.
- Added process flow diagrams to the /trustly/cancel and /trustly/refund requests
- Fixed a typo in the Trustly refund response example where the tag was listed as
originalnvoice
instead oforiginalInvoice
- Added
trustly.transactionId
to the /trustly/cancel and /trustly/refund requests - Removed
amount
from /trustly/cancel request - Added the Restaurant Authorization and Settlement Flow section to Basic Concepts
- Added support for the /trustly/capture endpoint
- Added support for the /trustly/deposit endpoint
- Added support for the /trustly/refund endpoint
- Added support for the /trustly/cancel endpoint
- Added support for the Trustly notification request
- Updated the /transactions/manualauthorization and /transactions/manualsale endpoints to have unique request body schemas based on the request type.
- Updated the /transactions/refund endpoint to have unique request body schemas based on the request type.
- Updated the /mode/offline and /mode/online endpoints to include AccessToken in the header.
- Updated the /transactions/sale endpoint to have unique request body schemas based on the request type.
- Fixed the
cardOnFile.usageIndicator
where the enums were specified as "Initial" and "Subsequent" instead of "01" and "02" - Fixed the
cardOnFile.scheduledIndicator
where the enums were specified as "Scheduled" and "Unscheduled" instead of "01" and "02" - Added
transaction.businessDate
to the /transactions/refund endpoint
- Added a Wallet/3D Secure Using Card Number request body to the /transactions/authorization endpoint.
- Fixed the
receiptColumns
length to 2 characters.
- Updated the /transactions/authorization endpoint to have unique request body schemas based on the request type.
- Updated the [Understanding Card Tokens]'#tag/Understanding-Card-Tokens' section to utilize Global Token Vault tokenization. Moved the legacy tokenization methodology to the [Legacy Card Tokens]'#tag/Legacy-Card-Tokens'
- Removed Universal Token from the /giftcard endpoint responses.
- Updated the text in the Two Pass Verification section to clarify that the gateway will automatically void a Two Pass Verification failure.
- Added the /giftcards/allocate endpoint.
- Added clarification to the /transactions/capture endpoint to indicate that the
card
object is required.
- Added clarification to
card.entryMode
that the field is not needed when P2PE data is being sent from a non-UTG controlled device.
- Added
hostResponse
object to transaction object in 200 authorization response. - Added a note to the
transaction.invoice
description to clarify that it is a numeric only field even though it is sent as a JSON String.
- Added
device.serialNumber
for non-utg controlled devices. - Added
device.manufacturer
anddevice.model
to the /refund endpoint
- Updated the /devices/info responses to reflect the different data that is returned based on device type.
- Added the /mode endpoint used to put UTG into offline mode via an API call.
- Added expiration date to the "Using token" examples for various endpoints.
- Clarified the
dateTime
field to be in the merchant's time. - Fixed the /giftcards/cancel endpoint to include token data.
- Fixed the Max Length for
VendorReference
to 50 - was previously 60.
- Added
card.present
to the /cards/verify endpoint
- Added response values to the
threeDSecure.cavvResult
field - Clarified the description for
BusinessDate
on the reports/batchtotals and batches/submit endpoints.
- Added
ReceiptColumns
to the /transactions/invoice GET and DELETE endpoints
- Added additional
threeDSecure
fields. - Updated max length for previously configured
threeDSecure
properties.
- Added
qrCode.qrPayIndicator
to the /transactions/authorization and /transactions/sale endpoint request.
- Added the
lighthouse
object to the 400 and 504 responses.
- Added the
extendedCardData
field to the /transactions/authorization and /transactions/sale endpoints. Used when processing 3D Secure, Apple Pay and Google Pay transactions via i4Go.
- Added endpoints for /qrpayments/getqrcode, /qrpayments/getqrpaymentstatus, /qrpayments/getqrdetails, /qrpayments/cancelqrpayment
- Added Apple Pay/3D Secure support to the /transactions/authorization and /transactions/sale endpoints. This feature is still in certification and is subject to change.
- Added content to the
notes
Field definition stating, "Escaped quotation marks should not be sent in the Notes field." - Added the following note to the Endpoints definition under the Introduction. Note: The Shift4 REST API responses will filter out values that are empty strings, false 'Boolean', or zeros 'numeric'. For example, if a zero is sent in a numeric field such as tax, the API will not return that field in the response.
- Added the
amount.tax
field to the /transactions/refund endpoint. - Added the
transaction.purchaseCard
object to the /transactions/refund endpoint.
- Added Federal law requirement to truncate credit card information on receipts. This was added under Printing Receipts, EMV Receipts, and under the API Option RETURNEXPDATE.
- Updated the
transaction.manualTranid
definition and updated its application to just Manual Authorization, and Manual Sale.
- Added
transaction.manualTranid
andtransaction.vendorReference
, to Authorization, Capture, SalePurchase, Refund, Manual Authorization, and Manual Sale.
- Corrected two typos. One in How Global TokenStore Works 'for the purpose of this example' and the other in Formatted Receipts 'receipts'.
- Added Acceptable Test Card Trigger Numbers table, Required EMV Authorization Request Tags table, Required Contactless EMV Authorization Request Tags table, and Financially Sensitive EMV Tags table.
- Added card types CI 'Citgo' and BC 'Backed Card'.
- Added PRINTTIPLINE to the API Options.
- Added
lighthouse.data
to the 200 response for the /transactions/sale endpoint
- Added
customer.firstName
andcustomer.lastName
to the 200 response for the following endpoints: /transactions/authorization, /transactions/capture, /transactions/sale, /transactions/invoice, /transactions/manualauthorization, and /transactions/manualsale
- Fixed
promptSecurityCode
to reflect the correct field name -promptCardSecurityCode
. - Fixed
overrideBusDate
to reflect the correct field name -transaction.businessDate
.
- Added header for Device Manufacture Only API Options.
- Added CONTACTLESSEMVCAPABLE API Option with definition
Changed the
AccessToken
in the example to a working value so that it can just be copied/pasted for quick testing.Changed the
authToken
andclientGuid
in the credentials/accesstoken request to a working value so that it can just be copied/pasted for quick testing.
- Added
receiptColumns
- Added API Option header parameter to GET transactions/invoice
- Added IGNOREEXPIRY Api Option
- Added the
lighthouse
object - Added Card On File Transaction content to Advanced Concepts
- Added
cardOnFile
object - Added universal token object and GET /tokens/universaltoken endpoint
- Corrected endpoint for POST /devices/termsandconditions
- Corrected endpoint for DELETE /tokens
- Updated response format and sample for POST /tokens/add
- Updated response format for POST /cards/identify
- Updated sample responses for several gift card endpoints
- Updated
device
object - Updated /cards/identify response format
- Updated parameters for formatted receipt
- Reformatted Test Server Trigger Values section
- Updated use cases
- Added trigger for decline on a refund
- Updated Citcon section
- Updated void use case
- Updated upload signature request format
- Updated
responseCode
information
- Updated
card.type
information
- Updated void response format
- Updated capture request format
- Added
transaction.amex
object - Added
transaction.saleFlag
- Updated information on UTG and offline behavior
- Corrected parameters on some devices endpoints
- Updated Printing Receipts section
- Rebranded DotN to LTM and Shift4's Gateway
- Expanded information about closing batches
- Added
device.manufacturer
anddevice.model
- Updated
device.capability
object - Added
formattedReceipt
object and header
- Added emv fields for fallback scenarios
- Updated descriptions for
customer
anddevice.capability
objects - Updated sample requests and responses
- Added the following endpoints: /devices/promptinput, /giftcards/cancel
- Added partial approval
responseCode
to the Transaction Flow Diagram - Updated the "conditional" statements about several fields
- Removed Sandbox URLs
- Added the following endpoints: /devices/prompttermsandconditions, /devices/initializereaders, /devices/promptcardread, /devices/processform
- Added the following endpoints: /devices/promptconfirmation, /devices/lineitems, /devices/info, /devices/reset
- Added
apiOption
POSHANDLEAVSFAIL - Added information regarding contactless EMV
- Updated description of debit-related fields
- Removed the /cards/block, /cards/blockstatus, /cards/unblock endpoints
- Added a test card for Discover's new BIN range
- Updated the request formats for some of the /cards, /devices, and /tokens endpoints
- Added the following endpoints: /cards/verify, /cards/identify, /cards/block, /cards/unblock, /cards/blockstatus, /devices/print, /devices/promptsignature, /tokens/4words
- Re-added the /tokens/delete endpoint
- Added endpoints for /reports/batchtotals and /batches/submit
- Added information about responseCode 'P' 'partial approval'
- Updated the P2PE data samples
- Changed
customer.streetAddress
tocustomer.addressLine1
- Updated samples for Using EMV with P2PE
- Updated Transaction Flow Diagram
- Added
overrideBusDate
parameter
- Added URL example for locally installed UTG
- Added
device.capability
object
- Updated EMV & P2PE information
- Corrected the response format
- Removed display of meaningless extra names for fields and objects 'ex: CustomerObject'
- Added Gift Cards endpoints, Manual Sale and Manual Authorization
- Added image for Transaction Flow Diagram
- Added multiple versions of request bodies for several endpoints
- Re-ordered request and response fields for greater consistency
- Added example value for
signature.data
andemv.tlvdata
- Fixed missing descriptions on some fields in error result schemas
- Updated several design consideration sections to reflect API flow changes
- Updated the response format for several endpoints
- Removed references to a few deprecated API Options and fields
- Split "Design Considerations" into multiple groups and relocated them to be after "Endpoints"
- Updated references to old field names
- Fixed unintentional linebreaks on several "Warning" messages
- Updated sample error responses to be more accurate for each endpoint
- Added
clerk
to sample response for multiple endpoints - Added 504 response type
- Added information about special characters on some header parameters
- Converted several lists to tables 'for enum's'
- Updated name for /transactions/authorization endpoint
- Added header fields for /credentials/accesstoken endpoint
- Removed
metatoken
object and RETURNMETATOKEN APIOption
- Added
result
parent object in responses - Removed /tokens/delete endpoint
- Added the Hotel and Auto Rental blocks to the Capture request.
- Removed the body from the DELETE functions in transactions/invoice and tokens/delete.
- Fixed where some string fields were showing up as non-strings in the examples.
- Fixed the
credential
object in the Access Token Exchange request so that it is singular. - Fixed the
dateTime
description and examples to show the colon in the time offset. - Fixed the server URLs to include /api/rest in the path.
- Extended the Trigger Values section
- Extended the Error Codes section
- Changed the casing on the Header parameters.
- Added Receipt Printing Requirements content
- Removed
apiOptions
from responses