SAP Business One + Salesforce integration

Connect SAP Business One (SAP B1) and Salesforce to automate sales orders and keep customer, pricing, inventory and invoice data aligned. AIONDATA builds the sync around your sales and finance workflows, with custom field mapping, retries and monitoring.

California-based leadership · Serving US and international teams

SAP B1
AIONDATAsync · MCP · rules
Salesforce
Business Partners / AccountsItems and Price ListsStock Levels by WarehouseOpportunities → Sales OrdersA/R Invoices and DeliveriesIncoming Payments and Credit Status
Illustrative integration flow

Your integration, scoped before we build

  • Object and field mapping for your workflows
  • Sync timing, error handling and reconciliation
  • Written scope, timeline and support options

Ready to connect SAP B1 and Salesforce?

Share your objects, volumes, and timing needs — we'll come back with a written scope.

Please share the systems and workflow—not credentials or customer records. We’ll confirm API access, scope and next steps.

NVIDIA Inception

NVIDIA Inception member

Part of NVIDIA’s program for startups building with AI and accelerated computing.

About the program
Pravin BansalSravan Modugula

Bay Area roots. Enterprise experience.

Pravin’s experience includes Google and SmartBear. Sravan previously held leadership roles at JPMorgan Chase and First Republic Bank.

Meet the founders

San Francisco Bay Area, California

9110 Alcosta Blvd Ste H345, San Ramon, CA 94583

US-led delivery, with engineering in India. Supporting US and international organizations.
Prefer email? info@aiondata.io

Let’s scope your integration.

Just your name and email to get started. Your details are handled under our Privacy Policy.

How SAP B1 and Salesforce work together

SAP Business One Salesforce integration connects your CRM sales process to ERP finance and inventory. Won opportunities create SAP B1 sales orders; products, prices, stock, invoices and payment status flow back to Salesforce. We define which system owns each record, map custom fields and add monitoring and reconciliation. Delivery uses the SAP B1 Service Layer and Salesforce APIs, with sync timing agreed for each data flow.

Plan your SAP B1 + Salesforce implementation

These decisions shape the scope, cost and acceptance tests. The flows below describe possible implementation behavior, not a preinstalled connector or a guarantee for every product edition.

Confirm your environments

Identify the SAP Business One version, database and hosting arrangement. Confirm Service Layer availability, Salesforce API access and a sandbox before choosing the integration route.

Agree who owns each record

Decide how Salesforce Accounts match SAP Business Partners, which system owns pricing, and what approval is required before an opportunity becomes an order. Map custom fields and multiple SAP companies explicitly.

Test an order from end to end

Use a test opportunity with agreed products, currency, tax treatment and payment terms. Check the resulting SAP document, returned reference and the behavior for duplicates, blocked customers and missing items.

Know what the estimate covers

The proposal separates mapping, build, testing, deployment, technical handover and support. License costs, additional objects, historical backfills and custom approval rules are identified before work starts.

Data flows

What moves between SAP B1 and Salesforce

  1. 01Business Partners / AccountsSAP B1 SalesforceSalesforce Accounts become SAP B1 Business Partners (cCustomer) on first order; card code, payment terms and credit limit sync back to Salesforce.
  2. 02Items and Price ListsSAP B1 SalesforceSAP B1 item master and customer-specific price lists populate Salesforce Products and Price Books so reps quote actual contracted prices.
  3. 03Stock Levels by WarehouseSAP B1 SalesforceOnHand, Committed and Available quantities per warehouse surface on the Product record and in the quote line editor.
  4. 04Opportunities → Sales OrdersSalesforce SAP B1Closed-won opportunities with quote lines create SAP B1 Sales Orders (ORDR) via the Service Layer; the DocNum is written back to the opportunity.
  5. 05A/R Invoices and DeliveriesSAP B1 SalesforceInvoice, delivery and open-balance data attach to the Salesforce Account for a full order-to-invoice view in CRM.
  6. 06Incoming Payments and Credit StatusSAP B1 SalesforcePayments received in SAP B1 update balance and credit-hold flags in Salesforce so reps do not sell to blocked accounts.

Field mapping

SAP B1 and Salesforce field mapping

The records, match keys and triggers most implementations start from. Your scope confirms each row against your editions, custom fields and business rules.

