Syncd API
Expense Categories
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