Shift4 Dine - 1 Way Integration
Last Updated: 8/19/2026
Overview
The integration with Shift4 Dine is a 1-Way interface where Yellow Dog Inventory pulls sales data and reduces inventory levels based on transactions from Shift4’s API using SyncYdiWithMicrosServices.
Sync Approach
This interface contains multiple elements:
The Yellow Dog API pulls sales transactions from the Shift4 API
The Yellow Dog Process sales application matches transactions, depletes inventory levels, and updates reporting
Sync Frequency
By default the sync will be scheduled hour but can be run at any frequency
Configuration Options
Sales from Shift4 Dine to Yellow Dog can be mapped as follows:
Recipes/Items can be mapped in POS Item Map
Yellow Dog SKUs/UPCs can be entered into Shift4 to allow transaction matching
Items can be mapped via the Balto Application
Responsibilities
Client
Install the Yellow Dog App in the Shift4 Admin with the YD Integration Installation Guide on a call
Authorize via Shift4 Dine Proxy Site
Work with the Yellow Dog implementation team to confirm how sales will be matched - via POS Item Map, Matching SKUs/UPCs, or Mapping via the Balto Application
Ensure that there is at least one recent transaction in each Shift4 Dine location - this allows Yellow Dog to capture LocationIDs
The client team will also need to confirm which LocationIDs from Shift4 Dine should be mapped to which stores in Yellow Dog
Confirm if concatenation will be used with modifiers
Yellow Dog
Create a user in Yellow Dog and grant is access to the Yellow Dog API
Shift4 Dine
Provide the SiteID
Data Exchange and Mapping
We pull in the following data from Shift4 Dine:
| Shift4 Dine Field | Yellow Dog Field |
|---|---|
| ticket.orderNumber | TransactionNumber |
| linePosRef / mod.modifierRef | TransactionLineNumber |
| ticket.closedAt | CheckClosed |
| ticketItem.itemRef / mod.posRef | ItemNumber |
|
ticketItem.sku - ticketItem.upc if useUpcAsSku: true in the sync config mod.modifierRef - when concatenating: {itemRef}_{modRef} |
SKU |
|
ticketItem.Name / mod.Name - when concatenating: {itemName} {modName} |
Item |
| ticketItem.unitPrice / mod.unitPrice | ItemRetail (always positive) |
| ticketItemDiscounts.discount.amount / quantity | ItemDiscount (always negative) |
| ticketItemDiscounts.name | DiscountDescription |
| ticketItem.quantity / mod.quantity | Quantity |
| ticket.closedByEmployeeRef | EmployeeNumber |
| ticket.closedByEmployee | EmployeeName |
| "Shift4 Dine" | Source |
| n/a | Tender |
| n/a | Reference |
| n/a | RegisterNumber |
| n/a | RegisterName |
| converted of the item being modified by the modifier line | ParentNumber |
| n/a | DateKey |
| n/a | Fee |
| n/a | TotalTaxOfTheLine |
| n/a | Void |
| n/a | Return |
|
ticket.type (sale, void, or refund) |
Order Status |
| n/a | TaxInclusive |
| ticket.orderNumber | Order Number |
| Sales - General | |
|---|---|
| Line Discounts | supported |
| Check Discounts | supported |
| Returns | supported - results in negative quantity |
| Voids - Line Item | supported - results in quantity=0 |
| Voids - Entire check | supported - results in quantity=0 |
| Modifiers |
supported - ticketItemModifiers - optionally concatenated |
| Tax |
ticketItem.tax - only used by the sync to remove from the unit retail |
| Sales - TPTransaction Detail | n/a |
Additional Information
This integration supports the ability to map Unsold Menu items using the “Insert Unsold Menu Items” button in POS Item Mapping.
Limitations:
There is currently no way to retrieve Location IDs directly from the API. Location IDs can only be obtained by pulling the associated sales data.
It is possible for sales in SkyTab to exist without an associated revenue center. Yellow Dog’s sync supports these sales through the following mapping options:
If the sale does not include a revenue center and the OrderType is “Online Ordering,” the Online Ordering type can be mapped to a Yellow Dog Store.
If the sale does not include a revenue center and the OrderType is not “Online Ordering,” a dummy revenue center can be mapped to a Yellow Dog Store.
