[ expenses ]

Log an expense

Create an attributed expense with category resolution, spending-cap review, and safe idempotent retries.

POST/api/v1/expenses

Response

application/json

Fields

Idempotency-Keyheaderrequired

A UUID generated once for this logical expense and reused only when retrying it.

merchantstringrequired

Merchant name, 1–120 characters.

amountnumber

Positive amount in major currency units, with at most two decimal places. Required unless amount_cents is provided.

amount_centsinteger

Positive amount in integer cents. Required unless amount is provided.

currencystring

Three-letter ISO 4217 code. Normalized to uppercase; defaults to USD.

categorystring

Natural-language category resolved against the workspace taxonomy.

occurred_ondate

Real ISO calendar date. Defaults to today.

notesstring

Optional note, up to 1,000 characters.