SAP B1 and Salesforce field mapping
SourceTargetMatch keyDirectionTriggerNotes
Business Partners (OCRD, BusinessPartners)AccountCardCode in an Account external ID fieldSAP B1 ↔ SalesforceAccount approval in Salesforce; B1 changes on a schedule or webhookNew customers created in B1 only after approval and a duplicate check; payment terms, credit limit and sales employee returned to Salesforce.
Contact persons (OCPR, ContactEmployees)ContactCardCode + contact name, stored as an external IDSAP B1 ↔ SalesforceOn changeDecide which system owns contact details; B1 keeps contacts under the Business Partner.
Items (OITM, Items)Product2ItemCode = ProductCode, also stored as an external IDSAP B1 → SalesforceScheduled deltaOnly sellable items; inactive items are deactivated in Salesforce, not deleted.
Price lists (OPLN, ITM1)Pricebook2 and PricebookEntryPrice list number = price book external ID; ItemCode + price book = entrySAP B1 → SalesforceHourly, or after a price updateOne price book per B1 price list and currency in scope.
Special prices (SpecialPrices)Account-specific price book or custom price objectCardCode + ItemCodeSAP B1 → SalesforceScheduledChoose one pattern; many special prices are easier to show as a lookup than as price books.
Warehouse stock (OITW)Product2 availability fields or a custom stock objectItemCode + WarehouseCodeSAP B1 → SalesforceEvery 5 to 15 minutesAvailable quantity per warehouse; read-only in Salesforce.
Quote and QuoteLineItem (synced quote)Sales Quotation (OQUT, Quotations)Salesforce Quote ID in a user-defined fieldSalesforce → SAP B1Quote approved or acceptedOptional; used when formal quotations are issued from B1. DocNum is written back to the quote.
Won Opportunity and OpportunityLineItem, or Order and OrderItemSales Order (ORDR, Orders)Salesforce record ID in a user-defined field; existing-order check before createSalesforce → SAP B1Opportunity won, or Order status changeOne trigger per process; the B1 DocNum and status are written back to Salesforce.
Deliveries (ODLN, DeliveryNotes)Order status or a delivery record on the AccountBase sales order DocEntrySAP B1 → SalesforceScheduled or webhookDelivered quantities and tracking visible to the rep.
A/R Invoices (OINV, Invoices)Invoice custom object on the AccountDocEntry as an external IDSAP B1 → SalesforceScheduledRead-only copy; the invoice of record stays in SAP B1.
Incoming Payments (ORCT, IncomingPayments)Account balance and credit status fieldsCardCodeSAP B1 → SalesforceScheduledA credit-hold flag can block new orders in Salesforce.
Sales employees (SalesPersons)User (record owner)Sales employee code mapped to a Salesforce user in a mapping tableSAP B1 ↔ SalesforceOn assignment changeDecide whether Salesforce ownership or the B1 sales employee drives commission reporting.

Download this mapping as a CSV worksheet · no email required

Editions and APIs

SAP B1 and Salesforce: editions, hosting and APIs

The edition, hosting model and API on each side decide what the integration can do and how it is built.

Editions, hosting and APIs
SAP Business One on SAP HANA or Microsoft SQL ServerBoth versions integrate through the Service Layer; SAP added Microsoft SQL Server support with SAP Business One 10.0 PL01. OData version 3 is served at /b1s/v1 and version 4 at /b1s/v2, and each login names one company database.
DI API and DI ServerThe DI API is a Microsoft COM library suited to Windows add-ons, and the DI Server targets SOAP integrations. Both share the DI core with the Service Layer, so objects and properties match. We use them only where the Service Layer lacks a function.
Service Layer webhooksAvailable as of SAP Business One 10.0 FP 2602. Disabled by default for each company and delivered by the Webhook Messenger Service, with retries, HMAC or OAuth authentication and manual replay. The messenger attempts to keep event order within a company, but not across companies.
Salesforce editions and API allocationsSalesforce lists Enterprise Edition, and Professional Edition with API access enabled, at 100,000 API calls per 24 hours plus 1,000 per Salesforce license. Platform events, Change Data Capture and the Pub/Sub API have their own allocations for publishing and delivery.
Salesforce objectsAccount, Contact, Product2, Pricebook2 and PricebookEntry, Opportunity and OpportunityLineItem, Quote and QuoteLineItem, Order and OrderItem. External ID fields (text, number or email) hold SAP keys for matching and upserts.

Options, cost and timeline

Ways to deliver SAP B1 and Salesforce integration

A prebuilt connector is sometimes enough. This comparison shows when each route fits, what it typically costs and how long it takes.

