Skip to main content
PUT

Authorizations

Authorization
string
header
required

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

Path Parameters

expenseId
string
required

The id of the expense to retrieve UUID without dashes (32-character hex string)

Pattern: ^[0-9a-fA-F]{32}$

Query Parameters

forceSave
boolean

When true, saves the report even if non-blocking validation warnings exist; validation errors still abort. Defaults to false.

action
enum<string>

No request body allowed when using action parameter send - will try to perform send in the specified expense, merge - will try to perform merge of data within the specified expenses, connectToOrganization - will connect an expense to an organization, used for multi organization users when connecting mailed in receipts.

Available options:
send,
merge,
connectToOrganization
mergeWith
string

Parameter required to be used when action=merge is passed. This parameter represents the id of loose expense record that is not created based on card transaction, nor belongs to some expense report and it is in one of the statuses [NEW, NORMAL, APPROVAL, REJECTED] UUID without dashes (32-character hex string)

Pattern: ^[0-9a-fA-F]{32}$

Body

application/json

ExpenseRecord format

version
integer<int64>

Optimistic-lock counter, incremented on every update. On PUT, echo back the value from the last GET/PUT response to detect if the expense was changed by someone else since it was read; a mismatch returns 409. Optional; omit to skip this check.

organizationId
string

UUID without dashes (32-character hex string)

Pattern: ^[0-9a-fA-F]{32}$
categoryId
string

UUID without dashes (32-character hex string)

Pattern: ^[0-9a-fA-F]{32}$
verification
object

The expense-type-specific payload — receipt details, mileage details, per-diem details, or food-benefit details. Shape selected by the nested type discriminator.

expenseReportId
string

UUID without dashes (32-character hex string)

Pattern: ^[0-9a-fA-F]{32}$

Response

OK

ExpenseRecord format

id
string
read-only
status
enum<string>
read-only
Available options:
NEW,
NORMAL,
APPROVAL,
APPROVED,
REJECTED
personId
string
read-only

UUID without dashes (32-character hex string)

Pattern: ^[0-9a-fA-F]{32}$
dateCreated
string
read-only
lastUpdated
string
read-only
version
integer<int64>

Optimistic-lock counter, incremented on every update. On PUT, echo back the value from the last GET/PUT response to detect if the expense was changed by someone else since it was read; a mismatch returns 409. Optional; omit to skip this check.

expenseDate
string
read-only

Date that the user has selected for the expense. For receipt expenses it is purchase date. For mileages it is travel date and for per diems it is the first travel date.

organizationId
string

UUID without dashes (32-character hex string)

Pattern: ^[0-9a-fA-F]{32}$
categoryId
string

UUID without dashes (32-character hex string)

Pattern: ^[0-9a-fA-F]{32}$
rejectComment
string
read-only
reimbursement
number
read-only
reimbursementCurrency
string
read-only
meta
object
read-only
verification
object

The expense-type-specific payload — receipt details, mileage details, per-diem details, or food-benefit details. Shape selected by the nested type discriminator.

expenseReportId
string

UUID without dashes (32-character hex string)

Pattern: ^[0-9a-fA-F]{32}$
Last modified on August 31, 2026