API

SYMSON DATA FORMAT

DATA CHECKS

CHANGELOGS

DataChecks Version 3.0

A data check is a constraint that validates the data. These data checks are applied during the data import process. When the constraint(s) are violated, the API will send a response based on the type of data checks that were violated. If the response only contains warnings, it means there are violations, but the data will not disrupt the system. If the response contains errors or a combination of errors and warnings, a '400' response is returned, and only the correct data is imported.

Products

Warning

  • PR_WAR_68
    This Region does NOT exist in the Region table. Are the Regions imported first?
  • PR_WAR_70
    This Product(s) is/are a duplicate.
  • PR_WAR_72
    ListPrice should not be zero.
  • PR_WAR_75
    TotalCost should not be zero.
  • PR_WAR_81
    EAN should contain 8, 12 or 13 characters.
  • PR_WAR_88
    This Product has a List Price that is outside the range between Lower and Upper Bound.
  • PR_WAR_94
    PurchaseCost, ShippingCost and OtherCost are invalid. Make sure they are either all present or none at all.
  • PR_WAR_97
    This is not possible because we can't have platform fees without VAT.
  • PR_WAR_98
    Provided ListPrice is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: ListPrice and VatPercentage.
  • PR_WAR_99
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: ListPrice and FeePercentage.
  • PR_WAR_100
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PurchaseCost, ShippingCost and OtherCost.
  • PR_WAR_101
    This is not possible because we can't have platform fees without VAT.
  • PR_WAR_102
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PurchaseCost, ShippingCost and OtherCost.
  • PR_WAR_103
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PurchaseCost, ShippingCost, OtherCost, ListPrice, VatPercentage and FeePercentage.

Error

  • PR_ERR_69
    This Product does not exist in the database.
  • PR_ERR_71
    ListPrice cannot be null.
  • PR_ERR_72
    ListPrice cannot be smaller than zero.
  • PR_ERR_74
    TotalCost cannot be null.
  • PR_ERR_76
    TotalCost cannot be smaller than zero.
  • PR_ERR_77
    FeePercentage cannot be smaller than zero.
  • PR_ERR_78
    FeePercentage must be a percentage (smaller than 1).
  • PR_ERR_79
    VatPercentage cannot be smaller than zero.
  • PR_ERR_80
    VatPercentage must be a percentage (smaller than 1).
  • PR_ERR_82
    Stock must be positive.
  • PR_ERR_83
    RRP (Recommended Retail Price) cannot be negative.
  • PR_ERR_84
    RegionID must exist.
  • PR_ERR_85
    This Product has a negative Lower Bound.
  • PR_ERR_86
    This Product has a negative Upper Bound.
  • PR_ERR_87
    This Product has an Upper Bound lower than Lower Bound.
  • PR_ERR_89
    Cannot use FeePercentage if VatPercentage is not defined.
  • PR_ERR_91
    PurchaseCost must be positive.
  • PR_ERR_92
    ShippingCost must be positive.
  • PR_ERR_93
    OtherCost must be positive.
  • PR_ERR_106
    Product SupplierListPrice must be positive.

OrderLines

Warning

  • OR_WAR_73
    PricePerUnit should not be zero.
  • OR_WAR_74
    PricePerUnitVat can be null.
  • OR_WAR_75
    PricePerUnit must be TotalCostPerUnit plus MarginPerUnit.
  • OR_WAR_78
    TotalCostPerUnit can be zero, but is this indended?
  • OR_WAR_83
    MarginPerUnit can be zero, but is this intended?.
  • OR_WAR_84
    MarginPerUnit can be negative, but is this intended?.
  • OR_WAR_85
    CreatedDate cannot be zero.
  • OR_WAR_95
    PurchaseCostPerUnit, ShippingCostPerUnit and OtherCostPerUnit are invalid. Make sure they are either all present or none at all.
  • OR_WAR_98
    Provided PricePerUnitVat is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PricePerUnit and VatPercentage.
  • OR_WAR_99
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PricePerUnit and FeePercentage.
  • OR_WAR_100
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PurchaseCostPerUnit, ShippingCostPerUnit and OtherCostPerUnit.
  • OR_WAR_102
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PurchaseCostPerUnit, ShippingCostPerUnit and OtherCostPerUnit.
  • OR_WAR_103
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PurchaseCostPerUnit, ShippingCostPerUnit, OtherCostPerUnit, PricePerUnit, VatPercentage and FeePercentage.

