← Back to EcomCentral
LIGHTSPEED ECOM (C-SERIES) API

Lightspeed eCom Setup Guide

Connect your Lightspeed eCom store to EcomCentral using HTTP Basic authentication with your API key and secret.

About Lightspeed eCom (C-Series)

Lightspeed eCom (C-Series) is the cloud-hosted e-commerce platform formerly known as SEOshop, available at shoplightspeed.com (US) and webshopapp.com (EU). It is sometimes called the eCom product within the Lightspeed family.

⚠️ This guide covers Lightspeed eCom (C-Series) only — the webshopapp / shoplightspeed REST API. It does not apply to Lightspeed Retail (R-Series) or Lightspeed Restaurant (L-Series / X-Series), which use different APIs and authentication.

The API is available in two clusters:

The {lang} segment is your store's language code, e.g. en, nl, or us. All endpoints end in .json.

Prerequisites

How to Get Your API Key

  1. Log in to your Lightspeed eCom back-office
  2. Go to SettingsDevelopers
  3. If no developer section is visible, click Activate developer account (one-time step, free)
  4. Click Create application (or Add API key)
  5. Give the application a name (e.g. EcomCentral) and save
  6. Copy the generated API Key and API Secret — the secret is shown only once
  7. In EcomCentral, add a new Lightspeed eCom connection and paste both values
  8. Set the cluster to EU (https://api.webshopapp.com) or US (https://api.shoplightspeed.com) to match your store's region
  9. Click ⚡ Test to verify the connection
✅ The API key and secret act as HTTP Basic credentials: key = username, secret = password. Keep them private and regenerate if compromised.

Credentials Reference

KeyRequiredDescriptionExample
api_key Required API key from Store Settings → Developers. Used as the HTTP Basic username. d3f4a1b2c…
api_secret Required API secret paired with the key. Used as the HTTP Basic password. ••••••••
cluster Optional Cluster host. Use https://api.webshopapp.com for EU stores (default) or https://api.shoplightspeed.com for US stores. https://api.webshopapp.com
lang Optional Store language segment used in every API path. Defaults to en. Must match your shop's language setting. en, nl, us
ℹ️ Alternative key names accepted: apiKey or key for the API key; apiSecret or secret for the API secret; base_url for the cluster; language for the lang segment.

API Endpoints Used

OperationMethodEndpoint
Test connectionGET/account.json
List ordersGET/orders.json?page=P&limit=N
Order detailGET/orders/{id}.json
List products / stockGET/variants.json?page=P&limit=N
Product detailGET/products/{id}.json
Get shipments for orderGET/shipments.json?order={id}
Add tracking (update shipment)PUT/shipments/{shipment_id}.json with {"shipment":{"trackingCode":"…","status":"shipped"}}
Update variant stockPUT/variants/{variant_id}.json with {"variant":{"stockLevel":N}}
ℹ️ All requests use HTTP Basic authentication — key and secret are sent with every call. List responses wrap items: {"orders":[…]}, {"variants":[…]}. Single-item responses wrap the object: {"order":{…}}, {"product":{…}}.

Tracking Numbers

Lightspeed eCom has no "create shipment" API endpoint. Shipment objects are generated internally by Lightspeed when an order is processed. Tracking codes are written by updating an existing shipment object with a PUT /shipments/{id}.json call.

⚠️ If you attempt to add tracking to an order that has no shipment object yet, EcomCentral will return an error: "No shipment object found for this order yet."

Fix: Open the order in your Lightspeed eCom back-office and mark it as ready for shipment (or process it through fulfilment). Once Lightspeed generates the shipment object, return to EcomCentral and add the tracking number.

The Lightspeed eCom API does not expose a carrier field on shipments — only trackingCode can be set via the API.

Products and Stock

In Lightspeed eCom, SKU, price, and stock level are variant fields, not product fields. Every product has one or more variants. EcomCentral lists variants in the Products view so that each row carries a SKU, price, and stock quantity directly.

ℹ️ When updating stock, enter the variant SKU — not the product ID. EcomCentral will resolve the variant id automatically and call PUT /variants/{id}.json with the new stockLevel.

Order Statuses

Lightspeed eCom uses two status fields per order: status (payment / fulfillment lifecycle) and shipmentStatus (shipping state). EcomCentral shows both with colour-coded badges.

Status valueFieldBadge colour
complete / shipped / paid / deliveredeitherGreen
new / pending / open / processingeitherBlue
partially_shipped / on_hold / not_shippedshipmentStatusAmber
cancelled / refunded / voideitherRed

Supported Features

FeatureSupportedNotes
View orders (paginated)Order ID, date, status, total
View order detailCustomer info, billing & shipping addresses, line items, shipping cost, shipment status, existing tracking
View products (paginated)Listed via variants — each row carries SKU, price, stock
View product detailProduct title, brand, EAN, image, description (HTML stripped), full variant table
Add tracking numberRequires an existing shipment object — mark order shipped in Lightspeed first
Update stockPer variant SKU via PUT /variants/{id}.json
Test connectionHits GET /account.json — success confirms key, secret, and cluster are correct

Troubleshooting

401 Unauthorized

The api_key or api_secret is wrong, or the application has been revoked. Regenerate a new key/secret in Store Settings → Developers and update the connection in EcomCentral.

403 Forbidden

Your credentials are correct but the cluster is wrong. EU stores use https://api.webshopapp.com; US stores use https://api.shoplightspeed.com. Update the cluster field and retry.

404 Not Found

The order or product id does not exist in your store, or the lang segment is incorrect. Verify the resource exists and that the language code matches your store setting (e.g. en, nl, us).

"No shipment object found for this order yet"

Lightspeed eCom does not expose a create-shipment endpoint. Open the order in your Lightspeed back-office, mark it as ready for shipment (or complete the fulfilment workflow), then return to EcomCentral to attach the tracking number.

🔧 Quick sanity check — try accessing https://api.webshopapp.com/en/account.json (or the US equivalent) in a browser. A 401 response with JSON means the endpoint is reachable — enter your credentials. A connection timeout or HTML error page suggests a wrong cluster URL.