Ellipse Gradient for Header
SAP Concur logo

SAP Concur Integration Guide

Connect SAP Concur travel, expense, invoice, user, and receipt data with enterprise systems through REST APIs, OAuth 2.0, selective event notifications, and workflow orchestration.

SAP Concur integration options at a glance

SAP Concur integrations are primarily API-led, with product-specific REST APIs for Expense, Invoice, Travel, User Administration, and supporting resources. OAuth 2.0 provides application authentication, while event notifications are available for selected products, resources, and lifecycle events rather than every object. Receipt and supporting-document APIs can handle metadata and binary content, and some products provide batch or asynchronous processing. Where events are unavailable, scheduled incremental synchronization can use timestamps, status filters, pagination, and checkpoints. Martini can consume these APIs, receive supported notifications, transform SAP Concur JSON and files, and coordinate downstream workflows.

Integration pointSupported by SAP Concur?Common use casesHow Martini supports it
REST APIsYesProduct-specific APIs support Expense, Invoice, Travel, User Administration, receipts, and related SAP Concur resources. They are the recommended starting point for current integrations.Martini can consume SAP Concur REST APIs from workflows, map JSON payloads, orchestrate calls, and expose an API façade over selected operations.
AuthenticationYesOAuth 2.0 uses registered application credentials, access and refresh tokens, scopes, and tenant or company authorization.Martini can centralize token acquisition and refresh in reusable workflow logic and keep client secrets and refresh tokens in secure environment configuration.
Webhooks / outbound callbacksLimitedThe Event Notification Service supports selected products, resources, and events; coverage is not universal across SAP Concur objects or state transitions.Martini can expose an API endpoint or workflow trigger to receive supported notifications, validate them, retrieve current data, and fall back to polling when necessary.
SOAP APIsLegacyHistorical SOAP and web-service integrations may remain relevant for product-specific or legacy operations, but REST is preferred for new work where available.Martini can consume SOAP services using SOAP configuration and XML mapping when a required operation is not available through a current REST API.
Bulk / async / batch APIsLimitedBatch-oriented or asynchronous processing exists in some product areas, but availability and behavior vary by API and resource.Martini can use confirmed batch endpoints or implement controlled pagination, batching, and retryable workflows where bulk operations are unavailable.
File / attachment APIsLimitedReceipt and supporting-document APIs can provide receipt metadata, images, attachments, or related binary content for relevant products.Martini can retrieve or send files, transform metadata, route content to repositories or finance systems, and handle content type and duplicate controls.
Scheduled synchronizationYesTimestamp filters, status filters, pagination, continuation tokens, and durable checkpoints support incremental retrieval when event coverage is unavailable.Martini can schedule workflows, persist checkpoints, use overlap windows, and apply idempotent upserts to synchronize SAP Concur data reliably.
Database / analytics accessNoDirect customer database access was not confirmed. Integrations should use supported APIs or approved export and reporting mechanisms.Martini can consume approved APIs or files but should not be designed around direct SAP Concur database access.

How SAP Concur exposes data and business events

SAP Concur REST APIs

REST is SAP Concur’s principal current integration mechanism. Product-specific APIs cover Expense, Invoice, Travel, User Administration, receipts, and supporting resources, with differences in versions, fields, permissions, and pagination behavior.

Martini implementation pattern

Martini implementation pattern: a workflow obtains or refreshes an OAuth 2.0 token, calls the applicable SAP Concur resource, follows pagination, maps the response into a canonical model, applies business rules, and writes the result to a target system or returns it through a Martini API.

Implementation sequence

Obtain or refresh the SAP Concur OAuth token
Call the product-specific REST resource
Follow pagination or continuation information
Retrieve related objects such as entries or receipts
Map the response to the target model
Apply validation and business rules agreement?

SAP Concur event notifications

SAP Concur provides event-notification capabilities for selected products, resources, and events. Notifications should be treated as selective rather than universal and verified for the relevant tenant and environment.

Martini implementation pattern

Martini implementation pattern: expose a controlled API endpoint or workflow trigger, authenticate and validate the notification, retrieve the current SAP Concur resource when the event is accepted, and use scheduled polling for objects or transitions without event coverage.

Implementation sequence

