Skip to content
Documentation
Explore guides

For administrators

Expenses

List, create, show, update, and delete expenses in the company.

Contents

Before you start

Send Accept: application/json and Authorization: Bearer YOUR_TOKEN to https://{subdomain}.talentohq.com. See API for authentication.

Path and query identifiers are UUID strings.

Successful responses use 200. Validation failures use 422. Missing or invalid tokens, and records that cannot be found, use 401.

List all expenses

GET /api/v3/expenses

Returns accessible expenses. The query parameters below are optional.

Parameter Type Description
expense_category_id string (UUID) Expense category id.
period string Period.
start_date string Start date.
end_date string End date.
status string approved, rejected, or pending.
employee_id string (UUID) Employee id.
team_id string (UUID) Team id.
office_id string (UUID) Office id.

Response 200

[
  {
    "id": "e269dd36-bb60-41ac-9242-6ec7afe4c640",
    "expense_category_id": "fc1b1403-0e47-4e6f-83f1-9734c5ab717f",
    "expense_category_name": "Travel",
    "employee_id": "3ed57043-3894-43e9-a03b-69883506a3d6",
    "employee_name": "Employee name",
    "task_id": null,
    "task_name": null,
    "name": "Hotel",
    "reference": "reference",
    "description": "Hotel room for business travel, 2 nights",
    "generated_on": "2025-03-31",
    "distance": "distance",
    "total": "255.0",
    "tax_amount": "22.5",
    "currency": "eur"
  },
  {
    "id": "14902d70-c2f8-4796-8d33-cb996e1702b2",
    "expense_category_id": "fc1b1403-0e47-4e6f-83f1-9734c5ab717f",
    "expense_category_name": "Travel",
    "employee_id": "3ed57043-3894-43e9-a03b-69883506a3d6",
    "employee_name": "Employee name",
    "task_id": "4ed57643-3894-43e9-a03b-69883506a3d6",
    "task_name": "Visit new customer",
    "name": "Gas",
    "reference": "reference",
    "description": "Hotel room for business travel, 2 nights",
    "generated_on": "2025-03-31",
    "distance": "distance",
    "total": "76.7",
    "tax_amount": "8.7",
    "currency": "eur"
  }
]

Create an expense

POST /api/v3/expenses

Request

{
  "expense_category_id": "fc1b1403-0e47-4e6f-83f1-9734c5ab717f",
  "employee_id": "3ed57043-3894-43e9-a03b-69883506a3d6",
  "task_id": "4ed57643-3894-43e9-a03b-69883506a3d6",
  "name": "New expense",
  "reference": "reference",
  "description": "New expense description.",
  "generated_on": "2024-05-26",
  "distance": "distance",
  "total": "100.0",
  "tax_amount": "10.0",
  "files": []
}

Response 200

{
  "id": "e269dd36-bb60-41ac-9242-6ec7afe4c640",
  "expense_category_id": "fc1b1403-0e47-4e6f-83f1-9734c5ab717f",
  "expense_category_name": "Travel",
  "employee_id": "3ed57043-3894-43e9-a03b-69883506a3d6",
  "employee_name": "Employee name",
  "task_id": "4ed57643-3894-43e9-a03b-69883506a3d6",
  "task_name": "Visit new customer",
  "name": "New expense",
  "reference": "reference",
  "description": "Hotel room for business travel, 2 nights",
  "generated_on": "2025-03-31",
  "distance": "distance",
  "total": "100.0",
  "tax_amount": "10.0",
  "currency": "eur"
}

Show an expense

GET /api/v3/expenses/{expense_id}

Parameter Type Description
expense_id string (UUID) Expense id.

Response 200

{
  "id": "e269dd36-bb60-41ac-9242-6ec7afe4c640",
  "expense_category_id": "fc1b1403-0e47-4e6f-83f1-9734c5ab717f",
  "expense_category_name": "Travel",
  "employee_id": "3ed57043-3894-43e9-a03b-69883506a3d6",
  "employee_name": "Employee name",
  "task_id": "4ed57643-3894-43e9-a03b-69883506a3d6",
  "task_name": "Visit new customer",
  "name": "Gas",
  "reference": "reference",
  "description": "Hotel room for business travel, 2 nights",
  "generated_on": "2025-03-31",
  "distance": "distance",
  "total": "255.0",
  "tax_amount": "22.5",
  "currency": "eur"
}

Update an expense

PUT /api/v3/expenses/{expense_id}

Request

{
  "name": "Updated expense",
  "reference": "reference",
  "description": "Updated expense description.",
  "generated_on": "2022-05-26",
  "distance": "distance",
  "total": "150.0",
  "tax_amount": "15.0",
  "files": []
}

Response 200

{
  "id": "e269dd36-bb60-41ac-9242-6ec7afe4c640",
  "expense_category_id": "fc1b1403-0e47-4e6f-83f1-9734c5ab717f",
  "expense_category_name": "Travel",
  "employee_id": "3ed57043-3894-43e9-a03b-69883506a3d6",
  "employee_name": "Employee name",
  "task_id": null,
  "task_name": null,
  "name": "Updated expense",
  "reference": "reference",
  "description": "Hotel room for business travel, 2 nights",
  "generated_on": "2025-03-31",
  "distance": "distance",
  "total": "150.0",
  "tax_amount": "15.0",
  "currency": "eur"
}

Delete an expense

DELETE /api/v3/expenses/{expense_id}

Response 200

{}