Delivery options, cost and timeline
ApproachTypical costTypical timeFits whenWatch for
iPaaS templateFrom about $99/month (vendor list price, checked Sep 2026) for APPSeCONNECT plans, plus ProcessFlow packsDays to weeks for standard flows, depending on mapping and testingStandard account, product, price, quote and order flowsCheck CPQ, approval and multi-company support, and ask how changes outside the template are priced
Two-way sync platformFrom about $1,000/month (vendor list price, checked Sep 2026) for Stacksync’s Starter planDays to weeks, with the vendor’s engineers helping on mapping and accessTeams that want record-level two-way sync on a vendor-run platformPricing scales with active syncs and synced records; confirm SAP B1 object coverage
Custom integration (AIONDATA)Quoted after a short discovery; hosting and support priced separatelyUsually a few weeks including mapping workshops and UAT for accounts, products, prices, stock and order push; roughly two to three months with custom objects, multiple B1 companies or complex pricingApprovals, CPQ, multiple companies, custom objects, or a requirement to own the codeNeeds an owner for monitoring and release retests, or a support agreement
Managed integration serviceFrom about $4,200/month (vendor list price, checked Sep 2026) for Stacksync’s Managed Pro plan; other providers quote per scopeSetup as above, then ongoingTeams without in-house integration staffAgree response times, who fixes SAP data errors, and your access to mappings and logs if you change provider

Vendor prices are list prices from their public pages on the date shown; confirm current pricing with each vendor.

Quote-to-order flow and record ownership

Most disputes in a CRM and ERP integration are about ownership, not technology. Decide for each record which system creates it, which system may change it and which system only displays it, and write the answer in the mapping workbook before build.

A common split: Salesforce owns prospects, opportunities and quotes; SAP B1 owns Business Partners once they buy, plus items, prices, stock, orders after creation, invoices and payments. Salesforce syncs one quote with its opportunity at a time, which gives a clean trigger for the order. Once the SAP sales order exists, changes to quantities or prices happen in SAP B1 and flow back to Salesforce as status.

  • A prospect Account becomes a Business Partner at the first approved order, not before.
  • Prices and availability shown in Salesforce are read from SAP B1, never typed in.
  • One trigger creates the SAP order: won opportunity, accepted quote or an order at an agreed status.
  • The SAP DocNum and status are written back to the Salesforce record that triggered the order.
  • Invoices, payments and credit status are read-only in Salesforce.

Failure and reconciliation playbook

A sync that reports success on every call can still lose business outcomes. Reconciliation checks that each won deal has an SAP order, and that each SAP customer maps to exactly one Salesforce Account in each company.

  • Duplicate trigger: skipped after checking for an SAP order with the same Salesforce record ID.
  • Business rejection: held with the SAP B1 message and shown on the Salesforce record; the owner fixes and replays.
  • Service Layer unavailable: retries with backoff, then an alert; nothing is dropped during backups or upgrades.
  • Salesforce API allocation low: bulk reads pause and resume, and order pushes keep priority.
  • Daily check: won opportunities without an SAP order, and SAP orders without a Salesforce link.
  • Weekly check: Accounts and Business Partners with mismatched CardCodes, payment terms or owners.

Acceptance tests before go-live

Run these against a Salesforce sandbox and a copy of your SAP B1 company, with sales operations and finance signing off the results.

  • A won opportunity with two products creates one SAP sales order with the right prices, and the DocNum appears in Salesforce.
  • The same trigger fired twice creates one sales order.
  • A quote for a customer on credit hold is blocked in Salesforce with a clear reason.
  • An order for an item missing from SAP B1 stops with a readable error and posts after the fix.
  • A price list change in SAP B1 updates the Salesforce price book within the agreed interval.
  • An invoice and a payment posted in SAP B1 update the Account balance in Salesforce.
  • In a multi-company setup, an order routes to the correct company database.

Outcomes

Why teams connect SAP B1 and Salesforce

  • Quotes in Salesforce are built from SAP B1 contracted prices and live stock, cutting the discount and back-order surprises that erode margin.
  • Closed-won deals become SAP B1 sales orders automatically, removing the re-keying step that typically delays order entry by a day or more.
  • Account managers see invoices, open A/R and credit status inside Salesforce without asking finance or logging into SAP.
  • Customer master data is created once and kept consistent, so the same account is not duplicated with different addresses in the two systems.

SAP B1 Salesforce Integration FAQs

Is the sync real-time or scheduled?

Order creation and credit checks are usually event-driven: a Salesforce flow or platform event fires when an opportunity is won or an order reaches an agreed status, and the sales order lands in SAP B1 within seconds to minutes. Items, price lists and stock change in bulk, so they are usually read from the Service Layer on a schedule, often every 5 to 15 minutes. On SAP Business One 10.0 FP 2602 or later, Service Layer webhooks can push Business Partner and document changes instead of polling.

How do you handle field mapping, duplicate accounts and sync errors?

We start with a mapping workbook that pairs every Salesforce field with its SAP B1 counterpart, including user-defined fields and picklist translations for payment terms, sales employees and warehouses. The CardCode is stored in a Salesforce external ID field, so updates match the right Account without a search, and new Business Partners are created only after a duplicate check on tax ID or name and address. Failed transactions go to a retry queue with alerting and a dashboard of records that need attention.

DI API or Service Layer: which do you use?

