Emburse expense-approval-controller-v1 API
Approve, return and reassign expense reports.
Approve, return and reassign 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-approval-controller-v1-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: Api Documentation
version: '1.0'
title: Documentation Expense Approval 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-approval-controller-v1
description: Approve, return and reassign expense reports.
paths:
/v1/expense-report-approvals:
get:
tags:
- expense-approval-controller-v1
summary: Get list of reports for approval
description: This web service allows an external application to get a list of expense reports awaiting approval by a user
operationId: getApprovalsUsingGET
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: logged-in-user-id
in: header
description: Unique ID of the approver logged in making request
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/ExpenseReport'
'400':
description: Customer Code is invalid.
'401':
description: Customer Code is not authorized. Cannot get list of expense reports for approval.
'403':
description: Logged in user does not exist.
'503':
description: Service unavailable.
deprecated: false
/v1/expense-report-approvals/count:
get:
tags:
- expense-approval-controller-v1
summary: Get count of reports for approval
description: This web service allows an external application to a count of expense reports awaiting approval by a user.
operationId: getExpenseReportCountUsingGET
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: logged-in-user-id
in: header
description: Unique ID of the approver logged in making request
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/CountModel'
'400':
description: Customer Code is invalid
'401':
description: Customer Code is not authorized. Cannot get expense report count.
'403':
description: Logged in user does not exist.
'503':
description: Service unavailable.
deprecated: false
/v1/expense-report-approvals/{reportId}:
get:
tags:
- expense-approval-controller-v1
summary: Get expense report details
description: This web service allows an external application to get the details of an expense report
operationId: getExpenseReportUsingGET
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: logged-in-user-id
in: header
description: Unique ID of the approver 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:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ExpenseReport'
'400':
description: Customer Code is invalid.
'401':
description: Customer Code is not authorized. Cannot get expense report.
'403':
description: Logged in user is not allowed to view details expense report or Logged in user does not exist
'404':
description: Expense Report does not exist.
'503':
description: Service unavailable.
deprecated: false
/v1/expense-report-approvals/{reportId}/submit:
post:
tags:
- expense-approval-controller-v1
summary: Submit an expense report for approval
description: This web service allows an external application to submit the specified expense report for approval
operationId: submitExpenseReportForApprovalUsingPOST
parameters:
- name: approver-id
in: header
description: Unique ID of the approver who currently has the report and wants to submit it further
required: true
schema:
type: string
- 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: 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
requestBody:
$ref: '#/components/requestBodies/ExpenseSubmit'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ExpenseSubmitResponse'
'400':
description: Required query parameters are missing or invalid
'422':
description: Expense report has not been submitted. Report have some business rules violations
content:
application/json:
schema:
$ref: '#/components/schemas/ExpenseSubmitResponse'
'503':
description: Service unavailable.
deprecated: false
/v1/expense-reports/{report-id}/line-items/{report-line-item-id}/approve:
post:
tags:
- expense-approval-controller-v1
summary: Approve an expense report line item
description: This web service allows an external application to approve the specified expense report line item.
operationId: approveExpenseReportLineItemUsingPOST
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: logged-in-user-id
in: header
description: Unique ID for the approver logged in making request
required: true
schema:
type: string
- name: report-id
in: path
description: Report ID for report
required: true
schema:
type: string
- name: report-line-item-id
in: path
description: Report Line Item ID for report
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/NotesModel'
description: Optional note tied to Line Item Approval
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
description: Customer Code is invalid.
'401':
description: Customer Code is not authorized. Cannot approve expense report line item.
'403':
description: Logged in user is not authorized to approve line item or Logged in user does not exist.
'503':
description: Service unavailable.
deprecated: false
/v1/expense-reports/{report-id}/line-items/{report-line-item-id}/reassign:
post:
tags:
- expense-approval-controller-v1
summary: Reassign an expense report line item
description: This web service allows an external application to reassign the specified expense report line item to another approver for review
operationId: reassignExpenseReportLineItemUsingPOST
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: logged-in-user-id
in: header
description: Unique ID for the approver logged in making request
required: true
schema:
type: string
- name: report-id
in: path
description: Report ID for report
required: true
schema:
type: string
- name: report-line-item-id
in: path
description: Report Line Item ID for report
required: true
schema:
type: string
- name: x-api-key
in: header
description: 'API key for Authentication '
required: true
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/ReassignModelV1'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
description: Customer Code is invalid.
'401':
description: Customer Code is not authorized. Cannot reassign expense report line item.
'403':
description: Logged in user is not authorized to reassign report line item or Logged in user does not exist.
'503':
description: Service unavailable.
deprecated: false
/v1/expense-reports/{report-id}/line-items/{report-line-item-id}/return:
post:
tags:
- expense-approval-controller-v1
summary: Return an expense report line item
description: This web service allows an external application to return the specified expense report line item.
operationId: returnExpenseReportLineItemUsingPOST
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: logged-in-user-id
in: header
description: Unique ID for the approver logged in making request
required: true
schema:
type: string
- name: report-id
in: path
description: Report ID for report
required: true
schema:
type: string
- name: report-line-item-id
in: path
description: Report Line Item ID for report
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/NotesModel'
description: Note tied to Line Item Return
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 return expense report line item.
'403':
description: Logged in user is not authorized to return report or Logged in user does not exist.
'503':
description: Service unavailable.
deprecated: false
/v1/expense-reports/{reportId}:
delete:
tags:
- expense-approval-controller-v1
summary: Delete an expense report
description: This web service allows an external application to delete the specified expense report
operationId: deleteExpenseReportUsingDELETE
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: logged-in-user-id
in: header
description: Unique ID for the submitter 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. Expense report successfully deleted
content:
application/json:
schema:
type: object
'401':
description: Customer Code is not authorized. Cannot delete expense report.
'403':
description: Logged in user is not authorized to delete report or Logged in user does not exist.
'404':
description: Expense report not found
'503':
description: Service unavailable.
deprecated: false
/v1/expense-reports/{reportId}/approve:
post:
tags:
- expense-approval-controller-v1
summary: Approve an expense report
description: This web service allows an external application to approve the specified expense report
operationId: approveExpenseReportUsingPOST
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: logged-in-user-id
in: header
description: Unique ID for the approver 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
requestBody:
$ref: '#/components/requestBodies/NotesModel2'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
description: Customer Code is invalid.
'401':
description: Customer Code is not authorized. Cannot approve expense report.
'403':
description: Logged in user is not authorized to approve report or Logged in user does not exist.
'503':
description: Service unavailable.
deprecated: false
/v1/expense-reports/{reportId}/reassign:
post:
tags:
- expense-approval-controller-v1
summary: Reassign an expense report
description: This web service allows an external application to reassign the specified expense report to another approver for review
operationId: reassignExpenseReportUsingPOST
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: logged-in-user-id
in: header
description: Unique ID for the approver 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
requestBody:
$ref: '#/components/requestBodies/ReassignModelV1'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
description: Customer Code is invalid.
'401':
description: Customer Code is not authorized. Cannot reassign expense report.
'403':
description: Logged in user is not authorized to reassign report or Logged in user does not exist.
'503':
description: Service unavailable.
deprecated: false
/v1/expense-reports/{reportId}/return:
post:
tags:
- expense-approval-controller-v1
summary: Return an expense report
description: This web service allows an external application to return the specified expense report to the expense owner
operationId: returnExpenseReportUsingPOST
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: logged-in-user-id
in: header
description: Unique ID for the approver 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
requestBody:
$ref: '#/components/requestBodies/NotesModel'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
description: Customer Code is invalid.
'401':
description: Customer Code is not authorized. Cannot return expense report.
'403':
description: Logged in user is not authorized to return report or Logged in user does not exist.
'503':
description: Service unavailable.
deprecated: false
/v1/expense-reports/{reportId}/submit:
post:
tags:
- expense-approval-controller-v1
summary: Submit an expense report
description: This web service allows an external application to submit the specified expense report
operationId: submitExpenseReportUsingPOST
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: logged-in-user-id
in: header
description: Unique ID for the submitter 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
requestBody:
$ref: '#/components/requestBodies/ExpenseSubmit'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ExpenseSubmitResponse'
'400':
description: Customer Code is invalid.
'401':
description: Customer Code is not authorized. Cannot submit expense report.
'403':
description: Logged in user is not authorized to submit report or Logged in user does not exist.
'422':
description: Expense report has not been submitted. Report have some business rules violations
content:
application/json:
schema:
$ref: '#/components/schemas/ExpenseSubmitResponse'
'503':
description: Service unavailable.
deprecated: false
/v1/trip-reports-summary:
get:
tags:
- expense-approval-controller-v1
summary: Get trips and expense reports summary details
description: This web service allows an external application to get trips and expense reports summary details
operationId: getTripReportsSummaryUsingGET
parameters:
- name: chain-id
in: header
description: Used for tracking the flow of the request
required: true
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 for the user logged in making request
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/TripReportSummaryHeader'
'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
components:
schemas:
TripReportSummary:
type: object
properties:
amount:
type: number
example: 155.98
description: Total amount of expenses during trip
createDate:
type: string
format: date-time
currency:
type: string
example: USD
description: Currency of expenses during trip (ISO-4217)
miscellaneous:
type: array
description: List of record locators for trip segments (ie. Air/Rail segments)
items:
$ref: '#/components/schemas/RecordLocator'
name:
type: string
example: Trip to N.Z. 2023/10
description: Name of trip report. Max 45 characters
numberOfExpenseItems:
type: integer
format: int32
example: 3
description: Number of expense items during trip
reportDate:
type: string
format: date-time
description: Date report created
reportNumber:
type: string
example: 010009384720
description: 12 digit report ID
reportType:
type: string
example: report
description: Type of report
status:
type: string
example: Pending Approval
description: Status of trip report
tripEndDate:
type: string
format: date-time
description: End date of trip
tripStartDate:
type: string
format: date-time
description: Start date of trip
updateDate:
type: string
format: date-time
title: TripReportSummary
Comment:
type: object
properties:
comment:
type: string
example: Submitted via Chrome River Application. Max 2000 characters
createDate:
type: string
format: date-time
example: 2023-01-09 10:57:53+00:00
description: Date of comment creation.
creatorName:
type: string
example: Jason Klein
description: Name of comment author
title: Comment
ExpenseSubmit:
type: object
properties:
comment:
type: string
example: Submitted via API
description: Comment to add to report submission. Max 10000 characters
moveIncompleteLineItemsToNewReport:
type: boolean
example: true
description: Flag to indicate that incomplete line items should be moved to a new report before submission
responsesForWarnings:
type: object
description: 'Compliance warning responses. (ie. "302": "OK with no receipt")'
additionalProperties:
type: string
title: ExpenseSubmit
TripReportSummaryHeader:
type: object
properties:
totalRecords:
type: integer
format: int32
example: 1
description: Total number of records in trip report
tripReportSummaries:
type: array
description: List of trip report summaries
items:
$ref: '#/components/schemas/TripReportSummary'
title: TripReportSummaryHeader
LineItemAllocation:
type: object
properties:
allocationId:
type: string
example: 001109-600001_001109
description: Allocation identifier. Max 255 characters
allocationRefereceString:
type: string
example: 1000-7302-FirmPaid
description: Concatenated string of all allocation reference values. Max 1650 characters
allocationReference:
$ref: '#/components/schemas/LineItemAllocationReference'
amount:
type: number
example: 25
description: Amount of total expense due to allocation
amountSpentApproved:
type: number
example: 25
description: Amount of total approved expense due to allocation
clientName:
type: string
example: FIRM FUNCTIONS (CHICAGO)
description: Allocation client name. Max 130 characters
clientNumber:
type: string
example: 1000
description: Allocation number. Max 150 characters
costCodeOverride:
type: string
example: 617500
description: Cost code override value. Max 50 characters
description:
type: string
example: Athletics
description: Description of allocation. Max 255 characters
entityField1:
type: string
example: 801
description: Entity field. Max 50 characters
entityField2:
type: string
example: 700
description: Entity field. Max 50 characters
entityField3:
type: string
example: 9999
description: Entity field. Max 50 characters
glAccount:
type: string
example: 617500
description: GL account. Max 50 characters
isPersonal:
type: boolean
example: false
description: Indicates whether this is a personal allocation
matterOnSelect1:
type: string
description: Matter on select 1. Max 50 characters
matterOnSelect2:
type: string
description: Matter on select 2. Max 50 characters
number:
type: string
example: 001109-600001
description: Allocation number. Max 150 characters
percent:
type: number
example: 50
description: Percent of total expense due to allocation
type:
type: string
example: 1000
description: Allocation type. Max 10 characters
udf1:
type: string
example: General
description: User defined field. Max 50 characters
udf2:
type: string
example: PTBSM1
description: User defined field. Max 50 characters
udf3:
type: string
example: RCM2
description: User defined field. Max 50 characters
udf4:
type: string
description: User defined field. Max 50 characters
vatAmount:
type: number
example: 4.33
description: Amount of VAT tax
vatAmount2:
type: number
example: 4.33
description: Amount of VAT tax
vatAmount3:
type: number
example: 4.33
description: Amount of VAT tax
vatTaxCode:
type: string
example: HST
description: VAT tax code. Max 10 characters
vatTaxCode2:
type: string
example: GST
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 VAT tax
vatTaxPercentage3:
type: number
example: 5
description: Rate of VAT tax
title: LineItemAllocation
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
UserDefinedAttribute:
type: object
properties:
booleanValue:
type: boolean
description: Populated if UDA is a boolean value
currencyValue:
type: number
example: 100
description: Populated if UDA is a monetary value
dateValue:
type: string
format: date-time
description: Populated if UDA is a date value
entityValue:
$ref: '#/components/schemas/Entity'
entityValueInt:
type: integer
format: int32
example: 90
# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/emburse/refs/heads/main/openapi/emburse-expense-approval-controller-v1-api-openapi.yml