Skip to main content
POST
/
api
/
v1
/
expenses
Create Expense
curl --request POST \
  --url https://api.example.com/api/v1/expenses \
  --header 'Content-Type: application/json' \
  --data '
{
  "category": "<string>",
  "amount": 123,
  "date": "<string>",
  "assignment_id": 123,
  "description": "<string>",
  "receipt_s3_key": "<string>"
}
'

Request Body

category
string
required
Expense category. One of: travel, licensing, supplies, ce_credits, meals, lodging, uniforms, insurance, dues, parking, phone_internet, tax_prep, other.
amount
integer
required
Amount in cents. Must be ≥ 0.
date
string
required
Date of expense (YYYY-MM-DD).
assignment_id
integer
Link to a specific assignment.
description
string
Vendor name or notes (max 500 chars).
receipt_s3_key
string
S3 key of an uploaded receipt image.

Request

curl -X POST \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "travel",
    "amount": 4500,
    "date": "2025-02-15",
    "description": "Gas station fill-up",
    "assignment_id": 1
  }' \
  https://app.taxhomebase.com/api/v1/expenses

Response

Returns the created expense with status 201.

Errors

StatusCause
400Invalid category, amount < 0, missing required fields, invalid assignment_id