Exclusive: all our customers get a free six-month subscription to a next-gen data and AI learning platform

Explore the Lightspeed Retail (X-Series/Vend) API data model

See how the various Lightspeed Retail (X-Series/Vend) endpoints relate to each other, using our handy Entity Relationship Diagram

Pulling data from the Lightspeed Retail (X-Series/Vend) API is only the first part of your reporting. You also need to understand the relationships between different endpoints - something that APIs typically fail to convey.

At SyncHub, we not only sync your Lightspeed Retail (X-Series/Vend) API endpoints down into a reportable format, we also describe their relationships (e.g. in terms of foreign keys) so that you can quickly get a grasp of your data and how it fits together. This page is intended as technical documentation of these relationships.

Endpoints

AuditLogEvent

Documentation: https://x-series-api.lightspeedhq.com/reference/getauditlogevents

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID string - -
Name string - -
UserID guid User → ID
  • 3 Dec 2022 After syncing tens of millions of records, we observed this value coming down as 'authome'. We don't feel this warrants changing our data type from GUID, as that would also break the foreign key, but it means non-GUID values like this will be nullified
Type string - -
Action string - -
EntityID string -
  • 5 Aug 2020 Foreign key, but refers to different entities based on the type property
IpAddress string - -
UserAgent string - -
OccurredAt datetime - -
CreatedAt datetime - -

Brand

Documentation: https://x-series-api.lightspeedhq.com/reference/listbrands

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
Version long - -
DeletedAt datetime - -

Consignment

Documentation: https://x-series-api.lightspeedhq.com/reference/getconsignments

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
Version long - -
OutletID guid Outlet → ID -
DueAt datetime - -
Type string - -
Status string - -
SupplierID guid Supplier → ID -
SourceOutletID guid Outlet → ID -
ConsignmentDate datetime - -
ReceivedAt datetime - -
ShowInactive boolean - -
SupplierInvoice string - -
Reference string - -
TotalCountGain decimal - -
TotalCostGain decimal - -
TotalCountLoss decimal - -
TotalCostLoss decimal - -
CreatedAt datetime - -
UpdatedAt datetime - -
DeletedAt datetime - -
ProductCount decimal - -

Customer

Documentation: https://x-series-api.lightspeedhq.com/reference/listcustomers

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
Version long - -
CustomerCode string - -
FirstName string - -
LastName string - -
Email string - -
YearToDate decimal - -
Balance decimal - -
LoyaltyBalance decimal - -
Note string - -
Gender string - -
DateOfBirth string - -
CompanyName string - -
DoNotEmail boolean - -
Phone string - -
Mobile string - -
Fax string - -
Twitter string - -
Website string - -
PhysicalSuburb string - -
PhysicalCity string - -
PhysicalPostcode string - -
PhysicalState string - -
PostalSuburb string - -
PostalCity string - -
PostalState string - -
CustomerGroupID guid CustomerGroup → ID -
EnableLoyalty boolean - -
CreatedAt datetime - -
UpdatedAt datetime -
  • 23 Apr 2022 known bug This is a known issue acknowledged by Vend. Due to GDPR requirements, if a customer is deleted the updated_at date is also set to '0000-12-30'
DeletedAt datetime - -
PostalPostcode string - -
PhysicalAddress1 string - -
PhysicalAddress2 string - -
PhysicalCountryID string - -
PostalAddress1 string - -
PostalAddress2 string - -
PostalCountryID string - -
CustomField1 string - -
CustomField2 string - -
CustomField3 string - -
CustomField4 string - -
AvatarURL string - -
FullName string - -

CustomerGroup

Documentation: https://x-series-api.lightspeedhq.com/reference/2/spec/customer-groups/listcustomergroups

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
GroupID string - -
RetailerID string - -
Version long - -
CreatedAt datetime - -
UpdatedAt datetime - -
DeletedAt datetime - -

Inventory

Documentation: https://x-series-api.lightspeedhq.com/reference/listinventoryrecords

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Version long - -
OutletID guid Outlet → ID -
ProductID guid Product → ID -
InventoryLevel decimal - -
CurrentAmount decimal - -
DeletedAt datetime - -
AverageCost decimal - -
ReorderPoint decimal - -
ReorderAmount decimal - -

