v1

latestOpenAPI 3.0.02026-07-24102143224.1 KB
Contracts

Create contract billing term

post/v3/contracts/{id}/billing-terms

Path parameters

idstring required
Example:123e4567-e89b-12d3-a456-426614174000

Contract Id

Request body

namestring

Line item name. Required unless productId is provided, in which case it is populated from the product's display name.

descriptionstring

Line item description

billingStartDatestring required

Billing start date

isRecurringboolean required

Is recurring billing

includeInArrboolean

Whether this billing term contributes to ARR (Annual Recurring Revenue). Defaults based on billing type and interval when omitted (usage and one-time terms default to false).

interval'NONE' | 'DAY' | 'MONTH' | 'HOUR' | 'YEAR' | 'QUARTER' | 'SEMI_MONTH' | 'WEEK' required

Interval unit

intervalFrequencynumber required

Interval frequency

durationnumber

Number of billing periods

invoiceDateStrategy'FIRST_OF_PERIOD' | 'LAST_OF_PERIOD' | 'ARREARS' | 'ADVANCED_DUE_START' required

Invoice date strategy

netPaymentTermsnumber required

Days between invoice issue and due date

quantitynumber required

Quantity; set to 0 for UNIT billingType

billingType'UNIT' | 'FLAT' required

Billing type

pricingType'SIMPLE' | 'TIERED' | 'VOLUME' required

Pricing type. For TIERED and VOLUME, supply 2+ pricing entries with tier indices that are 0-indexed and contiguous (0, 1, 2, …) and tierMinimum values starting at 0 and strictly increasing.

eventTypeIdstring

Usage event type ID

itemIdstring

ERP item ID for the line item

productIdstring nullable

Product ID from /v3/products. When set, name/description/itemId/classId are populated from the product for any not provided on the billing term. To ensure revenue reporting accuracy, associate the billing term with a product whenever applicable.

classIdstring

ERP class ID

departmentIdstring

Department ID

projectIdstring

Project ID

billingTermGroupIdstring

Billing term group ID. If provided, the BT joins an existing group. If omitted, a new group is created.

Example request

{
  "name": "Annual Platform License",
  "description": "Enterprise platform license",
  "billingStartDate": "2025-01-01",
  "isRecurring": true,
  "includeInArr": true,
  "interval": "MONTH",
  "intervalFrequency": 1,
  "invoiceDateStrategy": "FIRST_OF_PERIOD",
  "netPaymentTerms": 30,
  "quantity": 1,
  "billingType": "FLAT",
  "pricingType": "SIMPLE",
  "eventTypeId": "123e4567-e89b-12d3-a456-426614174000",
  "itemId": "d4e5f6a7-8901-4abc-8def-555555555555",
  "productId": "c5f6a7b8-9012-4abc-8def-444444444444",
  "classId": "e5f6a7b8-9012-4abc-8def-666666666666",
  "departmentId": "e5f6a7b8-9012-4abc-8def-777777777777",
  "projectId": "f6a7b8c9-0123-4abc-8def-888888888888",
  "pricing": [
    {
      "tier": 1,
      "amount": 10000,
      "amountType": "TOTAL_INVOICE",
      "tierMinimum": 0
    }
  ],
  "discount": {
    "type": "PERCENTAGE",
    "amount": "10",
    "note": "Early payment discount"
  },
  "billingTermGroupId": "f0e1d2c3-4567-4abc-8def-222222222222"
}

Response

Billing term created

successboolean required

Boolean with true=success, false=failure

messagestring required

Plain-text description of the result

Example response

{
  "payload": {
    "description": "Enterprise platform license",
    "billingStartDate": "2025-01-01",
    "isRecurring": true,
    "includeInArr": true,
    "interval": "MONTH",
    "intervalFrequency": 1,
    "netPaymentTerms": 30,
    "quantity": 1,
    "billingType": "FLAT",
    "pricingType": "SIMPLE",
    "eventTypeId": "123e4567-e89b-12d3-a456-426614174000",
    "itemId": "d4e5f6a7-8901-4abc-8def-555555555555",
    "productId": "c5f6a7b8-9012-4abc-8def-444444444444",
    "classId": "e5f6a7b8-9012-4abc-8def-666666666666",
    "departmentId": "e5f6a7b8-9012-4abc-8def-777777777777",
    "projectId": "f6a7b8c9-0123-4abc-8def-888888888888",
    "billingTermGroupId": "f0e1d2c3-4567-4abc-8def-222222222222"
  }
}