Tabs Obligations API
The Obligations API from Tabs — 1 operation(s) for obligations.
The Obligations API from Tabs — 1 operation(s) for obligations.
openapi: 3.0.0
info:
title: Tabs External Billing Terms 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: Obligations
paths:
/v3/obligations:
get:
operationId: IntegratorsApiObligationsController_getObligations
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, startDate, endDate, serviceStartDate, serviceEndDate\n\n Dates should be in YYYY-MM-DD format\n "
schema:
type: string
responses:
'200':
description: Get all 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/ObligationDto'
limit:
type: number
totalItems:
type: number
currentPage:
type: number
summary: List obligations
tags:
- Obligations
components:
schemas:
BillingScheduleDto:
type: object
properties:
name:
type: string
description: Line Item Name
example: Line Item Name
description:
type: string
description: Line Item Description
example: Line Item Description
startDate:
type: string
description: Billing Start Date
example: '2024-01-01'
endDate:
type: string
description: Billing End Date
example: '2024-01-01'
duration:
type: number
description: Billing Duration
example: 1
default: 0
isArrears:
type: boolean
description: "Is Arrears (DEPRECATED: Use invoiceDateStrategy instead). \n Either this field OR invoiceDateStrategy must be provided, but not both."
example: false
deprecated: true
invoiceDateStrategy:
type: string
description: "Strategy for determining when to send invoices. Either this field OR \n isArrears must be provided, but not both. FIRST_OF_PERIOD (invoice at start of\n billing period), LAST_OF_PERIOD (invoice at end of billing period), ARREARS\n (invoice after service delivery) or ADVANCED_DUE_START (invoice date at start of\n billing period minus netPaymentTerms days, due start of service)."
example: FIRST_OF_PERIOD
enum:
- FIRST_OF_PERIOD
- LAST_OF_PERIOD
- ARREARS
- ADVANCED_DUE_START
isRecurring:
type: boolean
description: Is Recurring
example: true
interval:
type: string
description: Type of recurring interval
example: MONTH
enum:
- NONE
- DAY
- MONTH
- HOUR
- YEAR
- QUARTER
- SEMI_MONTH
- WEEK
intervalFrequency:
type: number
description: Frequency of recurring interval to invoice
example: 1
netPaymentTerms:
type: number
description: Time between issue and due date
example: 1
quantity:
type: number
description: Quantity; set to 0 for UNIT billingType
example: 1
billingType:
type: string
description: Billing Type
example: UNIT
enum:
- UNIT
- FLAT
pricingType:
type: string
description: Single, multiple, or volume-based pricing tiers
example: SIMPLE
enum:
- SIMPLE
- TIERED
- VOLUME
eventTypeId:
type: string
description: Usage Event Type Id
example: 123e4567-e89b-12d3-a456-426614174000
itemId:
type: string
description: The item in the ERP that the line items will belong to
example: 123e4567-e89b-12d3-a456-426614174000
productId:
type: string
description: Product ID from /v3/products that links this billing term to an entry in the merchant's product catalog. To ensure revenue reporting accuracy, associate the billing term with a product whenever applicable.
example: 123e4567-e89b-12d3-a456-426614174000
nullable: true
invoiceType:
type: string
description: INVOICE or BILL for remittance. Use INVOICE for all instances
example: INVOICE
enum:
- INVOICE
- BILL
pricing:
description: Pricing tiers
example:
- tier: 1
amount: 100
amountType: PER_ITEM
tierMinimum: 0
type: array
items:
$ref: '#/components/schemas/PricingTierDto'
classId:
type: string
description: Class Id
example: 123e4567-e89b-12d3-a456-426614174000
departmentId:
type: string
description: Department Id
example: 123e4567-e89b-12d3-a456-426614174000
projectId:
type: string
description: Project Id
example: 123e4567-e89b-12d3-a456-426614174000
required:
- name
- startDate
- endDate
- isRecurring
- interval
- intervalFrequency
- netPaymentTerms
- quantity
- billingType
- pricingType
- invoiceType
- pricing
RecognizedRevenueDto:
type: object
properties:
timeframe:
type: string
description: Timeframe
example: 2024-01
total:
type: number
description: Total
example: 1000
booksClosed:
type: boolean
description: Books closed
example: false
required:
- timeframe
- total
- booksClosed
RevenueScheduleDto:
type: object
properties:
categoryId:
type: string
description: Category Id
example: 123e4567-e89b-12d3-a456-426614174000
recognizedRevenue:
description: Recognized Revenue in each month
type: array
items:
$ref: '#/components/schemas/RecognizedRevenueDto'
required:
- recognizedRevenue
PaginatedResponseDTO:
type: object
properties: {}
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
PricingTierDto:
type: object
properties:
tier:
type: number
description: Tier Number
example: 1
amount:
type: number
description: Amount
example: 100
amountType:
type: string
description: Amount Type
example: PER_ITEM
enum:
- PER_ITEM
- TOTAL_INVOICE
tierMinimum:
type: number
description: Tier Minimum
example: 0
required:
- tier
- amount
- amountType
- tierMinimum
DiscountDto:
type: object
properties:
type:
type: string
description: The type of discount
enum:
- PERCENTAGE
- FIXED
example: PERCENTAGE
amount:
type: string
description: The discount amount (stored as mantissa in database with exponent 0)
example: '10'
note:
type: string
description: Optional note about the discount
example: Early payment discount
ObligationDto:
type: object
properties:
id:
type: string
description: Obligation Id
example: 123e4567-e89b-12d3-a456-426614174000
contractId:
type: string
description: Contract Id
example: 123e4567-e89b-12d3-a456-426614174000
serviceStartDate:
type: string
description: Revenue Start Date
example: '2024-01-01'
serviceEndDate:
type: string
description: Revenue End Date
example: '2024-01-01'
categoryId:
type: string
description: Category Id
example: 123e4567-e89b-12d3-a456-426614174000
billingSchedule:
description: Billing Schedule
allOf:
- $ref: '#/components/schemas/BillingScheduleDto'
revenueSchedule:
description: Revenue Schedule
allOf:
- $ref: '#/components/schemas/RevenueScheduleDto'
discount:
description: 'Discount configuration. Examples: { type: ''FIXED'', amount: ''5.00'' } for a $5.00 fixed discount, or { type: ''PERCENTAGE'', amount: ''0.10'' } for a 10% percentage discount'
example:
type: FIXED
amount: '5.00'
allOf:
- $ref: '#/components/schemas/DiscountDto'
seatConfig:
description: Seat-based obligation configuration
allOf:
- $ref: '#/components/schemas/SeatBasedObligationConfigDto'
required:
- id
- contractId
- serviceStartDate
- serviceEndDate
- billingSchedule
- revenueSchedule
SeatBasedObligationConfigDto:
type: object
properties:
isMovingMinimum:
type: boolean
description: Whether we need to update minimums on a moving basis
example: false
minQuantity:
type: number
description: 'Minimum quantity to bill for, regardless of current # of seats'
example: 0
defaultProrationPolicy:
type: string
description: Default proration policy
enum:
- NONE
- DAY
- MONTH
- YEAR
defaultTrueUpTiming:
type: string
description: Default true up timing
enum:
- IMMEDIATE
- CO_TERM
required:
- isMovingMinimum
- minQuantity
- defaultProrationPolicy
- defaultTrueUpTiming
securitySchemes:
custom-header:
type: apiKey
name: Authorization
in: header