NAV Navbar
  • Introduction
  • Overview
  • Communication
  • Introduction

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

    Setup

    Before KDS can accept data from an integration a few basic setup steps are needed. Contact Austin Fabel at Fresh Technology to discuss your integration and next steps.

    Getting Started

    alt text

    NOTE: You can change the POS under settings if needed

    alt text

    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 15 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

    Property Required Type Description
    id yes string Integration order id
    name yes string Order Name/Number
    time yes long Milliseconds since Unix Epoch (1970)
    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
    items yes KdsItem[] Items
    terminal yes string Pos Terminal
    model no string Car Model
    color no string Car Color

    KDS Item

    Property Required Type Description
    name yes string Order Name/Number
    qty yes int Quantity
    mods no string[] Item Modifiers