Tours & Events

Expenses

Per-event expense tracking and aggregate reports

Expenses are line items attached to an event. They roll up into reports for financial summaries.

Resource overview

GET/api/expenses/{id}API key · Session
PATCH/api/expenses/{id}API key · Session
DELETE/api/expenses/{id}API key · Session
GET/api/expenses/reportsAPI key · Session

Expenses are created via the event sub-resource: POST /api/events/{id} /expenses. Top-level GET /api/expenses is not exposed; query through events.

Get expense

GET/api/expenses/{id}API key · Session
200
{
  "id": "expense-uuid",
  "eventId": "event-uuid",
  "category": "transportation",
  "amount": "1250.00",
  "currency": "USD",
  "incurredAt": "2026-06-15T14:00:00Z",
  "description": "Coach rental",
  "createdBy": "user-uuid"
}

Update expense

PATCH/api/expenses/{id}API key · Session
NameTypeRequiredDescription
categorystringOptionalOne of the configured expense categories.
amountstring (decimal)OptionalAmount in major units, as a string to avoid float loss.
currencystring (ISO 4217)Optional3-letter currency code.
incurredAtstring (ISO 8601)OptionalWhen the expense was incurred.
descriptionstringOptionalFree-form description.

Delete expense

DELETE/api/expenses/{id}API key · Session

Reports

GET/api/expenses/reportsAPI key · Session
NameTypeRequiredDescription
fromstring (ISO 8601)OptionalInclusive lower bound on `incurredAt`.
tostring (ISO 8601)OptionalInclusive upper bound on `incurredAt`.
groupBystringOptional`event`, `category`, or `month`.
tourIdstringOptionalLimit to a specific tour.
200
{
  "totals": { "amount": "12450.00", "currency": "USD", "count": 47 },
  "groups": [
    { "key": "transportation", "amount": "8200.00", "count": 18 },
    { "key": "catering", "amount": "3100.00", "count": 22 }
  ]
}

On this page