Emburse expense-approval-controller-v2 API
Approve, return and reassign expense reports using username or email of approver.
Approve, return and reassign expense reports using username or email of approver.
openapi: 3.0.0
info:
description: Api Documentation
version: '1.0'
title: Api Documentation Accounts expense-approval-controller-v2 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-v2
description: Approve, return and reassign expense reports using username or email of approver.
paths:
/v2/expense-report-approvals:
get:
tags:
- expense-approval-controller-v2
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_1
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: email-address
in: header
description: Unique email of the approver making a request
required: false
schema:
type: string
- name: person-unique-id
in: header
description: Unique ID of the approver making a request
required: false
schema:
type: string
- name: username
in: header
description: Unique user-name of the approver making a request
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;charset=UTF-8:
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
/v2/expense-report-approvals/count:
get:
tags:
- expense-approval-controller-v2
summary: Get count of reports for approval
description: This web service returns a count of expense reports awaiting approval by a user.
operationId: getExpenseReportCountUsingGET_1
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: email-address
in: header
description: Unique email of the approver making a request
required: false
schema:
type: string
- name: person-unique-id
in: header
description: Unique ID of the approver making a request
required: false
schema:
type: string
- name: username
in: header
description: Unique user-name of the approver making a request
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;charset=UTF-8:
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
/v2/expense-report-approvals/{reportId}:
get:
tags:
- expense-approval-controller-v2
summary: Get expense report details
description: This web service allows an external application to get the details of an expense report
operationId: getExpenseReportUsingGET_1
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: email-address
in: header
description: Unique email of the approver making a request
required: false
schema:
type: string
- name: person-unique-id
in: header
description: Unique ID of the approver making a request
required: false
schema:
type: string
- name: reportId
in: path
description: Report ID for report
required: true
schema:
type: string
- name: username
in: header
description: Unique user-name of the approver making a request
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;charset=UTF-8:
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
/v2/expense-reports/{reportId}/approve:
post:
tags:
- expense-approval-controller-v2
summary: Approve an expense report
description: This web service allows an external application to approve a specified expense report
operationId: approveExpenseReportUsingPOST_1
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: email-address
in: header
description: Unique email of the approver making a request
required: false
schema:
type: string
- name: person-unique-id
in: header
description: Unique ID of the approver making a request
required: false
schema:
type: string
- name: reportId
in: path
description: Report ID for report
required: true
schema:
type: string
- name: username
in: header
description: Unique user-name of the approver making a request
required: false
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;charset=UTF-8:
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
/v2/expense-reports/{reportId}/reassign:
post:
tags:
- expense-approval-controller-v2
summary: Reassign an expense report
description: This web service allows an external application to reassign a specified expense report to another approver for review
operationId: reassignExpenseReportUsingPOST_1
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: email-address
in: header
description: Unique email of the approver making a request
required: false
schema:
type: string
- name: person-unique-id
in: header
description: Unique ID of the approver making a request
required: false
schema:
type: string
- name: reportId
in: path
description: Report ID for report
required: true
schema:
type: string
- name: username
in: header
description: Unique user-name of the approver making a request
required: false
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/ReassignModelV2'
description: Payload required to do a reassign
required: true
responses:
'200':
description: OK
content:
application/json;charset=UTF-8:
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
/v2/expense-reports/{reportId}/return:
post:
tags:
- expense-approval-controller-v2
summary: Return an expense report
description: This web service allows an external application to return a specified expense report to the expense owner
operationId: returnExpenseReportUsingPOST_1
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: email-address
in: header
description: Unique email of the approver making a request
required: false
schema:
type: string
- name: person-unique-id
in: header
description: Unique ID of the approver making a request
required: false
schema:
type: string
- name: reportId
in: path
description: Report ID for report
required: true
schema:
type: string
- name: username
in: header
description: Unique user-name of the approver making a request
required: false
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;charset=UTF-8:
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
/v2/expense-reports/{reportId}/submit:
post:
tags:
- expense-approval-controller-v2
summary: Submit an expense report
description: This web service allows an external application to submit a specified expense report
operationId: submitExpenseReportUsingPOST_1
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: email-address
in: header
description: Unique email of the submitter making a request
required: false
schema:
type: string
- name: person-unique-id
in: header
description: Unique ID of the submitter making a request
required: false
schema:
type: string
- name: reportId
in: path
description: Report ID for report
required: true
schema:
type: string
- name: username
in: header
description: Unique user-name of the submitter making a request
required: false
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;charset=UTF-8:
schema:
$ref: '#/components/schemas/ExpenseSubmitResponse'
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;charset=UTF-8:
schema:
$ref: '#/components/schemas/ExpenseSubmitResponse'
application/json:
schema:
$ref: '#/components/schemas/ExpenseSubmitResponse'
'503':
description: Service unavailable.
deprecated: false
components:
schemas:
ExpenseSubmitResponse:
type: object
properties:
complianceItems:
type: array
description: List of compliance issues associated with report
items:
$ref: '#/components/schemas/ComplianceItem'
hasComplianceItems:
type: boolean
description: Indicates if compliance issues are associated with report
submitted:
type: boolean
title: ExpenseSubmitResponse
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
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
CountModel:
type: object
properties:
reportsToApprove:
type: integer
format: int32
example: 9
description: The number of expense reports awaiting approval by approver.
title: CountModel
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
ReassignModelV2:
type: object
required:
- note
properties:
assignedEntityCode:
type: string
example: 4404291000
description: Entity Code for the group to which the report is assigned. Must be used with assignedRoleName, and assignedEntityTypeCode. Max 50 characters
assignedEntityTypeCode:
type: string
example: DEPT
description: Entity Type Code for the group to which the report is assigned. Must be used with assignedRoleName, and assignedEntityCode. Max 32 characters
assignedRoleName:
type: string
example: Part Of
description: Role Name for the group to which the report is assigned. Must be used with assignedEntityCode, and assignedEntityTypeCode. Max 50 characters
assignedUserEmailAddress:
type: string
example: lsuarez@chromeriver.com
description: Unique Email for user to whom the report is assigned to. If provided, 'assignedUserName' and 'assignedUserUniqueId' are not required. Max 100 characters
assignedUserName:
type: string
example: lsuarez
description: Unique username for user to whom the report is assigned to. If provided, 'assignedUserUniqueId' and 'assignedUserEmailAddress' are not required. Max 50 characters
assignedUserUniqueId:
type: string
example: lsuarez
description: Unique ID for user to whom the report is assigned to. If provided, 'assignedUserName' and 'assignedUserEmailAddress' are not required. Max 100 characters
note:
type: string
example: Please review this pre-approval report
description: Any comment/note that will be tied with the Reassign. Max 2000 characters
title: ReassignModelV2
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
# --- truncated at 32 KB (49 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/emburse/refs/heads/main/openapi/emburse-expense-approval-controller-v2-api-openapi.yml