Receive the supported SAP Concur notification
Validate the event source and required security information
Identify the product, resource, and lifecycle event
Retrieve the current SAP Concur object
Process the event idempotently
Record the checkpoint and route failures for retry

SAP Concur SOAP services

SAP Concur has historically provided SOAP and older web-service integrations. These are legacy or product-specific options and should only be selected after confirming that the required operation is not available through REST.

Martini implementation pattern

Martini implementation pattern: configure a SOAP-consuming workflow, send the required XML request, map the XML response into a canonical model, and isolate the legacy service behind reusable integration logic.

Implementation sequence

Confirm that the required operation still requires SOAP
Configure the SAP Concur SOAP endpoint and authentication
Build the XML request from canonical input
Call the SOAP service
Map the XML response and faults
Apply retry and exception handling

SAP Concur receipt and attachment APIs

SAP Concur supports receipt and supporting-document use cases through product-specific APIs. These integrations may combine JSON metadata with receipt images or other binary content.

Martini implementation pattern

Martini implementation pattern: retrieve receipt metadata and content, correlate each file to its Expense Report and Expense Entry, validate content properties, and route the document to an ERP, repository, or audit platform.

Implementation sequence

Identify the related Expense Report or Expense Entry
Retrieve receipt metadata and binary content
Validate content type, size, and required identifiers
Map metadata to the target document model
Store or transmit the receipt content
Record the source and target correlation identifiers

Common SAP Concur integration patterns

Pattern 1: Sync expense reports to a finance system

When to use this pattern

Use this pattern when approved or changed employee expenses must be posted to an ERP or finance platform. It supports scheduled retrieval or event-assisted processing and accommodates related entries, allocations, and receipts.

Integration direction
SAP Concur
Martini
NetSuite
Example Mapping
SAP Concur FieldCanonical FieldTarget Field
Expense Report IDsourceExpenseReportIdexternalId
Report StatusapprovalStatustransactionStatus
Total AmounttotalAmountexpenseTotal
Expense EntrieslineItemsexpenseLines
Martini implementation pattern

A scheduled Martini workflow retrieves changed or approved Expense Reports, loads related Expense Entries and accounting data, validates required dimensions, maps the canonical expense model to the target transaction, and performs an idempotent upsert. Rate-limit and transient failures use bounded retries, while validation failures are routed for review.

Martini capabilities used
  • scheduled workflows
  • API consumption
  • data mapping
  • business rules
  • idempotency
  • error handling

Pattern 2: Synchronize invoices with an ERP

When to use this pattern

Use this pattern when SAP Concur Invoices must be transferred into accounts-payable or general-ledger processes. It is useful for validating supplier, purchase-order, tax, and cost-center information before posting.

Integration direction
SAP Concur
Martini
SAP S/4HANA
Example Mapping
SAP Concur FieldCanonical FieldTarget Field
Invoice IDsourceInvoiceIdexternalReference
SuppliersupplierReferencesupplier
Invoice NumberinvoiceNumberdocumentNumber
Invoice StatusapprovalStatusworkflowStatus
Martini implementation pattern

Martini polls or receives a supported event for an Invoice, retrieves the current resource, validates accounting and supplier references, and creates or updates the ERP invoice. Duplicate invoice numbers, missing purchase-order references, and unsupported tax codes are routed to an exception path rather than posted blindly.

Martini capabilities used
  • workflow orchestration
  • REST API consumption
  • validation
  • field mapping
  • conditional routing
  • retry handling

Pattern 3: Distribute receipts to a document repository

When to use this pattern

Use this pattern when receipt images and supporting documents must be retained for audit, compliance, or downstream review outside SAP Concur.

Integration direction
SAP Concur
Martini
Microsoft SharePoint
Example Mapping
SAP Concur FieldCanonical FieldTarget Field
Receipt IDsourceDocumentIdexternalDocumentId
Expense Report IDreportReferenceexpenseReportReference
File ContentdocumentContentfileContent
Content TypemimeTypecontentType
Martini implementation pattern

A Martini workflow retrieves receipt metadata and binary content, preserves the relationship to the Expense Report and Expense Entry, validates file properties, and writes the document to the repository. Deterministic correlation keys prevent duplicate storage, and content-transfer failures are retried without repeating successful metadata processing.

