Skip to content

KitchenClick Ecommerce API

The KitchenClick Ecommerce API enables you to build ordering experiences for restaurants - from self-service kiosks to mobile ordering apps and third-party integrations.

Overview

KitchenClick provides a comprehensive REST API for restaurant ordering operations:

  • Menu Browsing - Hierarchical menus with categories, items, and modifiers
  • Item Configurator - Guided "build your own" item flows
  • Order Management - Create, calculate, and track orders
  • Order Scheduling - Let customers schedule orders ahead with time slot selection
  • Delivery - Quote third-party delivery for delivery orders
  • Payment Processing - Integrated payment with Stripe
  • Catering - Time-boxed event menus and pre-orders
  • Invoices - Collect outstanding balances via a public pay link
  • Customer History - Retrieve past orders for reordering
  • Kiosk Support - Bootstrap and manage self-service kiosks
  • Real-time Tracking - Track order status from placed to ready

API Architecture

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│   Your App      │     │  KitchenClick   │     │    Kitchen      │
│  (Kiosk/Mobile) │     │      API        │     │   Operations    │
└────────┬────────┘     └────────┬────────┘     └────────┬────────┘
         │                       │                       │
         │  GET /menus           │                       │
         │──────────────────────>│                       │
         │    Menu Data          │                       │
         │<──────────────────────│                       │
         │                       │                       │
         │  POST /orders         │                       │
         │──────────────────────>│                       │
         │                       │   Order Created       │
         │                       │──────────────────────>│
         │   Order Confirmed     │                       │
         │<──────────────────────│                       │
         │                       │                       │
         │  GET /orders/.../track│                       │
         │──────────────────────>│                       │
         │   Status: Ready       │                       │
         │<──────────────────────│                       │

Base URLs

EnvironmentBase URL
Staginghttps://api-staging.kitchenclick.retailsuccessplatform.com/api
Productionhttps://api.kitchenclick.retailsuccessplatform.com/api

Every endpoint path shown in this reference (e.g. GET /v1/ecommerce/locations/{location}) is appended to the base URL to form the full request URL — for example, https://api.kitchenclick.retailsuccessplatform.com/api/v1/ecommerce/locations/loc_xxxxx. The curl examples throughout the docs show complete URLs.

Quick Start

1. Browse a Location's Menu (Public)

No authentication required for menu browsing:

bash
# Get location info
curl https://api.kitchenclick.retailsuccessplatform.com/api/v1/ecommerce/locations/loc_xxxxx

# Get available concepts (restaurant brands)
curl https://api.kitchenclick.retailsuccessplatform.com/api/v1/ecommerce/locations/loc_xxxxx/concepts

# Get menus for a concept
curl https://api.kitchenclick.retailsuccessplatform.com/api/v1/ecommerce/locations/loc_xxxxx/concepts/con_yyyyy/menus

# Get menu items with hierarchy
curl https://api.kitchenclick.retailsuccessplatform.com/api/v1/ecommerce/locations/loc_xxxxx/concepts/con_yyyyy/menus/mnu_zzzzz/items

2. Create an Order (Authenticated)

Orders require authentication via OAuth 2.0:

bash
# First, get a token from Identity service
curl -X POST https://identity.retailsuccessplatform.com/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "client_id=${CLIENT_ID}" \
  -d "client_secret=${CLIENT_SECRET}" \
  -d "scope=kitchenclick:orders.create"

# Then create an order
curl -X POST https://api.kitchenclick.retailsuccessplatform.com/api/v1/ecommerce/orders \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "location_id": "loc_xxxxx",
    "customer": {
      "name": "John Doe",
      "phone": "(555) 123-4567"
    },
    "order_type": "pickup",
    "items": [
      {
        "item_id": "itm_aaaaa",
        "quantity": 2
      }
    ]
  }'

3. Track Order Status (Public)

Order tracking is public - no authentication required:

bash
curl https://api.kitchenclick.retailsuccessplatform.com/api/v1/ecommerce/orders/ord_xxxxx/track

Authentication

Endpoint TypeAuthenticationRate Limit
Menu BrowsingNone (Public)100/min per IP
Concept Lookup / BrandingNone (Public)100/min per IP
Order TrackingNone (Public)100/min per IP
Scheduling ConfigNone (Public)100/min per IP
Item ConfiguratorNone (Public)100/min per IP
Delivery QuoteNone (Public)100/min per IP
Event Menu DiscoveryNone (Public)100/min per IP
Invoice (view)None (Public token)100/min per IP
Item AvailabilityOAuth Token200/min per client
Customer Order HistoryOAuth Token200/min per client
Stripe ConfigOAuth Token200/min per client
Order CalculateOAuth Token30/min per client
Order / Event Order CreateOAuth Token30/min per client
Payment / Invoice BalanceOAuth Token30/min per client
Kiosk BootstrapOAuth Token200/min per client

Available Scopes

ScopeDescription
kitchenclick:*Full ecommerce access
kitchenclick:menus.readCheck item availability
kitchenclick:orders.calculateCalculate order totals
kitchenclick:orders.createCreate guest orders
kitchenclick:payments.readCheck payment status
kitchenclick:payments.createCreate payment requests
kitchenclick:kiosks.bootstrapInitialize kiosks
kitchenclick:kiosks.heartbeatSend kiosk heartbeats

Use Cases

Self-Service Kiosk

Build a touchscreen kiosk for customer self-ordering:

  1. Bootstrap kiosk via PIN code
  2. Display location menus with categories
  3. Allow item customization with modifiers
  4. Calculate totals with tax
  5. Process payment
  6. Display order confirmation

Mobile Ordering App

Enable customers to order ahead:

  1. Show nearby locations with operating hours
  2. Browse hierarchical menus
  3. Build orders with modifiers
  4. Checkout with saved payment methods
  5. Track order status in real-time

Third-Party Integration

Integrate with delivery platforms or POS systems:

  1. Sync menu data programmatically
  2. Create orders from external systems
  3. Track order lifecycle events
  4. Reconcile payments

Next Steps


Changelog
DateChange
2026-06-17Documented Configurator, Delivery, Catering (Event Menus), Invoices, and Concept Branding endpoints; added the End-to-End Integration Flow guide; corrected the base URL to the /api root.
2026-03-14Added e-commerce API endpoints.
2026-01-15Initial publication.

ShopHero CommerceCore Platform