Explore the Brightpearl data model

See how the various Brightpearl endpoints relate to each other, using our handy Entity Relationship Diagram.

Background

Pulling data from Brightpearl 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 pull your Brightpearl 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

Brand

Documentation: https://api-docs.brightpearl.com/product/brand/get.html

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
Description string - -

Contact

Documentation: https://api-docs.brightpearl.com/contact/contact/index.html

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ContactID int - -
FirstName string - -
LastName string - -
TradeStatus string - -
CreatedByid int Contact → ContactID -
CompanyID int - -
IsPrimaryContact boolean - -
IsSupplier boolean - -
IsStaff boolean - -
PrimaryEmail string - -
SecondaryEmail string - -
TertiaryEmail string - -
CreditLimit decimal - -
CreditTermDays decimal - -
CurrencyID int - -
DiscountPercentage decimal - -
PriceListID int - -
TaxCodeID int - -
NominalCode string - -
TaxNumber string - -
DefaultAddressID int - -
DeliveryAddressID int - -
BillingAddressID int - -
CurrentContactStatus string - -
CreatedOn datetime - -
UpdatedOn datetime - -

ContactCustomField

Documentation: https://api-docs.brightpearl.com/contact/custom-field-meta-data/get.html

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
Code string -
  • 29 May 2021 A unique code, provided by the user
CustomFieldType string -
  • 29 May 2021 Can be one of TEXT, TEXTAREA, YESNO, INTEGER, DATE, or SELECT
Required boolean - -

ContactCustomFieldOption

Column Type Relates to Notes
RemoteID string - -
ContactCustomFieldOptionRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
CustomFieldID int ContactCustomField → ID -
Value string - -

ContactCustomFieldValue

Column Type Relates to Notes
RemoteID string - -
ContactCustomFieldValueRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ContactID int Contact → ContactID -
ContactCustomFieldCode string ContactCustomField → Code -
ContactCustomFieldOptionID int ContactCustomFieldOption → ID
  • 4 Jun 2021 The id field is only populated for select-list field types
Value string - -

ContactTag

Documentation: https://api-docs.brightpearl.com/contact/custom-field-meta-data/get.html

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
TagID int - -
TagName string - -
TagParentID int ContactTag → TagID -
TagColor string - -

ContactTagValue

Column Type Relates to Notes
RemoteID string - -
ContactTagValueRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ContactID int Contact → ContactID -
ContactTagID int ContactTag → TagID -

Order

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Version int - -
Acknowledged boolean -
  • 21 Jun 2021 The docs do not define this column, but JSON examples give it as an integer (always zero). From the PUT method though, we are 99% sure it can be interpreted as a true/false boolean
OrderTypeCode string OrderType → Code -
Reference string - -
OrderPaymentStatus string - -
StockStatusCode string OrderStockStatus → Code -
AllocationStatusCode string - -
ShippingStatusCode string OrderShippingStatus → Code -
PriceModeCode string - -
CreatedOn datetime - -
UpdatedOn datetime - -
PlacedOn datetime - -
ClosedOn datetime - -
IsDropship boolean - -
OrderStatusID int OrderStatus → StatusID -
SupplierContactID int Contact → ContactID -
BillingContactID int Contact → ContactID -
ParentOrderID int Order → ID -
CreatedByID int Contact → ContactID -
WarehouseID int Warehouse → ID -

OrderRow

Column Type Relates to Notes
RemoteID string - -
OrderRowRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
OrderRowID int - -
OrderID int Order → ID -
OrderRowSequence string - -
ProductID int Product → ID -
NominalCode string - -
DiscountPercentage decimal - -
BundleChild boolean - -
BundleParent boolean - -
ParentOrderRowID int OrderRow → OrderRowID -
Qty decimal - -
UnitPrice decimal - -
CostValue decimal - -
NetValue decimal - -
TaxValue decimal - -
TaxRate decimal - -
TaxCode string - -
Currency string - -

OrderShippingStatus

Documentation: https://api-docs.brightpearl.com/order/order-shipping-status/get.html

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Description string - -
Code string - -

OrderType

Documentation: https://api-docs.brightpearl.com/order/order-type/get.html

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Description string - -
Code string - -

OrderStatus

Documentation: https://api-docs.brightpearl.com/order/order-status/get.html

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Name string - -
StatusID int - -
SortOrder int - -
RemindAfterDays int - -
OrderTypeCode string - -
Color string - -
EmailContent string - -
State string - -
Disabled boolean - -
Visible boolean - -
BatchProcess boolean - -

OrderStockStatus

Documentation: https://api-docs.brightpearl.com/order/order-stock-status/get.html

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Description string - -
Code string - -

PriceList

Documentation: https://api-docs.brightpearl.com/product/price-list/get.html

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
Code string - -
CurrencyCode string - -
CurrencySymbol string - -
CurrencyID int - -
PriceListTypeCode string - -
Gross boolean - -

Product

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
DefaultProductName string -
  • 9 Jul 2021 The product names may vary across different sales channels. Here, we take the name from the default 'Brightpearl' channel
BrandID int Brand → ID -
CollectionID int - -
PrimarySupplierID int Contact → ContactID -
ProductGroupID int -
  • 21 Jun 2021 Product groups do not have a 'list' endpoint, and must be obtained one-by-one. As far as we can tell, they are created dynamically to group product varations together. Of interest is that in these cases, the 'name' value of the productGroup is empty. This provides further evidence that this property is purely technical/workaround.
