Expense categories are used to classify expense entries. Because expense categories can be associated with default costs and tax rates, they can also make expense entry more efficient.

In order to use expense categories, expenses and expense categories must be enabled. Verify this with the Account Information interface (account / expense-settings). Administrators can enable expenses and expense categories from Syncd's web interface via Settings / Expense Tracking.

There is no concept of expense category assignment; every user can view all expense categories. Only Expense Category Managers can create, update and delete expense categories.

Show

Request

GET /expense_categories/#{expense-category-id}.xml

Response

Status: 200 OK

<expense-category>
  <id type="integer">146</id>
  <name>Mileage</name>
  <active type="boolean">true</active>
  <code nil="true"></code>
  <description>Standard U.S. mileage rate</description>
  <url nil="true"></url>
  <default-unit-cost type="decimal">0.55</default-unit-cost>
  <default-tax-percent type="decimal" nil="true"></default-tax-percent>
  <!-- if include=timestamps -->
  <created-at type="datetime">2007-08-16T20:49:05Z</created-at>
  <updated-at type="datetime">2008-07-12T13:30:38Z</updated-at>
  <!-- end -->
</expense-category>

List

Request

All expense-categories:

GET /expense_categories.xml

All active expense-categories:

GET /expense_categories/active.xml

All inactive expense-categories:

GET /expense_categories/inactive.xml

Optional parameters

Specify start and end to request a specific range of items. For example:

GET /expense_categories.xml?start=1&end=4

Response

Status: 200 OK

<expense-categories type="array">
  <expense-category>
    ...
  </expense-category>
  ...
</expense-categories>

Create

Request

POST /expense_categories.xml

Include the following data with your request:

<expense-category>
  <!-- name (required, unique, max-length=50) -->
  <name>Subscriptions</name>
  <!-- active (optional boolean, default=true) -->
  <active>true</active>
  <!-- code (optional identifier, max-length=50) -->
  <code>SUB</code>
  <!-- description (optional, max-length=255) -->
  <description>Subscriptions to periodicals</description>
  <!-- url (optional external link, max-length=255) -->
  <url></url>
  <!-- default-unit-cost (optional, decimal, assume default currency)
  <default-unit-cost>0.55</default-unit-cost>
  <!-- default-tax-percent (optional, decimal, min=0.0, max=100.0)
  <default-tax-percent>7.0</default-tax-percent>
</expense-category>

Response

Status: 201 Created

<expense-category>
  <id type="integer">#{new-expense-category-id}</id>
  <name>Subscriptions</name>
  <active type="boolean">true</active>
  <code>SUB</code>
  <description>Subscriptions to periodicals</description>
  <url nil="true"></url>
  <default-unit-cost type="decimal" nil="true"></default-unit-cost>
  <default-tax-percent type="decimal">7.0</default-tax-percent>
</expense-category>

Update

Request

PUT /expense_categories/#{expense-category-id}.xml

Include ANY of the following data with your request:

<expense-category>
  <name>Subscriptions</name>
  <active>true</active>
  <code>SUB</code>
  <description>Subscriptions to periodicals</description>
  <url></url>
  <default-unit-cost>0.55</default-unit-cost>
  <default-tax-percent>7.0</default-tax-percent>
</expense-category>

Response

Status: 200 OK

Delete

Expense categories associated with expense entries can not be deleted. Instead, deactivate them (update the expense-category, setting active to false).

Request

DELETE /expense_categories/#{expense-category-id}.xml

Response

Status: 200 OK

Continue to Payment Methods