Error

  • OR_ERR_68
    ProductId does not exist in the Products table. Please import this product first.
  • OR_ERR_69
    InvoiceId does not exist in the Invoice table. Please import this invoice first.
  • OR_ERR_71
    PricePerUnit cannot be null.
  • OR_ERR_72
    PricePerUnit cannot be smaller than zero.
  • OR_ERR_77
    TotalCostPerUnit cannot be null.
  • OR_ERR_79
    TotalCostPerUnit cannot be smaller than zero.
  • OR_ERR_80
    Quantity cannot be null.
  • OR_ERR_81
    Quantity cannot be zero.
  • OR_ERR_82
    MarginPerUnit cannot be null.
  • OR_ERR_86
    Cannot use FeePercentage if VatPercentage is not defined.
  • OR_ERR_88
    PurchaseCostPerUnit must be positive.
  • OR_ERR_89
    ShippingCostPerUnit must be positive.
  • OR_ERR_90
    OtherCostPerUnit must be positive.
  • OR_ERR_91
    FeePercentage cannot be smaller than zero.
  • OR_ERR_92
    FeePercentage must be a percentage (smaller than 1).
  • OR_ERR_93
    VatPercentage cannot be smaller than zero.
  • OR_ERR_94
    VatPercentage must be a percentage (smaller than 1).
  • OR_ERR_97
    This is not possible because we can't have platform fees without VAT.
  • OR_ERR_101
    This is not possible because we can't have platform fees without VAT.

DataChecks Version 2.0

Products

Warning

  • PR_WAR_70
    The product is a duplicate.
  • PR_WAR_71
    ListPrice cannot be null.
  • PR_WAR_72
    ListPrice cannot be smaller or equal to zero.
  • PR_WAR_74
    TotalCost cannot be null.
  • PR_WAR_75
    TotalCost can be zero.
  • PR_WAR_76
    TotalCost cannot be smaller than zero.
  • PR_WAR_77
    FeePercentage cannot be smaller than zero.
  • PR_WAR_78
    FeePercentage must be a percentage (smaller than 1).
  • PR_WAR_79
    VatPercentage cannot be smaller than zero.
  • PR_WAR_80
    VatPercentage must be a percentage (smaller than 1).
  • PR_WAR_81
    EAN should contain 8, 12 or 13 characters.
  • PR_WAR_82
    Stock must be positive.
  • PR_WAR_83
    RRP (Recommended Retail Price) should be positive.
  • PR_WAR_84
    RegionID must exist.
  • PR_WAR_85
    This Product has a negative Lower Bound.
  • PR_WAR_86
    This Product has a negative Upper Bound.
  • PR_WAR_87
    This Product has an Upper Bound lower than Lower Bound.
  • PR_WAR_88
    This Product has a List Price that is outside the range between Lower and Upper Bound.
  • PR_WAR_89
    Cannot use FeePercentage if VatPercentage is not defined.
  • PR_WAR_90
    Cannot use FeePerfecntage if ListPrice is not defined.
  • PR_WAR_91
    PurchaseCost must be positive.
  • PR_WAR_92
    ShippingCost must be positive.
  • PR_WAR_93
    OtherCost must be positive.
  • PR_WAR_94
    PurchaseCost, ShippingCost and OtherCost are invalid. Make sure they are either all present or none at all.
  • PR_WAR_97
    This is not possible because we can't have platform fees without VAT.
  • PR_WAR_98
    Provided ListPrice is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: ListPrice and VatPercentage.
  • PR_WAR_99
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: ListPrice and FeePercentage.
  • PR_WAR_100
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PurchaseCost, ShippingCost and OtherCost.
  • PR_WAR_101
    This is not possible because we can't have platform fees without VAT.
  • PR_WAR_102
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PurchaseCost, ShippingCost and OtherCost.
  • PR_WAR_103
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PurchaseCost, ShippingCost, OtherCost, ListPrice, VatPercentage and FeePercentage.
  • PR_WAR_106
    Product SupplierListPrice must be positive.