The Service Layer for new integrations. SAP describes it as an OData service built on the same DI core as the DI API, so Business Partners, items and documents have the same properties in both. The DI API is a Microsoft COM library suited to Windows add-ons, and we use it only where the Service Layer lacks a function. Salesforce talks to the integration service, never directly to your SAP server.

Does it matter if SAP B1 runs on SQL Server or SAP HANA?

Not for the core sync. SAP added Service Layer support for Microsoft SQL Server with SAP Business One 10.0 PL01, so both versions use the same API. Reporting features differ: Semantic Layer views are HANA only, while SQL Server systems can expose their own SQL views through the Service Layer, which is useful for read-only account summaries. Older SQL Server releases without the Service Layer need the DI API or an upgrade.

We run several SAP B1 companies. Can one Salesforce org connect to all of them?

Yes. Each Service Layer login names one company database, so the integration routes each Account and order to a company by rule, for example by country, business unit or a field on the opportunity. The same customer can exist in several companies with different CardCodes, so we store the company and CardCode pair rather than a single number.

Should quotes live in Salesforce or SAP Business One?

Usually in Salesforce, where reps work, with SAP B1 supplying prices, stock and credit status. Salesforce syncs one quote at a time with its opportunity, so the synced quote is a natural trigger. If your team issues formal quotations from B1, we create a B1 Sales Quotation from the approved Salesforce quote and write the B1 document number back.

Which Salesforce record should create the SAP sales order?

Pick one. A won opportunity with products is simplest; a synced, accepted quote suits teams that negotiate line by line; a Salesforce Order suits teams that already manage orders in Salesforce, and its Status field can gate the transfer. Two triggers for the same deal are the most common cause of duplicate SAP orders.

What happens when an order fails in SAP B1?

The transfer stops in a queue with the SAP error, for example a missing item, a blocked Business Partner or a credit limit, and the rep sees a failed status on the Salesforce record. Data errors wait for a fix and a replay; technical errors retry automatically. The Salesforce record ID is stored on the SAP order and checked before every create, so a replay cannot produce a duplicate.

Which Salesforce editions and API limits matter?

API access and daily allocations. Salesforce’s limits reference lists Enterprise Edition, and Professional Edition with API access enabled, at 100,000 API calls per 24 hours plus 1,000 per Salesforce license, for example 115,000 for 15 licenses. A well-designed sync uses a small share of that, but backfills and frequent polling add up, so we batch reads and use change events where they fit.

Prebuilt connector or custom integration?

If your process matches a template, a connector is cheaper to start. APPSeCONNECT lists plans from $99 per month and says its SAP B1 connector handles HANA, SQL Server and multi-company setups; Stacksync lists two-way sync plans from $1,000 per month. Choose custom when approvals, CPQ, multiple companies or custom objects make the template work against your process, or when you want to own the code.

What drives the cost of an SAP B1 Salesforce integration?

The number of objects and directions, and how much logic sits between them. Quote approvals, CPQ, multiple SAP B1 companies or currencies, custom objects and historical backfills add build and test time. Ongoing cost depends on hosting, monitoring, any iPaaS subscription, Salesforce API capacity and the support you choose.

Can sales reps see invoices and credit status in Salesforce?

Yes, read-only. Open A/R invoices, incoming payments and the Business Partner balance sync to the Account on a schedule, and a credit-hold flag can block new orders in Salesforce before they reach SAP. The documents stay in SAP B1 as the record; Salesforce shows what reps need to act.

Who maintains the integration after go-live?

You choose. We hand over the code, mapping workbook, runbook and alert setup so your team can operate it, or we support it under an agreed plan. Salesforce ships seasonal releases (the current object reference is Winter ’27, API version 68.0) and SAP ships B1 feature packs, so the integration should be retested on a release calendar.

Can AI agents work across SAP Business One and Salesforce through this integration?

Yes. Alongside or instead of a point-to-point sync, we can build an MCP server that exposes both the SAP B1 Service Layer and the Salesforce API as tools. An agent in Claude, a Slack bot or a custom app can then answer questions like “what is this account’s open balance and last three orders” or draft a sales order from an opportunity, with approval steps where you want a human in the loop.

How long does an SAP Business One to Salesforce integration take to build?

A standard scope covering accounts, products, prices, stock and order push usually takes a few weeks including mapping workshops and UAT. Adding custom objects, multi-company SAP B1 databases, or complex pricing rules extends that to roughly two to three months. We give a fixed timeline after a short discovery of your SAP B1 configuration and Salesforce customizations.

Related integrations

Other pairs involving SAP B1 or Salesforce.

Ready to connect SAP B1 and Salesforce?

The enquiry form is at the top of this page. Share your objects, volumes and timing needs and we'll come back with a written scope.

Go to the enquiry form