Skip to content

Lightspeed K-Series Onboarding Flow

Overview

Lightspeed Restaurant K-Series is a merchant-scoped POS integration that connects via OAuth 2.0. One connection covers all your business locations.

Key points:

  • OAuth connection — you log in to your Lightspeed account to authorize Upvendo
  • Locations are not auto-imported — you create locations in Upvendo manually and link them to Lightspeed business location IDs
  • Menu is read from Lightspeed — Upvendo reads your menu, items, modifiers, and categories from Lightspeed K-Series

Integration Type

  • Scope: Merchant-scoped (one OAuth connection for the entire account)
  • Menu Sync: Read from Lightspeed (pull-only)
  • Location Import: Manual — create locations in Upvendo, then link to Lightspeed
  • Order Flow: Upvendo creates orders in Lightspeed K-Series via API

Discovery Flow (JSON - for deterministic parsing)

discovery_questions
[
  {
    "id": "channels",
    "text": "Which channels do you want to set up with Lightspeed K-Series?",
    "options": ["Kiosk only", "Online ordering only", "Both"]
  },
  {
    "id": "lightspeed_account",
    "text": "Do you have an active Lightspeed Restaurant K-Series account?",
    "options": ["Yes, I have an account", "No, I need to set one up"],
    "abort_if": "No, I need to set one up",
    "abort_message": "You'll need an active Lightspeed Restaurant K-Series account before connecting. Please contact Lightspeed at lightspeedhq.com to get an account set up, then come back here to continue."
  },
  {
    "id": "menu_ready",
    "text": "Do you already have your menu set up in Lightspeed K-Series?",
    "options": ["Yes, my menu is in Lightspeed", "No, I need to create it"],
    "abort_if": "No, I need to create it",
    "abort_message": "Lightspeed requires your menu to be set up in the POS first. Please create your menu items in Lightspeed K-Series, then come back to continue the setup."
  }
]
setup_steps
{
  "Kiosk only": [
    {"id": "payment_profile", "title": "Set up Payment Profile", "route": "/settings/payments"},
    {"id": "billing_profile", "title": "Set up Billing Profile", "route": "/settings/billing"},
    {"id": "branding_profile", "title": "Set up Store Branding", "route": "/settings/brand"},
    {"id": "create_location", "title": "Create Location", "route": "/settings/locations", "note": "Create your location manually. Lightspeed does not auto-import locations."},
    {"id": "select_location", "title": "Select Location from Topbar", "action": "topbar_location_select"},
    {"id": "connect_pos", "title": "Connect Lightspeed K-Series", "route": "/lightspeed", "note": "Click 'Connect with Lightspeed'. You will be redirected to log in to your Lightspeed account and authorize Upvendo. After authorization you are returned automatically."},
    {"id": "setup_menu_kiosk", "title": "Set up Menu for Kiosk", "route": "/menus"},
    {"id": "in_house_settings", "title": "Set up In-House Settings", "route": "/in-house/settings"},
    {"id": "device_profile", "title": "Set up Device Profile", "route": "/device-management/profiles"},
    {"id": "configure_kiosk", "title": "Configure Kiosk Device", "route": "/device-management/devices"},
    {"id": "test_kiosk", "title": "Test Kiosk"}
  ],
  "Online ordering only": [
    {"id": "payment_profile", "title": "Set up Payment Profile", "route": "/settings/payments"},
    {"id": "billing_profile", "title": "Set up Billing Profile", "route": "/settings/billing"},
    {"id": "branding_profile", "title": "Set up Store Branding", "route": "/settings/brand"},
    {"id": "create_location", "title": "Create Location", "route": "/settings/locations", "note": "Create your location manually. Lightspeed does not auto-import locations."},
    {"id": "select_location", "title": "Select Location from Topbar", "action": "topbar_location_select"},
    {"id": "connect_pos", "title": "Connect Lightspeed K-Series", "route": "/lightspeed", "note": "Click 'Connect with Lightspeed'. You will be redirected to log in to your Lightspeed account and authorize Upvendo. After authorization you are returned automatically."},
    {"id": "setup_menu_online", "title": "Set up Menu for Online Ordering", "route": "/menus"},
    {"id": "online_settings", "title": "Set up Online Settings", "route": "/online-settings"},
    {"id": "configure_online_ordering", "title": "Configure Online Ordering", "route": "/pickup-and-delivery/online-ordering"},
    {"id": "test_online_ordering", "title": "Test Online Ordering"}
  ],
  "Both": [
    {"id": "payment_profile", "title": "Set up Payment Profile", "route": "/settings/payments"},
    {"id": "billing_profile", "title": "Set up Billing Profile", "route": "/settings/billing"},
    {"id": "branding_profile", "title": "Set up Store Branding", "route": "/settings/brand"},
    {"id": "create_location", "title": "Create Location", "route": "/settings/locations", "note": "Create your location manually. Lightspeed does not auto-import locations."},
    {"id": "select_location", "title": "Select Location from Topbar", "action": "topbar_location_select"},
    {"id": "connect_pos", "title": "Connect Lightspeed K-Series", "route": "/lightspeed", "note": "Click 'Connect with Lightspeed'. You will be redirected to log in to your Lightspeed account and authorize Upvendo. After authorization you are returned automatically."},
    {"id": "setup_menu_kiosk", "title": "Set up Menu for Kiosk", "route": "/menus"},
    {"id": "setup_menu_online", "title": "Set up Menu for Online Ordering", "route": "/menus"},
    {"id": "in_house_settings", "title": "Set up In-House Settings", "route": "/in-house/settings"},
    {"id": "device_profile", "title": "Set up Device Profile", "route": "/device-management/profiles"},
    {"id": "configure_kiosk", "title": "Configure Kiosk Device", "route": "/device-management/devices"},
    {"id": "online_settings", "title": "Set up Online Settings", "route": "/online-settings"},
    {"id": "configure_online_ordering", "title": "Configure Online Ordering", "route": "/pickup-and-delivery/online-ordering"},
    {"id": "test_kiosk", "title": "Test Kiosk"},
    {"id": "test_online_ordering", "title": "Test Online Ordering"}
  ]
}

Conditional Logic

If lightspeed_account = "No, I need to set one up"

Emily should say:

"You'll need an active Lightspeed Restaurant K-Series account before connecting. Please contact Lightspeed at lightspeedhq.com to get an account set up, then come back here to continue." Onboarding pauses here until the merchant confirms they have an account.


Reconnecting / Token Expiry

If the merchant's Lightspeed token expires or access is revoked:

  1. Go to Lightspeed (/lightspeed) → Settings tab
  2. Click Reconnect — this re-runs the full OAuth flow
  3. No data is lost; credentials are updated in place

Troubleshooting

"I was redirected back but it shows an error"

  • The authorization may have been denied — try connecting again and confirm the authorization screen
  • Ensure you are logged in to the correct Lightspeed account (the one with K-Series Restaurant)

"Connection test fails after connecting"

  • Click Reconnect on the Settings tab to refresh the OAuth tokens
  • Check the Lightspeed account is active and not suspended

"Where do I find my business location ID?"

  • Go to LightspeedStatus tab — the business ID is shown after a successful connection
  • Individual location IDs are available via the Businesses API call in the integration page