Get Accounting Product Line

GET /accounting/product-lines/{id}

Group: Accounting › Products › Product Lines · Operation ID: getAccountingProductLine

Fetch a single product line by its id (a UUID), bound from the :id path segment. Returns the full record including tax records, pricing headers with their entries and rate cards, and external identifiers — the same item schema as POST accounting/product-lines/search. Read-only. Raises NOT_FOUND when no product line has that id (should map to 404). Every request must carry the Api-Version header.

Open in the interactive reference

Parameters

Name In Type Required Description
Api-Version header "v1" yes The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1.
id path string yes Id of the product line to fetch (a UUID); bound from the :id path segment.

Response

200 Success

Under data (getAccountingProductLineOutput):

Field Type Required Description
id string yes Id of the product line (a UUID) — the public identifier used by this route.
productId string yes Id of the parent product (a UUID) — GET accounting/products/:id.
productName string no Display name of the parent product.
productLineNumber string no System-generated product line number, unique per tenant. Absent until one has been assigned.
name string yes Product line display name.
lineType string no Line type. One of 'recurring', 'oneTime', 'commitWithOverage', 'payAsYouGo', 'usage', 'prepaid', 'billableTime', 'billableTravelExpense', 'billablePassThrough'.
priceModel string no Price model. One of 'flat', 'perUnit', 'tiered', 'volume', 'stairstep', 'rateCard', 'thresholdBased'.
pricingTerm string no Pricing term. One of 'monthly', 'biMonthly', 'once', 'quarterly', 'semiAnnually', 'annually'.
invoiceFrequency string no Invoice frequency. One of 'monthly', 'biMonthly', 'quarterly', 'semiAnnually', 'annually', 'once', 'custom', 'template', 'milestone', 'allAtOnce', 'termEnd'.
unitOfMeasure string no Unit of measure quantities are tracked in. One of 'instance', 'gigabyte', 'terabyte', 'user', 'seat', 'minute', 'hour', 'day', 'month', 'each', 'license', 'activeUser', 'megabyte', 'message', 'text', 'platform', 'employee', 'personnel', 'credit', 'currency', 'package', 'case', 'word', 'record'.
taxMode string no Tax mode. One of 'TaxInclusive', 'TaxExclusive' (PascalCase members).
enforceListPrice boolean no When true, sales transactions on this line cannot override the list price.
hasUsage boolean no True when this Prepaid line has a paired Usage line.
hasBeenUsed boolean no True once the line has been sold on at least one sales order. Computed; never settable.
commitInvoicing string no Invoice timing of a commit line. One of 'advance', 'arrears'. Absent on other line types.
prepaidBalanceOverConsumptionBehavior string no What happens when usage exceeds the prepaid balance. One of 'allowNegative', 'overage'. Prepaid lines only.
prepaidBalanceRolloverAtRenewal boolean no Whether the remaining prepaid balance rolls over at renewal. Prepaid lines only.
parentProductLineId string no Id of the parent Prepaid product line (a UUID) when this is its paired Usage line.
crmProductId string no CRM system's own identifier for this product line, when integrated from one.
dataSource string no Upstream system or import job that produced this line, e.g. 'Everest', 'Salesforce'. Tenant-configurable, not exhaustively enumerable.
createdDate string (date-time) no Instant the record was created, as ISO 8601 UTC (YYYY-MM-DDTHH:mm:ss.sssZ), when recorded.
lastModifiedDate string (date-time) yes Instant the record last changed, as ISO 8601 UTC (YYYY-MM-DDTHH:mm:ss.sssZ). Poll on this to sync incrementally.
productLineTaxes array of object no Tax records attached to this line. Absent when it has none.
productLineTaxes[].id string yes Id of the tax record (a UUID).
productLineTaxes[].taxCode string yes Tax code as defined by the configured tax provider.
productLineTaxes[].engine string yes Tax engine. One of 'avalara', 'anrok', 'everestTaxEngine', 'manualTax', 'none'.
productLineTaxes[].country string no ISO 3166-1 country code the record applies in.
productLineTaxes[].entityId string no Id of the legal entity the record applies under (a UUID).
pricingHeaders array of object no Pricing headers of this line, each with its price-book entries. Absent when the line has no pricing. Amounts are in the header's currency.
pricingHeaders[].id string yes Id of the pricing header (a UUID) — the :pricingId of the pricing routes.
pricingHeaders[].headerNumber string no System-generated header number.
pricingHeaders[].priceBookId string no Id of the price book this header belongs to (a UUID).
pricingHeaders[].priceBookName string no Name of that price book.
pricingHeaders[].currency string yes ISO 4217 currency code governing every amount in this header.
pricingHeaders[].validFrom string (date) yes First date the header's prices are effective (YYYY-MM-DD, inclusive).
pricingHeaders[].validTo string (date) no Last effective date (YYYY-MM-DD, inclusive). Absent when open-ended.
pricingHeaders[].priceBookEntries array of object yes Price-book entries of the header: one for flat pricing, one per tier for tiered models, one per rate card for rate-card pricing.
pricingHeaders[].priceBookEntries[].id string yes Id of the entry (a UUID).
pricingHeaders[].priceBookEntries[].priceBookEntryNumber string no System-generated entry number.
pricingHeaders[].priceBookEntries[].listPrice string (decimal) no List price, or the rate for a rate-card entry, as a decimal in the header currency (see currency).
pricingHeaders[].priceBookEntries[].fromQuantity string (decimal) no Inclusive lower bound of this tier's quantity range. Tiered models only.
pricingHeaders[].priceBookEntries[].toQuantity string (decimal) no Inclusive upper bound of this tier's quantity range. Absent on the open-ended top tier.
pricingHeaders[].priceBookEntries[].priceModel string no How this tier prices quantity. One of 'flat', 'perUnit'. Tiered models only.
pricingHeaders[].priceBookEntries[].rateCardEntry object no Rate card priced by this entry. Rate-card pricing only.
pricingHeaders[].priceBookEntries[].rateCardEntry.id string yes Id of the rate-card entry (a UUID).
pricingHeaders[].priceBookEntries[].rateCardEntry.billableComponentId string no Id of the billable component this rate prices (a UUID).
pricingHeaders[].priceBookEntries[].rateCardEntry.unitOfMeasure string yes Unit of measure of the rate card.
pricingHeaders[].priceBookEntries[].rateCardEntry.description string no Rate-card description.
pricingHeaders[].priceBookEntries[].rateCardEntry.usageType string no Usage type the rate applies to.
pricingHeaders[].priceBookEntries[].rateCardEntry.billableUnitOfMeasure string no Unit of measure the usage is billed in, when it differs from unitOfMeasure.
pricingHeaders[].priceBookEntries[].rateCardEntry.conversion string (decimal) no Conversion factor from unitOfMeasure to billableUnitOfMeasure. A quantity, not an amount.
pricingHeaders[].priceBookEntries[].rateCardEntry.invoiceFrequency string no Invoice frequency of the rate card, when it differs from the line.
pricingHeaders[].priceBookEntries[].rateCardEntry.priceModel string no Price model of the rate card, when it differs from the line.
externalIdentifiers array of object no External identifiers owned by other systems. At most one entry per fieldName. Absent when the line has none.
externalIdentifiers[].fieldName string yes Configured key of the external identifier — a stable camelCase slug, not the human-readable label.
externalIdentifiers[].value string yes The identifier as the source system holds it.
externalIdentifiers[].externalUrl string no Absolute http(s) link to the object in the originating system, when one is stored.

Errors

Code Status
INVALID_ID 400
NOT_FOUND 400

Statuses