Price Book API
Create, read, update, and delete price book records using the NetSuite REST API.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /record/v1/priceBook | List all price books |
GET | /record/v1/priceBook/{id} | Get specific price book |
POST | /record/v1/priceBook | Create 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
| Field | Type | Description | Required |
|---|---|---|---|
id | string | Internal ID (read-only) | - |
name | string | Price book name | Yes |
isInactive | boolean | Inactive flag | No |
Configuration
| Field | Type | Description | Required |
|---|---|---|---|
description | string | Price book description | No |
subsidiary | object | Associated subsidiary | Conditional |
Pricing Rules
| Field | Type | Description | Required |
|---|---|---|---|
prices | collection | Item price definitions | No |
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 requiredsubsidiary- 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
- Price Level - Customer pricing tiers
- Price Plan - Subscription pricing plans
- Pricing Group - Group items for pricing
- Inventory Item - Define item-specific pricing
- Customer - Assign price books to customers