Skip to main content

Discount Item API

Create and manage discount items for applying discounts to sales transactions.


Endpoints

MethodEndpointDescription
GET/record/v1/discountItemList discount items
GET/record/v1/discountItem/{id}Get specific item
POST/record/v1/discountItemCreate item
PATCH/record/v1/discountItem/{id}Update item
DELETE/record/v1/discountItem/{id}Delete item

Key Fields

FieldTypeDescriptionRequired
itemIdstringItem name/numberYes (if not auto)
displayNamestringDisplay nameNo
descriptionstringItem descriptionNo
subsidiaryobjectSubsidiary assignmentYes (OneWorld)
incomeAccountobjectIncome/discount accountYes
ratestringDiscount rate/percentageNo
nonPostingbooleanNon-posting flagNo
includeChildrenbooleanInclude child subsidiariesNo
isInactivebooleanInactive flagNo
isTaxablebooleanTaxable flagNo
taxScheduleobjectTax scheduleNo
departmentobjectDefault departmentNo
classobjectDefault classNo
locationobjectDefault locationNo

Example: Create Discount Item

POST /record/v1/discountItem
Content-Type: application/json
{
"itemId": "VOLUME-DISCOUNT",
"displayName": "Volume Discount - 10%",
"description": "10% discount for volume purchases",
"subsidiary": {
"id": "1"
},
"incomeAccount": {
"id": "410"
},
"rate": "-10%",
"isTaxable": false,
"department": {
"id": "10"
}
}

Response:

{
"id": "956",
"itemId": "VOLUME-DISCOUNT",
"displayName": "Volume Discount - 10%",
"description": "10% discount for volume purchases",
"subsidiary": {
"id": "1",
"refName": "Parent Company"
},
"incomeAccount": {
"id": "410",
"refName": "Sales Discounts"
},
"rate": "-10%",
"isTaxable": false,
"department": {
"id": "10",
"refName": "Sales"
},
"isInactive": false,
"nonPosting": false,
"lastModifiedDate": "2025-12-25T10:30:00Z"
}

Example: Update Discount Item

PATCH /record/v1/discountItem/956
Content-Type: application/json
{
"rate": "-15%",
"displayName": "Volume Discount - 15%",
"description": "15% discount for volume purchases (updated)"
}

Response:

{
"id": "956",
"itemId": "VOLUME-DISCOUNT",
"displayName": "Volume Discount - 15%",
"description": "15% discount for volume purchases (updated)",
"rate": "-15%",
"lastModifiedDate": "2025-12-25T11:00:00Z"
}

Query Filters

Find Active Discount Items

GET /record/v1/discountItem?q=isInactive=false

Find by Item ID Pattern

GET /record/v1/discountItem?q=itemId LIKE 'DISCOUNT%'

Find by Discount Account

GET /record/v1/discountItem?q=incomeAccount.id=410

Find Non-Posting Discounts

GET /record/v1/discountItem?q=nonPosting=true

Important Notes

  • Discount items are used to apply discounts to sales transactions
  • Discounts reduce the total amount of sales transactions and typically post to a contra-revenue account
  • The incomeAccount field should typically point to a sales discount or contra-revenue account (often in the 400s with negative balances)
  • The rate field can be specified as:
    • A percentage: -10% (10% discount)
    • A fixed amount: -50.00 (negative value for discount)
    • Percentage format is most common
  • Discount items can be used on:
    • Sales orders
    • Invoices
    • Cash sales
    • Quotes and estimates
  • Common discount types:
    • Volume discounts
    • Early payment discounts
    • Promotional discounts
    • Customer loyalty discounts
    • Seasonal discounts
    • Employee discounts
  • The nonPosting flag can be set to true for discounts that should appear on transactions but not post to the general ledger
  • Discounts are typically not taxable (isTaxable = false) as they reduce the taxable amount
  • In OneWorld accounts, subsidiary assignment is mandatory
  • Discount items can have default department, class, and location dimensions for financial reporting
  • Best practice is to create separate discount items for different discount types to improve reporting and tracking

Common Discount Configurations

Percentage Discount

{
"itemId": "DISCOUNT-5PCT",
"displayName": "5% Discount",
"rate": "-5%",
"incomeAccount": {"id": "410"}
}

Fixed Amount Discount

{
"itemId": "DISCOUNT-50",
"displayName": "$50 Discount",
"rate": "-50.00",
"incomeAccount": {"id": "410"}
}

Non-Posting Discount

{
"itemId": "PROMO-DISPLAY",
"displayName": "Promotional Discount (Display Only)",
"rate": "-10%",
"incomeAccount": {"id": "410"},
"nonPosting": true
}

See Also