Martini capabilities used
  • file handling
  • API consumption
  • data mapping
  • correlation keys
  • workflow orchestration
  • error handling

Pattern 4: Synchronize users and organizational data

When to use this pattern

Use this pattern when employee, traveler, approver, department, or cost-center data must be aligned between SAP Concur and an authoritative workforce or finance application.

Integration direction
Workday
Martini
SAP Concur
Example Mapping
SAP Concur FieldCanonical FieldTarget Field
User IDemployeeIduserId
EmailworkEmailemail
DepartmentdepartmentCodeorganization
Active StatusisActiveenabled
Martini implementation pattern

Martini schedules incremental retrieval from the authoritative system or SAP Concur, normalizes identifiers and organizational fields, validates required attributes, and applies source-of-truth rules before updating the target. Checkpoints, overlap windows, and idempotent updates protect against missed or repeated changes.

Martini capabilities used
  • scheduled workflows
  • incremental synchronization
  • data transformation
  • business rules
  • checkpointing
  • idempotent updates

Applications commonly integrated with SAP Concur

SAP Concur commonly participates in enterprise finance, workforce, procurement, workflow, and document-management architectures. The following applications represent practical integration targets; they do not imply that SAP Concur provides a dedicated native integration for each product.

Application Scenario Direction Martini Pattern
SAP S/4HANA Transfer approved expenses, supplier invoices, accounting distributions, and payment-related information into SAP finance processes. SAP Concur → Martini → SAP S/4HANA A scheduled or event-assisted workflow retrieves approved Expense Reports and Invoices, enriches accounting dimensions, validates required fields, and performs idempotent upserts into SAP finance processes. Failures are routed for retry or review.
SAP Ariba Coordinate supplier, procurement, invoice, and spend-management processes across SAP applications. SAP Ariba → Martini → SAP Concur Martini orchestrates approved supplier or purchasing data with SAP Concur invoice workflows, applying validation and correlation rules before forwarding results to the appropriate finance process.
NetSuite Post approved Expense Reports and Invoices into financial records and synchronize employees or accounting dimensions. SAP Concur → Martini → NetSuite A workflow obtains changed SAP Concur objects, retrieves related entries and allocations, maps them to NetSuite transaction fields, and stores source-to-target identifiers to prevent duplicate posting.
Workday Synchronize employees, organizational structures, cost centers, and expense-related worker data. Workday → Martini → SAP Concur Martini schedules incremental user and organizational synchronization, normalizes identifiers and organizational fields, validates required attributes, and applies controlled updates to SAP Concur or the authoritative downstream system.
Salesforce Associate travel or expense information with customers, projects, opportunities, or employees where business processes require it. SAP Concur → Martini → Salesforce Martini filters relevant approved expense or travel information, maps business references to Salesforce objects, and uses correlation keys and retry handling for downstream updates.
ServiceNow Route expense or invoice exceptions, approvals, and service cases into operational workflows. SAP Concur → Martini → ServiceNow A workflow validates SAP Concur status and accounting data, creates or updates a ServiceNow case for exceptions, and correlates subsequent status changes without exposing sensitive payloads in logs.
Microsoft Dynamics 365 Finance Transfer approved expenses and invoices into general-ledger, accounts-payable, and employee-reimbursement processes. SAP Concur → Martini → Microsoft Dynamics 365 Finance Martini retrieves incremental SAP Concur data, transforms accounting and tax values, validates required references, and submits transactions with bounded retries and duplicate prevention.
Microsoft SharePoint Store receipt images and supporting documents for audit, retention, or downstream review. SAP Concur → Martini → Microsoft SharePoint Martini retrieves receipt metadata and binary content, preserves Expense Report and Expense Entry relationships, validates file properties, and writes documents with deterministic naming and retry handling.

How to build a SAP Concur integration in Martini

Objective

Establish SAP Concur application authorization and isolate credentials by environment before implementing business flows.

Instructions in Martini

  • Register or use the approved SAP Concur application
  • Configure OAuth 2.0 client credentials, scopes, and tenant authorization
  • Store client secrets and refresh tokens in Martini secure environment configuration
  • Use separate development, test, and production credentials

