openapi: 3.1.0 info: title: SAP Concur Expense Allocations Receipt Images 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: Receipt Images description: Upload and retrieve receipt images associated with expense entries. Supports PNG, JPG, PDF, and TIFF image formats. paths: /expense/receiptimages: get: operationId: listReceiptImages summary: List Receipt Images description: Returns a collection of receipt images associated with expense entries for the current user. tags: - Receipt Images 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: entryID in: query description: Filter receipt images by expense entry ID required: false schema: type: string responses: '200': description: Success - Returns list of receipt images content: application/json: schema: $ref: '#/components/schemas/ReceiptImageCollection' '401': description: Unauthorized '500': description: Internal Server Error post: operationId: createReceiptImage summary: Upload Receipt Image description: Uploads a new receipt image. The image can be in PNG, JPG, PDF, or TIFF format and will be associated with an expense entry. tags: - Receipt Images requestBody: required: true content: image/png: schema: type: string format: binary image/jpeg: schema: type: string format: binary application/pdf: schema: type: string format: binary responses: '200': description: Success - Returns receipt image ID content: application/json: schema: $ref: '#/components/schemas/ReceiptImageCreateResponse' '400': description: Bad Request '401': description: Unauthorized '500': description: Internal Server Error /expense/receiptimages/{id}: get: operationId: getReceiptImage summary: Get Receipt Image description: Returns the receipt image URL for the specified image ID. tags: - Receipt Images parameters: - name: id in: path description: The unique identifier of the receipt image required: true schema: type: string responses: '200': description: Success - Returns the receipt image content: application/json: schema: $ref: '#/components/schemas/ReceiptImage' '401': description: Unauthorized '404': description: Not Found '500': description: Internal Server Error delete: operationId: deleteReceiptImage summary: Delete Receipt Image description: Deletes a receipt image by its ID. tags: - Receipt Images parameters: - name: id in: path description: The unique identifier of the receipt image 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: ReceiptImageCreateResponse: type: object properties: ID: type: string description: The unique identifier of the uploaded receipt image URI: type: string ReceiptImageCollection: type: object properties: Items: type: array items: $ref: '#/components/schemas/ReceiptImage' NextPage: type: string ReceiptImage: type: object properties: ID: type: string description: The unique identifier of the receipt image EntryID: type: string description: The associated expense entry ID ReceiptImageURL: type: string description: Temporary URL to access the receipt image IsRequired: type: boolean description: Whether a receipt image is required for this entry URI: type: string 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/