Explore the Brightpearl data model

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

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

ChannelBrand

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Name string - -
ChannelBrandID int - -
AddressBookID int - -
CompanyName string - -
CompanyNumber string - -
Telephone string - -
EmailAddress string - -
AccountingEmailAddress string - -
BankAccountNumber string - -
BankSortCode string - -
BankSwift string - -
VatNumber string - -
BankName 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 - -
ContactCustomFieldRemoteID string ContactCustomField → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
CustomFieldID int ContactCustomField → ID -
Value string - -

ContactCustomFieldValue

Column Type Relates to Notes
RemoteID string - -
ContactRemoteID string Contact → RemoteID -
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 - -
ContactRemoteID string Contact → RemoteID -
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 -
DeliveryDate datetime - -
ShippingMethodID int - -
ParentOrderID int Order → ID -
CreatedByID int Contact → ContactID -
WarehouseID int Warehouse → ID -

OrderGoodsNote

Documentation: https://api-docs.brightpearl.com/warehouse/goods-in-note/get.html

Column Type Relates to Notes
RemoteID string - -
OrderRemoteID string Order → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
GoodsNoteID int - -
OrderID int Order → ID -
Transfer boolean - -
GoodsNoteStatus string - -

OrderGoodsNoteMovement

Column Type Relates to Notes
RemoteID string - -
OrderGoodsNoteRemoteID string OrderGoodsNote → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
GoodsNoteID int OrderGoodsNote → GoodsNoteID -
MovementLineNumber int - -
Currency string - -
Value decimal - -
ProductID int Product → ID -
SalesOrderRowID int OrderRow → OrderRowID -
PurchaseOrderRowID int - -
Quantity decimal - -
WarehouseID int Warehouse → ID -
DestinationLocationID int WarehouseLocation → ID -
BatchGoodsNoteID int - -
Cleared boolean - -
ValueConfirmed boolean - -
Allocated boolean - -
Quarantine boolean - -
CreatedOn datetime - -
CreatedBy int - -
UpdatedOn datetime - -
UpdatedBy int - -

OrderLandedCostEstimate

Documentation: https://api-docs.brightpearl.com/order/landed%20cost%20estimate/get.html

Column Type Relates to Notes
RemoteID string - -
OrderRemoteID string Order → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
OrderID int Order → ID -
OrderRowID int OrderRow → OrderRowID -
UnitAdjustmentOriginalCurrency decimal - -
UnitAdjustmentBaseCurrency decimal - -
PayableSupplierID int Contact → ContactID -
Reference string - -
NominalCode string - -
CurrencyID int - -
PoRowQty decimal - -
ExchangeRate decimal - -

Payment

Documentation: https://api-docs.brightpearl.com/accounting/sale-payment-total/get.html

Column Type Relates to Notes
RemoteID string -
  • 18 Mar 2022 Even if multiple payments are provided, this endpoint will just roll up a single payment/order
OrderRemoteID string Order → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
OrderID int Order → ID -
PaymentCurrency string - -
AmountPaid decimal - -
AmountAuthorized decimal - -
AmountCaptured decimal - -

OrderRow

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

OrderRowProductVariation

Column Type Relates to Notes
RemoteID string - -
OrderRowRemoteID string OrderRow → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
OrderRowID int OrderRow → OrderRowID -
VariationName string -
  • 19 Jun 2022 We can't enforce a foreign key here, as the name may potentially change in Brightpearl. However ostensibly it points to the ProductVariation.Name field
Value 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 - -

ProductChannel

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

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
ChannelTypeID int - -
DefaultWarehouseID int - -
ContactGroupID int - -
DefaultPriceListID int PriceList → ID -
ChannelBrandID int ChannelBrand → ChannelBrandID -
ShowInChannelMenu boolean - -
InstalledIntegrationID int - -
ConfigSetID int - -
ProviderCode string - -
IntegrationTypeCode string - -
Active boolean - -

ProductChannelWarehouse

Column Type Relates to Notes
RemoteID string - -
ProductChannelRemoteID string ProductChannel → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
WarehouseID int Warehouse → ID -
ProductChannelID int ProductChannel → ID -

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 - -
ProductCustomFieldRemoteID string ProductCustomField → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
CustomFieldID int ProductCustomField → ID -
Value string - -

ProductCustomFieldValue

Column Type Relates to Notes
RemoteID string - -
ProductRemoteID string Product → RemoteID -
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 - -
ProductRemoteID string Product → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ProductID int Product → ID -
PriceListID int PriceList → ID -
Sku string - -
QuantityBreak int - -
UnitPriceExTax decimal - -

ProductProductCategory

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

ProductSeason

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

ProductSupplier

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

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

ProductType

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

ProductTypeAssociatedVariation

Column Type Relates to Notes
RemoteID string - -
ProductTypeRemoteID string ProductType → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ProductVariationID int ProductVariation → ID -
ProductTypeID int ProductType → ID -

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 - -
ProductVariationRemoteID string ProductVariation → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
OptionValueID int - -
OptionValueName string - -
SortOrder int - -
ProductVariationID int ProductVariation → ID -

ProductVariationValue

Column Type Relates to Notes
RemoteID string - -
ProductRemoteID string Product → RemoteID -
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 - -
ProductRemoteID string Product → RemoteID -
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 - -
ProductWarehouseAvailabilityRemoteID string ProductWarehouseAvailability → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
LocationID int WarehouseLocation → ID -
InStock decimal - -
OnHand decimal - -
Allocated decimal - -
InTransit decimal - -
OnOrderTotal decimal - -
OnOrderShipped decimal - -

Season

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

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 - -
WarehouseRemoteID string Warehouse → RemoteID -
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.