Obligations

Obligations

An Obligation in Tabs represents a commitment of products or services to a customer, often tied to commitment of payment. This entity serves as the foundation for generating invoices, detailing how often and how much a customer should be billed.


Obligation Object

When creating or managing an obligation, you’ll work with the following fields:

FieldTypeDescriptionRequired
idstringUnique identifier for the obligation. Generated by Tabs for existing records.Yes (existing)
serviceStartDatestring (YYYY-MM-DD)The date when the service or billing starts.Yes
serviceEndDatestring (YYYY-MM-DD)The date when the service or billing ends.Yes
categoryIdstringThe ID referencing the Product Category for this obligation.Yes
billingScheduleBillingScheduleA structure defining billing terms (e.g., frequency, pricing tiers).No (but recommended)
recognizedRevenueRecognizedRevenue[]A list of revenue entries that might be locked for historical or advanced recognition scenarios.No

BillingSchedule

A BillingSchedule dictates how and when billing occurs for a given obligation. It includes frequency, pricing, and payment terms.

FieldTypeDescriptionRequired
namestringThe line-item name (e.g., "Monthly Subscription").Yes
descriptionstringA human-friendly description of the billed item.No
startDatestring (YYYY-MM-DD)When billing starts.Yes
endDatestring (YYYY-MM-DD)When billing ends (optional for ongoing/recurring services).No
isArrearsbooleanWhether billing is in arrears (after services are rendered).No
isRecurringbooleanIndicates if billing repeats on a fixed schedule.No
intervalenum (DueIntervalUnit)Unit of the billing interval (e.g., DAY, WEEK, MONTH, or YEAR).Yes (if recurring)
intervalFrequencynumberFrequency of that interval (e.g., every 1 month, every 3 months).Yes (if recurring)
netPaymentTermsnumberTime between invoice issuance and due date (e.g., Net 30).No
quantitynumberQuantity of items to be billed. If billingType is UNIT, this is how many units per billing cycle.Yes (for unit-based)
billingTypestring (UNIT | FLAT)Whether billing is per unit or a flat rate.Yes
pricingTypestring (SIMPLE | TIERED)Whether there’s a single price or multiple tiered prices.Yes
eventTypeIdstringThe usage event type ID, if this obligation is usage-based.No
erpItemIdstringMaps to an item in the ERP, ensuring invoices match up in your accounting system.No
invoiceTypestring (invoice | bill)Typically invoice; can be bill if generating a remittance.Yes
pricingPricingTier[]One or more pricing tiers, defining cost per tier.Yes

PricingTier

PricingTier objects define how much to charge, per tier. This is essential for tier-based billing models (e.g., volume discounts).

FieldTypeDescriptionRequired
tiernumberTier number (e.g., 1 for the first tier, 2 for the second tier, etc.).Yes
amountnumberDollar amount to charge in this tier.Yes
amountTypestring (PER_ITEM | TOTAL_INVOICE)Whether this amount applies per unit or to the entire invoice line.Yes
tierMinimumnumberThe minimum quantity required to qualify for this tier.Yes

RecognizedRevenue

RecognizedRevenue allows you to record and lock in revenue amounts for specific timeframes, important for compliance and accurate accounting.

FieldTypeDescriptionRequired
timeframestring (YYYY-MM-DD)The date or period for which revenue is recognized.Yes
totalnumberThe recognized revenue amount for that timeframe.Yes
isLockedbooleanWhether this revenue entry is locked from further edits.Yes