SAP Concur Expense · Arazzo Workflow

SAP Concur Attach Receipt to Entry

Version 1.0.0

Create an expense entry, upload a receipt image, and confirm the stored image.

1 workflow 1 source API 1 provider
View Spec View on GitHub Expense ManagementFinancial ManagementReceiptsReimbursementReportingSAPTravelArazzoWorkflows

Provider

sap-concur-expense

Workflows

attach-receipt-to-entry
Create an expense entry and upload a receipt image for it.
Creates an expense entry on a report, uploads a receipt image, and reads the stored receipt image back to confirm its URL.
3 steps inputs: expenseTypeCode, receiptImage, reportID, transactionAmount, transactionCurrencyCode, transactionDate outputs: entryID, receiptImageID, receiptImageURL
1
createEntry
createExpenseEntry
Create the expense entry on the report.
2
uploadReceipt
createReceiptImage
Upload the receipt image as a PNG binary body.
3
getReceipt
getReceiptImage
Read the uploaded receipt image back to confirm its accessible URL.

Source API Descriptions

Arazzo Workflow Specification

sap-concur-expense-attach-receipt-to-entry-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: SAP Concur Attach Receipt to Entry
  summary: Create an expense entry, upload a receipt image, and confirm the stored image.
  description: >-
    Documents the receipt-capture path for an expense line item. The workflow
    creates an expense entry on an existing report, uploads a receipt image as
    binary content, and then retrieves the stored receipt by its returned ID to
    confirm the accessible image URL. Because the upload operation accepts the
    image as a raw binary body rather than an entry reference, the association is
    verified by reading the uploaded image back. Every step spells out its
    request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: sapConcurExpense
  url: ../openapi/sap-concur-expense-report-openapi.yml
  type: openapi
workflows:
- workflowId: attach-receipt-to-entry
  summary: Create an expense entry and upload a receipt image for it.
  description: >-
    Creates an expense entry on a report, uploads a receipt image, and reads the
    stored receipt image back to confirm its URL.
  inputs:
    type: object
    required:
    - reportID
    - expenseTypeCode
    - transactionDate
    - transactionAmount
    - transactionCurrencyCode
    - receiptImage
    properties:
      reportID:
        type: string
        description: The existing draft report ID to add the entry to.
      expenseTypeCode:
        type: string
        description: Expense type code for the entry.
      transactionDate:
        type: string
        description: Date of the expense transaction (YYYY-MM-DD).
      transactionAmount:
        type: number
        description: Amount of the transaction.
      transactionCurrencyCode:
        type: string
        description: ISO 4217 currency code of the transaction.
      receiptImage:
        type: string
        description: Base64 or binary content of the receipt image to upload.
  steps:
  - stepId: createEntry
    description: Create the expense entry on the report.
    operationId: createExpenseEntry
    requestBody:
      contentType: application/json
      payload:
        ReportID: $inputs.reportID
        ExpenseTypeCode: $inputs.expenseTypeCode
        TransactionDate: $inputs.transactionDate
        TransactionAmount: $inputs.transactionAmount
        TransactionCurrencyCode: $inputs.transactionCurrencyCode
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      entryID: $response.body#/ID
  - stepId: uploadReceipt
    description: Upload the receipt image as a PNG binary body.
    operationId: createReceiptImage
    requestBody:
      contentType: image/png
      payload: $inputs.receiptImage
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      receiptImageID: $response.body#/ID
  - stepId: getReceipt
    description: Read the uploaded receipt image back to confirm its accessible URL.
    operationId: getReceiptImage
    parameters:
    - name: id
      in: path
      value: $steps.uploadReceipt.outputs.receiptImageID
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      receiptImageURL: $response.body#/ReceiptImageURL
  outputs:
    entryID: $steps.createEntry.outputs.entryID
    receiptImageID: $steps.uploadReceipt.outputs.receiptImageID
    receiptImageURL: $steps.getReceipt.outputs.receiptImageURL