Skip to main content

Contract fields

FieldDescription
CustomerThe customer the contract belongs to
Start dateRequired. When the contract begins
End dateOptional. Leaving this blank creates an open-ended contract
Business entityThe entity the contract is billed under
Custom metadataKey-value pairs for internal tracking
TimezoneDetermines when billing cycles start and end. Not yet implemented — defaults to the customer’s or org’s timezone

Line item configuration

FeatureWhat it meansExampleStatus
Price versionsDifferent prices for different time periods10/seatforJanJun,10/seat for Jan–Jun, 12/seat for Jul–DecAvailable
Billing scheduleHow often invoices are generated and whether payment is due upfront or at end of periodBill quarterly, payment due at end of quarterAvailable
DiscountsFlat dollar amount off, percentage off, or free units included$100 off per month, or 1,000 free API calls per monthAvailable
Minimum commitmentsGuaranteed minimum the customer pays, or a minimum quantity, even if usage is lowMinimum $10,000 per quarterAvailable
Anchor datesAlign billing cycles to specific dates instead of contract startBill on the last day of the monthAvailable
QuantitiesHow many units the customer gets25 seats, or tracked by usage meterNot yet implemented
Optional itemsLine items that can be turned on or off during the contractPremium support, billed only when activatedNot yet implemented

Pricing models

ModelHow it worksExample
Per unitFixed price per unit$10 per seat per month
TieredDifferent rates for different usage bands, each band priced separatelyFirst 1,000 API calls at 0.10,next4,000at0.10, next 4,000 at 0.08, above 5,000 at $0.05
VolumeTotal usage determines the rate; that rate applies to all units3,000 API calls falling in the 1,001–5,000 band — all 3,000 billed at $0.08
See the dedicated pricing model docs for detailed behavior, including discount and commitment interactions.

Contract operations

OperationStatusDescription
Create contractDoneCreate for a customer with a start date and optional end date; auto-populate or pick products manually
View contractsDoneView a single contract, or browse and filter the full list
Update contractDoneEdit a draft contract in a single save, with concurrent-edit protection
Change quantitiesDoneAdjust recurring or on-demand quantities over time
Activate contractPartialMoves draft to active and auto-generates the first invoice; pre-activation completeness checks not yet available
Invoice previewDonePreview invoices for a saved contract or an unsaved draft

Contract list filters

Contracts can be filtered by: customer, status, name, currency, business entity, and date ranges.

Validation rules

RuleStatus
End date must be after start dateDone
Contract must have at least one productDone
Customer and business entity are validDone
Anchor dates don’t conflict with each otherDone
Line item dates fall within contract datesIn progress
Prices cover the full line item period with no gapsIn progress
Billing schedule doesn’t have conflictsIn progress
Quantity configuration is consistentIn progress
Discount dates and ordering are validTo do
Commitment dates are validTo do
Quantity entries form a complete timeline (for recurring)To do
Activation periods cover the full line item (for optional items)To do
All referenced products and prices existTo do

Invoice correction handling

Correction on an approved invoiceAvailable optionsDefault
Positive arrear (customer under-charged)Separate back-dated invoice for the period, or redate forward onto the next invoiceSeparate back-dated invoice
Negative amount (customer over-charged)Carry forward across upcoming invoices, or a standalone credit note against the original invoice (credit note: upcoming)Carry forward

Minimum commitment evaluation modes

ModeBehavior
Greedy (per-period)Each billing period must independently hit its share of the commitment; shortfalls are charged every period until the full commitment is met
Cumulative (running total)The commitment tracks across the full window; a heavy period banks credit toward future ones

Not yet available

  • Contract-level discounts and minimum commitments (currently line-item level only)
  • Custom attributes and tags on contracts
  • Contract-level settings: billing address, shipping address, invoice template, payment method
  • Contract amendment history
  • Lifecycle states: trial periods, eternal/forever contracts, expiry, pause/suspend, auto-renewal
  • Parent–child or third-party billing
  • Bulk contract export
  • (Placeholder: confirm current status of any items above before publishing externally.)