Returns the expense report with the given identifier.

GET /accounting/expense-reports/{id}

Group: Accounting › Expense Reports · Operation ID: getExpenseReport

An expense report is an employee's claim for reimbursement, with its header and its expense items. It shares its read with POST accounting/expense-reports/search, which returns the same record. The list at GET accounting/expense-reports is header-only, so the expense items come back here and on search. Every amount is a decimal: the header totals in reimbursementCurrency, and each item's amount in the item's own currency.

Open in the interactive reference

Parameters

Name In Type Required Description
Api-Version header "v1" yes The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1.
id path string yes The unique identifier for the expense report to return.

Response

200 Success

Under data (getExpenseReportOutput):

Field Type Required Description
id string yes The unique identifier for the expense report.
expenseNumber string no The expense number. Absent until one has been assigned.
status string yes The approval status of the report. Values include 'draft', 'pendingApproval', 'approved', 'rejected' and 'paid'.
paymentStatus string no The payment status of the report. Absent until a payment run has touched it.
submittedDate string (date) no The date the employee submitted the report for approval. Format YYYY-MM-DD. Absent while the report is still a draft.
reimbursementCurrency string yes The currency the report is reimbursed in. Format ISO 4217, for example 'USD'. Governs every header total below.
reimbursableTotal string (decimal) no The total reimbursable amount across the report's items, in reimbursementCurrency.
reimbursableTotalNetAmount string (decimal) no The total reimbursable amount excluding VAT, in reimbursementCurrency.
amountPaid string (decimal) no The amount already reimbursed to the employee, in reimbursementCurrency.
openAmount string (decimal) no The amount still owed to the employee, reimbursableTotal minus amountPaid, in reimbursementCurrency.
pendingAmount string (decimal) no The amount committed to an in-flight payment run but not yet paid, in reimbursementCurrency.
containsBillableItem boolean no Whether at least one item on the report is marked billable to a customer.
markAsPaid boolean no Whether the report was flagged as paid without going through a payment run.
pendingPayment boolean no Whether a payment for this report is in flight.
skipJournalEntry boolean no Whether the report is configured not to post a journal entry.
reviewMessage string no The reviewer's note left on approval or rejection.
externalUrl string no A link to the report in the upstream system that produced it.
externalExpenseReportId string no The identifier this report has in the upstream system that produced it. It is not unique.
origin string no The source system this report came from, as free-form text.
employeeId string no The employee the report belongs to. See id on GET people/:id.
employeeName string no The name of the employee the report belongs to.
entityId string no The legal entity the report is posted under. See id on GET base/entities.
entityName string no The name of the legal entity the report is posted under.
departmentId string no The department the report is charged to. See id on GET departments/:id.
offsetAccountId string no The GL offset account for the reimbursement. See id on GET accounting/accounts/:id.
lastModifiedDate string (date-time) yes The date and time the expense report last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
approvals array of object no The approval decisions on this report, oldest first. An empty array when no approval policy has matched the report.
approvals[].decision string yes What was decided. Values include 'approve' and 'reject'.
approvals[].employeeName string no The name of the employee who decided.
approvals[].message string no The reviewer's note, where one was given.
approvals[].decidedAt string (date-time) yes The date and time the decision was recorded, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
expenseItems array of object no The expense items on the report, in their order on it. An empty array when the report has none.
expenseItems[].id string yes The unique identifier for the expense item.
expenseItems[].itemNumber string no The expense item number.
expenseItems[].merchant string no The merchant the expense was incurred with.
expenseItems[].billDate string (date) no The date the expense was incurred. Format YYYY-MM-DD.
expenseItems[].expenseType string no The kind of expense. Values include 'Pur' (purchase), 'Dis' (distance traveled) and 'PerDiem'.
expenseItems[].description string no A description of the expense item.
expenseItems[].amount string (decimal) no The amount of the expense item, as a decimal in the item's own currency.
expenseItems[].currency string no The currency this item's amount is in. Format ISO 4217, for example 'USD'. May differ from the report's reimbursementCurrency.
expenseItems[].reimbursable boolean no Whether this item is reimbursable to the employee.
expenseItems[].categoryId string no The expense category the item is booked to. See id on GET accounting/expense-categories/:id.
expenseItems[].externalExpenseItemId string no The identifier this item has in the upstream system that produced it.
expenseItems[].attendees string no Who attended, when the item's category requires it.
expenseItems[].attachments array of object no The receipts on this item.
expenseItems[].attachments[].id string yes The unique identifier for the attachment record.
expenseItems[].attachments[].fileName string no The display name of the attached file.
expenseItems[].attachments[].fileId string no The identifier of the stored file. There is no endpoint for it.

Errors

Code Status
NOT_FOUND 400

Statuses