Emburse expense-approval-controller-v1 API

Approve, return and reassign expense reports.

Operations 13

GET /v1/expense-report-approvals Get list of reports for approval #
GET /v1/expense-report-approvals/count Get count of reports for approval #
GET /v1/expense-report-approvals/{reportId} Get expense report details #
POST /v1/expense-report-approvals/{reportId}/submit Submit an expense report for approval #
POST /v1/expense-reports/{report-id}/line-items/{report-line-item-id}/approve Approve an expense report line item #
POST /v1/expense-reports/{report-id}/line-items/{report-line-item-id}/reassign Reassign an expense report line item #
POST /v1/expense-reports/{report-id}/line-items/{report-line-item-id}/return Return an expense report line item #
DELETE /v1/expense-reports/{reportId} Delete an expense report #
POST /v1/expense-reports/{reportId}/approve Approve an expense report #
POST /v1/expense-reports/{reportId}/reassign Reassign an expense report #
POST /v1/expense-reports/{reportId}/return Return an expense report #
POST /v1/expense-reports/{reportId}/submit Submit an expense report #
GET /v1/trip-reports-summary Get trips and expense reports summary details #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/emburse-expense-approval-controller-v1-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

emburse-expense-approval-controller-v1-api-openapi.yml Raw ↑
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