SAP Concur Expense Quick Expenses API

Create and manage quick expenses captured outside of a formal report. Quick expenses can be promoted to full expense report entries.

OpenAPI Specification

sap-concur-expense-quick-expenses-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: SAP Concur Expense Allocations Quick Expenses API
  description: SAP Concur Expense provides REST APIs for managing the full expense lifecycle including creating and submitting expense reports, managing individual expense entries, capturing receipt images, handling quick expenses, managing allocations across cost centers, and retrieving reimbursement payment batches. Authentication uses OAuth 2.0 with support for authorization code and refresh token flows.
  version: '3.0'
  contact:
    name: SAP Concur Developer Support
    url: https://developer.concur.com/support
  termsOfService: https://developer.concur.com/terms-of-use
servers:
- url: https://us.api.concursolutions.com/api/v3.0
  description: United States Production
- url: https://eu.api.concursolutions.com/api/v3.0
  description: Europe Production
- url: https://cn.api.concursolutions.com/api/v3.0
  description: China Production
security:
- OAuth2:
  - expense.report.read
  - expense.report.write
tags:
- name: Quick Expenses
  description: Create and manage quick expenses captured outside of a formal report. Quick expenses can be promoted to full expense report entries.
paths:
  /expense/quickexpenses:
    get:
      operationId: listQuickExpenses
      summary: List Quick Expenses
      description: Returns quick expenses for the current user. Quick expenses are unassigned expense records captured before being added to an expense report.
      tags:
      - Quick Expenses
      parameters:
      - name: offset
        in: query
        description: Starting page offset for pagination
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: Number of records to return per page (max 100)
        required: false
        schema:
          type: integer
          maximum: 100
      - name: modifiedDateBefore
        in: query
        description: Return quick expenses modified before this date
        required: false
        schema:
          type: string
          format: date-time
      - name: modifiedDateAfter
        in: query
        description: Return quick expenses modified after this date
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Success - Returns list of quick expenses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuickExpenseCollection'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
    post:
      operationId: createQuickExpense
      summary: Create Quick Expense
      description: Creates a new quick expense record. Quick expenses can be created without an associated expense report and promoted to a full report entry later.
      tags:
      - Quick Expenses
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuickExpenseCreate'
      responses:
        '200':
          description: Success - Returns the created quick expense ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuickExpenseCreateResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
  /expense/quickexpenses/{id}:
    get:
      operationId: getQuickExpense
      summary: Get Quick Expense
      description: Returns a single quick expense by its ID.
      tags:
      - Quick Expenses
      parameters:
      - name: id
        in: path
        description: The unique identifier of the quick expense
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success - Returns the quick expense
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuickExpense'
        '401':
          description: Unauthorized
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
    put:
      operationId: updateQuickExpense
      summary: Update Quick Expense
      description: Updates an existing quick expense record.
      tags:
      - Quick Expenses
      parameters:
      - name: id
        in: path
        description: The unique identifier of the quick expense
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuickExpenseUpdate'
      responses:
        '204':
          description: Success - No content returned
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
    delete:
      operationId: deleteQuickExpense
      summary: Delete Quick Expense
      description: Deletes a quick expense record.
      tags:
      - Quick Expenses
      parameters:
      - name: id
        in: path
        description: The unique identifier of the quick expense
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Success - No content returned
        '401':
          description: Unauthorized
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
components:
  schemas:
    QuickExpenseCollection:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/QuickExpense'
        NextPage:
          type: string
    QuickExpenseUpdate:
      type: object
      properties:
        ExpenseTypeCode:
          type: string
        TransactionDate:
          type: string
          format: date
        TransactionAmount:
          type: number
          format: double
        CurrencyCode:
          type: string
        Comment:
          type: string
        VendorDescription:
          type: string
    QuickExpense:
      type: object
      properties:
        QuickExpenseKey:
          type: string
          description: The unique identifier of the quick expense
        ExpenseTypeCode:
          type: string
          description: Expense type code
        ExpenseTypeName:
          type: string
          description: Human-readable expense type name
        TransactionDate:
          type: string
          format: date
          description: Date of the expense
        TransactionAmount:
          type: number
          format: double
          description: Amount of the expense
        CurrencyCode:
          type: string
          description: ISO 4217 currency code
        Comment:
          type: string
          description: Optional comment or description
        VendorDescription:
          type: string
          description: Vendor or merchant name
        LocationName:
          type: string
          description: Location name
        ReceiptImageID:
          type: string
          description: Associated receipt image ID
        OwnerLoginID:
          type: string
          description: Login ID of the expense owner
        URI:
          type: string
    QuickExpenseCreateResponse:
      type: object
      properties:
        ID:
          type: string
          description: The unique identifier of the created quick expense
        URI:
          type: string
    QuickExpenseCreate:
      type: object
      required:
      - TransactionDate
      - TransactionAmount
      - CurrencyCode
      properties:
        ExpenseTypeCode:
          type: string
          description: Expense type code
        TransactionDate:
          type: string
          format: date
          description: Date of the expense
        TransactionAmount:
          type: number
          format: double
          description: Amount of the expense
        CurrencyCode:
          type: string
          description: ISO 4217 currency code
        Comment:
          type: string
          description: Optional comment
        VendorDescription:
          type: string
          description: Vendor or merchant name
        LocationName:
          type: string
          description: Location of the expense
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://us.api.concursolutions.com/oauth2/v0/authorize
          tokenUrl: https://us.api.concursolutions.com/oauth2/v0/token
          scopes:
            expense.report.read: Read expense reports
            expense.report.write: Create and modify expense reports
            expense.report.delete: Delete expense reports
externalDocs:
  description: SAP Concur Expense API Reference
  url: https://developer.concur.com/api-reference/expense/