Integration · 2026-05-14 · 9 min
How we cut FMCG partner onboarding by 60% with an API-gateway pattern
Onboarding a sub-distributor took 5–7 weeks because master data was rekeyed into three systems. The fix was not more automation scripts — it was one door in, with a contract behind it.
The baseline nobody had measured
Before touching architecture we timed the actual process across six markets: median 34 working days from signed agreement to first order accepted. Only 4 of those days were system time. The rest was rekeying, waiting for a market IT owner, and correcting mismatched product codes.
If you cannot state the baseline in days, you cannot claim a percentage later. This is the first deliverable of every Integration Assessment we run.
Why point-to-point kept losing
Each market had built its own SAP ↔ DMS bridge. Four variants, four owners, no shared schema. A price-condition change meant four changes, four test cycles, and four different failure modes in production.
Point-to-point is not wrong at two systems. It becomes unmanageable at n systems across m markets, because the number of contracts you are implicitly maintaining is n×m and none of them are written down.
One door: the partner gateway
We published a single partner onboarding API: canonical partner, product and price-condition models, versioned, schema-validated at the edge. Sub-distributor systems talk to the gateway. Nothing talks to SAP directly.
Requests are idempotent on a partner-supplied key, so a retry after a timeout never creates a duplicate. Every rejection returns a machine-readable reason code, which turned a phone call into a fixable field error.
Events behind the door
Behind the gateway, a Solace event mesh carries partner-created, stock-updated and claim-raised events. SAP remains the system of record; Salesforce subscribes rather than being pushed to.
The important property is not speed. It is that a failed consumer does not fail the producer, and a dead-letter queue with replay means a bad afternoon is recoverable without re-running a file.
What actually produced the 60%
Three things, in order of contribution: removing double and triple data entry, returning validation errors at submission instead of at month-end, and giving each market a named interface owner with an SLA dashboard.
Final median: 13 working days, measured the same way as the baseline. Claim-cycle time fell 22% as a second-order effect of clean partner master data.
What we would do differently
Publish the canonical model in month one, before any code. We spent six weeks negotiating product-code semantics that should have been a week-one workshop with commercial, not an IT decision.