Error or Warning

  • PR_EOW_68
    This Region does not exist in the Region table. Are the Regions imported first?

Error

  • PR_ERR_69
    This Product does not exist in the database.

OrderLines

Warning

  • OR_WAR_71
    PricePerUnit cannot be null.
  • OR_WAR_72
    PricePerUnit cannot be smaller than zero.
  • OR_WAR_73
    PricePerUnit should not be zero.
  • OR_WAR_74
    PricePerUnitVat can be null.
  • OR_WAR_75
    MarginPerUnit must be PricePerUnit minus TotalCostPerUnit.
  • OR_WAR_76
    PricePerUnitVat should be higher than PricePerUnit.
  • OR_WAR_77
    TotalCostPerUnit cannot be null.
  • OR_WAR_78
    TotalCostPerUnit can be zero.
  • OR_WAR_79
    TotalCostPerUnit cannot be smaller than zero.
  • OR_WAR_80
    Quantity cannot be null.
  • OR_WAR_81
    Quantity can be zero.
  • OR_WAR_82
    MarginPerUnit cannot be null.
  • OR_WAR_83
    MarginPerUnit can be zero.
  • OR_WAR_84
    MarginPerUnit can be negative.
  • OR_WAR_85
    CreatedDate cannot be zero.
  • OR_WAR_86
    Cannot use FeePercentage if VatPercentage is not defined.
  • OR_WAR_87
    Cannot use FeePercentage if PricePerUnit is not defined.
  • OR_WAR_88
    PurchaseCostPerUnit must be positive.
  • OR_WAR_95
    PurchaseCostPerUnit, ShippingCostPerUnit and OtherCostPerUnit are invalid. Make sure they are either all present or none at all.
  • OR_WAR_98
    Provided PricePerUnitVat is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PricePerUnit and VatPercentage.
  • OR_WAR_99
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PricePerUnit and FeePercentage.
  • OR_WAR_100
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PurchaseCostPerUnit, ShippingCostPerUnit and OtherCostPerUnit.
  • OR_WAR_102
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PurchaseCostPerUnit, ShippingCostPerUnit and OtherCostPerUnit.
  • OR_WAR_103
    Provided TotalCost is not equal to ComputedTotalCost. Fields used to calculate the computed total cost: PurchaseCostPerUnit, ShippingCostPerUnit, OtherCostPerUnit, PricePerUnit, VatPercentage and FeePercentage.

Error or Warning

  • OR_EOW_68
    Product in OrderLines does not exist in the Product table. Are the Products imported first?

Error

  • OR_ERR_69
    This OrderLine does not exist in the database.

Changelog version 3.2

API

  • Changed
    The following datachecks from Products/OrderLines have been changed:
    • RRP (Recommended Retail Price) cannot be negative (PR_WAR_83) has been changed to an error.
    • MarginPerUnit must be PricePerUnit minus TotalCostPerUnit (PR_EOW_75) has been changed to a warning.
    • Quantity cannot be zero (OR_WAR_81) has been changed to an error.
    • Every Error or Warning has been changed a warning.
  • Removed
    The following datachecks from Products/OrderLines have been removed:
    • Cannot use FeePercentage if ListPrice is not defined (PR_ERR_90) has been removed.
    • PricePerUnitVat should be higher than PricePerUnit (OR_EOW_76) has been removed.
    • Cannot use FeePercentage if PricePerUnit is not defined (OR_ERR_87) has been removed.
  • Removed
    The parameter called "allowInvalidData" in Product, OrderLine, Invoice and Customer endpoints has been removed.

Documentation

  • Changed
    The datachecks have been updated accordingly.

Changelog version 3.1

API

  • Changed
    The following datachecks from Products are now considered ErrorOrWarnings:
    • ListPrice should not be zero (PR_EOW_72)
    • Totalcost should not be zero (PR_EOW_75)