Version long - -
Status string - -
NominalCodeStock string - -
NominalCodePurchases string - -
NominalCodeSales string - -
Featured boolean - -
CreatedOn datetime - -
UpdatedOn datetime - -
StockTracked boolean - -
WeightMagnitude decimal - -
StockLength decimal - -
StockWidth decimal - -
StockHeight decimal - -
StockVolume decimal - -
Sku string - -
Isbn string - -
Ean string - -
Upc string - -
Barcode string - -
TaxCodeID int - -
TaxCodeCode string - -
IsBundle boolean - -
ReportingCategoryID int - -
ReportingSubCategoryID int - -
ReportingSeasonID int - -
InStockTotal decimal - -
OnHandTotal decimal - -
AllocatedTotal decimal - -
InTransitTotal decimal - -
OnOrderTotal decimal - -
OnOrderShipped decimal - -

ProductCategory

Documentation: https://api-docs.brightpearl.com/product/brightpearl-category/get.html

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
ParentID int ProductCategory → ID -
Active boolean - -
CreatedOn datetime - -
CreatedByID int - -
UpdatedOn datetime - -
UpdatedByID int - -
DescriptionLanguageCode string - -
DescriptionText string - -
DescriptionFormat string - -

ProductCustomField

Documentation: https://api-docs.brightpearl.com/product/product-custom-field/get.html

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
Code string -
  • 29 May 2021 A unique code, provided by the user
CustomFieldType string -
  • 29 May 2021 Can be one of TEXT, TEXTAREA, YESNO, INTEGER, DATE, or SELECT
Required boolean - -

ProductCustomFieldOption

Column Type Relates to Notes
RemoteID string - -
ProductCustomFieldOptionRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
CustomFieldID int ProductCustomField → ID -
Value string - -

ProductCustomFieldValue

Column Type Relates to Notes
RemoteID string - -
ProductCustomFieldValueRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ProductID int Product → ID -
ProductCustomFieldCode string ProductCustomField → Code -
ProductCustomFieldOptionID int ProductCustomFieldOption → ID -
Value string - -

ProductPrice

Column Type Relates to Notes
RemoteID string - -
ProductPriceRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ProductID int Product → ID -
PriceListID int PriceList → ID -
QuantityBreak int - -
UnitPriceExTax decimal - -

ProductProductCategory

Column Type Relates to Notes
RemoteID string - -
ProductProductCategoryRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
CategoryID int ProductCategory → ID -
ProductID int Product → ID -

ProductSupplier

Documentation: https://api-docs.brightpearl.com/product/product-supplier/get.html

Column Type Relates to Notes
RemoteID string - -
ProductSupplierRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ProductID int Product → ID -
ContactID int Contact → ContactID -

ProductVariation

Documentation: https://api-docs.brightpearl.com/product/option/search.html

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

ProductVariationOption

Column Type Relates to Notes
RemoteID string - -
ProductVariationOptionRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
OptionValueID int - -
ProductVariationID int ProductVariation → ID -

ProductVariationValue

Column Type Relates to Notes
RemoteID string - -
ProductVariationValueRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ProductID int Product → ID -
OptionID int ProductVariation → ID -
OptionValueID int ProductVariationOption → OptionValueID -

ProductWarehouseAvailability

Documentation: https://api-docs.brightpearl.com/warehouse/product-availability/get.html

Column Type Relates to Notes
RemoteID string - -
ProductWarehouseAvailabilityRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
WarehouseID int Warehouse → ID -
ProductID int Product → ID -
InStock decimal - -
OnHand decimal - -
Allocated decimal - -
InTransit decimal - -
OnOrderTotal decimal - -
OnOrderShipped decimal - -

ProductWarehouseLocationAvailability

Column Type Relates to Notes
RemoteID string - -
ProductWarehouseLocationAvailabilityRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
LocationID int WarehouseLocation → ID -
ProductWarehouseAvailabilityRemoteID string ProductWarehouseAvailability → RemoteID -
InStock decimal - -
OnHand decimal - -
Allocated decimal - -
InTransit decimal - -
OnOrderTotal decimal - -
OnOrderShipped decimal - -

Warehouse

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
TypeCode string - -
TypeDescription string - -
LogisticsName string -
  • 21 Jun 2021 Only provided when Warehouse type is 'Third party logistics'
ClickAndCollectEnabled boolean - -
AddressID int - -
CollectionSlaValue int - -
CollectionSlaTimeUnits string - -
WeeklyOperatingPeriodTimeZone string - -
WeeklyOperatingPeriodDay1OpeningHours string - -
WeeklyOperatingPeriodDay1ClosingHours string - -
WeeklyOperatingPeriodDay2OpeningHours string - -
WeeklyOperatingPeriodDay2ClosingHours string - -
WeeklyOperatingPeriodDay3OpeningHours string - -
WeeklyOperatingPeriodDay3ClosingHours string - -
WeeklyOperatingPeriodDay4OpeningHours string - -
WeeklyOperatingPeriodDay4ClosingHours string - -
WeeklyOperatingPeriodDay5OpeningHours string - -
WeeklyOperatingPeriodDay5ClosingHours string - -
WeeklyOperatingPeriodDay6OpeningHours string - -
WeeklyOperatingPeriodDay6ClosingHours string - -
WeeklyOperatingPeriodDay7OpeningHours string - -
WeeklyOperatingPeriodDay7ClosingHours string - -

WarehouseLocation

Column Type Relates to Notes
RemoteID string - -
WarehouseLocationRemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
ZoneID int - -
WarehouseID int Warehouse → ID -
GroupingA string - -
GroupingB string - -
GroupingC string - -
GroupingD string - -
FullName string - -
Barcode string - -

Need more?

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