Skip to content

Lightspeed K-Series Onboarding (Reseller)

Overview

Streamlined onboarding flow for resellers setting up merchants with Lightspeed Restaurant K-Series POS. Merchant-scoped OAuth integration — one connection covers the entire merchant account.

Key points for resellers:

  • Payment Profile required — Lightspeed handles POS-side payments internally; Upvendo needs Stripe or Viva Wallet for kiosk/online customer payments
  • Locations are NOT auto-imported — create locations manually in Upvendo before connecting
  • OAuth connection — the merchant (or reseller on their behalf) must log in to the merchant's Lightspeed account to authorize
  • Menu is read from Lightspeed — items, modifiers, categories, and allergens are pulled from K-Series

Discovery Flow (JSON - for deterministic parsing)

discovery_questions
[
  {
    "id": "channels",
    "text": "Which channels for this merchant?",
    "options": ["Kiosk only", "Online ordering only", "Both"]
  },
  {
    "id": "payment_provider",
    "text": "Which payment provider for this merchant?",
    "options": ["Stripe", "Viva Wallet"]
  },
  {
    "id": "menu_ready",
    "text": "Does the merchant have their menu set up in Lightspeed K-Series?",
    "options": ["Yes, menu is in Lightspeed", "No, not yet"],
    "abort_if": "No, not yet",
    "abort_message": "The merchant needs to set up their menu in Lightspeed K-Series first. Lightspeed only supports pulling menu items from the POS - items cannot be created in Upvendo. Please have them create their menu in Lightspeed, then restart the onboarding."
  }
]
setup_steps
{
  "Kiosk only": [
    {"id": "payment_profile", "title": "Set up Payment Profile", "route": "/settings/payments", "required": true, "note": "Stripe or Viva Wallet required. Lightspeed handles POS payments but Upvendo needs a provider for kiosk customer payments."},
    {"id": "branding_profile", "title": "Set up Store Branding", "route": "/settings/brand", "required": true},
    {"id": "create_location", "title": "Create Location", "route": "/settings/locations", "required": true, "note": "Create the merchant's location manually — Lightspeed does not auto-import locations into Upvendo."},
    {"id": "select_location", "title": "Select Location from Topbar", "action": "topbar_location_select", "required": true},
    {"id": "connect_pos", "title": "Connect Lightspeed K-Series", "route": "/lightspeed", "required": true, "note": "Click 'Connect with Lightspeed'. Log in with the merchant's Lightspeed K-Series account and authorize Upvendo. Redirects back automatically on success."},
    {"id": "sync_menu", "title": "Sync Menu", "route": "/lightspeed", "required": true, "note": "Pull items, modifiers, categories, and allergens from K-Series."},
    {"id": "in_house_settings", "title": "Set up In-House Settings", "route": "/in-house/settings", "required": true},
    {"id": "device_profile", "title": "Set up Device Profile", "route": "/device-management/profiles", "required": true},
    {"id": "configure_kiosk", "title": "Configure Kiosk Device", "route": "/device-management/devices", "required": true},
    {"id": "billing_profile", "title": "Set up Billing Profile", "route": "/settings/billing", "required": false, "note": "Optional if reseller invoices merchant directly."},
    {"id": "test_connection", "title": "Test Connection & Go Live", "route": "/lightspeed", "required": true, "note": "Status tab → Test Connection to verify API access."}
  ],
  "Online ordering only": [
    {"id": "payment_profile", "title": "Set up Payment Profile", "route": "/settings/payments", "required": true, "note": "Stripe or Viva Wallet required for online payment processing."},
    {"id": "branding_profile", "title": "Set up Store Branding", "route": "/settings/brand", "required": true},
    {"id": "create_location", "title": "Create Location", "route": "/settings/locations", "required": true, "note": "Create the merchant's location manually — Lightspeed does not auto-import locations into Upvendo."},
    {"id": "select_location", "title": "Select Location from Topbar", "action": "topbar_location_select", "required": true},
    {"id": "connect_pos", "title": "Connect Lightspeed K-Series", "route": "/lightspeed", "required": true, "note": "Click 'Connect with Lightspeed'. Log in with the merchant's Lightspeed K-Series account and authorize Upvendo. Redirects back automatically on success."},
    {"id": "sync_menu", "title": "Sync Menu", "route": "/lightspeed", "required": true, "note": "Pull items, modifiers, categories, and allergens from K-Series."},
    {"id": "online_settings", "title": "Set up Online Settings", "route": "/online-settings", "required": true},
    {"id": "configure_online_ordering", "title": "Configure Online Ordering", "route": "/pickup-and-delivery/online-ordering", "required": true},
    {"id": "billing_profile", "title": "Set up Billing Profile", "route": "/settings/billing", "required": false, "note": "Optional if reseller invoices merchant directly."},
    {"id": "test_connection", "title": "Test Connection & Go Live", "route": "/lightspeed", "required": true, "note": "Status tab → Test Connection to verify API access."}
  ],
  "Both": [
    {"id": "payment_profile", "title": "Set up Payment Profile", "route": "/settings/payments", "required": true, "note": "Stripe or Viva Wallet required for both kiosk and online payments."},
    {"id": "branding_profile", "title": "Set up Store Branding", "route": "/settings/brand", "required": true},
    {"id": "create_location", "title": "Create Location", "route": "/settings/locations", "required": true, "note": "Create the merchant's location manually — Lightspeed does not auto-import locations into Upvendo."},
    {"id": "select_location", "title": "Select Location from Topbar", "action": "topbar_location_select", "required": true},
    {"id": "connect_pos", "title": "Connect Lightspeed K-Series", "route": "/lightspeed", "required": true, "note": "Click 'Connect with Lightspeed'. Log in with the merchant's Lightspeed K-Series account and authorize Upvendo. Redirects back automatically on success."},
    {"id": "sync_menu", "title": "Sync Menu", "route": "/lightspeed", "required": true, "note": "Pull items, modifiers, categories, and allergens from K-Series."},
    {"id": "in_house_settings", "title": "Set up In-House Settings", "route": "/in-house/settings", "required": true},
    {"id": "device_profile", "title": "Set up Device Profile", "route": "/device-management/profiles", "required": true},
    {"id": "configure_kiosk", "title": "Configure Kiosk Device", "route": "/device-management/devices", "required": true},
    {"id": "online_settings", "title": "Set up Online Settings", "route": "/online-settings", "required": true},
    {"id": "configure_online_ordering", "title": "Configure Online Ordering", "route": "/pickup-and-delivery/online-ordering", "required": true},
    {"id": "billing_profile", "title": "Set up Billing Profile", "route": "/settings/billing", "required": false, "note": "Optional if reseller invoices merchant directly."},
    {"id": "test_connection", "title": "Test Connection & Go Live", "route": "/lightspeed", "required": true, "note": "Status tab → Test Connection to verify API access."}
  ]
}