Contact Fresh Technology and request access to our sandbox environment.
Side load the supplied version of Fresh KDS on your iPad or Android tablet.
Login using the credentials setup in the sandbox environment.
During the login process, select KdsSDK from the POS options
NOTE: You can change the POS under settings if needed
POS/Integration Listing
Once your integration is complete, contact Fresh Technology and supply a logo for the POS Integration listing. After review of your integration, Fresh Technology will add your integration as an offically supported integration and your product will be added to the list within KDS.
Overview
Fresh KDS SDK Socket Communication
Protocol
Port
UDP
28000
TCP
9104
Communication
Discover
To discover Fresh KDS Screens using Fresh SDK, listen for UDP Broadcasts on port 28000. Each screen sends a broadcast containing the Device Identifier, IP Address, and SDK version every 2 seconds.
Portocol
Port
UDP
28000
Broadcast
Example Broadcast Data:
//Start of Broadcast: FreshKDS
46726573684B445300000000
//Version: 1.0
312E300000000000
//IpAddress: 192.168.1.3
C0A80103000000000000
//Identifier: E7A09AAD7B98
4537413039414144374239380000000000000000
//Name: emulator
656D756C61746F720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Property
Length
Index
Description
id
12
30
Identifier for KDS Screen
name
20
50
Name of KDS Screen (limited to 20 characters)
ipaddress
8
20
IP Address
version
3
12
Version of SDK
Send Order
Send Order to KDS screen using socket connection, if successful will return parsed integration order id
Portocol
Port
TCP
9104
Example using telnet to connect/send order:
telnet 192.168.1.3 9104
{
"id": "b53ba7d8-9ca6-4eb5-a5d1-c90d321d10be",
"name": "John Doe",
"server": "Server Name",
"mode": "For Here",
"time": 1551454803184,
"terminal": "Expo",
"items": [
{
"qty": 1,
"name": "Chicken Sandwich",
"mods": [
"Fries",
"Coke"
]
},
{
"qty": 1,
"name": "Cheeseburger",
"mods": [
"Onion Rings",
"Water"
]
}
]
}
note: remove line breaks from json to test example
Success Returns IntegrationId:
b53ba7d8-9ca6-4eb5-a5d1-c90d321d10be
Failure Returns:
Unable to parse data
KDS Order
Body Parameters
KDS Order
Property
Required
Type
Description
id
yes
string
Integration order id
name
yes
string
Order Name/Number
time
yes
date
Order Date/Time, ISO 8601 Format
pickupTime
no
date
Pickup Date/Time, ISO 8601 Format
phoneNumber
no
string
Phone number to contact regarding order
optInForSms
no
bool
If a phone number is supplied and KDS is configured to send SMS messages, provides an option to send a SMS or not for this order. NOTE: If this property is not sent, default is true
deliveryAddress
no
string
If order is for delivery, can supply and address for display
mode
yes
string
Order Mode (For Here, ToGo, Pickup, DriveThru, Delivery, CurbSide) note: if invalid order mode, mode will be added to order name
server
no
string
Server Name
source
no
string
Identifier of Integrator. This is for partner integrations with KDS and value to send must be supplied by Fresh Technology. Current accepted values are null or togotechnology.
items
yes
KdsItem[]
Items
terminal
yes
string
Pos Terminal
specialInstructions
no
string
Text based special instructions that will be displayed on the order
customerArrivedUrl
no
url
If SMS Bolt-On enabled and this value is supplied. This link will be included with the SMS for Order Received and Order Ready for Pickup. This URL should route to integrators system to send the Customer Arrived Notification to KDS
vehicleModel
no
string
Car Model
vehicleColor
no
string
Car Color
costs
no
Costs
Object that contains costs associated with the order
deliveryService
no
DeliveryService
Object contains information regarding the order if a delivery service is being used
accessibility
no
Accessibility
Object contains information regarding accessibility (ADA) neededs
KDS Item
Property
Required
Type
Description
id
no
string
Item Id
name
yes
string
Item Name
qty
yes
int
Quantity
price
no
string
Cost of item, value should be a string and can include the currency symbol or not
mods
yes
Modifier[]
Item Modifiers, empty array if none
components
no
Components[]
Array of Components that make up the item, will be leveraged in the KDS All Day View
specialInstructions
no
string
Text based special instructions that will be displayed on the item
Modifier
Property
Required
Type
Description
id
no
string
Id of modifier
name
yes
string
Name of the modifier
NOTE: Previously Mods was a string[], still supported for backwards compatibility
Costs
Property
Required
Type
Description
subtotal
no
string
Sub total of the order
tax
no
string
Tax on the order
deliveryFee
no
string
Delivery Fee for the order
surcharge
no
string
Surcharge for the order
convenienceFee
no
string
Convenience Fee for the order
tip
no
string
Tip on the order
additionalFees
no
additionalFees[]
Additional / Custom Fees
total
no
string
Total for the order
promoCodes
no
promoCodes[]
Promo codes for the order
Additional Fees
Property
Required
Type
Description
name
yes
string
Name of the fee
amount
yes
string
Amount of the fee
Promo Codes
Property
Required
Type
Description
name
no
string
Name of the promo code
amount
yes
string
Amount of Promo Code, value should be a string and can include the currenty symbol or not
Components
Property
Required
Type
Description
name
yes
string
Name of the component
count
yes
int
Count of the component on the item
Delivery Service
Property
Required
Type
Description
name
yes
string
Name of the delivery service
orderId
yes
string
Delivery Service order Id
driverPhone
no
string
Phone number of the delivery driver
Accessibility
Property
Required
Type
Description
wheelChairAccess
yes
bool
This value will be sent along to supported integrations (Apex Lockers)