SAP Concur Expense Reports API

Manage expense reports

OpenAPI Specification

concur-expense-reports-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: SAP Concur Expense Expense Reports API
  description: REST API for managing expense reports, entries, allocations, and attendees. Supports creating, updating, and submitting expense reports with receipt images, policy validation, and approval workflows.
  version: '4.0'
  contact:
    name: SAP Concur Developer Support
    url: https://developer.concur.com/
  x-generated-from: documentation
  x-last-validated: '2026-04-18'
servers:
- url: https://us.api.concursolutions.com
  description: US Production
- url: https://emea.api.concursolutions.com
  description: EMEA Production
security:
- bearerAuth: []
tags:
- name: Expense Reports
  description: Manage expense reports
paths:
  /expensereports/v4/users/{userId}/context/{contextType}/reports:
    get:
      operationId: getExpenseReports
      summary: SAP Concur Get Expense Reports
      description: Retrieves all expense reports for the specified user and context.
      tags:
      - Expense Reports
      parameters:
      - name: userId
        in: path
        required: true
        description: The unique identifier of the user.
        schema:
          type: string
      - name: contextType
        in: path
        required: true
        description: The context type for the reports (TRAVELER, PROXY, etc.).
        schema:
          type: string
          enum:
          - TRAVELER
          - PROXY
          - APPROVER
      responses:
        '200':
          description: Successfully retrieved expense reports.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseReportCollection'
              examples:
                GetExpenseReports200Example:
                  summary: Default getExpenseReports 200 response
                  x-microcks-default: true
                  value:
                    reports:
                    - reportId: '500123'
                      reportName: Q1 Travel Expenses
                      ownerName: Jane Smith
                      submitDate: '2026-03-15T14:30:00Z'
                      approvalStatus: SUBMITTED
                      total: 2450.75
                      currencyCode: USD
        '401':
          description: Unauthorized - invalid or missing authentication.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createExpenseReport
      summary: SAP Concur Create Expense Report
      description: Creates a new expense report for the specified user.
      tags:
      - Expense Reports
      parameters:
      - name: userId
        in: path
        required: true
        description: The unique identifier of the user.
        schema:
          type: string
      - name: contextType
        in: path
        required: true
        description: The context type for the report.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpenseReportCreate'
            examples:
              CreateExpenseReportRequestExample:
                summary: Default createExpenseReport request
                x-microcks-default: true
                value:
                  reportName: Q1 Travel Expenses
                  businessPurpose: Client meetings in New York
                  countryCode: US
                  currencyCode: USD
                  reportDate: '2026-03-15'
      responses:
        '201':
          description: Expense report created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseReport'
        '400':
          description: Bad request - invalid report data.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /expensereports/v4/reports/{reportId}:
    get:
      operationId: getExpenseReport
      summary: SAP Concur Get Expense Report by ID
      description: Retrieves a specific expense report by its identifier.
      tags:
      - Expense Reports
      parameters:
      - name: reportId
        in: path
        required: true
        description: The unique identifier of the expense report.
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved the expense report.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseReport'
        '404':
          description: Report not found.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    ExpenseReport:
      type: object
      description: An expense report containing expense entries.
      properties:
        reportId:
          type: string
          description: Unique identifier for the expense report.
          example: '500123'
        reportName:
          type: string
          description: Name of the expense report.
          example: Q1 Travel Expenses
        ownerName:
          type: string
          description: Full name of the report owner.
          example: Jane Smith
        businessPurpose:
          type: string
          description: Business purpose for the expenses.
          example: Client meetings in New York
        submitDate:
          type: string
          format: date-time
          description: Date the report was submitted.
          example: '2026-03-15T14:30:00Z'
        approvalStatus:
          type: string
          description: Current approval status of the report.
          enum:
          - NOT_SUBMITTED
          - SUBMITTED
          - APPROVED
          - SENT_BACK
          - RECALLED
          example: SUBMITTED
        total:
          type: number
          format: double
          description: Total amount of all expenses in the report.
          example: 2450.75
        currencyCode:
          type: string
          description: ISO 4217 currency code.
          example: USD
        countryCode:
          type: string
          description: ISO country code.
          example: US
        reportDate:
          type: string
          format: date
          description: Date of the report.
          example: '2026-03-15'
    ExpenseReportCollection:
      type: object
      description: Collection of expense reports.
      properties:
        reports:
          type: array
          items:
            $ref: '#/components/schemas/ExpenseReport'
    ExpenseReportCreate:
      type: object
      description: Request body for creating a new expense report.
      required:
      - reportName
      - currencyCode
      properties:
        reportName:
          type: string
          description: Name of the expense report.
          example: Q1 Travel Expenses
        businessPurpose:
          type: string
          description: Business purpose for the expenses.
          example: Client meetings in New York
        countryCode:
          type: string
          description: ISO country code.
          example: US
        currencyCode:
          type: string
          description: ISO 4217 currency code.
          example: USD
        reportDate:
          type: string
          format: date
          description: Date of the report.
          example: '2026-03-15'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 Bearer Token authentication.