Tabs Obligations API

The Obligations API from Tabs — 1 operation(s) for obligations.

OpenAPI Specification

tabs-obligations-api-openapi.yml Raw ↑
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