Non-Inventory Purchase Item API
Items purchased but not stocked (expensed immediately).
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /record/v1/nonInventoryPurchaseItem | List non-inventory purchase items |
GET | /record/v1/nonInventoryPurchaseItem/{id} | Get specific item |
POST | /record/v1/nonInventoryPurchaseItem | Create item |
PATCH | /record/v1/nonInventoryPurchaseItem/{id} | Update item |
DELETE | /record/v1/nonInventoryPurchaseItem/{id} | Delete item |
Key Fields
| Field | Type | Description | Required |
|---|---|---|---|
itemId | string | Item name/code | Yes (if not auto-numbered) |
displayName | string | Display name | No |
description | string | Item description | No |
subsidiary | object | Subsidiary reference | Yes (OneWorld) |
expenseAccount | object | Expense account | Yes |
purchaseDescription | string | Purchase description | No |
cost | number | Standard cost | No |
isInactive | boolean | Inactive status | No |
taxSchedule | object | Tax schedule | No |
vendor | object | Preferred vendor | No |
class | object | Class/department | No |
Example: Create Non-Inventory Purchase Item
Request
POST /record/v1/nonInventoryPurchaseItem
Content-Type: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN
{
"itemId": "OFFICE-SUPPLIES",
"displayName": "Office Supplies",
"description": "General office supplies - paper, pens, folders, etc.",
"purchaseDescription": "Office supplies for administrative use",
"subsidiary": {
"id": "1"
},
"expenseAccount": {
"id": "600"
},
"cost": 0,
"taxSchedule": {
"id": "1"
},
"vendor": {
"id": "123"
},
"isInactive": false
}
Response
{
"id": "950",
"itemId": "OFFICE-SUPPLIES",
"displayName": "Office Supplies",
"description": "General office supplies - paper, pens, folders, etc.",
"purchaseDescription": "Office supplies for administrative use",
"subsidiary": {
"id": "1",
"refName": "Parent Company"
},
"expenseAccount": {
"id": "600",
"refName": "Office Expense"
},
"cost": 0,
"taxSchedule": {
"id": "1",
"refName": "Standard Tax"
},
"vendor": {
"id": "123",
"refName": "Office Depot"
},
"isInactive": false,
"links": [
{
"rel": "self",
"href": "https://ACCOUNT_ID.suitetalk.api.netsuite.com/services/rest/record/v1/nonInventoryPurchaseItem/950"
}
]
}
Example: Update Non-Inventory Purchase Item
Request
PATCH /record/v1/nonInventoryPurchaseItem/950
Content-Type: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN
{
"cost": 50.00,
"description": "General office supplies - paper, pens, folders, staplers",
"vendor": {
"id": "456"
}
}
Response
{
"id": "950",
"itemId": "OFFICE-SUPPLIES",
"cost": 50.00,
"description": "General office supplies - paper, pens, folders, staplers",
"vendor": {
"id": "456",
"refName": "Staples Business"
},
"lastModifiedDate": "2025-12-25T13:00:00Z",
"links": [
{
"rel": "self",
"href": "https://ACCOUNT_ID.suitetalk.api.netsuite.com/services/rest/record/v1/nonInventoryPurchaseItem/950"
}
]
}
Sublists
Vendor Sublist
| Field | Type | Description | Required |
|---|---|---|---|
vendor | object | Vendor reference | Yes |
vendorCode | string | Vendor's item code | No |
purchasePrice | number | Purchase price from this vendor | No |
preferredVendor | boolean | Mark as preferred vendor | No |
Example:
{
"vendorList": {
"items": [
{
"vendor": { "id": "123" },
"vendorCode": "OS-001",
"purchasePrice": 45.00,
"preferredVendor": true
},
{
"vendor": { "id": "456" },
"vendorCode": "SUPPLIES-A1",
"purchasePrice": 50.00,
"preferredVendor": false
}
]
}
}
Subsidiary Sublist
| Field | Type | Description | Required |
|---|---|---|---|
subsidiary | object | Subsidiary reference | Yes |
For OneWorld accounts with multiple subsidiaries:
{
"subsidiaryList": {
"items": [
{ "subsidiary": { "id": "1" } },
{ "subsidiary": { "id": "2" } }
]
}
}
Query Filters
Find Active Items
GET /record/v1/nonInventoryPurchaseItem?q=isInactive=false
Find by Name Pattern
GET /record/v1/nonInventoryPurchaseItem?q=itemId LIKE 'OFFICE%'
Find by Display Name
GET /record/v1/nonInventoryPurchaseItem?q=displayName LIKE '%Supplies%'
Find by Vendor
GET /record/v1/nonInventoryPurchaseItem?q=vendor='123'
Find by Expense Account
GET /record/v1/nonInventoryPurchaseItem?q=expenseAccount='600'
Expand Related Records
GET /record/v1/nonInventoryPurchaseItem/950?expandSubResources=true
Important Notes
Purchase-Only Items
Key Characteristics:
- Can only be purchased, not sold
- Not tracked in inventory
- Expensed when received or purchased
- No quantity on hand tracking
- Commonly used for consumables
Use Cases:
- Office supplies
- Shipping supplies
- Cleaning supplies
- Utilities (expensed services)
- Repairs and maintenance
- Professional services purchased
- One-time purchases
Accounting Treatment
On Purchase Order:
No accounting entry - commitment only
On Item Receipt / Bill:
DR: Expense Account (Office Expense) - $50.00
CR: Accounts Payable - $50.00
On Payment:
DR: Accounts Payable - $50.00
CR: Cash - $50.00
Key Points:
- Immediately expensed (no asset created)
- No inventory value
- Expense hits P&L when received/billed
- Cannot be sold (purchase only)
vs Other Item Types
Non-Inventory Purchase Item:
- Purchase only
- Expensed immediately
- No inventory tracking
- No sales capability
- Example: Office supplies
Non-Inventory Resale Item:
- Purchase and sell
- Expensed on purchase, revenue on sale
- No inventory tracking
- Used for drop-ship, special orders
- Example: Custom special order items
Non-Inventory Sale Item:
- Sale only
- No purchase capability
- No inventory tracking
- Used for services, fees
- Example: Consulting services
Inventory Item:
- Purchase and sell
- Tracked in inventory
- Asset until sold
- Quantity on hand tracking
- Example: Products for resale
Cost Management
Standard Cost:
{
"cost": 50.00
}
- Optional field for budgeting
- Used as default on purchase orders
- Actual cost may vary per purchase
- Helpful for expense forecasting
Variable Cost:
- Actual cost recorded on each purchase
- No standard cost required
- More accurate expense tracking
- Better for items with fluctuating prices
Vendor Management
Preferred Vendor:
{
"vendor": {
"id": "123"
},
"vendorList": {
"items": [
{
"vendor": { "id": "123" },
"preferredVendor": true,
"purchasePrice": 45.00
}
]
}
}
- Set preferred vendor for automatic selection
- Track multiple vendor options
- Vendor-specific pricing
- Vendor-specific item codes
Tax Handling
Taxable Purchases:
{
"taxSchedule": {
"id": "1"
}
}
- Apply appropriate tax schedule
- Tax calculated on purchase
- Tax expense or recoverable based on setup
- Important for sales tax compliance
Expense Allocation
Department/Class Tracking:
{
"class": {
"id": "10"
},
"department": {
"id": "5"
}
}
- Allocate expenses to departments
- Track by class for reporting
- Useful for cost center analysis
- Can override on individual transactions
Location-Specific Expenses:
{
"location": {
"id": "1"
}
}
- Track expenses by location
- Useful for multi-location operations
- Location-specific expense reporting
Multi-Subsidiary Usage
OneWorld Setup:
{
"subsidiary": {
"id": "1"
},
"subsidiaryList": {
"items": [
{ "subsidiary": { "id": "1" } },
{ "subsidiary": { "id": "2" } },
{ "subsidiary": { "id": "3" } }
]
}
}
- Assign to one or more subsidiaries
- Each subsidiary can expense item
- Expense accounts must exist in each subsidiary
- Useful for shared expense items
Common Examples
Office Supplies:
{
"itemId": "OFFICE-SUPPLIES",
"displayName": "Office Supplies",
"expenseAccount": { "id": "600" }
}
Shipping Supplies:
{
"itemId": "SHIPPING-SUPPLIES",
"displayName": "Packing Materials",
"expenseAccount": { "id": "605" }
}
Professional Services:
{
"itemId": "CONSULTING-FEES",
"displayName": "Consulting Services",
"expenseAccount": { "id": "650" }
}
Repairs & Maintenance:
{
"itemId": "EQUIPMENT-REPAIR",
"displayName": "Equipment Repair Services",
"expenseAccount": { "id": "620" }
}
Purchasing Workflow
- Create Purchase Order with non-inventory purchase item
- Receive Item (creates item receipt)
- Record Bill (if not auto-created from receipt)
- Expense Posted to designated expense account
- Pay Bill to vendor
Expense Tracking
Reporting:
- View expenses by item
- Track spending by vendor
- Analyze by department/class
- Monitor budget vs actual
Cost Control:
- Set budgets on expense accounts
- Track spending trends
- Compare vendor pricing
- Identify cost savings opportunities
Permissions Required
- Create: Non-Inventory Purchase Item > Create permission
- Edit: Non-Inventory Purchase Item > Edit permission
- View: Non-Inventory Purchase Item > View permission
- Delete: Non-Inventory Purchase Item > Delete permission
- Purchase: Create purchase orders, item receipts, bills
Deletion Constraints
- Cannot delete with transaction history
- Must inactivate instead if used in transactions
- Can delete if no purchase orders or receipts reference it
Best Practices
- Descriptive Names: Use clear, searchable item names
- Appropriate Accounts: Choose correct expense GL accounts
- Vendor Setup: Maintain preferred vendor list
- Cost Tracking: Set standard costs for budgeting
- Consistent Categories: Group similar expenses under same items
- Regular Review: Review and consolidate redundant items
- Tax Compliance: Apply correct tax schedules
- Documentation: Include detailed descriptions for clarity
See Also
- Non-Inventory Resale Item - Purchase and resale items
- Non-Inventory Sale Item - Sale-only items
- Purchase Order - Order non-inventory items
- Item Receipt - Receive purchases
- Vendor Bill - Record expenses
- Expense Account - Configure expense GL accounts