Product Data Model
The Nue Self-Service API exposes a comprehensive product data structure. This reference explains each field in the product model to help you build effective self-service experiences.
Core Product FieldsCopied!
id
-
Unique identifier for the product in Nue
-
Used as reference in API calls and relationships
-
Example: "01tE200000B8pYeIAJ"
name
-
The display name of the product shown to customers
-
Required field
-
Example: "Nue Platform"
sku
-
Stock Keeping Unit - a unique identifier for the product
-
Required field and must be unique across all products
-
Example: "NUE_PLATFORM"
recordType
-
Defines the type of product
-
Values: "Product" (standard products), "Service" (service offerings), or "Bundle" (product collections)
-
Example: "Product"
description
-
Short description of the product displayed in listings and product detail pages
-
Optional field
-
Example: "Manage your customer revenue lifecycles with one platform"
longDescription
-
Rich text description supporting HTML formatting for detailed product descriptions
-
Optional field for more comprehensive product information
configurable
-
Indicates whether this product has configuration options
-
Typically true for bundles, false for standard products
-
Example: false
soldIndependently
-
When true, indicates this product can be purchased standalone
-
Some components within bundles may have this set to false
-
Example: true
status
-
Product lifecycle status
-
Values: "Active", "Inactive", or "Draft"
-
Only "Active" products are typically available in self-service
-
Example: "Active"
imageUrl
-
URL to the product's image for display in the self-service interface
-
Optional field
-
Example: "https://example.com/products/image.png"
publishStatus
-
Controls visibility in self-service
-
Values: "Published", "Unpublished", or "Outdated"
-
Only "Published" products appear in the API
-
Example: "Published"
lastPublishedDate
-
Date when the product was last published to the self-service layer
-
Example: "2025-03-12"
lastPublishedById
-
ID of the user who last published this product
-
Example: "005E200000JjwfQIAR"
Pricing and Revenue FieldsCopied!
priceModel
-
Defines how the product is priced
-
Values: "Recurring" (subscriptions), "OneTime" (one-time purchases), "Usage" (consumption-based), "CRBD" (credit burn-down models)
-
Required field
-
Example: "Recurring"
billingTiming
-
Specifies when billing occurs
-
Values: "In Advance" (charges at the start of the period), "In Arrears" (charges after the period)
-
Example: "In Advance"
defaultUomId
-
Reference to the default Unit of Measure (UOM) for this product
-
Required field
-
Example: "a0oE20000056N3vIAE"
autoRenew
-
Indicates whether subscription products should automatically renew at the end of the term
-
Example: true
defaultSubscriptionTerm
-
The default subscription length in the units specified by the UOM (months, years, etc.)
-
Example: 12
defaultRenewalTerm
-
The default renewal period length in the units specified by the UOM
-
Example: 12
evergreen
-
When true, indicates subscriptions have no fixed end date and continue until canceled
-
Example: false
Free Trial ConfigurationCopied!
freeTrialType
-
Unit type for free trials
-
Values: "Days", "Months", or "Years"
-
Example: "Days"
freeTrialUnit
-
The duration of the free trial in the specified unit type
-
Example: 30
Tax ConfigurationCopied!
taxCode
-
Identifier for product tax classification used by tax calculation systems
-
Example: "txcd_30070021"
taxMode
-
Determines how taxes are presented
-
Values: "TaxExclusive" (shows prices without tax), "TaxInclusive" (includes tax in displayed prices)
-
Example: "TaxExclusive"
taxCategory
-
VAT or tax category code used for international tax compliance
-
Optional field
Bundle-Specific FieldsCopied!
bundleTemplate
-
Specifies bundle behavior model
-
Values: "Basic", "Advanced", or "DynamicOptions"
-
Example: "Advanced"
showIncludedProductOptions
-
Controls whether bundle components are displayed to customers in self-service
-
Example: false
referenceProductId
-
Optional reference to another product, used for product variants or related offerings
-
Example: "01tE200000B8pYeIAK"
Categorization and OrganizationCopied!
productCategory
-
Classifies the product
-
Values: "RecurringServices", "PhysicalGoods", "CustomerSupport", "ProfessionalServices", "ShippingAndHandling"
-
Example: "RecurringServices"
startDate
-
The effective start date when this product becomes available
-
Required field
-
Example: "2022-01-01"
endDate
-
Optional end date after which the product is no longer available
-
Example: "2025-12-31"
Custom FieldsCopied!
customFields
-
Container for all custom fields defined for the product, accessible as key-value pairs
-
Example: {"Ruby__Custom_Field__c": "SomeField"}
Related Data StructuresCopied!
Unit of Measure (UOM)
The UOM defines how a product is quantified and billed:
name
-
Display name of the unit
-
Example: "User/Month"
quantityDimension
-
What is counted
-
Values include: "User", "Each", "Hour", etc.
-
Example: "User"
termDimension
-
Time period if applicable
-
Values include: "Month", "Year", "Quarter", etc.
-
Example: "Month"
decimalScale
-
Number of decimal places allowed
-
Example: 0
roundingMode
-
How quantities are rounded
-
Values: "Up", "Down", "Nearest"
-
Example: "Up"
Price Book Entries
Price book entries represent specific pricing options for a product:
listPrice
-
Base price amount for this pricing option
-
Example: 99
active
-
Whether this pricing option is currently available
-
Example: true
uom
-
The unit of measure for this pricing option
-
Contains the full UOM object
pricingAttributes
-
Optional attributes for price segmentation
-
Example: [{"name": "Channel Type", "value": "SelfServe"}]
Product Features
Features describe capabilities or aspects of the product:
featureName
-
Display name for the feature
-
Example: "Premium Features"
featureOrder
-
Controls display order in interfaces
-
Example: 0
feature
-
Detailed feature information
-
Contains the feature object
productOptions
-
Options specific to this feature group
-
Contains an array of product options
Product Options (Bundle Components)
For bundles, product options define the included components:
optionName
-
Display name for this component
-
Example: "Revenue Dashboard"
optionType
-
Type of relation
-
Values: "RelatedProduct" or "LinkToBundleQuantity"
-
Example: "RelatedProduct"
defaultQuantity
-
Initial quantity selected
-
Example: 1
minQuantity
-
Minimum allowed quantity
-
Example: 1
quantityEditable
-
Whether customers can change quantity
-
Example: true
required
-
Whether this component is required
-
Example: false
bundled
-
When true, this component is included in the bundle's base price
-
Example: true
recommended
-
Whether this is recommended to customers
-
Example: true
product
-
The full product data for this component
-
Contains the complete product object
Price Tags
Price tags define discounts and special pricing rules:
priceTagType
-
Basis for the pricing rule
-
Values: "Quantity", "Term", etc.
-
Example: "Quantity"
priceType
-
How pricing varies
-
Values: "Volume", "Tiered", "Ramp", etc.
-
Example: "Volume"
uomDimension
-
Which dimension this applies to
-
Example: "User"
priceTiers
-
Definition of tier breakpoints and discount amounts
-
Example: [{"chargeModel": "PerUnit", "discountPercentage": 10, "startUnit": 0}]
Product Type DistinctionsCopied!
Standard Products
Standard products are individual items that can be purchased directly:
-
recordType: "Product"
-
configurable: false
-
soldIndependently: typically true
-
Cannot have product options
Bundles
Bundles are collections of other products:
-
recordType: "Bundle"
-
configurable: true
-
soldIndependently: typically true
-
Contains productOptions that reference other products
-
showIncludedProductOptions controls component visibility
Publication StatusCopied!
Only products with publishStatus: "Published" appear in the Self-Service API. This allows for staging changes before making them available to customers:
-
Published: Available in the self-service API
-
Unpublished: Not available in self-service
Pricing ModelsCopied!
The Self-Service API supports several pricing models:
Recurring (Subscription)
-
Regular billing at specified intervals
-
Used for SaaS products, memberships, etc.
-
Uses termDimension field in the UOM to determine billing frequency
OneTime
-
Single purchase with no recurring charges
-
Used for physical goods, services, or lifetime access
-
No renewal terms associated
Custom FieldsCopied!
The Nue Self-Service API supports custom fields on the Product object, allowing you to extend the standard data model with business-specific attributes.
customFields
-
Container for all custom fields defined for the product
-
Accessible as key-value pairs in the product response
-
Example: {"Ruby__Custom_Field__c": "SomeField"}
Custom fields can be used for various purposes:
Enhanced Categorization
-
Example: "Ruby__Product_Line__c": "Enterprise"
-
Example: "Ruby__Market_Segment__c": "SMB"
Technical Information
-
Example: "Ruby__System_Requirements__c": "8GB RAM minimum"
-
Example: "Ruby__API_Version__c": "v3.2"
Compliance Information
-
Example: "Ruby__GDPR_Compliant__c": true
-
Example: "Ruby__Data_Residency__c": "US, EU"
Self-Service Display Attributes
-
Example: "Ruby__UI_Badge__c": "New"
-
Example: "Ruby__Featured_Product__c": true
Working with the Product Data ModelCopied!
When implementing a self-service experience, you'll typically:
-
Retrieve the product catalog to display available products
-
Process the product data structure to show relevant information to users
-
Use the id field to identify selected products in order creation
-
Use the pricing information to calculate and display costs
-
For bundles, process productOptions to display and configure components
Upcoming Features to be SupportedCopied!
Credit Provisioning for Usage Based Products
Custom fields on Price Book Entries, Product Options, or Price Tags are not currently exposed in the Self-Service API
Enable Free Trial via Product Configurator