API Documentation

Overview
Time Tracking

Extended REST API
Clients
Client Contacts
Projects
Tasks
People
Expenses
Expense Tracking
User Assignment
Task Assignment
Reports
Invoices
Invoice Messages
Invoice Payments
Invoice Categories


Questions? Contact support

Expenses

Show all expense categories

GET /expense_categories

HTTP Response: 200 Success
<expense-categories>
  <expense-category>
    <name>Mileage</name>
    <!-- unit values only populated for unit-based expenses -->
    <unit-name>Miles</unit-name>
    <unit-price type="decimal">0.485</unit-price>
    <!-- If true no expenses can be logged to this category -->
    <deactivated type="boolean">false</deactivated>
  </expense-category>
  <expense-category>
     ...
  </expense-category>
  ...
</expense-categories>

Create new expense category

POST /expense_categories

HTTP Response: 201 Created
Location: /expense_categories/#{new_expense_category_id}

Sample post:

<expense-category>
  <name>Mileage</name>
  <!-- unit values only necessary for unit-based expenses -->
  <unit-name>Miles</unit-name>
  <unit-price type="decimal">0.485</unit-price>
</expense-category>

Update an existing expense category

PUT /expense_categories/#{expense_category_id}

HTTP Response: 200 OK
Location: /expense_categories/#{expense_category_id}

Sample put:

<expense-category>
  <name>Mileage</name>
  <!-- unit values only necessary for unit-based expenses -->
  <unit-name>Miles</unit-name>
  <unit-price type="decimal">0.485</unit-price>
</expense-category>

Show expense category

GET /expense_categories/#{expense_category_id}

HTTP Response: 200 Success
<expense-category>
  <name>Mileage</name>
  <!-- unit values only populated for unit-based expenses -->
  <unit-name>Miles</unit-name>
  <unit-price type="decimal">0.485</unit-price>
  <!-- If true no expenses can be logged to this category -->
  <deactivated type="boolean">false</deactivated>
</expense-category>

Delete existing expense category

DELETE /expense_categories/#{expense_category_id}

HTTP Response: 200 OK is returned if expense category does not have any reported expenses associated.
HTTP Response: 400 Bad Request is returned if expense category is not removable.