The POS integration by Focus POS Systems (Not to be confused with “Focus” in the Punchh POS Type for Focus Brands)
Integration Notes
Discount Notes
An item will only be allowed to be discounted 1 time
Entire check (no items returned in the item array) we consider that all current items are flagged as discounted and therefore no additional discounts or promotions can be applied.
No application items or constraints should be used in the discount setup, Focus relies solely on Punchh to validate and calculate all discounts related to the rewards program
All Punchh discounts are processed as same Discount in Focus
Phase 1 Notes
Phase 1 will not support barcode printing for post-sale earning
Visit based program support ONLY. No point based program support (Points unlock/tiered/Etc)
No banked Reward Program type support
Punchh Certificate Test Log
POS/Kiosk Name | Focus POS | |||
Tested POS/Kiosk Version | 10.1.200514 | |||
Integration Type | POS | |||
Date | 5/21/2020 | |||
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. | Partially Supported | only visit based |
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. Completed Visit card reward redemptions may be performed on the POS without the App | 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. Banked reward redemptions may be performed on the POS without the App. | Not Supported | not for phase 1 |
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. Unlockable reward redemptions may be performed on the POS without the App | Not Supported | not for phase 1 |
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 for phase 1 |
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. | Not Supported | not for phase 1 |
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. | Not Supported | not for phase 1 |
Core Functionality | Enter barcode on iframe https://sandbox.punchh.com/whitelabel | Points should be updated on the apps and dashboard. | Not Supported | not for phase 1 |
Core Functionality | Scan the barcode or QR code located on the check via mobile app. | Points should be updated on the apps and dashboard. | Not Supported | not for phase 1 |
Core Functionality | Enter manually barcode or QR code value via mobile app. | Points should be updated on the apps and dashboard. | Not Supported | not for phase 1 |
Core Functionality | Barcodes should be unique per check for the period of testing. | Request separate documentation on how to generate barcodes | Not Supported | not for phase 1 |
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 | Pass | |
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 | Pass | |
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) | Not Supported | not implemented |
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. | Not Supported | Modifications to reopened check will not be captured |
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. | Not Supported | Modifications to reopened check will not be captured |
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 | |
Check-In Functionality | POS checks in assigned user (phone/email/card number/redemptioncode/qr code) at check finalization | Verifry that if any user token is provided by the guest, they are assigned to the POS transactions and the user is checked in by the POS system automatically at check finailization (Tender/Close) | 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. | Not Supported | check modification is restricted when there's a discount on the check |
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 | Not Supported | |
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. | Not Supported | |
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 | |
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. | Pass | |
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 | |
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. | Pass | |
Redeem Functionality | Applying user's rewards through user lookup menu (Visit/Banked/Points Unlock, Offers) | A selected reward 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. The program type core rewards and offers should be available for selection via the POS user profile lookup interface | Pass | won't let you remove qualified item if reward is applied |
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. | N/A | |
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 | Not Supported | not for phase 1 |
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 | Not Supported | not for phase 1 |
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. | Not Supported | not for phase 1 |
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. | Not Supported | not for phase 1 |
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. | Not Supported | not for phase 1 |
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 | 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 | presence of internal discount was verified on virtual check |
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. | Not Supported | not for phase 1 |
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. | Not Supported | not for phase 1 |
Receipt Details | Verify sending payments as type "P" | Receipt details should contain payment type as "P" | Not Supported | not for phase 1 |
Receipt Details | Verify sending service charges as type "S" | Receipt details should contain service charge type as "S" | Not Supported | not for phase 1 |
Receipt Details | Verify sending Taxes charges as type "T" | Receipt details should contain service charge type as "T" | Partially Supported | only subtotal_amount = (Sum(M) - Sum (D) (Punchh and Internal Discounts)) |
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. | Not Supported | not for phase 1 |
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 | Not Supported | not for phase 1 |
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 | Not Supported | not for phase 1 |
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 for phase 1 |
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. | Pass | |
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. | Not Supported | not for phase 1 |
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 | Not Supported | not for phase 1 |
Logging | Verify that logs are uploaded to Punchh POS logging repository | Logs should be uploaded to Punchh POS logging repository | Not Supported | not for phase 1 |
Single Scan Flow | POS Supports Single Scan Flow | POS support single scan flow for earning/redemption/payment | Not Supported | not for phase 1 |
Single Scan Flow | POS support SSF Check-in only | POS support single scan flow for earning only | Not Supported | not for phase 1 |
Single Scan Flow | POS support SSF Pay and Check-in | POS support single scan flow for pay and check-in | Not Supported | not for phase 1 |
Single Scan Flow | POS support SSF Redeem and Check-in | POS support single scan flow for redeem and check-in | Not Supported | not for phase 1 |
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 |