SAP Concur Expense Expense Entries API

Manage individual expense line items within expense reports including itemizations, attendees, and custom fields.

Operations 5

GET /expense/entries List Expense Entries #
POST /expense/entries Create Expense Entry #
GET /expense/entries/{id} Get Expense Entry #
PUT /expense/entries/{id} Update Expense Entry #
DELETE /expense/entries/{id} Delete Expense Entry #

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/sap-concur-expense-expense-entries-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

sap-concur-expense-expense-entries-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SAP Concur Expense Allocations Expense Entries 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: Expense Entries
  description: Manage individual expense line items within expense reports including itemizations, attendees, and custom fields.
paths:
  /expense/entries:
    get:
      operationId: listExpenseEntries
      summary: List Expense Entries
      description: Returns a collection of expense entries for the specified report ID. Each entry represents a single expense line item with amount, date, category, and supporting details.
      tags:
      - Expense Entries
      parameters:
      - name: reportID
        in: query
        description: The unique identifier of the expense report
        required: true
        schema:
          type: string
      - 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
      responses:
        '200':
          description: Success - Returns list of expense entries
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseEntryCollection'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
    post:
      operationId: createExpenseEntry
      summary: Create Expense Entry
      description: Creates a new expense entry within an expense report. The report must exist and be in draft state. The entry requires an expense type code, transaction date, and transaction amount.
      tags:
      - Expense Entries
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpenseEntryCreate'
      responses:
        '200':
          description: Success - Returns the created entry ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseEntryCreateResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
  /expense/entries/{id}:
    get:
      operationId: getExpenseEntry
      summary: Get Expense Entry
      description: Returns a single expense entry by its ID, including all form field values, itemizations, and attendee information.
      tags:
      - Expense Entries
      parameters:
      - name: id
        in: path
        description: The unique identifier of the expense entry
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success - Returns the expense entry
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseEntry'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
    put:
      operationId: updateExpenseEntry
      summary: Update Expense Entry
      description: Updates an existing expense entry. Only entries in draft reports can be modified.
      tags:
      - Expense Entries
      parameters:
      - name: id
        in: path
        description: The unique identifier of the expense entry
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpenseEntryUpdate'
      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: deleteExpenseEntry
      summary: Delete Expense Entry
      description: Deletes an expense entry from a draft expense report.
      tags:
      - Expense Entries
      parameters:
      - name: id
        in: path
        description: The unique identifier of the expense entry
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Success - No content returned
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
components:
  schemas:
    ExpenseEntryCollection:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/ExpenseEntry'
        NextPage:
          type: string
          description: URL to the next page of results
    ExpenseEntryCreate:
      type: object
      required:
      - ReportID
      - ExpenseTypeCode
      - TransactionDate
      - TransactionAmount
      - TransactionCurrencyCode
      properties:
        ReportID:
          type: string
          description: The parent expense report ID
        ExpenseTypeCode:
          type: string
          description: Expense type code
        TransactionDate:
          type: string
          format: date
          description: Date of the expense transaction
        TransactionAmount:
          type: number
          format: double
          description: Amount of the transaction
        TransactionCurrencyCode:
          type: string
          description: ISO 4217 currency code
        BusinessPurpose:
          type: string
          description: Business purpose for the expense
        VendorDescription:
          type: string
          description: Vendor or merchant name
        LocationName:
          type: string
          description: Location where expense was incurred
        Comment:
          type: string
          description: Additional notes
    ExpenseEntry:
      type: object
      properties:
        ID:
          type: string
          description: The unique identifier of the expense entry
        ReportID:
          type: string
          description: The parent expense report ID
        ExpenseTypeCode:
          type: string
          description: Expense type code (e.g., BUSML, AIRFR, HOTEL)
        ExpenseTypeName:
          type: string
          description: Human-readable expense type name
        TransactionDate:
          type: string
          format: date
          description: Date of the expense transaction
        TransactionAmount:
          type: number
          format: double
          description: Amount of the transaction in transaction currency
        TransactionCurrencyCode:
          type: string
          description: ISO 4217 currency code of the transaction
        PostedAmount:
          type: number
          format: double
          description: Amount posted in report currency
        BusinessPurpose:
          type: string
          description: Business purpose for the expense
        VendorDescription:
          type: string
          description: Name of the vendor or merchant
        LocationName:
          type: string
          description: Location where expense was incurred
        IsItemized:
          type: boolean
          description: Whether the entry has been itemized
        HasVAT:
          type: boolean
          description: Whether VAT tax applies to this entry
        ReceiptImageID:
          type: string
          description: ID of the associated receipt image
        URI:
          type: string
          description: URI to retrieve this resource
    ExpenseEntryUpdate:
      type: object
      properties:
        ExpenseTypeCode:
          type: string
          description: Updated expense type code
        TransactionDate:
          type: string
          format: date
          description: Updated transaction date
        TransactionAmount:
          type: number
          format: double
          description: Updated transaction amount
        BusinessPurpose:
          type: string
          description: Updated business purpose
        VendorDescription:
          type: string
          description: Updated vendor description
        Comment:
          type: string
          description: Updated comment
    ExpenseEntryCreateResponse:
      type: object
      properties:
        ID:
          type: string
          description: The unique identifier of the created expense entry
        URI:
          type: string
          description: URI of the created resource
  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/