Skip to main content

Price Book API

Create, read, update, and delete price book records using the NetSuite REST API.


Endpoints

MethodEndpointDescription
GET/record/v1/priceBookList all price books
GET/record/v1/priceBook/{id}Get specific price book
POST/record/v1/priceBookCreate new price book
PATCH/record/v1/priceBook/{id}Update existing price book
DELETE/record/v1/priceBook/{id}Delete price book

Base URL

https://{account_id}.suitetalk.api.netsuite.com/services/rest/record/v1/priceBook

Key Fields

Basic Information

FieldTypeDescriptionRequired
idstringInternal ID (read-only)-
namestringPrice book nameYes
isInactivebooleanInactive flagNo

Configuration

FieldTypeDescriptionRequired
descriptionstringPrice book descriptionNo
subsidiaryobjectAssociated subsidiaryConditional

Pricing Rules

FieldTypeDescriptionRequired
pricescollectionItem price definitionsNo

Example: Create Price Book

POST /record/v1/priceBook
Content-Type: application/json
Authorization: Bearer {access_token}
{
"name": "2026 Pricing",
"description": "Standard pricing for fiscal year 2026",
"isInactive": false,
"subsidiary": {
"id": "1"
}
}

Response

{
"links": [
{
"rel": "self",
"href": "https://1234567.suitetalk.api.netsuite.com/services/rest/record/v1/priceBook/12"
}
],
"id": "12",
"name": "2026 Pricing",
"description": "Standard pricing for fiscal year 2026",
"isInactive": false,
"subsidiary": {
"links": [
{
"rel": "self",
"href": "https://1234567.suitetalk.api.netsuite.com/services/rest/record/v1/subsidiary/1"
}
],
"id": "1",
"refName": "Parent Company"
}
}

Example: Create Regional Price Book

POST /record/v1/priceBook
Content-Type: application/json
{
"name": "Europe Pricing 2026",
"description": "European market pricing with VAT considerations",
"isInactive": false,
"subsidiary": {
"id": "2"
}
}

Example: Update Price Book

PATCH /record/v1/priceBook/12
Content-Type: application/json
{
"description": "Updated pricing for fiscal year 2026 - Q2 revision",
"isInactive": false
}
Partial Updates

With PATCH, only include fields you want to change. All other fields remain unchanged.


Query Filters

Find Price Books by Name

GET /record/v1/priceBook?q=name LIKE '2026%'

Find Active Price Books

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

Find Price Books by Subsidiary

GET /record/v1/priceBook?q=subsidiary='1'

Find Price Books by Description

GET /record/v1/priceBook?q=description LIKE '%Europe%'

Common Use Cases

1. Create Annual Price Book

const priceBook = await createPriceBook({
name: "2026 Standard Pricing",
description: "Annual pricing effective January 1, 2026",
subsidiary: { id: "1" }
});

2. Archive Old Price Book

await patchPriceBook(oldPriceBookId, {
isInactive: true,
description: "Archived - Replaced by 2026 pricing"
});

3. Create Promotional Price Book

await createPriceBook({
name: "Q4 Holiday Promotion",
description: "Special pricing for holiday season 2025",
subsidiary: { id: "1" }
});

4. Regional Pricing Strategy

const regions = [
{ name: "North America Pricing", subsidiary: "1" },
{ name: "Europe Pricing", subsidiary: "2" },
{ name: "Asia Pacific Pricing", subsidiary: "3" }
];

for (const region of regions) {
await createPriceBook({
name: region.name,
subsidiary: { id: region.subsidiary }
});
}

Important Notes

Required Fields

  • name - Price book name is required
  • subsidiary - Required in OneWorld accounts

Price Book Structure

  • Price books contain collections of item prices for specific scenarios
  • Multiple price books can exist for different subsidiaries, regions, or time periods
  • Price books work in conjunction with price levels and pricing groups

Activation and Deactivation

  • Inactive price books are not available for use in transactions
  • Deactivating a price book does not delete historical pricing data
  • Consider archiving old price books instead of deleting them

OneWorld Considerations

  • In OneWorld accounts, price books are typically subsidiary-specific
  • Ensure users have permission to access the relevant subsidiary
  • Price books can be used for multi-currency pricing strategies

Best Practices

  • Use descriptive naming conventions (e.g., "2026 Q1 Pricing", "Holiday Promotion 2025")
  • Document effective dates in the description field
  • Maintain version control by creating new price books rather than modifying existing ones
  • Archive old price books instead of deleting them for audit trail

Integration with Other Pricing Features

  • Price Levels: Price books can contain prices for different price levels
  • Pricing Groups: Group items together for bulk pricing updates
  • Item Pricing: Individual item prices can be defined within price books
  • Customer Pricing: Price books can be assigned to specific customers

See Also