SAP Business One and Cin7 integration
SAP Business One runs finance and procurement on-premise or partner-hosted. Cin7 Core manages cloud inventory and order management. Connecting them keeps your purchase orders, goods receipts, and sales payables in sync across both systems without re-entry. Purchase data flows from SAP Business One into Cin7, and Cin7 sales invoices and payments post back into SAP Business One's general ledger aligned to profit centers. ml-connector handles the different auth schemes and API shapes on each side and keeps both systems in agreement on inventory and accounting.
What moves between them
Purchase orders created in SAP Business One flow into Cin7 Core as purchases in ORDER state, then goods receipts in SAP Business One update Cin7 purchases to RECEIVE state. Sales orders and invoices from Cin7 Core are read by ml-connector and posted as journal entries in SAP Business One's general ledger, allocated to the profit center and GL account matching the SAP Business One business partner and item master. Payment records from Cin7 Core also sync into SAP Business One incoming payments when marked as received. The primary flow is bi-directional: SAP Business One to Cin7 for procure-to-pay, and Cin7 back to SAP Business One for sales and receivables GL.
How ml-connector handles it
ml-connector stores the SAP Business One customer's instance URL and maintains a reusable B1SESSION cookie by refreshing the session token before the 30-minute inactivity timeout expires, never re-authenticating on every call. For Cin7, it stores both API key headers and presents them on each request. Because SAP Business One is on-premise or partner-hosted with no global endpoint, ml-connector accepts the full customer instance URL at setup. When a purchase order is created in SAP Business One, ml-connector polls the Orders endpoint with an UpdateDate filter, extracts the business partner and items, and creates a matching purchase in Cin7 with ORDER approach. When SAP Business One receives goods, ml-connector updates the Cin7 purchase to RECEIVE state. Conversely, when Cin7 records a sale or payment, ml-connector reads the sales endpoint, calculates the GL impact by profit center, and posts a journal entry in SAP Business One. SAP Business One does not support idempotency keys, so ml-connector checks for duplicate records using DocNum before retrying. Cin7 webhooks are not HMAC-signed, so ml-connector does not rely on webhook authenticity alone and additionally validates API calls. OData $expand is used to fetch related entities in a single call where possible to reduce round trips. All records carry a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized product distributor runs SAP Business One on-premise for procurement, sales, and accounting, and uses Cin7 Core as their cloud inventory and order management system. Before the integration, the operations team received purchase orders in Cin7, manually entered them into SAP Business One to trigger GL accrual accounts, and at month-end reconciled SAP Business One purchase and payables records against Cin7's purchase register. After the sync, purchase orders and goods receipts flow automatically from SAP Business One to Cin7, Cin7 sales orders are posted as journal entries in SAP Business One's GL aligned to the correct GL accounts and profit centers, and the operations team has visibility to both systems without dual entry. Month-end close is faster because the accounts payable and accounts receivable balances are already aligned to Cin7's records.
What you can do
- Sync purchase orders and goods receipts from SAP Business One into Cin7 Core, updating purchase state from ORDER to RECEIVE as goods are received.
- Post Cin7 sales invoices and payments into SAP Business One's general ledger, allocated to the correct GL accounts and profit centers based on customer and item master data.
- Maintain SAP Business One session tokens across multiple polling cycles by reusing the B1SESSION cookie and refreshing before timeout.
- Map Cin7 suppliers and SAP Business One business partners using a custom identifier so purchase orders route to the correct vendor in Cin7.
- Handle OData v4 associations and API key authentication for both systems with automatic retries and a complete audit trail on every record.
Questions
- What records move between SAP Business One and Cin7 Core and in which direction?
- Purchase orders and goods receipts flow from SAP Business One into Cin7 as purchases in ORDER and RECEIVE states. Sales invoices and payments flow from Cin7 Core back into SAP Business One as journal entries in the general ledger allocated to profit centers. Business partners in SAP Business One map to suppliers in Cin7 via a custom identifier configured at setup.
- How does ml-connector handle the different auth schemes between SAP Business One and Cin7?
- ml-connector stores the SAP Business One instance URL and manages the B1SESSION token by refreshing it before the 30-minute inactivity timeout, reusing the session across multiple polling cycles. For Cin7, it stores the api-auth-accountid and api-auth-applicationkey headers and presents them on every request. Both credential sets are encrypted at rest.
- Does the integration rely on SAP Business One or Cin7 webhooks?
- No. Because SAP Business One webhooks require server-side setup and Cin7 webhooks are not HMAC-signed, ml-connector uses polling with UpdateDate filters on SAP Business One and reads the Cin7 sales and purchase endpoints on a schedule. This polling approach works across all SAP Business One versions and configurations without requiring server-side changes.
Related integrations
More SAP Business One integrations
Other systems that connect to Cin7
Connect SAP Business One and Cin7
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started