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

Sale

Documentation: https://docs.vendhq.com/reference/2/spec/sales/listsales

Column Type Relates to Notes
RemoteID string - -
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 - -

Outlet

Documentation: https://docs.vendhq.com/reference/2/spec/outlets/listoutlets

Column Type Relates to Notes
RemoteID string - -
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 - -

Customer

Documentation: https://docs.vendhq.com/reference/2/spec/customers/listcustomers

Column Type Relates to Notes
RemoteID string - -
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 - -

PaymentMethod

Documentation: https://docs.vendhq.com/reference/2/spec/payment-types/listpaymenttypes

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

Payment

Column Type Relates to Notes
RemoteID string - -
SaleRemoteID string Sale → RemoteID -
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 - -

SaleItem

Documentation: https://docs.vendhq.com/reference/2/spec/sales/listsales

Column Type Relates to Notes
RemoteID string - -
SaleRemoteID string Sale → RemoteID -
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 - -

User

Documentation: https://docs.vendhq.com/reference/2/spec/users/listusers

Column Type Relates to Notes
RemoteID string - -
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 - -

Product

Documentation: https://docs.vendhq.com/reference/2/spec/products/getproductbyid

Column Type Relates to Notes
RemoteID string - -
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 - -
Code string - -
Price decimal - -

Register

Documentation: https://docs.vendhq.com/reference/2/spec/registers/listregisters

Column Type Relates to Notes
RemoteID string - -
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 - -

AuditLogEvent

Documentation: https://docs.vendhq.com/reference/2-beta/spec/audit/get-auditlog-events

Column Type Relates to Notes
RemoteID string - -
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://docs.vendhq.com/reference/2/spec/brands/listbrands

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

Supplier

Documentation: https://docs.vendhq.com/reference/2/spec/suppliers/listsuppliers

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

Inventory

Documentation: https://docs.vendhq.com/reference/2/spec/inventory/listinventoryrecords

Column Type Relates to Notes
RemoteID string - -
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 - -

Consignment

Documentation: https://docs.vendhq.com/reference/2/spec/consignments/getconsignmentbyid

Column Type Relates to Notes
RemoteID string - -
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 - -

ConsignmentProduct

Column Type Relates to Notes
RemoteID string - -
ConsignmentRemoteID string Consignment → RemoteID -
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 - -

Tag

Documentation: https://docs.vendhq.com/reference/2/spec/tags/listtags

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

ProductTag

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

SaleItemPromotion

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

ProductType

Documentation: https://docs.vendhq.com/reference/2/spec/product-types/listproducttypes

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

PriceBook

Documentation: https://docs.vendhq.com/reference/2/spec/price-books/listpricebooks

Column Type Relates to Notes
RemoteID string - -
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://docs.vendhq.com/reference/2/spec/price-books/listpricebooks

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
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 - -

SaleFulfillment

Documentation: https://docs.vendhq.com/reference/2/spec/fulfillment/getfulfillmentsbysaleid

Column Type Relates to Notes
RemoteID string - -
SaleRemoteID string Sale → RemoteID -
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 - -

Promotion

Documentation: https://docs.vendhq.com/reference/2/spec/promotions/listpromotions

Column Type Relates to Notes
RemoteID string - -
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 - -

PromotionConditionInclude

Column Type Relates to Notes
RemoteID string - -
PromotionRemoteID string Promotion → RemoteID -
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 -
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 -
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 -
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 -
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 -
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 -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
CustomerGroupID guid CustomerGroup → ID -
PromotionID long Promotion → ID -

Need more?

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