---
title: "List contract performance obligations"
method: GET
path: "/v3/contracts/{id}/performance-obligations"
tags: ["Contracts"]
---

# List contract performance obligations

`GET /v3/contracts/{id}/performance-obligations`

## Path parameters

- `id` string, required

## Query parameters

- `billingTermGroupId` string
- `page` number, required
- `limit` number, required
- `filter` string

## Response `200`

Performance obligations with recognized revenue for the contract

- object
  - `payload` object, required — Response payload, will be empty when success is false
    - `data` PerformanceObligationDetailResponseDto[]
      - `id` string, required — Unique identifier for the performance obligation
      - `name` string, nullable, required — Name of the performance obligation
      - `billingTermGroupId` string, nullable, required — Billing term group ID (foreign key)
      - `billingTermGroupName` string, nullable, required — Billing term group name
      - `itemId` string, nullable, required — ID of the associated integrationitem
      - `itemName` string, nullable, required — Name of the associated integrationitem
      - `erpClassId` string, nullable, required — ID of the ERP class
      - `erpClassName` string, nullable, required — Name of the ERP class
      - `category` string, nullable, required — Revenue category
      - `productId` string, nullable, required — ID of the associated product
      - `productName` string, nullable, required — Name of the associated product
      - `serviceStartDate` string, date-time, required — Service start date
      - `serviceEndDate` string, date-time, required — Service end date
      - `transactionPrice` string, required — Transaction price as a decimal string
      - `billingTermIds` string[], required — Array of billing term IDs linked to this POB via the BTG
      - `considerationType` string, nullable, required — Consideration type
      - `recognitionPattern` string, nullable, required — Revenue recognition pattern
      - `eventTypeId` string, nullable, required — Event type ID
      - `eventTypeName` string, nullable, required — Event type name
      - `hasSentInvoice` boolean, required — Whether POB has any invoice sent to ERP (SENT, PAID, PARTIALLY_PAID, DONE)
      - `recognizedRevenue` RecognizedRevenueAtomResponseDto[], required — Monthly recognized revenue entries for this performance obligation
        - `timeframe` string, required — Month in YYYY-MM format
        - `total` string, required — Recognized revenue amount as a decimal string
      - `createdAt` string, date-time, required — Timestamp when the performance obligation was created
      - `updatedAt` string, date-time, required — Timestamp when the performance obligation was last updated
    - `limit` number
    - `totalItems` number
    - `currentPage` number
    - `totalTransactionPrice` number
  - `success` boolean, required — Boolean with true=success, false=failure
  - `message` string, required — Plain-text description of the result
  - `error` IntegratorsApiError, required
    - `code` number, required — API response code
    - `message` string, required — API response message
    - `details` object — Additional details about the error

## Other responses

- `400` — Performance obligation features not enabled for this merchant
- `404` — Contract not found
- `500` — Internal Server Error

---

[API](https://skmtc.net/tabsplatform/apis/tabs-external-api.md) · [All operations](https://skmtc.net/tabsplatform/apis/tabs-external-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tabsplatform/tabs-external-api/revisions/7e8885517814/schema)
