§00Connect
Salesforce ↔ SAP S/4HANA
Quotes that know SAP’s price. Orders nobody retypes.
When sales runs on Salesforce and operations on SAP S/4HANA, SAP holds the commercial truth — price, availability, credit — and Salesforce has to ask. The gap shows up as quotes that don’t match the SAP order, orders keyed in twice and account teams asking customer service whether something shipped. PartnerMCP connects the two through SAP’s published Business Partner, Sales Order, Outbound Delivery and Billing Document APIs, so a quote is checked against SAP before it goes out and a won Opportunity becomes an SAP sales order without retyping.
You
“Connect Salesforce to SAP S/4HANA. Synchronize accounts, quotations, sales orders, invoices and fulfillment.”
PartnerMCP· I will:
- Read the SAP side first: which published APIs and communication scenarios your S/4HANA edition exposes — sales order (SAP_
COM_ 0109), business partner (SAP_ COM_ 0008), delivery, billing — and flag any API SAP has deprecated. - Link each Account to its SAP customer: match or create the business partner (API_
BUSINESS_ PARTNER) for a won account and store SAP’s customer number on the Account. - Price quotes against SAP: send a Quote’s lines to SAP’s sales order simulation and return price, availability and credit results without creating a document.
- Turn a won Opportunity (IsWon = true) into one deep insert — header, to_
Item lines and to_ Partner — with the sales area and order type taken from your rule table. - Before every create, look for an order with the same customer reference; send SAP’s CSRF token on every write and the ETag on every update.
- Follow the order through SAP business events and the outbound delivery API — goods issue posted means shipped.
- Return billing documents — number, status and PDF — to the Opportunity.
- Run as a reviewed, deterministic sequence of calls to SAP’s Published APIs; nothing improvises against SAP in production.
- Opportunity · Closed Won — Salesforce: Trigger · Change Data Capture
- Customer lookup — PartnerMCP: Account ⇄ A_BusinessPartner
- Schema mapping — PartnerMCP: fields · products · prices
- Create / update customer — SAP S/4HANA: A_BusinessPartner
- Create sales order — SAP S/4HANA: A_SalesOrder + A_SalesOrderItem
- Monitor order — PartnerMCP: status · delivery · invoice
- Sync fulfillment — SAP S/4HANA: A_OutbDeliveryHeader
- Sync invoice status — SAP S/4HANA: API_BILLING_DOCUMENT_SRV
- Update Opportunity — Salesforce: fulfillment · invoice status
What syncs, and which way.
Every record that moves between Salesforce and S/4HANA: what starts it, and what it produces on the other side.
Both ways between Salesforce and SAP S/4HANA:
Account ↔ A_BusinessPartner- When
- A won Opportunity for a new account; sap.
s4. beh. businesspartner. v1. BusinessPartner. Changed. v1 from SAP - Result
- Business partner created or matched, its customer number on the Account; changes made in SAP reflected in Salesforce.
Salesforce to SAP S/4HANA:
Quote → API_SALES_ORDER_SIMULATION_SRV- When
- A Quote marked ready for SAP pricing
- Result
- SAP’s price, availability and credit check on the Quote — no SAP document is created.
Salesforce to SAP S/4HANA:
Opportunity → A_SalesOrder + A_SalesOrderItem- When
- Opportunity
Change Event with IsWon = true - Result
- SAP sales order created by deep insert through API_
SALES_ ORDER_ SRV; the SAP order number written back to the Opportunity.
SAP S/4HANA to Salesforce:
A_SalesOrder → Opportunity- When
- sap.
s4. beh. salesorder. v1. SalesOrder. Changed. v1 via SAP Event Mesh, or polling on LastChangeDateTime - Result
- Order status on the Opportunity, read back from the API after each event.
SAP S/4HANA to Salesforce:
A_OutbDeliveryHeader → Opportunity- When
- Goods issue posted (PostGoodsIssue) on the outbound delivery
- Result
- Shipped status and the delivery on the Opportunity.
SAP S/4HANA to Salesforce:
Billing document → Opportunity- When
- SAP billing creates the invoice for the order
- Result
- Billing document number, status and PDF from API_
BILLING_ DOCUMENT_ SRV on the Opportunity.
Field by field.
Every mapping PartnerMCP proposes, with its transformation and confidence. Rules — keys, reconciliation, duplicate guards — carry no confidence: they’re decided and approved, not inferred.
Account.
SAP_ Customer_ No_ _ c to A_
Sales Order. Sold To Party The sold-to party on every order
96% confidenceSAP stays the master for customer data; Salesforce holds the reference.A_
Business Partner / A_ Customer · customer number to Account.
SAP_ Customer_ No_ _ c (External ID) Written back after create or match; used for upserts
95% confidenceAn upsert that finds several matches returns 300 and writes nothing — PartnerMCP treats it as a data issue, not a retry.Rule table · account region, business unit
to Sales
Order Type · Sales Organization · Distribution Channel · Organization Division Set by a rule you approve
RuleSales area and order type drive SAP pricing, tax and routing, so they’re never guessed per record.Opportunity.
Id to A_
Sales Order. Purchase Order By Customer Customer reference, checked before every create
90% confidenceIf your customers’ own PO numbers belong here, the Opportunity ID stays in PartnerMCP’s link table instead.Opportunity
Line Item. Product Code to to_
Item. Material Must be set up for the order’s sales area
94% confidenceOpportunity
Line Item. Quantity to to_
Item. Requested Quantity In the material’s sales unit
96% confidenceOpportunity
Line Item. Unit Price · Discount to to_
PricingElement Only if your pricing procedure accepts manual conditions
70% confidenceOtherwise SAP prices the order and PartnerMCP reconciles the result.Opportunity.
Amount to Simulated order value — reconciled, not written
API_
SALES_ ORDER_ SIMULATION_ SRV before the create RuleAmount is a pre-tax sum of products, and Salesforce ignores updates to it once line items exist.A_
Sales Order · order number to Opportunity.
SAP_ Sales_ Order_ _ c Written back after create
96% confidenceA_
Outb Delivery Header · goods issue to Opportunity.
SAP_ Delivery_ Status_ _ c PostGoodsIssue → Shipped
90% confidenceBilling document (API_
BILLING_ DOCUMENT_ SRV) to Opportunity.
SAP_ Billing_ Document_ _ c Number and status, with the PDF from GetPDF
92% confidenceThe billing API reads, cancels and returns PDFs; SAP billing creates the document.
Edge cases, handled.
What goes wrong between Salesforce and S/4HANA in production, and what PartnerMCP does about it.
- 01
Deterministic at runtime
SAP’s API Policy, published in April 2026, restricts autonomous AI access to SAP APIs outside SAP-endorsed architectures; its FAQ places pre-defined, deterministic call sequences without LLM decision-making outside that restriction. PartnerMCP plans, maps and tests with AI; what runs in production is a reviewed, versioned sequence of calls to SAP’s Published APIs.
- 02
V2 or V4 is a real choice
SAP’s V4 Sales Order API can’t delete whole orders, can’t take an external order number and can’t change schedule lines; the V2 API has no asynchronous mode and can’t retrigger pricing. PartnerMCP picks the API per operation from SAP’s feature comparison for your release.
- 03
CSRF tokens and ETags
SAP requires a CSRF token on every write, including inside $batch, and V4 updates must carry If-Match. To change an item safely on V2, PartnerMCP sends the header PATCH with If-Match — the ETag lives on LastChangeDateTime — together with the item change in one $batch changeset.
- 04
APIs retire between releases
In S/4HANA Cloud Public Edition, SAP deprecates APIs inside its release cycle: API_
OUTBOUND_ DELIVERY_ SRV now has a successor, API_ OUTBOUND_ DELIVERY_ SRV_ 0002. PartnerMCP records which API each step uses and raises deprecations as planned changes, not production errors. - 05
Billing documents come from SAP
API_
BILLING_ DOCUMENT_ SRV reads, cancels and returns the PDF of billing documents; it doesn’t create them. PartnerMCP follows the order to the billing document SAP produced and returns it to Salesforce. - 06
SAP decides the price
An order needs a sales organization, distribution channel and division, and your pricing procedure decides the price. PartnerMCP sets the sales area from a rule table you approve, simulates the order first and sends manual price conditions only where the procedure allows them.
- 07
Events go through a broker
S/4HANA publishes business events through SAP Event Mesh or SAP Cloud Application Event Hub, set up with communication arrangement SAP_
COM_ 0092 — not to arbitrary webhook URLs. Where events aren’t enabled, PartnerMCP polls on LastChangeDateTime. - 08
No echo loops
Writing SAP status back to an Opportunity creates a new Salesforce change event. PartnerMCP tags its own writes with Sforce-Call-Options and ignores events whose changeOrigin is its own, so a status update never re-triggers the order flow.
Questions about Salesforce and S/4HANA.
Does SAP’s 2026 API Policy allow this?
The policy restricts autonomous AI access to SAP APIs unless the access pattern is SAP-endorsed, and its FAQ says deterministic, pre-defined API call sequences without LLM decision-making fall outside that restriction. PartnerMCP is built around that line: AI at design time, a reviewed and versioned integration at runtime, Published APIs only. For conversational access, SAP names the MCP Gateway in SAP Integration Suite as an endorsed pathway. Your SAP agreement and governance team have the final word.
Which S/4HANA editions does it work with?
Cloud Public Edition, Cloud Private Edition (RISE) and on-premise. They differ: Public Edition works through communication arrangements and allows only a short whitelist of BAPIs and IDocs, inbound only; private cloud and on-premise also offer the classic BAPI/RFC and IDoc interfaces. PartnerMCP discovers what your edition exposes before it plans anything.
Our S/4HANA is on-premise. How does PartnerMCP reach it?
Through the Edge Agent, which is designed to run inside your network and connect out — the same outbound-only pattern as SAP’s own Cloud Connector, which needs no inbound ports. Outbound allow-listing is usually still required.
Is this the same as SAP Sales Cloud?
No. SAP Sales Cloud is SAP’s CRM, with its own APIs. This page covers Salesforce with SAP S/4HANA, and PartnerMCP names the exact SAP product in every plan, because the APIs differ.
Can it create SAP quotations instead of simulating?
Yes, where your process keeps quotations in SAP: PartnerMCP creates them through the Sales Quotation API (API_
Vendor documentation.
The public documentation behind the technical details on this page.
- SAP — Sales Order (A2X, OData V2) operationshelp.sap.com (opens the vendor’s site in a new tab)
- SAP — Sales Order (OData V4) operationshelp.sap.com (opens the vendor’s site in a new tab)
- SAP — sales order API feature comparison (Public Edition)help.sap.com (opens the vendor’s site in a new tab)
- SAP — CSRF tokens and ETagshelp.sap.com (opens the vendor’s site in a new tab)
- SAP — BAPIs and IDocs in S/4HANA Cloud Public Editionhelp.sap.com (opens the vendor’s site in a new tab)
- SAP Architecture Center — S/4HANA business eventsarchitecture.learning.sap.com (opens the vendor’s site in a new tab)
- SAP API Policy — FAQsap.com (opens the vendor’s site in a new tab)
- SAP — Cloud Connectorhelp.sap.com (opens the vendor’s site in a new tab)
- Salesforce — Change Data Capturedeveloper.salesforce.com (opens the vendor’s site in a new tab)
- Salesforce — upsert by External IDdeveloper.salesforce.com (opens the vendor’s site in a new tab)
Product names and logos are trademarks of their respective owners. Their use indicates compatibility only and does not imply endorsement or partnership.
§06Build
Build this integration.
Start from this plan, or change it in your own words. PartnerMCP builds it against your Salesforce and S/4HANA: sandbox first, production when you approve.