# Changelog # 1.7.43 - 2025-09-18 - 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`, and `merchant.autoClose.enabled` to the /merchants/merchant endpoint response. - PPRA-336: Added `dcc.marginOverEcb` and `dcc.displayUnit` to the `dcc` 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. # 1.7.42 - 2025-08-25 - PPRA-331: Fixed where the /ach/verify endpoint was missing the request body # 1.7.41 - 2025-08-20 - PPRA-323: Added support for the .NET SDK # 1.7.40 - 2025-08-11 - PPRA-318: Updated `mPos.type` description to remove the dependency on `transaction.source` - PPRA-322: Corrected the `transaction.responseCode` values for the /ach/plaid/public_token/exchange endpoint response. - PPRA-324: Added the `D2` value to `hostResponse.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 optional `transction.originalInvoice` field. - PPRA-327: Added `card.type` as an optional field to the `P2PE - TDES DUKPT - EMV`, `P2PE - TDES DUKPT - MSR/Manual`, `P2PE - ID TECH - EMV/MSR/Manual`, `P2PE - On-Guard SDE - EMV`, and `P2PE - 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. # 1.7.39 - 2025-07-09 - 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. # 1.7.38 - 2025-06-30 - PPRA-306: Added Dynamic Currency Conversion (DCC) receipt printing requirements # 1.7.37 - 2025-06-26 - PPRA-304: Marked `transaction.source` as conditional. Required when processing on an unattended device. - PPRA-305: Added `Miura` to `devices.manufacturer` # 1.7.36 - 2025-06-25 - PPRA-300: Added `Castles` to `devices.manufacturer` - PPRA-301: Removed the conditional text from `card.number`, `customer.firstName` and `customer.lastName` - PPRA-302: Updated the description for the `USECARDNAME` apiOption to clarify its use # 1.7.35 - 2025-06-24 - 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` and `Commerce Engine For Cloud` request bodies to the /devices/promptinput endpoint - PPRA-295: Added /devices/prompttip via `Commerce Engine For On Premise` and `Commerce 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 if `customer.phoneNumber` is included - PPRA-298: Increased `form.header.value` and `form.subHeader.value` max length to 100 in the /devices/processform endpoint. - PPRA-299: Increase `device.promptTermsAndConditions.header ` and `device.promptTermsAndConditions.ackText` max length to 100 in the /devices/termsandconditions endpoint. # 1.7.34 - 2025-06-13 - 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. # 1.7.33 - 2025-04-07 - PPRA-282: Updated the test trigger for `card.number = 4321000000011001` to return `error.primaryCode = 9951` # 1.7.32 - 2025-04-01 - 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 the `P2PE - TDES DUKPT - EMV` and `P2PE - TDES DUKPT - MSR/Manual` request bodies. # 1.7.31 - 2025-03-14 - 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 # 1.7.30 - 2025-03-07 - 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` and `dcc.cardTypes` to the `merchant` object in the /merchants/merchant response. # 1.7.29 - 2025-02-04 - 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. # 1.7.28 - 2025-01-14 - 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 the `Commerce Engine For On Premise` and `Commerce Engine For Cloud` request bodies. # 1.7.27 - 2024-12-30 - PPRA-256: Marked `card.entryMode` as required for the `Unencrypted 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 the `3D Secure Using Card Number` request body on the /transactions/sale and /transactions/authorization endpoints. # 1.7.26 - 2024-12-10 - 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. # 1.7.25 - 2024-10-29 - PPRA-169: Removed `ach.verificationType` from the /ach/sale and /ach/refund requests and all ach fields except `ach.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` and `paypal.paymentMethodIdUsage` to the /paypal/sale endpoint. - PPRA-256: Removed `correlationId` from the /ach/plaid/public_token/exchange endpoint response. # 1.7.24 - 2024-09-12 - 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. # 1.7.23 - 2024-07-30 - PPRA-225: Add support for Account Name Inquiry (ANI) on the /cards/verify request. # 1.7.22 - 2024-07-19 - 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. # 1.7.21 - 2024-05-28 - 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 to `Commerce Engine For On Premise` - PPRA-201: Added `Commerce Engine For On Premise` & `Commerce Engine For Cloud` request bodies to the /tokens/add endpoint. # 1.7.20 - 2024-05-14 - 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. # 1.7.19 - 2024-04-26 - 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`, and `TerminalID` keys to the raw receipt table - PPRA-183: Removed `transaction.responseCode` from paypal/initiate # 1.7.18 - 2024-04-02 - 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 the `P2PE - On-Guard SDE - MSR/Manual` and `P2PE - 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 # 1.7.17 - 2024-03-27 - 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` and `cardOnFile.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 the `p2pe` 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. # 1.7.16 - 2024-02-01 - 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. # 1.7.15 - 2023-12-15 - PPRA-144: Added support for Ingenico On-Guard SDE P2PE # 1.7.14 - 2023-12-06 - 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` and `card.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 # 1.7.13 - 2023-09-08 - 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`, and `device.promptStreetNumber` fields to only send them when overriding the UTG MCE settings # 1.7.12 - 2023-08-30 - PPRA-54: Added ACH support - PPRA-90: Updated `hostResponse.reasonCode` to indicated AVS failures will return `77` and CVV failures will return `N7`. - 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. # 1.7.11 - 2023-06-12 - PPRA-79 Marked `transaction.source` as required - PPRA-80 Marked the `mPos` object as conditionally required if `transaction.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 # 1.7.10 - 2023-05-09 - 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` and `card.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 of `card.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. # 1.7.9 - 2023-04-26 - 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 # 1.7.8 - 2023-04-05 - 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` and `ach.routingNumber` instead of `ach.bankAccountNumber` and `ach.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`, and `threeDSecure.xid` field definitions for Google Pay to remove the reference to `paymentMethodData.tokenizationData.token` # 1.7.7 - 2023-02-02 - 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 # 1.7.6 - 2023-01-19 - 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 # 1.7.5 - 2023-01-10 - 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` or `customer.postalCode` field and it does not match one of the triggers it will return `transaction.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 the `P2PE via IDTech Device`, `P2PE - TDES DUKPT - EMV`, and `P2PE - 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`, and `transaction.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. # 1.7.4 - 2022-09-26 - 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 # 1.7.3 - 2022-09-12 - 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 # 1.7.2 - 2022-08-18 - 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. # 1.7.1 - 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. # 1.7.0 - 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` and `recurringFrequency` to the `transaction.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` and `error.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. # 1.6.15 - 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` and `transaction.airline.travelAgencyName` as conditional fields. # 1.6.14 - Modified the trustly notification to be a webhook rather than an endpoint. # 1.6.13 - Added `ticketFare` to the `transaction.airline.ticket` array. # 1.6.12 - Fixed the 504 timeout error response example where the primaryCode was showing 995 instead of 9951. # 1.6.11 - Added `customer.emailAddress` and `customer.ipAddress` to the /transactions/sale and /transactions/authorization endpoints. # 1.6.10 - Added clarifications to the `transaction.cardOnFile.usageIndicator` and `transaction.cardOnFile.transactionId` descriptions. # 1.6.9 - Clarified the format for `transaction.airline.ticket.passengerName` # 1.6.8 - 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. # 1.6.7 - 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. # 1.6.6 - Renamed `transaction.id` to `transaction.s4RiskId` and `risk.id` to `risk.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. # 1.6.5 - 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. # 1.6.4 - Fixed a typo in the `shoppingCart` array where the field `quantity` was misspelled. # 1.6.3 - 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. # 1.6.2 - Added support for the /risk/assess endpoint - Added `transaction.id`, `risk.id` and `risk.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`, and `transaction.hostResponse` to the /trustly/capture, /trustly/deposit, /trustly/refund, and /trustly/cancel endpoints - Added the /trustly/statusinquiry endpoint - Added `transaction.authSource`, and `transaction.responseCode` to the /tappp/cancel, /tappp/capture, /tappp/decryptpayload, /tappp/initiatepayment, and /tappp/tokenstatus endpoints. # 1.6.1 - Added the `lighthouse` object back to the /transactions/sale endpoint with clarification that it is for Skytab transactions only. # 1.6.0 - 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 # 1.5.8 - 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. # 1.5.7 - Added the 'X' value to the `transaction.responseCode` field. # 1.5.6 - Fixed the `device.promptInput.index` description so that the values are in a properly formatted table. # 1.5.5 - 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. # 1.5.4 - Added the [Development Quick Start]'#section/Development-Quick-Start' section. # 1.5.3 - Added `merchant.mid` to the merchants/merchant response - Added `transaction.vendorReference` to the trustly notification request. # 1.5.2 - 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 of `originalInvoice` # 1.5.1 - 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 # 1.5.0 - 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 # 1.4.5 - Updated the /transactions/manualauthorization and /transactions/manualsale endpoints to have unique request body schemas based on the request type. # 1.4.4 - Updated the /transactions/refund endpoint to have unique request body schemas based on the request type. # 1.4.3 - Updated the /mode/offline and /mode/online endpoints to include AccessToken in the header. # 1.4.2 - 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 # 1.4.1 - Added a Wallet/3D Secure Using Card Number request body to the /transactions/authorization endpoint. - Fixed the `receiptColumns` length to 2 characters. # 1.4.0 - 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. # 1.3.0 - Added the /giftcards/allocate endpoint. # 1.2.5 - Added clarification to the /transactions/capture endpoint to indicate that the `card` object is required. # 1.2.4 - Added clarification to `card.entryMode` that the field is not needed when P2PE data is being sent from a non-UTG controlled device. # 1.2.3 - 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. # 1.2.2 - Added `device.serialNumber` for non-utg controlled devices. - Added `device.manufacturer` and `device.model` to the /refund endpoint # 1.2.1 - Updated the /devices/info responses to reflect the different data that is returned based on device type. # 1.2.0 - 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. # 1.1.8 - Fixed the Max Length for `VendorReference` to 50 - was previously 60. # 1.1.7 - Added `card.present` to the /cards/verify endpoint # 1.1.6 - Added response values to the `threeDSecure.cavvResult` field - Clarified the description for `BusinessDate` on the reports/batchtotals and batches/submit endpoints. # 1.1.5 - Added `ReceiptColumns` to the /transactions/invoice GET and DELETE endpoints # 1.1.4 - Added additional `threeDSecure` fields. - Updated max length for previously configured `threeDSecure` properties. # 1.1.3 - Added `qrCode.qrPayIndicator` to the /transactions/authorization and /transactions/sale endpoint request. # 1.1.2 - Added the `lighthouse` object to the 400 and 504 responses. # 1.1.1 - 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. # 1.1.0 - 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. # 1.0.28 - 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. # 1.0.27 - 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. # 1.0.26 - Updated the `transaction.manualTranid` definition and updated its application to just Manual Authorization, and Manual Sale. # 1.0.25 - Added `transaction.manualTranid` and `transaction.vendorReference`, to Authorization, Capture, SalePurchase, Refund, Manual Authorization, and Manual Sale. # 1.0.24 - Corrected two typos. One in How Global TokenStore Works 'for the purpose of this example' and the other in Formatted Receipts 'receipts'. # 1.0.23 - 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. # 1.0.22 - Added `lighthouse.data` to the 200 response for the /transactions/sale endpoint # 1.0.21 - Added `customer.firstName` and `customer.lastName` to the 200 response for the following endpoints: /transactions/authorization, /transactions/capture, /transactions/sale, /transactions/invoice, /transactions/manualauthorization, and /transactions/manualsale # 1.0.20 - Fixed `promptSecurityCode` to reflect the correct field name - `promptCardSecurityCode`. - Fixed `overrideBusDate` to reflect the correct field name - `transaction.businessDate`. # 1.0.19 - Added header for Device Manufacture Only API Options. - Added CONTACTLESSEMVCAPABLE API Option with definition # 1.0.18 - Changed the `AccessToken` in the example to a working value so that it can just be copied/pasted for quick testing. - Changed the `authToken` and `clientGuid` in the credentials/accesstoken request to a working value so that it can just be copied/pasted for quick testing. # 1.0.17 - Added `receiptColumns` # 1.0.16 - Added API Option header parameter to GET transactions/invoice # 1.0.15 - Added IGNOREEXPIRY Api Option - Added the `lighthouse` object - Added Card On File Transaction content to Advanced Concepts # 1.0.14 - Added `cardOnFile` object - Added universal token object and GET /tokens/universaltoken endpoint - Corrected endpoint for POST /devices/termsandconditions # 1.0.13 - 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 # 1.0.12 - Updated `device` object - Updated /cards/identify response format # 1.0.11 - Updated parameters for formatted receipt - Reformatted Test Server Trigger Values section # 1.0.10 - Updated use cases - Added trigger for decline on a refund - Updated Citcon section # 1.0.9 - Updated void use case - Updated upload signature request format # 1.0.8 - Updated `responseCode` information # 1.0.7 - Updated `card.type` information # 1.0.6 - Updated void response format - Updated capture request format - Added `transaction.amex` object - Added `transaction.saleFlag` # 1.0.5 - Updated information on UTG and offline behavior - Corrected parameters on some devices endpoints # 1.0.4 - Updated Printing Receipts section - Rebranded DotN to LTM and Shift4's Gateway - Expanded information about closing batches - Added `device.manufacturer` and `device.model` # 1.0.3 - Updated `device.capability` object - Added `formattedReceipt` object and header # 1.0.2 - Added emv fields for fallback scenarios - Updated descriptions for `customer` and `device.capability` objects - Updated sample requests and responses # 1.0.1 - Added the following endpoints: /devices/promptinput, /giftcards/cancel - Added partial approval `responseCode` to the Transaction Flow Diagram - Updated the "conditional" statements about several fields # 1.0.0 - Removed Sandbox URLs - Added the following endpoints: /devices/prompttermsandconditions, /devices/initializereaders, /devices/promptcardread, /devices/processform # 0.7.28 Beta - Added the following endpoints: /devices/promptconfirmation, /devices/lineitems, /devices/info, /devices/reset - Added `apiOption` POSHANDLEAVSFAIL - Added information regarding contactless EMV # 0.7.27 Beta - Updated description of debit-related fields - Removed the /cards/block, /cards/blockstatus, /cards/unblock endpoints # 0.7.26 Beta - Added a test card for Discover's new BIN range - Updated the request formats for some of the /cards, /devices, and /tokens endpoints # 0.7.25 Beta - Added the following endpoints: /cards/verify, /cards/identify, /cards/block, /cards/unblock, /cards/blockstatus, /devices/print, /devices/promptsignature, /tokens/4words # 0.7.24 Beta - 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 # 0.7.23 Beta - Changed `customer.streetAddress` to `customer.addressLine1` # 0.7.22 Beta - Updated samples for Using EMV with P2PE - Updated Transaction Flow Diagram - Added `overrideBusDate` parameter # 0.7.21 Beta - Added URL example for locally installed UTG # 0.7.20 Beta - Added `device.capability` object # 0.7.19 Beta - Updated EMV & P2PE information - Corrected the response format # 0.7.18 Beta - Removed display of meaningless extra names for fields and objects 'ex: CustomerObject' - Added Gift Cards endpoints, Manual Sale and Manual Authorization # 0.7.17 Beta - Added image for Transaction Flow Diagram # 0.7.16 Beta - Added multiple versions of request bodies for several endpoints - Re-ordered request and response fields for greater consistency - Added example value for `signature.data` and `emv.tlvdata` - Fixed missing descriptions on some fields in error result schemas # 0.7.15 Beta - Updated several design consideration sections to reflect API flow changes # 0.7.14 Beta - Updated the response format for several endpoints - Removed references to a few deprecated API Options and fields # 0.7.13 Beta - 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 # 0.7.12 Beta - Updated sample error responses to be more accurate for each endpoint # 0.7.11 Beta - 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' # 0.7.10 Beta - Updated name for /transactions/authorization endpoint - Added header fields for /credentials/accesstoken endpoint # 0.7.9 Beta - Removed `metatoken` object and RETURNMETATOKEN APIOption # 0.7.8 Beta - Added `result` parent object in responses - Removed /tokens/delete endpoint # 0.7.7 Beta - 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. # 0.7.6 Beta - 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. # 0.7.5 Beta - Extended the Trigger Values section - Extended the Error Codes section # 0.7.4 Beta - Changed the casing on the Header parameters. # 0.7.3 Beta - Added Receipt Printing Requirements content - Removed `apiOptions` from responses