Search Performance Obligation
POST /accounting/performance-obligations/search
Group: Accounting › Performance Obligations · Operation ID: searchPerformanceObligation
Returns the performance obligations that match the given filters, each with its standalone selling price ranges. The obligation's product mappings come from GET accounting/performance-obligations/:id/products.
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. |
Request body
Required, application/json: searchPerformanceObligationInput.
| Field | Type | Required | Description |
|---|---|---|---|
filters |
object | no | The filters to apply. A performance obligation must match every filter you send. Omit to return all performance obligations. |
filters.id |
string | no | Limits results to the performance obligation with this identifier. |
filters.performanceObligationNumber |
string | no | Limits results to the performance obligation with this number, for example 'POB-1042'. |
filters.name |
string | no | Limits results to performance obligations whose name contains this text. The match is case-insensitive. |
filters.revenueSchedulingTemplateId |
string | no | Limits results to obligations scheduled by the revenue scheduling template with this identifier. An identifier matching no template returns an empty page. |
filters.standaloneSellingPriceRangeType |
string | no | Limits results to obligations whose standalone selling price ranges are expressed this way. Accepted values: 'percentage', 'amount'. Any other value matches nothing. |
filters.isAllocationExcluded |
boolean | no | Limits results by whether the obligation's revenue contract lines are left out of fair-value allocation. |
filters.productId |
string | no | Limits results to obligations that have a product line for the product with this identifier. An identifier matching no product, or a product no obligation covers, returns an empty page. |
page |
object | no | The pagination controls. Omit for the first page. |
page.cursor |
string | no | The cursor from the previous response's pagination.nextCursor. Omit for the first page. |
page.size |
number | no | The number of performance obligations per page. Defaults to 50. A value above 200 is treated as 200, not rejected. |
Example:
{
"filters": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"performanceObligationNumber": "<performanceObligationNumber>",
"name": "<name>",
"revenueSchedulingTemplateId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"standaloneSellingPriceRangeType": "<standaloneSellingPriceRangeType>",
"isAllocationExcluded": true,
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"page": {
"cursor": "<cursor>",
"size": 0
}
}
Response
200 Success
Under data (searchPerformanceObligationOutput):
| Field | Type | Required | Description |
|---|---|---|---|
items |
array of object | yes | The performance obligations on this page, newest first. An empty array when nothing matches. |
items[].id |
string | yes | The unique identifier for the performance obligation. |
items[].performanceObligationNumber |
string | no | The performance obligation number. Absent while none has been assigned. |
items[].name |
string | yes | The display name of the performance obligation, as it appears on revenue contracts and schedules. |
items[].description |
string | no | A free-form description of what the obligation covers. Absent when none is set. |
items[].effectiveStartDate |
string (date) | yes | The first date this obligation is in effect. Format YYYY-MM-DD. |
items[].effectiveEndDate |
string (date) | no | The last date this obligation is in effect. Format YYYY-MM-DD. Absent when the obligation is open-ended. |
items[].allocationStartDate |
string (date) | no | The date from which revenue for this obligation takes part in allocation. Format YYYY-MM-DD. Absent when none is set. |
items[].isAllocationExcluded |
boolean | yes | Whether the revenue contract lines of this obligation are left out of fair-value allocation. |
items[].isNetAccounting |
boolean | yes | Whether the obligation is accounted net rather than gross. |
items[].defaultAmortizationMethod |
string | no | The default amortization method used when scheduling this obligation's revenue. Possible values: 'exactDays', 'pointInTime', 'straightLineProRateFirstLast', 'straightLine', 'usageBased'. |
items[].standaloneSellingPriceRangeType |
string | no | How the obligation's standalone selling price ranges are expressed. Possible values: 'percentage', 'amount'. |
items[].revenueSchedulingTemplateId |
string | no | The unique identifier for the revenue scheduling template that schedules this obligation's revenue. See id on GET accounting/revenue-scheduling-templates/:id. |
items[].revenueSchedulingTemplateName |
string | no | The name of the revenue scheduling template that schedules this obligation's revenue. |
items[].standaloneSellingPriceStratificationConfigurationId |
string | no | The unique identifier for the standalone selling price stratification configuration this obligation stratifies by. Absent when none is set. There is no endpoint for it. |
items[].lastModifiedDate |
string (date-time) | yes | The date and time the performance obligation last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
items[].standaloneSellingPriceRanges |
array of object | no | The obligation's standalone selling price ranges, one per product and effective period. An empty array when none are configured. Which of the amount and percentage fields are set follows each range's rangeType. |
items[].standaloneSellingPriceRanges[].id |
string | no | The unique identifier for the standalone selling price range. |
items[].standaloneSellingPriceRanges[].rangeNumber |
string | no | The standalone selling price range number. |
items[].standaloneSellingPriceRanges[].rangeType |
string | no | How this range is expressed. Possible values: 'percentage', 'amount'. |
items[].standaloneSellingPriceRanges[].currency |
string | no | The currency the amounts are given in. Format ISO 4217, for example 'USD'. Absent on a percentage range. |
items[].standaloneSellingPriceRanges[].effectiveStartDate |
string (date) | yes | The first date this range applies. Format YYYY-MM-DD. |
items[].standaloneSellingPriceRanges[].effectiveEndDate |
string (date) | no | The last date this range applies. Format YYYY-MM-DD. Absent when the range is open-ended. |
items[].standaloneSellingPriceRanges[].lowAmount |
string (decimal) | no | The lower bound of the standalone selling price, in the range currency. Set on an amount range. |
items[].standaloneSellingPriceRanges[].midAmount |
string (decimal) | no | The midpoint of the standalone selling price, in the range currency. Set on an amount range. |
items[].standaloneSellingPriceRanges[].highAmount |
string (decimal) | no | The upper bound of the standalone selling price, in the range currency. Set on an amount range. |
items[].standaloneSellingPriceRanges[].lowPercentage |
string (decimal) | no | The lower bound of the standalone selling price, as a percentage of list price. Set on a percentage range. |
items[].standaloneSellingPriceRanges[].midPercentage |
string (decimal) | no | The midpoint of the standalone selling price, as a percentage of list price. Set on a percentage range. |
items[].standaloneSellingPriceRanges[].highPercentage |
string (decimal) | no | The upper bound of the standalone selling price, as a percentage of list price. Set on a percentage range. |
items[].standaloneSellingPriceRanges[].term |
string | no | The period the range's prices are quoted over. Possible values: 'monthly', 'annually', 'none'. |
items[].standaloneSellingPriceRanges[].unitOfMeasure |
string | no | The unit the range's prices are quoted per. |
items[].standaloneSellingPriceRanges[].productId |
string | no | The product this range prices. Absent on a range that applies to the whole obligation. See id on GET accounting/products/:id. |
items[].standaloneSellingPriceRanges[].productCode |
string | no | The code of that product. |
items[].standaloneSellingPriceRanges[].productName |
string | no | The name of that product. |
pagination |
object | yes | The pagination cursor for this page. |
pagination.nextCursor |
string | no | The cursor for the next page. Pass it as page.cursor. Absent on the last page. |
pagination.hasMore |
boolean | yes | True when more performance obligations remain beyond this page. |
Statuses
400— Invalid request or business failure401— Missing or invalid access token403— Not authorized404— Not found429— Too many requests500— Internal server error