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:
EntityType | Entity the expense is recorded against |
|---|---|
WorkItem | A work item |
Contact | An individual contact |
Organization | An 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.