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
400— Invalid request or business failure. Codes: NOT_FOUND401— Missing or invalid access token403— Not authorized404— Not found429— Too many requests500— Internal server error