Objective

Select event-driven, scheduled, or API-led execution based on the SAP Concur resource and its confirmed event coverage.

Instructions in Martini

  • Use a Martini API or workflow trigger for supported SAP Concur notifications
  • Use a scheduler for resources without suitable event coverage
  • Define timestamp, status, pagination, and checkpoint behavior
  • Expose a controlled Martini API when downstream systems need an abstraction layer

Objective

Call the applicable SAP Concur product API and obtain complete resource data without assuming uniform behavior across products.

Instructions in Martini

  • Acquire or refresh the OAuth access token
  • Call the relevant Expense, Invoice, Travel, User, or supporting-data API
  • Follow documented pagination or continuation links
  • Retrieve related Expense Entries, allocations, Users, or Receipts when required

Objective

Coordinate retrieval, enrichment, validation, target writes, and exception handling in a maintainable Martini workflow.

Instructions in Martini

  • Separate authentication, retrieval, transformation, and target-write responsibilities
  • Apply status and product-specific business rules
  • Use reusable workflow logic for token handling and common validation
  • Route unsupported events and incomplete data to controlled exception paths

Objective

Convert SAP Concur payloads and files into a canonical model understood by the target system.

Instructions in Martini

  • Map SAP Concur identifiers to durable correlation fields
  • Transform amounts, dates, statuses, accounting dimensions, and organizational values
  • Handle optional fields and product-specific schema differences
  • Map XML or binary receipt content where legacy or attachment APIs require it

Objective

Create or update target objects while preventing duplicates and preserving source-to-target traceability.

Instructions in Martini

  • Use deterministic keys and target lookups before creating transactions
  • Persist source identifiers, target identifiers, and processing status
  • Apply validation before posting Expenses, Invoices, Users, or documents
  • Use controlled batching where the confirmed target and SAP Concur APIs support it

Common SAP Concur data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
Expense ReportsRepresent submitted, approved, rejected, or paid employee expense reports.SAP S/4HANA, NetSuite, Microsoft Dynamics 365 Finance, ServiceNowMartini retrieves changed or relevant status objects, loads related Expense Entries and allocations, maps accounting fields, and applies idempotent upsert logic.
Expense EntriesRepresent individual expense items within an Expense Report.SAP S/4HANA, NetSuite, Microsoft Dynamics 365 FinanceMartini maps amounts, dates, categories, allocations, and references into target transaction lines while validating required accounting data.
InvoicesRepresent supplier invoices and approval or payment-related information.SAP S/4HANA, SAP Ariba, NetSuite, Microsoft Dynamics 365 Finance, ServiceNowMartini validates supplier, purchase-order, tax, and accounting fields, then creates or updates downstream invoices and routes exceptions.
Travel RequestsRepresent requests and approvals associated with business travel.Workday, Salesforce, SAP S/4HANAMartini filters relevant states, maps traveler and organizational references, and synchronizes approved travel information to downstream processes.
UsersRepresent employees, travelers, approvers, and other SAP Concur users.Workday, SAP S/4HANA, Microsoft Dynamics 365 FinanceMartini performs scheduled incremental synchronization, normalizes identifiers and organizational fields, and applies source-of-truth rules.
ReceiptsRepresent receipt images or receipt-related information attached to expenses.Microsoft SharePoint, document repositories, audit platforms, SAP S/4HANAMartini retrieves metadata and binary content, preserves report and entry relationships, validates file properties, and manages retries and duplicate detection.

Authentication and security considerations

OAuth 2.0 and authorization

SAP Concur integrations generally use OAuth 2.0 with an application client ID, client secret, access token, refresh behavior, scopes, and tenant or company authorization. Access to a token does not necessarily grant access to every product or resource.

Credential protection

Martini should keep client secrets, refresh tokens, and related credentials in secure environment configuration rather than workflow payloads or source code. Development, test, and production environments should use separate authorization contexts.

Sensitive data

Expense, travel, receipt, invoice, and user data may contain personal and financial information. Apply least-privilege access, minimize sensitive logging, protect transmitted data, and configure retention according to organizational policy.

Operational considerations for SAP Concur integrations

Rate limits and retries

