Home

August 19, 2026

Create an Expense

POST /v3/Expenses creates an expense and associates it with a work item, contact or organization.

POST /v3/Expenses
{
  "Timeline": {
    "EntityType": "WorkItem",
    "EntityKey": "2m6pSFxRzcF2"
  },
  "ExpenseDate": "2026-08-14T00:00:00Z",
  "Value": 240.5,
  "BillableValue": 240.5,
  "Description": "Courier fees for year-end documents"
}

Timeline is the entity the expense belongs to, and follows the same shape as the timeline links on notes. EntityType must be one of:

EntityTypeEntity the expense is recorded against
WorkItemA work item
ContactAn individual contact
OrganizationAn organization

ExpenseDate, Value, BillableValue and Description are all required. Value is the cost of the expense and BillableValue the portion you intend to bill your client — set BillableValue to 0 for an expense you’re absorbing, or to the same amount as Value to pass it on in full. Neither can be negative, and Description is limited to 250 characters.

A successful request returns 201 Created with the new ExpenseKey:

{
  "ExpenseKey": "3nB7kQvXLmT",
  "Timeline": {
    "EntityType": "WorkItem",
    "EntityKey": "2m6pSFxRzcF2"
  },
  "ExpenseDate": "2026-08-14T00:00:00Z",
  "Value": 240.5,
  "BillableValue": 240.5,
  "Description": "Courier fees for year-end documents"
}

Once created, a billable expense is picked up by invoicing the same way an expense entered in Karbon is, and appears in the Expenses section of GET /v3/Invoices/{InvoiceKey}?$expand=Data.

Expenses cannot yet be listed, updated or deleted through the API, and expense types aren’t supported on create.