Tabs Performance Obligations API
The Performance Obligations API from Tabs — 2 operation(s) for performance obligations.
The Performance Obligations API from Tabs — 2 operation(s) for performance obligations.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/tabs-performance-obligations-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Tabs External Performance Obligations API
description: ''
version: 1.0.0
contact: {}
x-apievangelist:
generated: '2026-07-21'
method: searched
source: https://docs.tabsplatform.com/reference (OpenAPI definitions embedded per-operation in the ReadMe reference pages, merged; index at https://docs.tabsplatform.com/llms.txt)
source_pages: 93
servers:
- url: https://integrators.prod.api.tabsplatform.com
security:
- custom-header: []
tags:
- name: Performance Obligations
paths:
/v3/performance-obligations:
get:
operationId: IntegratorsApiPerformanceObligationsController_searchPerformanceObligations
parameters:
- name: page
required: true
in: query
description: Page Number
schema:
default: 1
type: number
- name: limit
required: true
in: query
description: Number of items to return
schema:
default: 50
type: number
- name: filter
required: false
in: query
description: "\n Supported items for filter: contractId, customerId, serviceStartDate, serviceEndDate, billingTermGroupId, createdAt, updatedAt\n\n Dates should be in YYYY-MM-DD format\n "
schema:
type: string
responses:
'200':
description: Get all performance obligations by filter
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/IntegratorsApiResponse'
- properties:
payload:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDTO'
- properties:
data:
type: array
items:
$ref: '#/components/schemas/GetPerformanceObligationItemDto'
limit:
type: number
totalItems:
type: number
currentPage:
type: number
'400':
description: Performance obligation features are not enabled for this merchant
summary: List performance obligations
tags:
- Performance Obligations
/v3/performance-obligations/{performanceObligationId}/recognized:
post:
operationId: IntegratorsApiPerformanceObligationsController_upsertRecognizedRevenue
parameters:
- name: performanceObligationId
required: true
in: path
description: The ID of the performance obligation
schema:
type: string
requestBody:
required: true
description: Recognized revenue entries to upsert for the performance obligation. Amounts may be positive or negative (e.g. negative values when reallocating discounts).
content:
application/json:
schema:
$ref: '#/components/schemas/UpsertRecognizedRevenueDto'
responses:
'200':
description: Returns the revenue schedule ID
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/IntegratorsApiResponse'
- properties:
payload:
type: string
example: 123e4567-e89b-12d3-a456-426614174000
'400':
description: Bad request body, e.g. invalid timeframe
'404':
description: Performance obligation not found
'500':
description: Internal Server Error
summary: Upsert recognized revenue
tags:
- Performance Obligations
components:
schemas:
IntegratorsApiResponse:
type: object
properties:
payload:
type: object
description: Response payload, will be empty when success is false
success:
type: boolean
description: Boolean with true=success, false=failure
message:
type: string
description: Plain-text description of the result
error:
description: json element with any error messages or warnings
allOf:
- $ref: '#/components/schemas/IntegratorsApiError'
required:
- payload
- success
- message
- error
IntegratorsApiError:
type: object
properties:
code:
type: number
description: API response code
message:
type: string
description: API response message
details:
type: object
description: Additional details about the error
required:
- code
- message
PaginatedResponseDTO:
type: object
properties: {}
GetPerformanceObligationItemDto:
type: object
properties:
id:
type: string
description: Unique identifier for the performance obligation
example: 123e4567-e89b-12d3-a456-426614174000
name:
type:
- string
- 'null'
description: Name of the performance obligation
example: Annual Subscription
contractId:
type: string
description: ID of the contract this performance obligation belongs to
example: 123e4567-e89b-12d3-a456-426614174000
billingTermGroupId:
type:
- string
- 'null'
description: Billing term group ID (foreign key)
example: 123e4567-e89b-12d3-a456-426614174000
billingTermGroupName:
type:
- string
- 'null'
description: Billing term group name
example: Towing Services
itemId:
type:
- string
- 'null'
description: ID of the associated integration item
example: 123e4567-e89b-12d3-a456-426614174000
itemName:
type:
- string
- 'null'
description: Name of the associated integration item
example: Enterprise License
erpClassId:
type:
- string
- 'null'
description: ID of the ERP class
example: 123e4567-e89b-12d3-a456-426614174000
erpClassName:
type:
- string
- 'null'
description: Name of the ERP class
example: Software Revenue
category:
type:
- string
- 'null'
description: Revenue category
example: SaaS
considerationType:
type:
- string
- 'null'
description: Consideration type
example: FIXED
recognitionPattern:
type:
- string
- 'null'
description: Revenue recognition pattern
example: STRAIGHT_LINE
eventTypeId:
type:
- string
- 'null'
description: Event type ID
example: 123e4567-e89b-12d3-a456-426614174000
eventTypeName:
type:
- string
- 'null'
description: Event type name
example: Tow Completion
productId:
type:
- string
- 'null'
description: ID of the associated product
example: 123e4567-e89b-12d3-a456-426614174000
productName:
type:
- string
- 'null'
description: Name of the associated product
example: Enterprise Plan
serviceStartDate:
format: date-time
type: string
description: Service start date
example: '2024-01-01'
serviceEndDate:
format: date-time
type: string
description: Service end date
example: '2024-12-31'
transactionPrice:
type: string
description: Transaction price as a decimal string
example: '1000.50'
recognizedRevenue:
description: Monthly recognized revenue entries for this performance obligation
type: array
items:
$ref: '#/components/schemas/RecognizedRevenueAtomResponseDto'
createdAt:
format: date-time
type: string
description: Timestamp when the performance obligation was created
example: '2024-01-01T00:00:00.000Z'
updatedAt:
format: date-time
type: string
description: Timestamp when the performance obligation was last updated
example: '2024-01-01T00:00:00.000Z'
required:
- id
- name
- contractId
- billingTermGroupId
- billingTermGroupName
- itemId
- itemName
- erpClassId
- erpClassName
- category
- considerationType
- recognitionPattern
- eventTypeId
- eventTypeName
- productId
- productName
- serviceStartDate
- serviceEndDate
- transactionPrice
- recognizedRevenue
- createdAt
- updatedAt
RecognizedRevenueAtomResponseDto:
type: object
properties:
timeframe:
type: string
description: Month in YYYY-MM format
example: 2024-01
total:
type: string
description: Recognized revenue amount as a decimal string
example: '1000.50'
required:
- timeframe
- total
RecognizedRevenueEntryDto:
type: object
properties:
timeframe:
type: string
description: The timeframe for the revenue (YYYY-MM format)
example: 2024-01
total:
type: number
description: The total revenue amount
example: 1000
required:
- timeframe
- total
UpsertRecognizedRevenueDto:
type: object
properties:
recognizedRevenue:
description: Array of recognized revenue entries
type: array
items:
$ref: '#/components/schemas/RecognizedRevenueEntryDto'
required:
- recognizedRevenue
securitySchemes:
custom-header:
type: apiKey
name: Authorization
in: header