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 Andrew Hulsey 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

    Body Parameters

    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
    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
    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 server is being used

    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 string[] Item Modifiers, empty array if none
    specialInstructions no string Text based special instructions that will be displayed on the item

    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
    total no string Total for the order
    promoCodes no promoCodes[] Promo codes for the order

    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

    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