Known Limitations
Loyalty discounts cannot be combined with internal discounts. Punchh will display an error message on the POS screen if cashier tries to combine them.
When a check is split, any Punchh functionality must be done before payments are applied.
If a loyalty discount has a value of exactly $1.00, the discount’s value will not show on the POS screen, but the check total will still show the correct amount.
User lookup by email is not possible on some squirrel versions due to lack of '@' character on the squirrel virtual keyboard.
Punchh verified that this issue appeared on squirrel v9, but not on squirrel v11.
Special characters other than '@' on the squirrel virtual keyboard can only be accessible by clicking the '@' button.
Punchh Certificate Test Log
Integration Type | POS | |||
POS/Kiosk Name | Squirrel | |||
Kiosk POS/Order Relay System | ||||
Tested Version | 11.00.19382 | |||
Applicable Functionality | Test Actions | Expected Result | Actual Result | Notes |
Core Functionality | Supported all Punchh Loyalty Structures | User's information should be reflected according to the selected business structure. Details for what each structure should look like in lookup on POS or Kiosk. Examples of all messages and prompts and status codes should be provided. | Pass | |
Core Functionality | Verify visits based business structure | User's information should be reflected according to the selected business structure. Details for what each structure should look like in lookup on POS or Kiosk. Examples of all messages and prompts and status codes should be provided. | Pass | |
Core Functionality | Verify banked rewards based business structure | User's information should be reflected according to the selected business structure. Details for what each structure should look like in lookup on POS or Kiosk. Examples of all messages and prompts and status codes should be provided. | Pass | |
Core Functionality | Verify points unlock redeemables business structure | User's information should be reflected according to the selected business structure. Details for what each structure should look like in lookup on POS or Kiosk. Examples of all messages and prompts and status codes should be provided. | Pass | |
Core Functionality | Verify membership tiered points based program business structure | N/A | ||
Core Functionality | Print Punchh barcode on all POS transaction receipts | The printed check should contain the valid Punchh barcode code and should be unique per check number. | Not Supported | not implemented |
Core Functionality | Print Punchh QR Code on all POS transaction receipts | The printed check should contain the valid Punchh QR code and should be unique per check number. | Pass | |
Core Functionality | Verify valid Punchh barcode or QR is present on the open check | The printed check (not closed) should contain the valid Punchh barcode or QR code. | N/A | |
Core Functionality | Enter barcode on iframe https://sandbox.punchh.com/whitelabel | Points should be updated on the apps and dashboard. | Pass | |
Core Functionality | Scan the barcode or QR code located on the check via mobile app. | Points should be updated on the apps and dashboard. | Pass | |
Core Functionality | Enter manually barcode or QR code value via mobile app. | Points should be updated on the apps and dashboard. | Pass | |
Core Functionality | Barcodes should be unique per check for the period of testing. | Request separate documentation on how to generate barcodes | Pass | |
Core Functionality | Verify that virtual or physical keypad is available loyalty functionality. | Virtual or physical keypad should be available loyalty functionality. | Pass | |
Core Functionality | Manually enter redemption codes | Ability to enter redemption code via virtual or physical keyboard | Pass | |
Core Functionality | Manually enter coupon/promo codes | Ability to enter coupon and promo codes via virtual or physical keyboard | Pass | |
Core Functionality | Manually lookup user by email address | Ability to enter user email address via virtual or physical keyboard | Pass | |
Core Functionality | Manually lookup user by phone number | Ability to enter phone number via virtual or physical keyboard | Pass | |
Core Functionality | Verify the ability to change Punchh loyalty endpoints | Ability to change the Punchh service endpoints. The default values are: pos.punchh.com/api/pos isl.punchh.com | Pass | |
Core Functionality | POS displays Punchh API error messages | Displays Punchh API error messages prompts and status codes that should be supported e.g 4xx http API errors | Partially Supported | not all messages |
User Lookup Functionality | Properly Display user account status after lookup for all supported program types | USER DATA: | Pass | |
User Lookup Functionality | Lookup user via long QR code from user's timeline or from mobile app-if available | Ability to lookup user via long check in QR code | Pass | |
User Lookup Functionality | Lookup via short QR code from user's timeline or from user's mobile app-if available | Ability to lookup user via short check in QR code | Pass | |
User Lookup Functionality | Lookup via user's phone number | Ability to lookup user via user's phone number | Pass | |
User Lookup Functionality | Lookup via user's email address | Ability to lookup user via user's email address | Pass | |
User Lookup Functionality | Lookup by swiping, scanning or entering loyalty card number | Ability to lookup user via swiping, scanning or entering user's loyalty card number | Not Supported | not implemented |
User Lookup Functionality | Lookup should be available anytime during the current order. | Ability to user lookup anytime during the order | Partially Supported | no lookup on empty check |
Acquire New User | Acquire new users at the POS via phone lookup | When user doesn't exist at lookup, POS prompts to create user using the entered lookup value | Pass | |
Acquire New User | Acquire new users at the POS via email address | When user doesn't exist at lookup, POS prompts to create user using the entered lookup value | Pass | |
Acquire New User | Verify if user is checked in when new user's account is created | New user should be checked in. Points should be added to user's account. | Pass | |
Acquire New User | Verify if internal POS user account creation is linked to/creates Punchh user | If new user account is created on POS it should create a new user account on Punchh/is linked to existing Punchh account with the same primary id (email or phone number) | Pass | |
Check-In Functionality | Check-in via Guest QR Code | Points should be updated on the apps and dashboard. | Pass | |
Check-In Functionality | Check-in via short-lived Guest Code | Points should be updated on the apps and dashboard. | Pass | |
Check-In Functionality | Check-in via user's phone number | Points should be updated on the apps and dashboard. | Pass | |
Check-In Functionality | Check-in via user's email address | Points should be updated on the apps and dashboard. | Pass | |
Check-In Functionality | Check-in by swiping, scanning or manually entering loyalty card. | Points should be updated on the apps and dashboard. | Not Supported | not implemented |
Check-In Functionality | Check-in by redemption code | Points should be updated on the apps and dashboard. | Pass | |
Check-In Functionality | Verify check-in and applying coupon code | Points should be updated on the apps and dashboard. Discount should be present on the receipt. | Pass | |
Check-In Functionality | Verify points not earned on canceled order | User should not get points on the canceled transaction. | Pass | |
Check-In Functionality | Correct void functionality with points enabled | Verify points deduction on voided check (pending points enabled) Points should be deducted from the user's account. | Pass | |
Check-In Functionality | Handling Loyalty check modification with points enabled | Verify correct earning after check is reopened and modified (pending points enabled) Points should be updated on the dashboard. | Pass | |
Check-In Functionality | Unassign customer functionality support | Verify if there is 'unassign customer' functionality. The user should not earn any points. The printed check should have a valid barcode. | Pass | |
Redeem Functionality | Applying redemption code | Enter or scan a valid redemption code at the payment screen. The subtotal amount on the receipt should be discounted according to the redemption's code amount. Punchh discount should be present on printed and PUNCHH receipt. | Pass | |
Redeem Functionality | Applying coupon code | Verify coupon codes are supported. The subtotal amount on the receipt should be discounted according to the coupon's code amount. | Pass | |
Redeem Functionality | Applying promo codes | Verify promo codes are supported. The subtotal amount on the receipt should be discounted according to the promo's code amount. | Pass | |
Redeem Functionality | Enter or scan redemption code that was already used. | Punchh API error message should pop up. The redemption code should be used only once. User lookup and Check-in should NOT occur. | Pass | |
Redeem Functionality | Enter a redemption code that doesn't exist. | Punchh API error message should pop up. | Pass | |
Redeem Functionality | Bring the total amount to the 0.00 using redemption code and (or) reward. | After the check is closed it should be sent to Punchh. User should not be able to scan barcode and earn points. | Pass | |
Redeem Functionality | Verify applying redemption/reward with the amount higher than the total of the check | The discount applied to the order should be no more than the total amount of the order. Amount the reward reflected on the timeline should match the amount applied. | Pass | |
Redeem Functionality | Verify $10 redemption/reward applied to $5 order with increase to $8 | The redemption's code/reward's amount should be changed from $5 to $8.00, but no more that $10.00 | Pass | |
Redeem Functionality | Support multiple valid redemption codes and (or) coupons and (or) rewards on a single transaction (for a single loyalty user ) | Multiple redemptions/rewards should be supported. | Pass | |
Redeem Functionality | Applying redemption code + internal discount or reward + internal discount | The subtotal amount on the receipt should be discounted according the internal discount + redemption's code/reward discount. | Not Supported | not implemented |
Redeem Functionality | Verify amount of applied reward to a qualified item is changed when internal discount is applied to the same qualified item. | The amount of the reward should be applied only to a qualified item, not to the whole check. It should be changed to the amount of qualified item with internal discount. | Not Supported | not implemented |
Redeem Functionality | Verify applying redemption code on both split payment/checks | The redemption code should be used only at first payment and only once. | Pass | |
Redeem Functionality | Verify if the check can't be split when redemption/ coupon/promo/reward is applied. | Redemption code should be either voided or POS should prevent splitting of the check while a redemption code is applied. | Pass | reward will be voided automatically |
Redeem Functionality | Verify removing the redemption code/reward/coupon/promo from the closed order. | The redemption code should be voided. If Pending points functionality is enabled, points should be returned to the user. | Pass | |
Redeem Functionality | Verify void check with the redemption code/reward | The redemption code should be voided. If Pending points functionality is enabled, points should be returned to the user. | Partially Supported | No void/cancel check. Need to reopen the check and delete manually all items |
Redeem Functionality | Applying user's rewards through lookup menu | A selected rewards from the user profile display may be applied to the POS check. Rewards should be tested for qualification and the correct discounted amount should be applied to the POS order | Pass | |
Redeem Functionality | Verify if previously applied reward is automatically removed when the reward qualified item is removed from the order | Reward should be removed from the order. | Pass | |
Redeem Functionality | Removing redemption code/coupon/promo from the order | Redemption code/ coupon should be deleted from the check and credited back to the user. User should be attached to the order when the redemption has been voided. | Pass | |
Redeem Functionality | Verify if points are properly updated on the dashboard when 2 checks with different users assigned are merged. | Both check-ins should be voided automatically before combining or POS should prevent merging while users are assigned. | Pass | |
Redeem Functionality | Item level discounts are sent as a modifier discount item of the parent item. | All item discounts should be present on the receipt details as a sub-item discounts. | Pass | |
Redeem Functionality | Verify that if POS discount rules blocks Punchh approved reward application to the order, the users reward is returned to their account | The Punchh user's reward should not be removed from the user account (redemption create) until the POS has verified that the approved redemption request has been successfully applied to the POS order | Pass | |
Redeem Functionality | Prevent multiple reward redemptions from multiple users on a single check | Reward redemptions should be applied only from one user on a single check | Pass | |
Functionality with no Internet connection | Functionality with no Internet connection | The printed check should contain the valid Punchh bar/QR code ( EAN-13 or Punchh QR Code Format ) and should be unique per check number. Check details data should be temporarily stored for later transmission. There should be no error messages shown. When Internet connection is back then any check data that was accumulated should be transmitted to Punchh. | Pass | |
Functionality with no Internet connection | Verify if order is placed and check is printed when there is no connection | The printed check should contain the valid Punchh bar/QR code ( EAN-13 or Punchh QR Code Format ) and should be unique per check number. Check details data should be temporarily stored for later transmission. There should be no error messages shown. When Internet connection is back then any check data that was accumulated should be transmitted to Punchh. | Pass | |
Functionality with no Internet connection | Verify closing order with check-in during connection loss | The order should be closed. The receipt should be printed. Check details data should be temporarily stored for later transmission. There are should be no error messages shown. When Internet connection is back then any check data that was accumulated should be transmitted to Punchh. | Pass | Receipt details are sent to Punchh after Internet is back on and user is checked in |
Functionality with no Internet connection | Verify if redemption code is voided when Internet connection is lost during payment. | Redemption code or Rewards should be voided and returned to the user. The order should be closed. The receipt should be printed. Check details data should be temporarily stored for later transmission. There are should be no error messages shown. When Internet connection is back then any check data that was accumulated should be transmitted to Punchh. | Pass | Receipt details are sent to Punchh after Internet is back on and user is checked in. Redemption code is voided on the check when Internet goes off. |
Receipt Details | POS Passes all order details in receipt data sent to Punchh | In addition to normal POS check details, the POS sends the Online ordering transaction number, Online Ordering/Kiosk guest's registered status and the Online ordering Punchh key value in the POS receipt details to Punchh | Pass | |
Receipt Details | Verify applying internal discount is in receipt details sent to Punchh | The printed check should contain the valid Punchh barcode/ QR code, discount should be visible in the receipt details on the Dashboard and on the printed receipt | Pass | |
Receipt Details | The paid amount on the receipt should be converted to the earning points without including taxes and tips. | The taxes or tips should not be converted to the points. Amount and subtotal_amount should be equal and should be sum of all menu items minus all discounts. | Pass | |
Receipt Details | Verify transaction number is present on the printed receipt and it should match Punchh check number. | The transaction number of printed receipt and should match the transaction number in the receipt details sent to Punchh. | Pass | |
Receipt Details | Verify sending payments as type "P" | Receipt details should contain payment type as "P" | Pass | |
Receipt Details | Verify sending service charges as type "S" | Receipt details should contain service charge type as "S" | Pass | |
Receipt Details | Verify sending Taxes charges as type "T" | Receipt details should contain service charge type as "T" | Pass | |
Receipt Details | Verify all check details balance above and below the total | subtotal_amount = (Sum(M) - Sum (D) (Punchh and Internal Discounts)) | Pass | |
Receipt Details | POS send receipt_details API call when check is finalized after payment is applied | Receipt details should contain all fields from the check. | Pass | |
Receipt Details | Pending Points enabled, send receipt_details when check in printed | When pending points are enabled, the POS makes receipt_details API call when the check is printed and at check finalization. If pending points are not enabled, only make receipt_details API call at check finalization | Pass | |
Receipt Details | Serial numbers support for modifiers | Serial numbers should be used for modifiers and start with 1.0 (Main item (1.0) + subitem (1.01)) Range 0.00-0.99 | Pass | |
Receipt Details | Verify data sent to Rev code/ID POS data reflect POS functionality that designated the method that the order is being fulfilled to the guest | This should be the id/text values that represent the way in which the order is going to be fulfilled to the customer. | Not Supported | not implemented |
Receipt Details | POS Memo Items are passed in the check receipt details to Punchh | "Memo Items" are POS System items that allow a POS operator or a integration partner to add freeform text to a check item. The Item ID is reused by the integration to add different information for each instance of the same menu item. | N/A | |
Portal Functionality | Set up text of the Header in receipt message on the Dashboard. | Line with a text should be added on the top of a receipt. | Pass | |
Portal Functionality | Set up text of the Trailer in receipt message on the Dashboard. | Line with a text should be added below the barcode of a receipt. | Pass | |
Portal Functionality | Disable Barcode Generation at POS. | The Barcode should not be printed on the receipt. | Pass | |
Logging | Verify POS/Kiosk version and sub-version should be logged at log file start | POS/Kiosk version and sub-version should be logged at log file start | Pass | |
Logging | Verify that all text data (menu items, employee name etc.) are URL encoded | All text data (menu items, employee name etc.) should be URL encoded | Pass | |
Logging | Verify Punchh API request/response logging | These fields should be equal and should be sum of menu items minus discounts (not including taxes or tips) | Pass | |
Logging | Verify that revenue_id and revenue_code should be included in the logs | Verify that these fields are sent to Punchh | Pass | |
Logging | Verify that if using URL encoding then there should be no special symbols per rfc3986. Make sure that any characters like ampersand, percent etc. are not shown in the names of the menu items or employees but rather URL Encoded | if URL encoding is not used then there should be no special symbols per rfc3986. Make sure that any characters like ampersand, percent etc. are not shown in the names of the menu items or employees but rather URL Encoded | Pass | |
Logging | Verify that log details is properly adjust to Location Config log level settings | Log details should be properly adjust to Location Config log level settings | Pass | |
Logging | Verify that logs are uploaded to Punchh POS logging repository | Logs should be uploaded to Punchh POS logging repository | Pass | |
Single Scan Flow | POS Supports Single Scan Flow | POS support single scan flow for earning/redemption/payment | Not Supported | not implemented |
Single Scan Flow | POS support SSF Check-in only | POS support single scan flow for earning only | Not Supported | not implemented |
Single Scan Flow | POS support SSF Pay and Check-in | POS support single scan flow for pay and check-in | Not Supported | not implemented |
Single Scan Flow | POS support SSF Redeem and Check-in | POS support single scan flow for redeem and check-in | Not Supported | not implemented |
Single Scan Flow | POS support SSF Redeem, Pay and Check-in | POS support single scan flow for redeem, pay and check-in | Not Supported | not implemented |