Outlet

Documentation: https://x-series-api.lightspeedhq.com/reference/listoutlets-1

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
TimeZone string - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
Version long - -
DefaultTaxID guid Tax → ID -
Currency string - -
CurrencySymbol string - -
DisplayPrices string - -
PhysicalAddress1 string - -
PhysicalAddress2 string - -
PhysicalSuburb string - -
PhysicalCity string - -
PhysicalPostcode string - -
PhysicalState string - -
PhysicalCountryID string - -
DeletedAt datetime - -

OutletProductTax

Documentation: https://x-series-api.lightspeedhq.com/reference/listoutletproducttaxes

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
OutletID guid Outlet → ID -
Version long - -
ProductID guid Product → ID -
DeletedAt datetime - -
TaxID guid Tax → ID -

Payment

Column Type Relates to Notes
RemoteID string - -
SaleRemoteID string Sale → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
RegisterID guid Register → ID -
OutletID guid Outlet → ID -
RetailerPaymentTypeID guid PaymentMethod → ID -
Amount decimal - -
PaymentDate datetime - -
DeletedAt datetime - -

PaymentMethod

Documentation: https://x-series-api.lightspeedhq.com/reference/listpaymenttypes

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
Version long - -
DeletedAt datetime - -
TypeID int - -
LedgerCode string - -

PriceBook

Documentation: https://x-series-api.lightspeedhq.com/reference/listpricebooks

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
Version long - -
DeletedAt datetime - -
OutletID guid Outlet → ID -
CustomerGroupID guid CustomerGroup → ID -
UpdatedAt datetime - -
CreatedAt datetime - -
RestrictToPlatformKey string - -
RestrictToPlatformLabel string - -
ValidFrom datetime - -
ValidTo datetime - -
Type string - -

PriceBookProduct

Documentation: https://x-series-api.lightspeedhq.com/reference/listpricebookproducts

Column Type Relates to Notes
RemoteID string -
  • 5 Jun 2020 The entity does have a unique 'id' field, however we cannot query the Vend API based on this, so we also include a combo of product/pricebook
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Version long - -
ProductID guid Product → ID
  • 24 Nov 2021 known bug We have observed NULL values coming down for product_id and price_book_id
PriceBookID guid PriceBook → ID
  • 24 Nov 2021 known bug We have observed NULL values coming down for product_id and price_book_id
Price decimal - -
LoyaltyValue decimal - -
MinUnits decimal - -
MaxUnits decimal - -
DefaultDisplayPrice decimal - -
RetailPrice decimal - -
Discount decimal - -
Adjustment decimal - -
AdjustmentType string - -
Rounding string - -
TaxID guid Tax → ID -
CreatedAt datetime - -
UpdatedAt datetime - -
DeletedAt datetime - -

Product

Documentation: https://x-series-api.lightspeedhq.com/reference/listproducts-2

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
Description string - -
Version long - -
VariantParentID guid Product → ID -
VariantName string - -
Handle string - -
Sku string - -
SupplierCode string - -
HasInventory boolean - -
IsComposite boolean - -
ImageUrl string - -
CreatedAt datetime - -
UpdatedAt datetime - -
DeletedAt datetime - -
Source string - -
AccountCode string - -
AccountCodePurchase string - -
SupplyPrice decimal - -
HasVariants boolean - -
PriceIncludingTax decimal - -
PriceExcludingTax decimal - -
LoyaltyAmount decimal - -
SupplierID guid Supplier → ID -
ProductTypeID guid ProductType → ID -
BrandID guid Brand → ID -
IsActive boolean -
  • 24 Oct 2023 This is_active field is no longer documented, however it is returned in the payload. The documentation appears to support an 'active' field which presumably supercedes it. In all testing, both values are identical.
Code string - -
Price decimal - -

ProductCategory

Documentation: https://x-series-api.lightspeedhq.com/reference/listproductcategories

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
RootCategoryID guid ProductCategory → ID -
ParentCategoryID guid ProductCategory → ID -
LeafCategory boolean - -
PayloadID string - -

ProductType

Documentation: https://x-series-api.lightspeedhq.com/reference/listproducttypes

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
Version long - -
DeletedAt datetime - -

Promotion

