A SAP Concur to NetSuite integration turns every approved expense report into a NetSuite transaction - a vendor bill for out-of-pocket spend, a card-liability clearing entry for company card charges - coded to the right subsidiary, department, class, and project, with reclaimable VAT split from the gross. Master data flows the other way so submitters can only pick coding NetSuite accepts, and payment confirmations flow back so employees see Paid. Done properly it is an idempotent pipeline, not a monthly CSV import.
SAP Concur is where spend gets captured and approved. An employee books a trip, swipes the corporate card, photographs a restaurant receipt, allocates it to a project, and submits a report that runs through policy checks, VAT logic, and manager approval. NetSuite is where that same spend has to become accounting: a posted liability against the right subsidiary, coded to a department, class, location, and project, with recoverable input tax separated from the gross, and the employee actually paid in the next AP run.
Between approved in Concur and posted in NetSuite sits work a lot of finance teams still do by hand every month. Someone pulls the accounting extract, reshapes columns in a spreadsheet, guesses which NetSuite employee record matches which Concur user, imports a CSV, and then chases the lines NetSuite rejected because a department was inactive or the period was already locked. A SAP Concur to NetSuite integration removes that step: every report that reaches the extracted state in Concur becomes exactly one posted transaction in NetSuite, master data flows back the other way so submitters can only pick coding NetSuite accepts, and the payment confirmation returns to Concur so nobody has to answer a status email.
| SAP Concur object or event | Becomes in NetSuite | Notes |
|---|---|---|
| Approved, extracted expense report (employee-paid) | Vendor bill against the employee as vendor, or a NetSuite expense report record | One line per expense entry, coded to the mapped expense account |
| Company card transaction on a report | Credit card charge or journal clearing the card liability account | Never reimbursed to the employee; driven by the Concur payment type |
| Expense entry allocations | Department, class, location, project on the transaction line | Concur percentage splits resolved to amounts, with rounding assigned deterministically |
| Reclaimable VAT on an entry | Tax code and tax detail on the line | Domestic and foreign VAT split from the gross so input tax stays recoverable |
| Cash advance | Employee advance or prepayment applied against the report | Has to exist in NetSuite before the report that consumes it |
| Concur Invoice payment request | Vendor bill against the NetSuite vendor, matched to a purchase order where used | Concur Invoice module only |
| Receipt image | File cabinet attachment on the posted transaction | Where audit or retention rules want the document with the booking |
| NetSuite payment of the bill | Payment confirmation written back to Concur | Report status flips to paid, which stops most status enquiries |
In the reverse direction, NetSuite employees, vendors, subsidiaries, departments, classes, locations, projects, and the relevant part of the chart of accounts are pushed into Concur as list items and expense-type mappings. That reverse flow is what makes the forward flow post on the first attempt.
A monthly extract and a CSV import get the happy path working and leave the expensive cases on the AP desk:
We treat this as a pipeline, not a scheduled export. Reports are picked up as they reach the extracted state in Concur, validated against live NetSuite master data, transformed into your agreed coding, and written through SuiteTalk REST or a RESTlet, whichever your NetSuite administrator prefers to support. Master data moves the other way on a delta schedule, and payment confirmations are written back to Concur once NetSuite actually pays.
The pipeline is idempotent. Each Concur report carries a stable identifier that becomes the external ID on the NetSuite transaction, so a retry, a replay, or a re-run after an outage never creates a second vendor bill. It runs on cloud-native, fully EU-hosted AWS infrastructure, so employee and transaction data does not leave the EU, which keeps the DPA / AVV and your GDPR obligations straightforward.
Then we keep it running. Monitoring, alerting, incident response, and watching for Concur API deprecations and NetSuite release changes are our responsibility under contract, at a fixed scope agreed up front. Your AP team stops reconciling a spreadsheet during close week.
If a handful of people submit expenses in a single entity and a single currency, the Concur extract and a monthly import are genuinely fine, and we will say so. The integration earns its place when report volume makes manual coding a recurring job, when OneWorld subsidiaries and foreign VAT make the mapping too intricate to hold in a spreadsheet, when corporate card liability never quite reconciles, or when the close already slips because someone is fixing a failed import instead of closing the books.
Need this integration built and permanently operated? Tell us which systems connect and what data has to move. Fixed-price scoping quote within 48 hours.
Request a scoping call