List revenue contracts

Operation ID: revenueContracts

Group: Accounting › Revenue Contracts

Open in the interactive reference

GET /accounting/revenue-contracts

Read-only: Reads and returns; changes nothing.

Lists revenue contracts. Each revenue contract is returned with only some of its fields, and without its revenue lines. For the revenue lines and revenue plans, use GET accounting/revenue-contracts/:id or POST accounting/revenue-contracts/search.

To filter by the modified revenue contract, use POST accounting/revenue-contracts/search.

Parameters

Name In Type Required Description
Api-Version header string · 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.

Query surface

Response

200 Success

Under data, an array of revenueContractsRow:

Field Type Required Filter Sort Description
id string no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes The unique identifier for the revenue contract.
revenueContractNumber string | null no no no The revenue contract number, unique within the tenant.
approvalStatus string no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes The approval status of the contract. Possible values: 'draft', 'pendingApproval', 'revise', 'approved', 'rejected'.
generalStatus string | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes The overall status of the contract, combining approval and any active revenue hold. Possible values: 'approved', 'approvedOnHold', 'pendingApproval', 'pendingApprovalOnHold'.
revenueStatus string | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes The revenue-recognition progress across the contract's lines. Possible values: 'notStarted', 'notStartedOnHold', 'inProgress', 'inProgressOnHold', 'complete', 'completeModified'.
isContractClosed boolean no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) yes Whether the contract has been closed, with its open revenue moved to a new combined revenue contract.
isContractCombined boolean no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) yes Whether the contract is the combination target that absorbed a closed contract's open revenue.
isLongTermContract boolean | null no no no Whether the recognition window from revenueStartDate to revenueEndDate exceeds 366 days.
currency string no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes The currency the contract is denominated in. Every amount on the contract is in this currency. Format ISO 4217, for example 'USD'.
functionalCurrency string | null no no no The owning entity's functional currency. Present only when it differs from the contract currency. Format ISO 4217, for example 'USD'.
exchangeRate decimal no no no The rate used to convert the contract currency to the entity's functional currency. A ratio, not an amount, with no currency of its own.
entityName string | null no no no The name of the legal entity that owns this contract.
entityId string | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) no The legal entity that owns the contract.
customerName string | null no no no The display name of the customer this contract is with.
customerId string | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) no The customer the contract belongs to.
initialSalesOrderId string | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) no The sales order that opened this contract. An order that amends the contract later is not reachable here.
migrationDate date | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) yes The date this contract's opening balances were migrated from a prior system. Format YYYY-MM-DD. Absent on a contract created natively.
revenueStartDate date | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) yes The earliest revenue-recognition start date across the contract's lines. Format YYYY-MM-DD.
revenueEndDate date | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) yes The latest revenue-recognition end date across the contract's lines. Format YYYY-MM-DD.
totalContractValue decimal | null no no yes The total contract value, in the contract currency. It is the total price of the sales order this contract was created from, less the contract's cost-of-contract-value.
deferredRevenue decimal | null no no yes The deferred revenue not yet recognized, in the contract currency. Zero once the contract is closed.
revenueRecognized decimal | null no no yes The cumulative revenue recognized to date, in the contract currency.
revenueRemaining decimal | null no no yes The revenue remaining to be recognized, in the contract currency.
totalCostOfContractValue decimal | null no no no Contracted COST of the contract, in the contract currency (see currency): the value of the contract lines carried for cost rather than revenue. totalContractValue already excludes it, so the gross contracted value is the sum of the two. Do not pair it with revenueRecognized, which is a to-date figure.
costOfRevenueRecognized decimal | null no no no Cost of revenue RECOGNIZED to date, in the contract currency (see currency) — the cost counterpart of revenueRecognized, and the one to pair it with for a realised margin. It is 0 on a contract that has recognized nothing, which is a real figure and not a missing one. Unreliable on a combined contract (isContractCombined): there the node fills it with the revenue recognized in the related contracts, not with their cost.
lastModifiedDate date-time no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) yes The date and time the revenue contract last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
{
  "data": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "revenueContractNumber": "<revenueContractNumber>",
      "approvalStatus": "<approvalStatus>",
      "generalStatus": "<generalStatus>",
      "revenueStatus": "<revenueStatus>",
      "isContractClosed": true,
      "isContractCombined": true,
      "isLongTermContract": true,
      "currency": "<currency>",
      "functionalCurrency": "<functionalCurrency>",
      "exchangeRate": "19.99",
      "entityName": "<entityName>",
      "entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "customerName": "<customerName>",
      "customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "initialSalesOrderId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "migrationDate": "2026-01-15",
      "revenueStartDate": "2026-01-15",
      "revenueEndDate": "2026-01-15",
      "totalContractValue": "19.99",
      "deferredRevenue": "19.99",
      "revenueRecognized": "19.99",
      "revenueRemaining": "19.99",
      "totalCostOfContractValue": "19.99",
      "costOfRevenueRecognized": "19.99",
      "lastModifiedDate": "2026-01-15T09:30:00.000Z"
    }
  ],
  "pagination": {
    "hasMore": true,
    "nextCursor": "<nextCursor>"
  }
}

Statuses