Documentation: https://x-series-api.lightspeedhq.com/reference/listpromotions

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
Description string - -
StartTime datetime - -
EndTime datetime - -
ConditionType string - -
ConditionQuantity decimal - -
ActionType string - -
ActionValue decimal - -
LoyaltyMultiplier decimal - -
Status string - -
UsePromoCode boolean - -
PromoCodeSummaryTotalPromoCode decimal - -
PromoCodeSummaryRedeemedAmount decimal - -
ShowPotential boolean - -

Register

Documentation: https://x-series-api.lightspeedhq.com/reference/listregisters

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
Version long - -
OutletID guid Outlet → ID -
AskForNoteOnSave int - -
PrintNoteOnReceipt boolean - -
AskForUserOnSale boolean - -
ShowDiscountsOnReceipts boolean - -
PrintReceipt boolean - -
EmailReceipt boolean - -
InvoicePrefix string - -
InvoiceSuffix string - -
InvoiceSequence int - -
ButtonLayoutID guid - -
IsOpen boolean - -
IsQuickKeysEnabled boolean - -
DeletedAt datetime - -
RegisterOpenTime datetime - -
RegisterCloseTime datetime - -
RegisterOpenSequenceID guid - -
CashManagedPaymentTypeID guid - -
SalePrefix string - -
ReturnPrefix string - -
RemoteSiteID string - -
Code string - -

Sale

Documentation: https://x-series-api.lightspeedhq.com/reference/listsales

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Version long - -
OutletID guid Outlet → ID -
RegisterID guid Register → ID -
UserID guid User → ID -
CustomerID guid Customer → ID -
InvoiceNumber string - -
Status string - -
Note string - -
ShortCode string - -
ReturnFor guid - -
TotalPrice decimal - -
TotalTax decimal - -
TotalLoyalty decimal - -
CreatedAt datetime - -
UpdatedAt datetime - -
SaleDate datetime - -
DeletedAt datetime - -
ReceiptNumber string - -
TotalPriceIncl decimal - -
AccountsTransactionID string - -
Source string - -
SourceID string - -
Tip decimal - -
Total decimal - -
Tax decimal - -
RemoteSiteID string - -
RemoteStaffMemberID string - -
SaleID string - -
PriceVariation decimal - -
IsRefund boolean - -

SaleFulfillment

Documentation: https://x-series-api.lightspeedhq.com/reference/getfulfillmentsbysaleid

Column Type Relates to Notes
RemoteID string - -
SaleRemoteID string Sale → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID string -
  • 15 Sep 2020 Returns as a string, presumably to account for varying formats of third-party fulfillment services
SaleID guid Sale → ID -
OutletID guid Outlet → ID -
UserID guid User → ID -
Status string - -
CreatedAt datetime - -

SaleItem

Column Type Relates to Notes
RemoteID string - -
SaleRemoteID string Sale → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
SaleID guid Sale → ID -
ProductID guid Product → ID -
TaxID guid Tax → ID -
Quantity decimal - -
LoyaltyValue decimal - -
Note string - -
PriceSet boolean - -
Status string - -
Sequence int - -
UnitCost decimal - -
UnitDiscount decimal - -
UnitLoyaltyValue decimal - -
UnitPrice decimal - -
UnitTax decimal - -
TotalCost decimal - -
TotalDiscount decimal - -
TotalLoyaltyValue decimal - -
TotalPrice decimal - -
TotalTax decimal - -
IsReturn boolean - -
LineItemsIncludeTax boolean - -
Number int - -
Notes string - -
PriceVariation decimal - -
UnitPriceGross decimal - -
LineTotalExTax decimal - -
LineTotalTax decimal - -

SaleItemPromotion

Column Type Relates to Notes
RemoteID string - -
SaleItemRemoteID string SaleItem → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Name string - -
Amount decimal - -
PromotionID long Promotion → ID -
PromoCode string - -
PromoCodeID string - -
SaleItemID guid - -

Supplier

Documentation: https://x-series-api.lightspeedhq.com/reference/listsuppliers

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
Description string - -
Version long - -
Source string - -
DeletedAt datetime - -

Tag

Documentation: https://x-series-api.lightspeedhq.com/reference/listtags

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
Version long - -
DeletedAt datetime - -

