---
title: entities.opptyProductRelationRevenueSchedule
description: Read oppty product relation revenue schedule records with the opptyProductRelationRevenueSchedule repository, and change them with the oppty product relation revenue schedule mutations. Same records as the REST OpptyProductRelationRevenueSchedules entity.
canonical: https://developers.coevera.com/reference/graphql/oppty-product-relation-revenue-schedule/
section: graphql
verification: schema
generatedFrom: schema f155746 (2026-10-20)
publisher: Coevera
---

# entities.opptyProductRelationRevenueSchedule

Read oppty product relation revenue schedule records with the opptyProductRelationRevenueSchedule repository, and change them with the oppty product relation revenue schedule mutations. Same records as the REST OpptyProductRelationRevenueSchedules entity.

REST: [OpptyProductRelationRevenueSchedules](https://developers.coevera.com/reference/rest/oppty-product-relation-revenue-schedules.md).

## Queries

- `getById(entityId: ID!): OpptyProductRelationRevenueScheduleEntity` Returns the record with the given id, or null when there is none. Deleted records are returned as well.
- `getByIds(entityIds: [ID!]!): [OpptyProductRelationRevenueScheduleEntity!]!` Returns the records with the given ids; ids without a record are left out. Deleted records are returned as well.
- `getAll(limit: Int, offset: Int, filter: OpptyProductRelationRevenueScheduleFilterInput, orderBy: [OpptyProductRelationRevenueScheduleOrderByInput!], includeDeleted: Boolean): [OpptyProductRelationRevenueScheduleEntity!]!` Returns the records that match the filter, paged with limit and offset.
- `getByCriteria(filter: OpptyProductRelationRevenueScheduleFilterInput, orderBy: [OpptyProductRelationRevenueScheduleOrderByInput!], includeDeleted: Boolean, before: String, after: String, first: Int, last: Int): OpptyProductRelationRevenueScheduleEntityConnection` Returns the records that match the filter as a cursor-paginated connection.
- `getChangedFieldsSinceRevision(id: UUID!, revision: Int!): [UUID!]!` Returns the ids of the fields of a record that changed after the given revision. Returns an empty list for entities without change tracking.

## Types

### OpptyProductRelationRevenueScheduleEntity (object)

Revenue schedule that splits the amount of a product line item into periods.

- `isDeleteProtected: Boolean!` True when the record is protected against deletion because it must always exist in the space. Deleting a record that is not protected can still fail on other checks. Read-only.
- `id: ID!` Unique identifier of entity. Must match with OpptyProductRelation id.
- `isDeleted: Boolean` Specifies if the entity is considered deleted.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `cancelationDate: Date` Date when the revenue schedule was cancelled. Empty for active schedules.
- `periodCount: Int` Number of periods the line-item amount is split into.
- `periodType: RevenueSchedulePeriodTypeEnum` Length of each period (e.g. Monthly, Quarterly, Yearly).
- `startDate: Date` Date when revenue recognition for this product line begins.
- `revision: Int` Revision when entity was lastly changed.
- `periods: OpptyProductRelationRevenueSchedulePeriodEntityConnection (7 args)` Periods produced by this revenue schedule, ordered by date.
- `instancePermissions: [EntityPermsEnum!]! (1 args)` Permissions the current user has on this record, out of the requested ones.

### OpptyProductRelationRevenueScheduleEntityConnection (object)

Paginated list of OpptyProductRelationRevenueSchedule records.

- `pageInfo: PageInfo!` Pagination data for this connection.
- `edges: [OpptyProductRelationRevenueScheduleEntityEdge]!` Contains the nodes in this connection.
- `totalCount: Int` Total number of items in the connection.

### OpptyProductRelationRevenueScheduleEntityEdge (object)

A Relay edge containing a `OpptyProductRelationRevenueScheduleEntity` and its cursor.

- `node: OpptyProductRelationRevenueScheduleEntity` The item at the end of the edge
- `cursor: String!` A cursor for use in pagination

### OpptyProductRelationRevenueScheduleFilterInput (input)

Filter conditions for OpptyProductRelationRevenueSchedule records. Conditions on different fields are combined with AND; use OR, AND and NOT for other combinations.

- `OR: [OpptyProductRelationRevenueScheduleFilterInput!]` Matches records that meet at least one of the listed filters.
- `AND: [OpptyProductRelationRevenueScheduleFilterInput!]` Matches records that meet all of the listed filters.
- `NOT: OpptyProductRelationRevenueScheduleFilterInput` Matches records that do not meet this filter.
- `globalSearchQuery: String` Search term matched against the fields that the global search covers for this entity.
- `id: EntityFilterStringField` Unique identifier of entity. Must match with OpptyProductRelation id.
- `isDeleted: Boolean` Specifies if the entity is considered deleted.
- `modified: EntityFilterDateTimeField` Last modification time.
- `created: EntityFilterDateTimeField` Creation time.
- `periodCount: EntityFilterNumberField` Number of periods the line-item amount is split into.
- `periodType: RevenueSchedulePeriodTypeEnumFilterInput` Length of each period (e.g. Monthly, Quarterly, Yearly).
- `revision: EntityFilterNumberField` Revision when entity was lastly changed.
- `periods: OpptyProductRelationRevenueSchedulePeriodFilterInput` Periods produced by this revenue schedule, ordered by date. Matches records where a related record meets these conditions.

### OpptyProductRelationRevenueScheduleOrderByInput (input)

Sorting of OpptyProductRelationRevenueSchedule records. Set exactly one field in each item; list several items to sort by more fields, in order of priority.

- `id: OrderByEnum` Unique identifier of entity. Must match with OpptyProductRelation id.
- `isDeleted: OrderByEnum` Specifies if the entity is considered deleted.
- `modified: OrderByEnum` Last modification time.
- `created: OrderByEnum` Creation time.
- `cancelationDate: OrderByEnum` Date when the revenue schedule was cancelled. Empty for active schedules.
- `periodCount: OrderByEnum` Number of periods the line-item amount is split into.
- `startDate: OrderByEnum` Date when revenue recognition for this product line begins.
- `revision: OrderByEnum` Revision when entity was lastly changed.

Types several repositories share, such as `PageInfo` and the filter fields, are in the [types index](https://developers.coevera.com/reference/graphql/types.md). The [SDL](https://developers.coevera.com/graphql/schema.graphql) has the whole schema in one file.

## Example

```graphql
query FirstOpptyProductRelationRevenueSchedules {
  entities {
    opptyProductRelationRevenueSchedule {
      getByCriteria(first: 3, orderBy: [{ modified: Desc }]) {
        totalCount
        edges { node { id modified } }
      }
    }
  }
}
```

```bash
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"query FirstOpptyProductRelationRevenueSchedules { entities { opptyProductRelationRevenueSchedule { getByCriteria(first: 3, orderBy: [{ modified: Desc }]) { totalCount edges { node { id modified } } } } } }"}'
```
