Connect SAP Concur expenses to the Life Sciences Cloud visits and HCPs they were spent on, keyed on the golden HCP ID, and feed aggregate spend for US Open Payments and EFPIA disclosure — with attendee matching, value-transfer rules, and a reconciliation that finance and compliance both sign off.
Tags: life-sciences, life-sciences-cloud, pharma, medtech, concur, aggregate-spend, open-payments, transparency, salesforce, api-led, mulesoft-direct
Visit Expenses and Aggregate Spend: Concur to Life Sciences Cloud and Transparency Reporting
Objective: Turn every meal, honorarium, and travel expense that touches an HCP into a value transfer attributed to the right person, visit, and country — once, at the source — so transparency reporting is a query rather than a quarter-end reconciliation. Concur stays the expense system; LSC holds the visit context; the golden HCP ID joins them.
What's Getting Built
- Visit expense sync (System API, from MuleSoft Direct) — the prebuilt Concur Expense Sync integration keeps field reps' HCP visit expenses in step between Life Sciences Cloud and SAP Concur, with validation and receipts
- Concur (System API) — reads approved expense reports, entries, and attendees from SAP Concur ·
GET /expensereports?approvalStatus=approved, GET /expenses/{id}/attendees
- LSC visits (System API) — reads visits, events, and attendees from Life Sciences Cloud and writes spend back to the visit ·
GET /visits/{id}, PATCH /visits/{id}/spend
- Aggregate spend (Process API) — matches attendees to golden HCP IDs, applies value-transfer rules, and writes transfers to the spend ledger ·
POST /transfers, GET /transfers?hcpId={id}, POST /transfers/reconcile
- Transparency extracts (Scheduler) — builds the Open Payments and EFPIA disclosure files from the ledger ·
SCHEDULER monthly, GET /disclosures/{program}/{period}
Value chain phase
Phase 06 — Commercial & Patient Services. Marketing to healthcare providers (HCPs) and patient support program delivery.
- Scope of this plan: HCP-related expenses from Concur attributed to Life Sciences Cloud visits and HCPs, feeding transparency disclosure.
- Data in this phase: CRM (Veeva / Salesforce Life Sciences Cloud), prescription data, and logs.
- Receives from: Phase 05 — Supply Chain & Logistics.
- Hands off to: Nothing downstream — this phase closes the loop back to Research & Discovery with real-world evidence.
Prerequisites
- Anypoint Platform org with API Manager, Runtime Manager, and a non-production deployment target.
- Salesforce Life Sciences Cloud org with a connected app and an integration user scoped to the objects this plan writes.
- Secrets Manager or secure properties configured for every system credential.
- Named owner for each source system — integration stalls on access, not on code.
- SAP Concur API access to approved expense reports and attendees — through the MuleSoft Concur connector or app in your Anypoint version.
- MuleSoft Direct for Life Sciences Cloud, to deploy Concur Expense Sync from inside Salesforce. Receipts and attachments it syncs are limited to 1 MB each.
- A mastered HCP record with a golden ID and NPI, and a crosswalk from Concur attendee records to it.
- Value-transfer rules from compliance: what counts, per-person allocation for group meals, and country thresholds.
- An aggregate spend system or ledger that produces the disclosure files, or the decision to build one here.
Choose your path
- Start from Concur Expense Sync — Choose when reps log visit expenses in Life Sciences Cloud — deploy the MuleSoft Direct integration for the rep-to-Concur leg, and build only the aggregate spend layer here on top of it.
- Ledger in LSC or a data cloud — Choose when no aggregate spend tool exists — the Process API writes transfers to a governed ledger and builds the extracts.
- Feed an existing spend tool — Choose when an aggregate spend vendor already produces filings — this plan supplies clean, attributed transfers to it.
Architecture
1. Pull approved expenses
- Read only approved reports, by event or poll, and keep the Concur report and entry IDs on every transfer for audit.
- Read attendees per entry; an expense without HCP attendees is not a value transfer and stops here.
2. Match attendees to the golden HCP
- Match on NPI first, then name plus address against the HCP master; never create a new HCP from an expense.
- Send unmatched attendees to a review queue rather than reporting them under a guessed identity.
3. Apply value-transfer rules
- Allocate group costs per attendee using the rule compliance set, and record the rule version applied.
- Classify nature of payment and country, and apply thresholds per disclosure program.
- Link each transfer to the LSC visit or event it came from, so reps and medical see spend in context.
4. Disclose and reconcile
- Build Open Payments and EFPIA extracts from the ledger, not from Concur directly.
- Reconcile the ledger to Concur totals each period and hold the filing on an unexplained variance.
5. Security and transparency compliance
- Validate the integration under GAMP 5 — requirements, design, IQ/OQ/PQ evidence, and a traceability matrix retained for inspection.
- Meet 21 CFR Part 11 and EU Annex 11 for electronic records and signatures on every GxP-relevant flow.
- Preserve ALCOA+ data integrity — attributable, legible, contemporaneous, original, and accurate — with audit trails no operator can edit.
- Encrypt regulated data in transit and at rest, and keep production payload visibility to validated support roles only.
- Treat a mapping change on a GxP flow as a controlled change under change management, never as a hotfix.
- Meet US Sunshine Act (Open Payments) and EFPIA Disclosure Code requirements, plus local transparency rules per market.
- Keep the HCP's dispute and correction history with the transfer it changed.
For pre-built API specifications, implementation templates, and reference architecture, see the MuleSoft Accelerator for Life Sciences on Anypoint Exchange.
Sample payload — Value transfer
{
"transferId": "VT-2026-004211",
"hcpId": "HCP-000482913",
"npi": "1234567893",
"source": { "system": "concur", "reportId": "R-88412", "entryId": "E-3", "visitId": "a0V5f00000A1bCd" },
"natureOfPayment": "food-and-beverage",
"amount": { "value": 42.18, "currency": "USD" },
"allocationRule": "per-attendee-v3",
"country": "US",
"programs": ["open-payments"]
}
Testing and validation
- Submit a group meal with three HCPs and one employee and confirm three transfers with the right allocation.
- Submit an attendee with no NPI match and confirm it lands in review rather than in the ledger.
- Correct an approved expense in Concur and confirm the transfer is restated, not duplicated.
- Reconcile a period against Concur totals and confirm a deliberate variance holds the extract.
Phased rollout
Phase 1 — Connect
- Deploy Concur Expense Sync from MuleSoft Direct, or build the Concur System API, and pull approved expenses for one business unit.
- Wire attendee matching to the HCP master.
Phase 2 — Map and validate
- Apply value-transfer rules and compare output to last period's manual filing.
- Link transfers to LSC visits and events.
Phase 3 — Production
- Produce Open Payments, then EFPIA extracts, from the ledger.
- Hand review queue and reconciliation to compliance.
Success metrics
- Share of HCP attendees matched to a golden ID without manual review.
- Days from period close to disclosure-ready extract.
- Disputed transfers per filing period.
Troubleshooting
- The same HCP appears twice in the filing — Likely cause: attendees matched to a retired ID after an MDM merge. Fix: Subscribe to merge events and repoint transfers to the surviving ID.
- Totals disagree with Concur — Likely cause: expenses restated after approval were inserted as new transfers. Fix: Key transfers on report and entry ID and treat a change as a restatement.
Deliverable: A Concur-to-LSC spend pipeline that attributes every HCP value transfer to a golden ID and visit, a governed ledger, and Open Payments and EFPIA extracts reconciled to source.