← Back to EcomCentral
ECWID REST API v3 / LIGHTSPEED E-SERIES

Ecwid / Lightspeed E-Series Setup Guide

Connect your Ecwid or Lightspeed E-Series store to EcomCentral using Bearer token authentication with your app's secret token and numeric store ID.

About Ecwid & Lightspeed E-Series

Ecwid was acquired by Lightspeed in 2021 and rebranded as Lightspeed E-Series. The REST API v3 remains unchanged — all endpoints, authentication, and response shapes described in this guide apply equally to both Ecwid and Lightspeed E-Series stores.

ℹ️ If your control panel shows the Lightspeed E-Series branding, the integration and credentials setup process is identical to Ecwid — both use https://app.ecwid.com/api/v3/{storeId} as the base URL with the same Authorization: Bearer {secret_token} header.

Prerequisites

ℹ️ Ecwid uses an OAuth 2-style app model. To get a secret token you must create a self-client application in the Ecwid App Market, then install it on your store to receive an access token. For private/internal use the token does not expire unless revoked.

How to Find Your Credentials

  1. Log in to your Ecwid / Lightspeed E-Series Control Panel
  2. Navigate to AppsMy Apps in the left-hand menu
  3. Open your app (or create a new private app if you do not have one yet)
  4. On the app page, note the required Access Scopes — at minimum you need read_orders, update_orders, read_catalog, and update_catalog
  5. Copy the app's secret token (labelled "Access token" or "Secret key" depending on the panel version)
  6. Find your Store ID: it is the numeric ID visible in the Control Panel URL — e.g. https://my.ecwid.com/cp/#/products when logged in shows it as the subdomain segment, or via Profile → store URL
  7. In EcomCentral, add a new Ecwid connection using the Store ID and secret token
  8. Click ⚡ Test — a successful test confirms the credentials are valid
⚠️ Keep your secret token safe. Anyone with this token can read your orders and products and write tracking numbers and stock quantities. Treat it like a password.

Required OAuth Scopes

ScopePurpose
read_ordersList orders and fetch individual order details
update_ordersWrite tracking numbers to orders (add_tracking op)
read_catalogList products and fetch individual product details
update_catalogUpdate product stock quantities (update_stock op)

Credentials Reference

KeyRequiredDescriptionExample
store_id Required Numeric store ID — found in your Control Panel URL or profile page 12345678
secret_token Required App access token (Bearer token) with the required scopes installed on your store secret_AbCdEfGhIjKlMnOpQrSt
✅ Alternative key names accepted: storeId for the store ID; secretToken or token for the secret token.

API Endpoints Used

OperationMethodEndpoint
Test connection / store profileGET/profile
List ordersGET/orders?offset=O&limit=N
Order detailGET/orders/{orderId}
Add / update trackingPUT/orders/{orderId} with { "trackingNumber": "…", "fulfillmentStatus": "SHIPPED" }
List productsGET/products?offset=O&limit=N
Product detailGET/products/{productId}
Update stock quantityPUT/products/{productId} with { "quantity": N }
ℹ️ All endpoints are relative to the base URL https://app.ecwid.com/api/v3/{storeId}. The storeId is interpolated from your stored credentials at connection time.
⚠️ Carrier name is not writable. The Ecwid Update Order API accepts trackingNumber but does not document a writable carrier-name field. EcomCentral therefore accepts only a tracking number for the add_tracking operation — no carrier input is presented in the UI or sent to the API.

Order Status Values

Fulfillment Statuses

StatusMeaning
Awaiting Processing Order received; not yet picked or packed
Processing Order is being picked and packed
Shipped Order has been dispatched; tracking number typically available
Delivered Order confirmed delivered to the customer
Out For Delivery Package is with the final-mile carrier en route to the customer
Ready For Pickup Click-and-collect order is ready for the customer to collect
Will Not Deliver Order cannot be fulfilled and will not be shipped
Returned Item(s) have been returned by the customer

Payment Statuses

StatusMeaning
Paid Payment has been captured successfully
Awaiting Payment Order placed but payment not yet received
Partially Refunded A partial refund has been issued
Cancelled Order has been cancelled
Refunded Full refund has been issued
Incomplete Order was started but not completed (e.g. abandoned during payment)

Supported Features

FeatureSupportedNotes
View orders (paginated)Order number, date, payment status, fulfillment status, total
View order detailCustomer, billing person, shipping address, shipping method, line items, current tracking number
Add / update trackingTracking number only — carrier name is NOT accepted by the Ecwid API and is not sent
View products (paginated)Product ID, SKU, name, price, stock quantity
View product detailFull record: thumbnail, SKU, price, weight, stock, description (HTML stripped), store link
Update stock quantityBy numeric product_id passed directly from the detail view — no SKU lookup needed
Test connectionCalls GET /profile; verifies store name, currency, and store URL
ℹ️ Tracking note: When a tracking number is saved, EcomCentral also sets fulfillmentStatus to SHIPPED on the order. If your fulfilment workflow uses a different status, update it manually in the Ecwid Control Panel after saving the tracking number here.

Troubleshooting

✕ 403 Forbidden

The token is valid but the app is missing the required OAuth scope for the requested operation. Go to Apps → My Apps in the Ecwid Control Panel, open your app, and verify that all four required scopes (read_orders, update_orders, read_catalog, update_catalog) are granted. Re-install the app on your store after adding scopes.

✕ 404 Not Found

The requested order or product ID does not exist in the store identified by the store_id credential. Verify that the correct store ID is saved in EcomCentral. The store ID is numeric and visible in your Control Panel URL.

✕ 429 Rate Limit Exceeded

Ecwid enforces a rate limit of 600 requests per minute per app token. If you exceed this limit, requests will be rejected with HTTP 429. Reduce the number of simultaneous operations or wait 60 seconds before retrying.

✕ 401 Unauthorized

The secret_token is invalid, expired, or the app has been uninstalled from the store. Re-install the app on your store to receive a fresh access token, then update the EcomCentral connection with the new token.