ExpensesList expense types by status

List expense types by status

Lists the expense types available to the caller, filtered by active / inactive, ordered by name.

The value set for ExpenseTypeID on employee and project expenses, as the caller sees it. With the CurrencyMatrix feature on, only types of the caller's legal entity plus types shared by all legal entities (-1) are returned; without it, every legal entity's types. Paged ($pagesize 10 by default) — but TotalRecord / TotalPage over-count, so stop paging when a page has fewer than $pagesize entities.

Use it to:

  • Expense-type picker in a mobile / receipt-capture client
  • Mapping a receipt category or ERP cost category to a TimeLog ExpenseTypeID before creating expenses

Not for:

  • Types of a specific legal entity, or with their legal entity shown — GET /v1/expense-type/all/list

Behaviour:

  • Idempotent.
  • Safe to retry.
  • Changes are visible to the next read immediately.

Next: POST /v1/employee-expense, POST /v1/project-expense

See also: GET /v1/expense-type/all/list

Not yet documented: request → path params.

curl -X GET "https://app3.timelog.com/your-account/api/v1/expense-type/-1?$page=1&$pagesize=10" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "Properties": {
    "TotalRecord": "example_string",
    "TotalPage": "example_string",
    "PageNumber": "example_string"
  },
  "Entities": [
    {
      "Properties": {
        "ExpenseTypeID": 123,
        "ExpenseTypeName": "John Doe",
        "ShowInTravel": true,
        "AccountNo": "example_string",
        "VAT": 3.14,
        "ProductNo": "example_string",
        "SalaryCode": "example_string",
        "IsActive": true,
        "IsEquipment": true,
        "CostPrice": 29.99,
        "SalesPrice": 29.99,
        "EquipmentText": "example_string"
      },
      "Links": [
        {
          "Href": "example_string",
          "Rel": "example_string"
        }
      ],
      "Actions": [
        {}
      ]
    }
  ],
  "Links": [
    {
      "Href": "example_string",
      "Rel": "example_string"
    }
  ]
}
GET
/v1/expense-type/{status}
GET
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp). The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user. > Not yet documented: how to obtain a token. > Not yet documented: token lifetime.

OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp). The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user. > Not yet documented: how to obtain a token. > Not yet documented: token lifetime.
path
statusinteger
Required

ActiveStatus. Also bound from the member name. Filters on ExpenseTypeRead.IsActive (eq). Allowed values: | Value | Name | Meaning | |---|---|---| | -1 | All | Active and inactive types (default when omitted). | | 0 | Inactive | Only types with IsActive = false. | | 1 | Active | Only types with IsActive = true — the ones that can be used on new expenses. |

Options: -1, 0, 1
query
$pageinteger

Page number.

query
$pagesizeinteger

Page size. No maximum enforced in the API layer.

Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).

The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.

Not yet documented: how to obtain a token.

Not yet documented: token lifetime.

Path Parameters

statusinteger
Required

ActiveStatus. Also bound from the member name.

Filters on ExpenseTypeRead.IsActive (eq).

Allowed values:

ValueNameMeaning
-1AllActive and inactive types (default when omitted).
0InactiveOnly types with IsActive = false.
1ActiveOnly types with IsActive = true — the ones that can be used on new expenses.
Allowed values:-101

Query Parameters

$pageinteger

Page number.

$pagesizeinteger

Page size. No maximum enforced in the API layer.

Responses

Propertiesobject

Paging values. They are returned as STRINGS, for example "TotalRecord": "12".

Entitiesarray

Omitted (not []) when the list is empty.

Linksarray