Skip to main content
POST
/
expense-items
Create an expense item
curl --request POST \
  --url https://www.ruddr.io/api/workspace/expense-items \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "date": "2023-12-25",
  "expenseAmount": 123,
  "isReimbursable": true,
  "isBillable": true,
  "expenseReportId": "<string>",
  "expenseCategoryId": "<string>",
  "memberId": "<string>",
  "vendorName": "<string>",
  "notes": "<string>",
  "attendees": "<string>",
  "currency": "<string>",
  "markupMethod": "percentage",
  "markupRatio": 0.5,
  "markupAmount": 123,
  "unitCount": 123,
  "unitAmount": 123,
  "projectId": "<string>"
}
'
{
  "id": "3b7e1f2a-4c8d-4e9f-a0b1-2c3d4e5f6a7b",
  "statusId": "not_submitted",
  "vendor": "Personal Vehicle",
  "notes": "Client site visit for project kickoff meeting.",
  "attendees": "Alice Johnson, Bob Smith",
  "date": "2025-01-15",
  "currency": "USD",
  "amount": 33.5,
  "markupMethod": "amount",
  "markupRatio": null,
  "markupAmount": 5,
  "markup": 5,
  "total": 38.5,
  "unitCount": 50,
  "unitAmount": 0.67,
  "isReimbursable": true,
  "isBillable": true,
  "createdAt": "2025-01-15T20:47:03.284Z",
  "expenseReport": {
    "id": "4a186944-4259-4e8a-8aba-b9aaf6937c04",
    "title": "January 2025 Expenses"
  },
  "expenseCategory": {
    "id": "175e0635-ac9e-4880-8492-07fa584f1b15",
    "name": "Mileage",
    "unitName": "Mile"
  },
  "member": {
    "id": "7c8f2e19-4d5a-4a3b-9c6d-2e8f1a0b3c4d",
    "name": "Jane Smith"
  },
  "project": {
    "id": "b4cc2b99-3b3a-4b73-8f4e-8c1d7a94e5b0",
    "name": "Website Redesign",
    "client": {
      "id": "56deca22-a707-4148-a5f7-ea3ae6391d67",
      "name": "Acme Corp"
    }
  },
  "invoiced": false
}
A purchased product or service recorded for reimbursement or project billing.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
date
string<date>
required

The date of the expense. Should be in the form YYYY-MM-DD.

expenseAmount
number
required

The expense amount in the expense's currency.

isReimbursable
boolean
required

Whether the expense is reimbursable to the member.

isBillable
boolean
required

Whether the expense item is billable back to the client.

expenseReportId
string
required

The expense report ID (uuid) this item belongs to.

expenseCategoryId
string
required

The expense category ID (uuid) for this item.

memberId
string
required

The member ID (uuid) of the member who incurred the expense.

vendorName
string | null

The name of the vendor for the expense. Max 255 characters.

notes
string | null

Notes about the expense item. Max 5000 characters.

attendees
string | null

Attendees for the expense. Max 5000 characters.

currency
string

The ISO 4217 currency code for the expense amount (e.g. USD). Defaults to the workspace currency if not provided.

markupMethod
enum<string> | null

The markup method to apply to the expense.

Available options:
percentage,
amount,
null
markupRatio
number | null

The markup ratio (e.g. 0.1 for 10%). Must be between 0 and 1. Used when markupMethod is percentage.

Required range: 0 <= x <= 1
markupAmount
number | null

The fixed markup amount. Used when markupMethod is amount.

unitCount
number | null

The number of units for unit-based expense categories.

unitAmount
number | null

The per-unit amount for unit-based expense categories.

projectId
string | null

The project ID (uuid) to associate this expense with.

Response

200

id
string

The unique identifier for the object.

statusId
enum<string>

The approval status of the expense item.

Available options:
not_submitted,
pending_approval,
approved,
rejected
vendor
string | null

The name of the vendor for the expense.

notes
string | null

Additional notes about the expense item.

attendees
string | null

The attendees for the expense (e.g. for meals or entertainment categories).

date
string<date>

The date of the expense. In the form YYYY-MM-DD.

currency
string

The ISO 4217 currency code for the expense amount (e.g. USD).

amount
number

The expense amount in the expense's currency.

markupMethod
enum<string> | null

The markup method applied to the expense. null if no markup is applied.

Available options:
percentage,
amount,
null
markupRatio
number | null

The markup ratio (e.g. 0.1 for 10%). Present when markupMethod is percentage, otherwise null.

markupAmount
number | null

The fixed markup amount. Present when markupMethod is amount, otherwise null.

markup
number | null

The computed markup value in the expense's currency. null when no markup method is set.

total
number

The total billed amount including any markup, in the expense's currency.

unitCount
number | null

The number of units for unit-based expense categories. null if not applicable.

unitAmount
number | null

The per-unit amount for unit-based expense categories. null if not applicable.

isReimbursable
boolean

Whether the expense is reimbursable to the member.

isBillable
boolean

Whether the expense item is billable back to the client.

createdAt
string<date-time>

The timestamp when the object was created.

expenseReport
object

The expense report this item belongs to.

expenseCategory
object

The expense category for this item.

member
object

The member who submitted the expense.

project
object

The project associated with this expense item. null if not assigned to a project.

invoiced
boolean

Whether this record has been invoiced.