NAV Navbar
  • Introduction
  • Overview
  • Communication
  • Introduction

    The Fresh KDS SDK allows for an integration between Fresh KDS and external systems using a universal and defined format.

    Setup

    To integrate with Fresh KDS please contact partnerships@freshtechnology.com to discuss your integration and next steps.

    Getting Started

    POS Selection at Login

    NOTE: You can change the POS under settings if needed

    POS Selection in Settings

    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)