SAP Concur quotas can vary by API, application, tenant, and environment. Handle HTTP 429 and transient 5xx responses with bounded retries, backoff, controlled concurrency, and visible failure states.

Pagination and checkpoints

Large collections should use the API’s supported pagination model. Scheduled workflows should persist durable checkpoints, use an overlap window where appropriate, and avoid repeatedly loading complete collections.

Idempotency and state

Retain SAP Concur and target identifiers and use deterministic correlation keys before creating Expense Reports, Invoices, Receipts, or User updates. Model state transitions explicitly so approval, rejection, payment, and exception changes are not treated as duplicate transactions.

Schema and file variation

Product APIs can differ in fields, status values, identifiers, and pagination behavior. Tolerant mappings should handle optional fields, while receipt workflows should validate content type, size, encoding, retention, and duplicate attachment behavior.

Testing and monitoring

Test with separate SAP Concur environments and representative product permissions. Monitor token failures, authorization issues, validation errors, throttling, missing resources, schema changes, and downstream write failures without exposing sensitive payloads.

Why use Martini instead of scripts or point-to-point integrations?

Reusable integration logic

Martini centralizes OAuth token handling, API calls, pagination, checkpoints, mappings, validation, and retry behavior in reusable workflows rather than duplicating logic across scripts.

Orchestration across systems

A single workflow can retrieve SAP Concur Expense Reports, Invoices, Users, or Receipts, enrich the data, apply business rules, and coordinate writes to finance, workforce, document, or operational applications.

Controlled APIs and change management

Martini can expose an API façade over SAP Concur operations, isolate product-specific API differences, and provide a maintainable boundary for downstream consumers.

Operational reliability

Workflow-based error handling, idempotency, checkpointing, logging, and environment configuration provide more consistent operational controls than isolated point-to-point scripts.

Frequently asked questions

How can SAP Concur be integrated with enterprise systems?

SAP Concur is primarily integrated through product-specific REST APIs authenticated with OAuth 2.0. Selected event notifications can support near-real-time processing, while scheduled incremental retrieval using timestamps, status filters, pagination, and checkpoints supports resources without event coverage. Receipt and supporting-document APIs can handle related files.

Can Martini integrate with SAP Concur?

Yes. Martini can consume SAP Concur REST APIs, manage OAuth 2.0 token handling, receive supported event notifications, process receipt and attachment data, and orchestrate workflows that map SAP Concur objects into finance, workforce, document, and operational systems.

Do I need a connector to integrate SAP Concur with Martini?

No dedicated SAP Concur connector is required. Martini can integrate using SAP Concur’s confirmed native mechanisms, including REST APIs, OAuth 2.0, selected event notifications, receipt or attachment APIs, scheduled synchronization, and legacy SOAP services where necessary.

Is there any extra Lonti cost to integrate SAP Concur with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate SAP Concur. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from SAP Concur, cloud infrastructure, or other third-party systems depending on subscriptions, usage, and deployment model.

Which SAP Concur integration methods should a new implementation use?

REST APIs and OAuth 2.0 should generally be the starting point for new integrations. Event Notification Service capabilities are useful for selected events, while scheduled incremental synchronization is appropriate when events are unavailable. SOAP should be reserved for confirmed legacy or product-specific requirements.

Can Martini receive SAP Concur events or webhook notifications?

Martini can receive HTTP notifications through an API endpoint or workflow trigger. SAP Concur event coverage is selective, so the required product, resource, event type, tenant availability, delivery behavior, and security requirements must be confirmed before relying on an event-driven design.

How should SAP Concur data synchronization handle updates and duplicates?

Use modified timestamps, status filters, pagination, event checkpoints, and durable overlap windows to retrieve changes. Preserve SAP Concur and target identifiers, use deterministic correlation keys and idempotent upserts, and process state transitions such as submission, approval, rejection, and payment deliberately.

How does Martini handle SAP Concur mapping, errors, and API limits?

Martini maps product-specific JSON, XML, and receipt metadata into canonical and target models, applies validation and business rules, and separates authentication, authorization, validation, throttling, not-found, and transient failures. Workflows can use bounded retries with backoff, checkpointing, controlled concurrency, and observable exception handling.