Skip to main content
PUT
Update expense report

Authorizations

Authorization
string
header
required

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

Path Parameters

expenseReportId
string
required

Id of the expense report. UUID without dashes (32-character hex string)

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

Query Parameters

action
enum<string>

Lifecycle transition to apply. When set, the request body is ignored: send submits the report for approval; retract recalls a previously-sent report.

Available options:
send,
retract
forceSave
boolean

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

Body

application/json
comment
string

Free-text comment that travels with the report through approval and accounting integration.

emailRecipients
string

Recipients notified when the report is sent in. Comma-separated email addresses, stored as a free-text field.

expenseRecords
object[]

Expense records to attach to the report. Each item is the id of an existing expense record owned by the caller.

name
string

Display name of the report.

organizationId
string

Organization that owns the report. Required on create; cannot be changed on update.

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

User-supplied report number. The server auto-generates one if omitted.

version
integer<int64>

Optimistic-lock counter from the report last read by the client (the version field of a prior GET/PUT response). Optional; if provided and it no longer matches the report's current stored version, the update is rejected with 409 instead of being applied. Omit to skip this check.

customFields
object[]

Custom field values for the report. Each entry pairs a custom field definition with a value.

Response

OK

comment
string
dateCreated
string
read-only
emailRecipients
string
expenseRecords
object[]
id
string
version
integer<int64>

Optimistic-lock counter, incremented on every update. Echo this value back in the request body of a PUT to detect if the report was changed by someone else since it was read; a mismatch returns 409.

lastUpdated
string
meta
object
name
string
organizationId
string

UUID without dashes (32-character hex string)

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

UUID without dashes (32-character hex string)

Pattern: ^[0-9a-fA-F]{32}$
previewUrl
string
read-only
reportNumber
string
sent
string
read-only
status
enum<string>
read-only
Available options:
APPROVAL,
APPROVED,
READY_TO_SEND,
BULK_TRANSFER,
ERROR,
NEW,
NORMAL,
PAID,
REJECTED,
SEND,
SENT,
TRANSFER,
TRANSFER_TO_RECIPIENT
processStatus
enum<string>
read-only
Available options:
DRAFT,
PROCESSING,
PROCESSED,
REJECTED
reimbursement
number
read-only
reimbursementCurrency
string
read-only
approvalChainId
string
read-only
type
enum<string>
read-only
Available options:
AUTOMATIC,
MANUAL,
COMPANY_CARD
customFields
object[]
Last modified on August 31, 2026