Retrieve a list of occurrences where a promotion discount, price list discount or a manual discount has been applied to a retail sale.
This information can be used to build a "discount report", outlining how many times a promotion / price list has been invoked, what items have been purchased with it and what is the total discount that customers have received through each type of discount, each price list and each promotion.
A built-in report providing that information can be found in Erply back office, Reports → Sales Promotions.
To start accumulating the data, get access to that back office report, and to be able to use this API call, please contact customer support and ask them to enable "Promotion Report" extra module on your account.
Likewise, to accumulate information about price lists and manual discounts as well, not only promotions, please contact customer support and ask them to additionally enable the following modules on your account:
Parameter name | Description | Possible value | Required |
---|---|---|---|
recordIDs | Retrieve multiple records, IDs separated by commas. Eg. "1,2,3,4,5". | string | |
invoiceIDs | Comma-separated list of invoice IDs. Retrieve records associated with multiple invoices. | string | |
productIDs | Comma-separated list of product IDs. Retrieve records associated with multiple products. | string | |
promotionIDs | Comma-separated list of promotion IDs. Retrieve records associated with multiple promotions. | string | |
priceListIDs | Comma-separated list of price list IDs. Retrieve records associated with multiple price lists. This field can be used only if the "Applied Price Lists Report" module has been enabled on your account. Otherwise, error code 1028 will be returned. |
string | |
dateFrom | Filter records by date range. | Date (yyyy-mm-dd) | |
dateTo | Date (yyyy-mm-dd) | ||
warehouseID | Invoice location ID. | integer | |
pointOfSaleID | Invoice register ID. | integer | |
changedSince | Retrieve only records that have been added or modified since the specified timestamp. | Integer (Unix timestamp) | |
recordsOnPage | Number of records API should return. By default 20, at most 100. | integer | |
pageNo | API returns at most recordsOnPage items at a time. To retrieve the next recordsOnPage items, send a new request with pageNo incremented by one. By default, API returns "page 1". | integer | |
lang | Retrieve item names in a specific language. If omitted, API will return item names in the default language of your Erply account. Possible values:
|
string |
Field name | Type | Description |
---|---|---|
recordID | integer | |
date | string | Format: yyyy-mm-dd. Invoice date. |
warehouseID | integer | Invoice location ID. |
pointOfSaleID | integer | Invoice register ID. |
customerID | integer | Customer ID. |
invoiceCreatorID | integer | Invoice creator ID. |
attendantID | integer | Attendant ID. |
productID | integer | Product ID. |
invoiceID | integer | Invoice ID. |
rowID | integer | Invoice row ID. Use Note however that row IDs are transient values; they change every time a sales document is re-saved. So do not rely on row IDs for data synchronization. |
stableRowID | integer | Stable ID of the invoice row. |
promotionID | integer | Promotion ID, if the applied discount was a promotion. Each returned record is either: 1) promotion discount (if |
promotionName | string | Promotion name, if the applied discount was a promotion. |
priceListID | integer | Price list ID, if the applied discount was a price list. |
priceListName | string | Price list name, if the applied discount was a price list. |
totalAmount | number | Total amount of the product on invoice row. |
discountedAmount | number | Total amount to which the discount applied. A price list discount always applies to the whole row, and "discountedAmount" is equal to "totalAmount". Other types (manual discount and promotion discount), however, may also apply to individual items within one row, in which case "discountedAmount" is smaller than "totalAmount". |
priceBeforePromotion | Decimal (4 places) | Unit price immediately before this promotion / price list / manual discount applied. (Note that multiple promotions and/or price lists can apply to one sold item; the discounts typically cumulate). For US accounts, this is the net price. For other countries, this is the price with VAT. |
totalBeforePromotion | Decimal (4 places) | priceBeforePromotion multiplied by discountedAmount . Note that this is not the same as "line total before the discount" — it's only the total of the items to which the discount applied. |
priceAfterPromotion | Decimal (4 places) | Final unit price immediately AFTER applying the promotion / price list. For US accounts, this is the net price. For other countries, this is the price with VAT. |
totalAfterPromotion | Decimal (4 places) | priceAfterPromotion multiplied by discountedAmount . Note that this is not the same as "line total after the discount" — it's only the total of the items to which the discount applied. |
promotionReasonCodeID | integer | Reason code ID associated with this promotion. This field contains a non-zero value only when the discount is promotion discount, and a reason code has been defined for that promotion. |
unitDiscount | Decimal (4 places) | $ discount that the promotion / price list applied to one item. |
totalDiscount | Decimal (4 places) | Total $ discount that promotion / price list gave to invoice line. |
promotionType | string | "ITEMS" or "INVOICE". This field is populated only for applied promotions, not applied price lists or manual discounts. "ITEMS" for line promotions, "INVOICE" for any promotions that applied to the whole document. |
promotionDiscountValue | number | $ discount that was specified in promotion parameters. (A promotion can have either promotionDiscountValue or promotionDiscountPercentage , but not both.) |
promotionDiscountPercentage | number | Percentage discount as it was defined in promotion description. |
priceListDiscountType | string | "PRICE" or "DISCOUNT". This field is populated only for applied price lists, not applied promotions or manual discounts. "PRICE" if the price list applied a fixed price, "DISCOUNT" if the price list applied a discount percentage. |
priceListDiscountPercentage | number | Percentage discount applied by the price list (in case the discount was percentage-based, see previous field). |
manualDiscountPercentage | number | Manual discount percentage — if this discount was a manual discount. |
manualDiscountReasonID | integer | ID of the reason code for the manual discount, if cashier selected a reason. For a list of reason codes, see getReasonCodes. |
unitItemSubsidy | number | Amount of item-level subsidy (in euros/dollars) earned by the store — per one item. Item-level subsidy is the subsidy that is applied to price list prices and item-level promotions (eg. "10% off from Product X"). The field is related to subsidies. Subsidy is money paid by head office to the store, to cover the store's loss of revenue, due to HQ-mandated pricing (discounts and promotions). These fields are returned only if the "Price list row subsidy and other fields" module has been enabled on your account. To enable that module, you can contact customer support, but keep in mind that the subsidy logic needs custom integration and is currently not a general solution that would work for all companies. |
unitTransactionSubsidy | number | Amount of transaction-level subsidy (in euros/dollars) earned by the store - per one item. Transaction-level subsidy is the subsidy that is applied to transaction-level promotions (eg. "$5 off entire sale"). The field is related to subsidies. Subsidy is money paid by head office to the store, to cover the store's loss of revenue, due to HQ-mandated pricing (discounts and promotions). These fields are returned only if the "Price list row subsidy and other fields" module has been enabled on your account. To enable that module, you can contact customer support, but keep in mind that the subsidy logic needs custom integration and is currently not a general solution that would work for all companies. |
totalItemSubsidy | number | Total amount of item-level subsidy (in euros/dollars) earned by the store ( The field is related to subsidies. Subsidy is money paid by head office to the store, to cover the store's loss of revenue, due to HQ-mandated pricing (discounts and promotions). These fields are returned only if the "Price list row subsidy and other fields" module has been enabled on your account. To enable that module, you can contact customer support, but keep in mind that the subsidy logic needs custom integration and is currently not a general solution that would work for all companies. |
totalTransactionSubsidy | number | Total amount of transaction-level subsidy (in euros/dollars) earned by the store ( The field is related to subsidies. Subsidy is money paid by head office to the store, to cover the store's loss of revenue, due to HQ-mandated pricing (discounts and promotions). These fields are returned only if the "Price list row subsidy and other fields" module has been enabled on your account. To enable that module, you can contact customer support, but keep in mind that the subsidy logic needs custom integration and is currently not a general solution that would work for all companies. |
added | Integer (Unix timestamp) | Creation time. |
lastModified | Integer (Unix timestamp) | Last modification time. |