Create an expense for the authenticated employee

Creates a new expense record for the current employee.

Authentication

This endpoint accepts any one of the following token types:

  • Employee-scoped access token (OAuth2Assertion) — obtained through the urn:ietf:params:oauth:grant-type:jwt-bearer grant. See OAuth Assertion.
  • Company-scoped access token (OAuth2AuthorizationCode) — obtained by the employee through the Authorization Code flow or the Refresh Token flow. See Authentication for partners.

Scopes

Any one of the scopes in a token type's row is enough. all:write works too.

Token typeCategoryRead only ScopeWrite only Scope (read access implicit)
Employee-scoped access tokenManage expenses (employment_payments)--
Company-scoped access tokenManage expenses (employment_payments)-Manage expenses (expense:write)
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Expense params

Params for creating an expense as the authenticated employee.

The employment is implied by the access token, so employment_id is not accepted.
reviewer_id and reviewed_at are also omitted — they only apply to manager-created expenses.

Category selection mirrors the company endpoint: use either category (legacy enum, deprecated but supported)
or expense_category_slug (recommended). When both are provided, expense_category_slug wins.

expense_category_slug must be the slug of a category listed for the employee by
GET /v1/employee/expense-categories. Slugs differ between sandbox and production, so read them
from that endpoint instead of storing them. A slug that isn't listed is refused, unless category
is also sent: then category is used.

integer
required

The expense amount in the specified currency, in cents.

string | null
enum
deprecated

Categories allowed for an expense (legacy, deprecated).

Note: coworking, home_office, phone_utilities, travel are deprecated and will be removed in the future.

string
required

The three-letter code for the expense currency.

Examples: "USD", "EUR", "CAD"

string | null

Slug of a category listed by GET /v1/employee/expense-categories for the employee (recommended). Takes precedence over legacy category field.

string
required

Date of the purchase, which must be in the past

receipt
object

All the params needed upload a base64 file.

receipts
array of objects
length ≤ 5
receipts
integer

The tax portion of the expense amount, in cents. Use 0 if no tax applies.

string
string
required

A short description of the expense (e.g., "New keyboard", "Team dinner").

Responses

Callback
Language
Credentials
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json