• Last edited on: 01 October 2021

Expense Reports API


Verb Path Action Description
PUT /api/expense_reports/:id/add_approver add_approver Manually add an approver for an expense report
POST /api/expense_reports create Create an expense report in draft status
GET /api/expense_reports index Query expense reports
PUT /api/expense_reports/:id/remove_approval remove_approval Remove an approver who was manually added
GET /api/expense_reports/:id show Show expense report
PUT /api/expense_reports/:id/submit submit Create an expense report and attempt to submit it for approval
PUT /api/expense_reports/:id update Update expense report


Element Description Req'd Unique Allowable Value In Out Data Type
approvals Approvals         yes Approval 
audit-score Coupa's Audit Score         yes integer
auditor-note Auditor Comments on Expense Report       yes yes text
comments Comments         yes Comment 
created-at Time of Record Creation         yes datetime
created-by User who created         yes User 
currency Currency Code         yes Currency 
end-date Return date       yes yes date
erp-document-id Expense document id on ERP side yes yes string(255)
erp-document-status Expense document status on ERP side yes yes string(255)
events Events         yes ExpenseReportEventHistory 
expense-lines Expense lines       yes yes ExpenseLine 
expense-policy-violations Expense policy violations         yes ExpensePolicyViolation 
expense-violations Expense violations         yes ExpenseViolation 
expensed-by Expensed by user       yes yes User 
exported Indicates if transaction has been exported         yes boolean
external-src-name External source name       yes yes string(255)
external-src-ref External source reference       yes yes string(255)
id Coupa's Expense Report ID         yes integer
is-trip Trip Report       yes yes boolean
last-exported-at Date and time transaction was last exported in the format YYYY-MM-DDTHH:MM:SS+HH:MMZ         yes datetime
paid Has expense report been paid?       yes yes boolean
past-due Report has passed the due date in the format True or false     true, false   yes boolean
payment Payment       yes yes Payment 
payment-channel Channel used to pay the Reimbursable Total.         yes string(255)
reconciliation-lines Payments         yes []
reimbursable-total-amount Amount reimbursable to the End User.         yes decimal(32,4)
reimbursable-total-currency Currency of Reimbursable Total.         yes Currency
reject-reason Reason why report was rejected       yes yes text
report-due-date Due date before which report needs to be submitted in the format YYYY-MM-DDTHH:MM:SS+HH:MMZ         yes datetime
start-date Departure date       yes yes boolean
status Current Expense Report Status         yes string(255)
submitted-at Date Expense Report was Submitted for Approval       yes yes datetime
submitted-by Submitted by user         yes User 
title Expense Report Title       yes yes string(255)
total Expense Report Total in Transactional Currency         yes decimal(32,4)
travel-trip Travel trip         yes  
updated-at Time of Record Creation         yes datetime
updated-by User who updated         yes User 
report_warnings Report level warning messages         yes string(255)

Related Items

Expense Violation API

24 April 2017

Use the Expense Violation API to send expense violations to your third-party system.

Expense Line Mileage API

29 November 2017

Expense Line Allocation API

30 November 2017

Expense Line Mileage Allocation API

30 November 2017