Squirrel Categories
Squirrel OS has a variable depth nested category tree structure
With Squirrel POS, only the tip of each branch may contain menu items
Squirrel POS menu categories do not enforce naming uniqueness
Punchh has implemented the use of category ID’s as the values that are mapped to the Punchh Major Group and Family group fields
Please see the Squirrel POS v2 Category to Punchh Group Mapping guide for details on how to utilize Squirrel category ID’s in Punchh Line Item Selectors and Qualifying Criteria rules
POS Type: | Squirrel Punchh | |||||
Punchh POS API Value | Punchh API description | Punchh Notes | POS Data Element Mapping | POS Data Element Notes | Status | Meets Punchh Requirement Definition |
cc_last4 | The last 4 digits of the cc number for use to allow associating of non-punchh users with transactions for future linking when the user joins loyalty | 0 | always sending 0000 | 3.POS status confirmed | The POS passes accurate Employee ID for every API call, when applicable (i.e. not for online or kiosk orders but for all other POS transacations performed by an employee) | |
employee_id | The employee ID in the POS that serviced the check for that transaction. | The employee may change over the life of the transaction (Example bartender transfers check to server then a cashier closes the check). The currently active employee servicing the POS order when the Punchh API call is made is the value that should be sent to Punchh in the API call | X_CheckServer.K_Employee.EmpID | 1.POS status confirmed | The POS passes accurate Employee Name for every API call, when applicable (i.e. not for online or kiosk orders but for all other POS transacations performed by an employee) | |
employee_name | The employee name in the POS that serviced the check for that transaction. | The employee may change over the life of the transaction (Example bartender transfers check to server then a cashier closes the check). The currently active employee servicing the POS order when the Punchh API call is made is the value that should be sent to Punchh in the API call | X_CheckServer.K_Employee.FirstName + X_CheckServer.K_Employee.LastName | 1.POS status confirmed | ||
menu_items: | JSON Item containing details for a single menu item. Menu items may reflect a sales item in the POS (Type M), a Discount (Type D or Type M with a negative item_amount, a Payment (Type P) or Taxes (Type T) | It is important when sending check details that all available items when totaled follow the punchh balancing formula | The POS passes accurate Item Alpha name witout any special characters (ex. ½, ",",etc) for all menu items | |||
item_name | Text value of item name as sent to the Guest Check | X_CheckItem.K_Menu.Name | 1.POS status confirmed | The POS passes accurate QTY of items ordered for all menu items, discousnts, credit card payments as well as for parent or modifier check line items | ||
item_qty | Numeric value of the qty of the item as represented on this single menu item on the guest check | (If item is type D, this qty will ALWAYS be evaluated as a negative value.
| X_CheckItem.Quantity | 1.POS status confirmed | TBD | |
item_amount | Price of the item as represented on the POS guest check | (If item is type D, this qty will ALWAYS be evaluated as a negative value.
| X_CheckItem.GrossPrice | POS status not yet confirmed | All line items on the POS check (including $0.00 parent and $0.00 modifier items) are included and represented in the details passed via API with the appropriate menu item type identifier | |
menu_item_type | M = Menu item. May also represent a line item that is a discount. | M,D,S,T | POS status not yet confirmed | The correct POS ID identfier for the specific line item is passed to Punchh | ||
menu_item_id | Menu item ID as represented in the item database on the POS | X_CheckItem.MenuID | 1.POS status confirmed | The menu item is sytemically prevented in the POS from belonging to more than a single POS group from which this value is being obtained. | ||
menu_family | A menu item MUST have enforced singular membership in the POS data group type that is passed in the menu_family field to Punchh. This ensures that every time a menu item is sent to Punchh, it will ALWAYS have the same value passed in the menu_family field. | In the event that there is not a group ing data element on the POS that enforces that each menu item is member of ONLY one group, then this Punchh data field should be populated with the same value that is passed to the Punchh menu_major_group field. | Squirrel Category ID that the menu item resides in | 1.POS status confirmed | The menu item is sytemically prevented in the POS from belonging to more than a single POS group from which this value is being obtained. | |
menu_major_group | A menu item MUST have singular membership in the POS group that is passed in the menu_major_group field to Punchh. This ensures that every time a menu item is sent to Punchh, it will ALWAYS have the same value passed in the menu_major_group field. | In the event that there is not a group paradigm on the POS that enforces that each menu item is member of ONLY one group, then this Punchh data field should be left empty. | 2nd level from root Squirrel Category ID that the menu item branch resides in | 1.POS status confirmed | Menu items include trhe serial no which indicates the check line itme order of the item. The value is in the format of | |
serial_number | Serial Numbers are assigned to Menu Items on a receipt. A Main Item (such as pizza) may have serial number "1.0" and the associated modifiers (such as "Extra Cheese", "Olives" and "Jalapenos") may have serial numbers "1.1", "1.2" and "1.3" respectively. The numbering explains that particular items are modifiers associated with the main one. | Calculated by the Punchh proxy service. | POS status not yet confirmed | subtotal_amount = subtotal_amount + Sum of (S) + Sum (T) = Sum (P) | ||
subtotal_amount | Same as receipt_amount. For historical reasons, send this parameter along with receipt_amount in API requests. | Calculated by the Punchh proxy service. | POS status not yet confirmed | = Subtotal_Amount | ||
receipt_amount | Order amount before any taxes (Sum of all amounts minus any discounts). This is the amount upon which loyalty points/visits are granted when there are not any earning qualification critera rules in place in the Punchh portal. | Value to this parameter should be same as that of subtotal_amount. E.g., order amount is $10, parameters receipt_amount and subtotal_amount will hold the value 10. Say if $2 discount has been applied on the same order, subtotal_amount will become 8. | Calculated by the Punchh proxy service. | POS status not yet confirmed | subtotal_amount = Sum(M) - Sum (D) (Punchh and Internal) | |
payable | Final amount that user actually pays including taxes will be sent as payable | Calculated by the Punchh proxy service. | POS status not yet confirmed | The complete transaction number of the system that is submitting the details to Punchh | ||
transaction_no | POS Transacation Number | X_CheckHeader.CheckNo | POS status not yet confirmed | |||
external_uid | Unique UID generated by your system, we use this to prevent duplicates in case same transaction get triggered twice. | Calculated by the Punchh proxy service. | 1.POS status confirmed | These Channels are Punchh Defined channels assigned to the integration | ||
channel | Possible values: online_order, pos,web, mobile, dashboard, chatbot | This is the source of where the order originated when it was received by Punchh API | not being sent | POS status not yet confirmed | Value here should represent the way the order is fullfilled for the customer, not the area in trhe restuarant where the order is placed. i.e. Not Bar, Patio, Dining Room. | |
revenue_id | This should be a reference to the type of order. | Example dine-in, to-go, call-in pickup, call-in deliver, etc. Some POS call this Revenue Center, Order Method, Order Mode, etc. | X_CheckHeader.SetDept | POS status not yet confirmed | Value here should represent the way the order is fullfilled for the customer, not the area in trhe restuarant where the order is placed. i.e. Not Bar, Patio, Dining Room. | |
revenue_code | This should be a reference to the type of order. | Example dine-in, to-go, call-in pickup, call-in deliver, etc | K_Department.Name | POS status not yet confirmed | ||
store_number | Location's Store identification number | This ID should match the Punchh location POS ID as set in Punchh portal | K_Store.StoreNo | 1.POS status confirmed | ||
state | not being sent | 1.POS status confirmed | The type should include sub version such as Aloha Table Service or Quick Service | |||
pos_type | Type of POS integration is running on | Squirrel | Punchh service v6.2.5.0 | 4.POS status confirmed | ||
punchh_key | Punchh Key / Bar Code | For each transaction (check/ticket/etc.) this unique number must not repeat for a min of 90 days, ideally 180 days or forever. | Calculated by the Punchh proxy service. | 1.POS status confirmed | ||
pos_version | Version of the POS. May also include integration version information too | Product Version number of | POS status not yet confirmed |