Documentation

  • Changed
    Adjusted the datacheck codes in the Datacheck page.

Changelog version 3

API

  • New
    Added a new controller called Campaign Products. Read controller description for more info.
  • New
    Added 'Partial Acceptance' to the PUT endpoints of controllers. This means that if some data do not comply with the datachecks, those will get filtered out from the payload.
  • New
    Added a limitsize of 10000 items to the PUT endpoints of every controller.
  • Improved
    These PATCH endpoints have now a parameter called 'allowInvalidData':
    • Products
    • OrderLines

Documentation

  • New
    These new fields have been added to the SymsonPrices:
    • SymsonPrice
    • SymsonPriceVAT
    • ProductSupplierBasePrice
    • BasePriceVat
    • PreviousBasePrice
    • AdjustedPriceVat
    • PreviousAdjustedPrice
    • CampaignPriceVat
    • PreviousCampaignPrice
    • LowestPriceInLast30DaysVat
    • NotificationDifferentSupplierPrice
    • NotificationPriceAdjustedByMinMarginPercent
    • NotificationPriceAdjustedByCap
    • AnchorBasePrice
    • AnchorAdjustedPrice
    • AnchorCampaignPrice
    • AnchorOn
    • AnchorTotalCost
    • AnchorPurchaseCost
    • AnchorShippingCost
    • AnchorOtherCost
    • BasePrice
    • LowestPriceInLast30Days
    • isCampaign
  • Improved
    These fields have been renamed in the SymsonPrices:
    • "UiCustomPrice" -> "UiCustomAdjustedPrice"
    • "ListPrice" -> "AdjustedPrice"
    • "SalesPrice" -> "CampaignPrice"
    • "ProductSupplierListPrice" -> "ProductSupplierBasePrice"
    • "PreviousListPrice" -> "PreviousAdjustedPrice"
    • "PreviousSalesPrice" -> "PreviousCampaignPrice"
    • "NotificationDifferentSupplierList" -> "NotificationDifferentSupplierPrice"
    • "NotificationListAdjustedByMinMarginPercent" -> "NotificationPriceAdjustedByMinMarginPercent"
    • "NotificationListBelowMinMarginPercent" -> "NotificationPriceBelowMinMarginPercent"
    • "NotificationListAdjustedByCap" -> "NotificationPriceAdjustedByCap"
  • Removed
    These fields have been removed from the SymsonPrices:
    • IsListPrice
    • HasVat

Changelog version 2

API

  • New
    Added a limit count of '8000' for UPSERT and DELETE API requests.
  • New
    Added new data requirements for the imported data.
  • New
    Added a new endpoint called 'single product' in the Products.
  • New
    Added PATCH methods for the following endpoints:
    • Products;
    • Customers;
    • Invoices;
    • OrderLines.
  • New
    Added the StrictDataChecks query parameters for the following endpoints:
    • Products;
    • Customers;
    • Invoices;
    • OrderLines.
  • Improved
    Changed the tagname 'PricingManagementRows' to 'SymsonPrices'. The endpoint has been changed from '/pricingmanagementrows' to '/symsonprices'.
  • Improved
    Improved the response of every endpoint in a detailed manner.
  • Removed
    Removed the following query parameters for Products and OrderLines:
    • disableCheckListPrice;
    • disableCheckCostFields;
    • disableCheckCostComputation;
  • Removed
    Removed the following endpoints for Products:
    • /products/newproducts;
    • /products/updateproductattributes;
    • /products/updateproductcosts;
    • /products/updateproductprices;

Performance

  • Improved
    Improved performance with requests.

Documentation

  • New
    Added detailed documentation for each API endpoint.
  • New
    Added possible responses for every endpoint with response examples.
  • New
    Added payload examples in the 'Try Out!' section with data that complies with the data-requirements.
  • New
    Added request duration for every endpoint.

Layout

  • New
    Added a new filter for the endpoints.
  • New
    Added a navbar on the top left for documents (PDF).
  • Improved
    Changed the default layout of the page (where the endpoints are closed by default).