Tax

Documentation: https://x-series-api.lightspeedhq.com/reference/listtaxes-1

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
DeletedAt datetime - -
Version long - -
IsDefault boolean - -
DisplayName string - -

User

Documentation: https://x-series-api.lightspeedhq.com/reference/listusers

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
Version long - -
Username string - -
DisplayName string - -
Email string - -
EmailVerifiedAt datetime - -
AccountType string - -
CreatedAt datetime - -
UpdatedAt datetime - -
DeletedAt datetime - -
SeenAt datetime - -
TargetDaily decimal - -
TargetWeekly decimal - -
TargetMonthly decimal - -
IsPrimaryUser boolean - -
ImageSource string - -
FirstName string - -
LastName string - -
AvatarURL string - -
FullName string - -

ProductVariant

Documentation: https://x-series-api.lightspeedhq.com/reference/listvariantattributes

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
DeletedAt datetime - -
DefaultValue string - -
IsDeprecated boolean - -

ConsignmentProduct

Column Type Relates to Notes
RemoteID string - -
ConsignmentRemoteID string Consignment → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ConsignmentID guid - -
ProductID guid Product → ID -
ProductSku string -
  • 6 Jul 2020 Although the product_sku shows in the web interface, it's always null in API calls
Count decimal - -
Received decimal - -
Cost decimal - -
IsIncluded boolean - -
Status string - -
CreatedAt datetime - -
UpdatedAt datetime - -
DeletedAt datetime - -
Version string - -

ProductVariantValue

Column Type Relates to Notes
RemoteID string - -
ProductRemoteID string Product → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ProductID guid Product → ID -
ProductVariantID guid ProductVariant → ID -
Value string - -

ProductTag

Column Type Relates to Notes
RemoteID string - -
ProductRemoteID string Product → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
TagID guid - -
ProductID guid Product → ID -

ProductProductCategory

Column Type Relates to Notes
RemoteID string - -
ProductRemoteID string Product → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
ProductID guid Product → ID -

PromotionConditionInclude

Column Type Relates to Notes
RemoteID string - -
PromotionRemoteID string Promotion → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
PromotionID long Promotion → ID -
Field string - -
Value guid -
  • 2 Mar 2021 The unique ID of whatever the field is. For example if field = 'product_id' then this is the particular product GUID
ProductID guid Product → ID -

PromotionConditionExclude

Column Type Relates to Notes
RemoteID string - -
PromotionRemoteID string Promotion → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
PromotionID long Promotion → ID -
Field string - -
Value guid -
  • 2 Mar 2021 The unique ID of whatever the field is. For example if field = 'product_id' then this is the particular product GUID
ProductID guid Product → ID -

PromotionActionInclude

Column Type Relates to Notes
RemoteID string - -
PromotionRemoteID string Promotion → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
PromotionID long Promotion → ID -
Field string - -
Value guid -
  • 2 Mar 2021 The unique ID of whatever the field is. For example if field = 'product_id' then this is the particular product GUID
ProductID guid Product → ID -

PromotionActionExclude

Column Type Relates to Notes
RemoteID string - -
PromotionRemoteID string Promotion → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
PromotionID long Promotion → ID -
Field string - -
Value guid -
  • 2 Mar 2021 The unique ID of whatever the field is. For example if field = 'product_id' then this is the particular product GUID
ProductID guid Product → ID -

PromotionOutlet

Column Type Relates to Notes
RemoteID string - -
PromotionRemoteID string Promotion → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
OutletID guid Outlet → ID -
PromotionID long Promotion → ID -

PromotionChannel

Column Type Relates to Notes
RemoteID string - -
PromotionRemoteID string Promotion → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ChannelName string - -
PromotionID long Promotion → ID -

PromotionCustomerGroup

Column Type Relates to Notes
RemoteID string - -
PromotionRemoteID string Promotion → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
CustomerGroupID guid CustomerGroup → ID -
PromotionID long Promotion → ID -

TaxRate

Column Type Relates to Notes
RemoteID string - -
TaxRemoteID string Tax → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID guid - -
Name string - -
TaxID guid Tax → ID -
Rate decimal - -
DisplayName string - -

Need more?

SyncHub lives and breathes APIs and data. Keep exploring using the links below.