Emburse expense-controller-v1 API
Retrieve expense report information and create draft expense reports
Retrieve expense report information and create draft expense reports
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/emburse-expense-controller-v1-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.0.0
info:
description: Api Documentation
version: '1.0'
title: Api Documentation Accounts expense-controller-v1 API
termsOfService: urn:tos
contact: {}
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://service.chromeriver.com
tags:
- name: expense-controller-v1
description: Retrieve expense report information and create draft expense reports
paths:
/v1/expense-reports:
get:
tags:
- expense-controller-v1
summary: Get list of reports summary by expense owner
description: This web service allows an external application to fetch a list of report summaries by owner. This excludes deleted reports of the owner
operationId: getExpenseReportsUsingGET
parameters:
- name: chain-id
in: header
description: Used for tracking the flow of the request
required: false
schema:
type: string
- name: customer-code
in: header
description: Unique customer identifier provided by Chrome River
required: true
schema:
type: string
- name: expenseOwnerId
in: query
description: Unique ID for the owner of the expense report. Either expenseOwnerId or (header) logged-in-user-id is required.
required: false
allowEmptyValue: false
schema:
type: string
- name: logged-in-user-id
in: header
description: logged-in-user-id
required: false
schema:
type: string
- name: x-api-key
in: header
description: 'API key for Authentication '
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ExpenseReport'
'400':
description: Customer Code is invalid
'401':
description: Customer Code is not authorized.
'403':
description: Logged in user does not exist.
'503':
description: Service unavailable.
deprecated: false
post:
tags:
- expense-controller-v1
summary: Create a draft expense report
description: This web service allows an external application to create a draft expense report.
operationId: createExpenseReportUsingPOST
parameters:
- name: chain-id
in: header
description: Reference used to track the flow of the request
required: false
schema:
type: string
- name: creator-user-id
in: header
description: Unique ID of expense creator
required: false
schema:
type: string
- name: customer-code
in: header
description: Unique customer identifier provided by Chrome River
required: true
schema:
type: string
- name: logged-in-user-id
in: header
description: Unique ID of expense owner
required: true
schema:
type: string
- name: x-api-key
in: header
description: 'API key for Authentication '
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExpenseReportHeaderCreateModel'
description: Expense report to create
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
description: Customer Code is invalid.
'401':
description: Customer Code is not authorized. Cannot create expense report.
'402':
description: Expense draft report cannot be created.
'503':
description: Service unavailable.
deprecated: false
/v1/expense-reports/{reportId}:
get:
tags:
- expense-controller-v1
summary: Get details of report
description: This web service allows an external application to fetch details of a report.
operationId: getExpenseReportUsingGET_2
parameters:
- name: chain-id
in: header
description: Used for tracking the flow of the request.
required: false
schema:
type: string
- name: customer-code
in: header
description: Unique customer identifier provided by Chrome River.
required: true
schema:
type: string
- name: expenseOwnerId
in: query
description: Unique ID for the owner of the expense report.
required: true
allowEmptyValue: false
schema:
type: string
- name: reportId
in: path
description: Identifier for the expense report.
required: true
schema:
type: string
- name: x-api-key
in: header
description: API key for Authentication.
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ExpenseReport'
'400':
description: Customer Code is invalid.
'401':
description: Customer Code is not authorized.
'403':
description: Expense owner does not exist.
'503':
description: Service unavailable.
deprecated: false
/v1/expense-reports/{reportId}/line-items:
delete:
tags:
- expense-controller-v1
summary: Delete an expense report line item
description: This web service allows an external application to delete the specified expense report line item.
operationId: deleteExpenseReportLineItemUsingDELETE
parameters:
- name: chain-id
in: header
description: Used for tracking the flow of the request
required: false
schema:
type: string
- name: customer-code
in: header
description: Unique customer identifier provided by Chrome River
required: true
schema:
type: string
- name: externalTransactionId
in: query
description: External transaction ID for transaction
required: true
allowEmptyValue: false
schema:
type: string
- name: logged-in-user-id
in: header
description: Unique ID for the user logged in making request
required: true
schema:
type: string
- name: reportId
in: path
description: Report ID for report
required: true
schema:
type: string
- name: x-api-key
in: header
description: 'API key for Authentication '
required: true
schema:
type: string
responses:
'204':
description: No Content. Item successfully deleted
content:
application/json:
schema:
type: object
'400':
description: Cannot delete line item for expense report in this status
'401':
description: Customer Code is not authorized. Cannot submit expense report.
'403':
description: Logged in user is not authorized to delete item or Logged in user does not exist.
'404':
description: Expense report line item does not exist for this report
'503':
description: Service unavailable.
deprecated: false
/v1/expense-reports/{reportId}/notes:
post:
tags:
- expense-controller-v1
summary: Add a note to an expense report
description: This web service allows an external application to add a note to an expense report.
operationId: createExpenseHeaderNoteUsingPOST
parameters:
- name: chain-id
in: header
description: Reference used to track the flow of the request
required: false
schema:
type: string
- name: customer-code
in: header
description: Unique customer identifier provided by Chrome River
required: true
schema:
type: string
- name: logged-in-user-id
in: header
description: Unique ID of the user logged in making request
required: false
schema:
type: string
- name: reportId
in: path
description: reportId
required: true
schema:
type: string
- name: x-api-key
in: header
description: 'API key for Authentication '
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExpenseHeaderNote'
description: Expense report Note object to be added
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
description: Customer Code is invalid.
'401':
description: Customer Code is not authorized. Cannot create expense report.
'402':
description: Expense draft report cannot be created.
'503':
description: Service unavailable.
deprecated: false
/v1/expense-reports/{reportId}/tracking:
get:
tags:
- expense-controller-v1
summary: Get expense report tracking details
description: Returns routing and approval tracking details for the specified expense report.
operationId: getReportForTrackingUsingGET
parameters:
- name: chain-id
in: header
description: Used for tracking the flow of the request
required: false
schema:
type: string
- name: customer-code
in: header
description: Unique customer identifier provided by Chrome River
required: true
schema:
type: string
- name: reportId
in: path
description: Identifier for the expense report.
required: true
schema:
type: string
- name: x-api-key
in: header
description: API key for Authentication
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ExpenseRoutingTrackingItem'
'400':
description: Customer Code is invalid.
'401':
description: Customer Code is not authorized.
'403':
description: User is not authorized to use this endpoint.
'404':
description: Expense report does not exist.
'503':
description: Service unavailable.
deprecated: false
/v1/open-expense-reports:
get:
tags:
- expense-controller-v1
summary: Get list of open expense reports
description: This web service allows an external application to fetch open expense reports.
operationId: getOpenExpenseReportsUsingGET
parameters:
- name: chain-id
in: header
description: Used for tracking the flow of the request
required: false
schema:
type: string
- name: customer-code
in: header
description: Unique customer identifier provided by Chrome River
required: true
schema:
type: string
- name: x-api-key
in: header
description: 'API key for Authentication '
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OpenExpenseReport'
'400':
description: Customer Code is invalid
'401':
description: Customer Code is not authorized.
'503':
description: Service unavailable.
deprecated: false
components:
schemas:
Entity:
type: object
properties:
code:
type: string
example: 100
description: Entity code. Max 50 characters
extraData1:
type: string
example: Main
description: Extra data field. Max 1000 characters
extraData2:
type: string
example: Office
description: Extra data field. Max 1000 characters
extraData3:
type: string
example: 1000
description: Extra data field. Max 1000 characters
extraData4:
type: string
example: 900
description: Extra data field. Max 1000 characters
extraData5:
type: string
example: '0000'
description: Extra data field. Max 1000 characters
name:
type: string
example: Los Angeles
description: Name of entity. Max 100 characters
title: Entity
ExpenseReportHeaderCreateModel:
type: object
required:
- currencyCode
- reportName
properties:
currencyCode:
type: string
example: USD
description: Employee's PayMeInCurrency. ISO-4217
reportName:
type: string
example: Trip to New Orleans 6/6-6/9
description: Name of expense report. Max 45 characters
transactionGroupId:
type: integer
format: int32
example: 1
description: Field used to associate an Expense Transactions Group with the report.
title: ExpenseReportHeaderCreateModel
Person:
type: object
properties:
firstName:
type: string
example: Smith
description: Person's last name. Max 100 characters
lastName:
type: string
example: Jacob
description: Person's first name. Max 100 characters
personEntities:
type: array
description: List of person entities associated with person
items:
$ref: '#/components/schemas/PersonEntities'
personUniqueId:
type: string
example: jsmith
description: Unique identifier for person. Max 100 characters
primaryEmailAddress:
type: string
example: jacob.smith@cpa.org
description: Person's primary email address. Max 100 characters
reportsToUniqueId:
type: string
example: lkemp
description: Unique identifier for manager person reports to
title:
type: string
example: Associate Accountant
description: Person's title. Max 255 characters
uniquePersonId:
type: string
title: Person
PaLineItemType:
type: object
properties:
externalRef:
type: string
example: 4320
description: Reference to an external system's expense types. Max 50 characters
id:
type: integer
format: int32
example: 1398
description: Internal ID of preapproval line item
name:
type: string
example: Airfare
description: Expense type of preapproval line item. Max 50 characters
type:
type: string
example: LineItem
enum:
- LineItem
- Header
title: PaLineItemType
ExpenseReportLineItemPersonGuest:
type: object
properties:
amount:
type: number
example: 11.98
description: Amount of expense spent by/for guest
company:
type: string
example: CFA Consultants
description: Company of guest. Max 100 characters
firstName:
type: string
example: Jennifer
description: First name of guest. Max 100 characters
guestType:
type: string
example: InternalGuest
description: Type of guest
enum:
- InternalGuest
- ExternalGuest
- HealthCareProvider
- TemporaryHealthCareProvider
- CRMGuest
lastName:
type: string
example: Garth
description: Last name of guest. Max 100 characters
percentage:
type: number
example: 10
description: Percentage of expense spent by/for guest
title:
type: string
example: Legal Consultant
description: Title of guest. Max 255 characters
title: ExpenseReportLineItemPersonGuest
ExpenseReportLineItem:
type: object
properties:
allocations:
type: array
description: List of allocations selected for line item
items:
$ref: '#/components/schemas/LineItemAllocation'
amount:
type: number
example: 119.81
description: Amount of line item
amountApproved:
type: number
example: 119.81
description: Approved amount due to expense owner
amountCustomer:
type: number
example: 0
description: AmountSpent * customer's exchange rate
amountSpent:
type: number
example: 119.81
description: Amount spent of line item
approvalStatus:
type: string
example: Pending Approval
description: NULL for parent line items (parent == true)
enum:
- Draft
- Pending Approval
- Approved For Payment
- Returned
- Exported
- Paid
- Partially Paid
businessPurpose:
type: string
example: Conference
description: Business purpose of expense. Max 2500 characters
children:
type: array
description: List of child expenses. Used for hotel items.
items:
$ref: '#/components/schemas/ExpenseReportLineItem'
comments:
type: array
description: List of comments attached to line item
items:
$ref: '#/components/schemas/Comment'
complianceItems:
type: array
description: List of compliance issues associated with the line item
items:
$ref: '#/components/schemas/ComplianceItem'
createDate:
type: string
format: date-time
example: 2022-01-03 05:53:39:000
description: Date expense line item was created on report
currencyCodeCustomer:
type: string
example: USD
description: Customer's default ISO-4217 currency code
currencySpent:
type: string
example: USD
description: ' ISO-4217 Currency code spent'
currentApprovers:
type: array
description: List of approvers where line item is currently pending
items:
$ref: '#/components/schemas/Person'
description:
type: string
example: Flight to St. Louis
description: Description of expense. Max 2500 characters
expenseItemType:
type: string
example: Airfare
description: Expense category of line item. Max 50 characters
exportStatus:
type: string
example: Exported
description: Export status of line item
enum:
- In Export
- Waiting for Export
- Exported
- Paid
- Partially Paid
feedCode:
type: string
example: CreditCardAmex
description: Name of feed for expense transaction
feedName:
type: string
example: Amex Corporate Card
description: Name of feed for expense transaction
firmPaid:
type: boolean
guests:
type: array
description: List of guests for line item
items:
$ref: '#/components/schemas/ExpenseReportLineItemPersonGuest'
hasReceipt:
type: boolean
example: true
description: Is a receipt attached
hasTaxReceipt:
type: boolean
example: true
description: Is a tax receipt attached
id:
type: string
example: b0dd069a-ce1a-45bf-b9dd-48cac24735ff
description: Internal ID of expense report line item. 36 characters
images:
type: array
description: Filenames of images attached to this line item
items:
type: string
isCreditCard:
type: boolean
example: true
description: Returns true if feed of expense transaction is a credit card feed
paLineItemType:
$ref: '#/components/schemas/PaLineItemType'
parent:
type: boolean
perDiemLineItem:
$ref: '#/components/schemas/PerDiemLineItem'
personal:
type: boolean
transactionDate:
type: string
format: date-time
example: 2022-01-03 05:53:39:000
description: Date of transaction
udas:
type: array
description: List of line item user defined attributes.
items:
$ref: '#/components/schemas/UserDefinedAttribute'
updateDate:
type: string
format: date-time
example: 2022-01-03 05:53:39:000
description: Date expense line item was last updated on report
vatAmount:
type: number
example: 5.99
description: Amount of VAT tax
vatAmount2:
type: number
example: 5.99
description: Amount of 2nd VAT tax
vatAmount3:
type: number
example: 5.99
description: Amount of 3rd VAT tax
vatAmountApplied:
type: number
example: 5.99
description: VAT amount applied to expense
vatAmountApplied2:
type: number
example: 5.99
description: VAT amount applied to expense
vatAmountApplied3:
type: number
example: 5.99
description: VAT amount applied to expense
vatAmountAppliedRemainder:
type: number
example: 5.99
description: Remainder of VAT amount applied
vatAmountAppliedRemainder2:
type: number
example: 5.99
description: Remainder of VAT amount applied
vatAmountAppliedRemainder3:
type: number
example: 5.99
description: Remainder of VAT amount applied
vatAmountEntered:
type: number
example: 5.99
description: VAT amount as entered by user
vatAmountEntered2:
type: number
example: 5.99
description: VAT amount as entered by user
vatAmountEntered3:
type: number
example: 5.99
description: VAT amount as entered by user
vatLocation:
type: string
example: Canada
description: Location of VAT taxation. Max 50 characters
vatTaxCode:
type: string
example: GST
description: VAT tax code. Max 10 characters
vatTaxCode2:
type: string
example: HST
description: VAT tax code 2. Max 10 characters
vatTaxCode3:
type: string
example: PST
description: VAT tax code 3. Max 10 characters
vatTaxPercentage:
type: number
example: 5
description: Rate of VAT tax
vatTaxPercentage2:
type: number
example: 5
description: Rate of 2nd VAT tax
vatTaxPercentage3:
type: number
example: 5
description: Rate of 3rd VAT tax
vatTaxPercentageReclaim:
type: number
example: 100
description: Rate of VAT refund
vatTaxPercentageReclaim2:
type: number
example: 100
description: Rate of VAT refund for 2nd VAT tax code
vatTaxPercentageReclaim3:
type: number
example: 100
description: Rate of VAT refund for 3rd VAT tax code
title: ExpenseReportLineItem
ExpenseReport:
type: object
properties:
budgetDetails:
type: array
description: Details of budget encumbrance/liquidation amounts associated with the preapproval attached to the report. Only relevant for customers using encumbrance/liquidation.
items:
$ref: '#/components/schemas/BudgetDetail'
comments:
type: array
description: List of comments written on the expense report
items:
$ref: '#/components/schemas/Comment'
complianceItems:
type: array
description: List of compliance item issues associated with the expense report
items:
$ref: '#/components/schemas/ComplianceItem'
createDate:
type: string
format: date-time
example: 2022-01-12 03:34:32:000
description: Date expense report was created
currencyCode:
type: string
example: USD
description: Employee's PayMeInCurrency
expenseReportUrl:
type: string
example: https://app.chromeriver.com/expense_reports_app/DEV034334052?customerCode=CF7H
description: URL of expense report
hasComplianceItems:
type: boolean
example: false
description: Used in expense-report-approval summaries to notify if header, line item, or children items have compliance items
images:
type: array
description: Filenames of images attached to expense report header
items:
type: string
lineItems:
type: array
description: List of expense report line items
items:
$ref: '#/components/schemas/ExpenseReportLineItem'
numberOfExpenseLineItems:
type: integer
format: int32
example: 1
description: Number of expense items in report
preApprovalReportId:
type: string
example: 010038294829
description: 12 character ID of preapproval attached to expense report
receiptUrl:
type: string
example: https://chromeriver.com/v2/expense-report-receipts/010034331701?customerCode=ABCD
description: URL of receipt attached to report
reportId:
type: string
example: 010083927384
description: 12 character ID of expense report
reportName:
type: string
example: Trip to St. Louis 9/19-9/20
description: Name of expense report. Max 45 characters
reportOwner:
$ref: '#/components/schemas/Person'
reportStatus:
type: string
example: Submitted
description: Status of expense report
enum:
- New
- Draft
- Submitted
- Deleted
- Returned
reportTotalAmount:
type: number
example: 119.81
description: Total of expenses in report
reportTotalAmountApproved:
type: number
example: 119.81
description: Total of approved expenses in report
reportTotalFirmPaidAmount:
type: number
example: 119.81
description: Total of firm paid expenses in report
reportTotalPayMeAmount:
type: number
example: 119.81
description: Total of amount due to expense owner
submitDate:
type: string
format: date-time
example: 2022-01-12 05:34:32:000
description: Date expense report was submitted
transactionGroupReferenceNumber:
type: string
example: IBQRNA1
description: Expense transaction group reference number associated with the expense report. Max 255 characters
udas:
type: array
description: Returned on GET requests. POST/PATCH/PUT requests with this field will result in a BAD_REQUEST
items:
$ref: '#/components/schemas/UserDefinedAttribute'
updateDate:
type: string
format: date-time
example: 2022-01-12 05:34:32:000
description: Date expense report was last updated
title: ExpenseReport
PerDiemLineItem:
type: object
properties:
additionalDeductionAmount:
type: number
example: 0
description: Any additional amounts that need to be deducted not covered by the itemized line items
address:
type: string
example: 5700 Olympic Blvd
description: Address for expense. Max 400 characters
allowableAmount:
type: number
alocholAmount:
type: number
amountPerDiem:
type: number
example: 150
description: Amount of per diem expense
baseRate:
type: number
breakfastAmountIMR:
type: number
example: 11
description: Individual meal rate- breakfast
breakfastDeductionAmount:
type: number
example: 0
description: Amount of breakfast deduction
city:
type: string
example: Los Angeles
description: City of expense. Max 100 characters
country:
type: string
example: United States
description: Country of expense. Max 50 characters
county:
type: string
example: Los Angeles County
description: County of expense. Max 100 characters
currencyCode:
type: string
example: USD
description: Currency code of per diem line item. ISO-4217
dinnerAmountIMR:
type: number
example: 22
description: Individual meal rate- dinner
dinnerDeductionAmount:
type: number
example: 0
description: Amount of dinner deduction
endDate:
type: string
format: date-time
description: End date of per diem expense
foodAmount:
type: number
foodOverage:
type: number
incidentalDeductionAmount:
type: number
example: 0
description: The dollar amount of any incidental per diem allowance
isArriveNextDay:
type: boolean
example: false
description: Indicates whether traveller will arrive the following day
isArrivePreviousDay:
type: boolean
example: false
description: Indicates if person arrived previous day
isBreakfastDeducted:
type: boolean
example: false
description: Indicates if breakfast deduction is taken
isDinnerDeducted:
type: boolean
example: false
description: Indicates if dinner deduction is taken
isDiscardedDay:
type: boolean
isFullTravelDay:
type: boolean
example: false
description: Indicates whether travel is full day
isLodgingDeducted:
type: boolean
example: false
description: Indicates if lodging is deducted
isLunchDeducted:
type: boolean
example: false
description: Indicates if lunch deduction is taken
isOvernightStay:
type: boolean
example: false
description: Indicates if trip had an overnight stay
isTravelDayDeducted:
type: boolean
description: If the travel day deduction is taken, this field will be true
latitude:
type: number
format: double
example: 193.29283
description: Latitude of start position
lodgingDeductionAmount:
type: number
example: 0
description: Amount of lodging deduction
longitude:
type: number
format: double
example: 30
# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/emburse/refs/heads/main/openapi/emburse-expense-controller-v1-api-openapi.yml