SAP Business One and ShipBob integration
SAP Business One manages purchasing, inventory, and fulfillment. ShipBob runs the actual warehouse and shipment logistics. Connecting the two keeps inventory counts and purchase orders in sync between your finance system and your fulfillment network. Items you buy flow into ShipBob as receiving notices, and shipment confirmations flow back into SAP Business One to update sales orders and inventory balances. ml-connector handles the different authentication schemes and data models on each side.
What moves between them
The main flow runs from SAP Business One to ShipBob. When a purchase order is created or modified in SAP Business One, ml-connector reads it and sends it to ShipBob as a warehouse receiving order (WRO), triggering the warehouse to receive and process that shipment. Inventory changes in SAP Business One (Items and current stock levels) flow to ShipBob to maintain accurate available-to-ship quantities. In the reverse direction, ShipBob webhooks push shipment confirmations, tracking updates, and order fulfillment events back into SAP Business One, updating sales order fulfillment status and inventory balances. The sync cadence for outbound (SAP to ShipBob) is polling-based on a schedule you control, while inbound (ShipBob to SAP) is webhook-driven for real-time updates.
How ml-connector handles it
ml-connector maintains a SAP Business One session token, reusing the session across multiple API calls to avoid cold-start overhead and respecting the 30-minute inactivity timeout. For each customer, it accepts the full Service Layer URL (e.g., https://customer-server:50001/b1s/v2/) since SAP Business One publishes no global endpoint. When creating warehouse receiving orders in ShipBob, ml-connector maps SAP Business One items and quantities to ShipBob products and variants, converting weights to ounces and dimensions to inches per ShipBob requirements. ShipBob channel_id is stored encrypted alongside the OAuth token, and is included on every write operation. For webhook inbound, ml-connector verifies ShipBob HMAC-SHA256 signature on each event and translates shipment status updates back to the appropriate SAP Business One purchase order or sales order status, using DocNum for deduplication. If a ShipBob API call returns HTTP 429 (rate limit), ml-connector backs off and retries. Duplicate detection on the SAP Business One side uses the DocNum field; on ShipBob, the order ID and WRO ID serve as the idempotent key.
A real-world example
A small-to-midsize e-commerce retailer runs SAP Business One for accounting, purchasing, and inventory on a dedicated server and uses ShipBob to manage fulfillment across two regional warehouses. Before the integration, the purchasing team created purchase orders in SAP Business One, then manually entered the same items and quantities into ShipBob receiving, and inventory counts between the two systems drifted as orders shipped from the warehouse without real-time sync back to SAP. With SAP Business One and ShipBob connected, each purchase order automatically creates a receiving notice in ShipBob, shipments trigger automatic inventory deductions in SAP Business One, and the finance team has a single source of truth for inventory value and available stock without manual re-entry.
What you can do
- Send purchase orders from SAP Business One to ShipBob as warehouse receiving orders (WRO), with automatic item and quantity mapping.
- Synchronize current inventory levels and item master data from SAP Business One to ShipBob to keep available-to-ship quantities accurate.
- Receive shipment confirmations, tracking updates, and fulfillment status from ShipBob via webhooks and post those updates back into SAP Business One purchase orders and sales orders.
- Authenticate against both SAP Business One session token endpoint and ShipBob OAuth2 bearer token, managing expiry and refresh.
- Verify ShipBob webhook signatures with HMAC-SHA256 and deduplicate updates using order ID and DocNum to prevent duplicate posting.
Questions
- Which direction does data move between SAP Business One and ShipBob?
- Purchase orders and inventory flow from SAP Business One to ShipBob on a polling schedule you set, so ShipBob knows what to receive and has accurate item counts. Shipment confirmations, tracking updates, and order fulfillment status flow back from ShipBob to SAP Business One via webhooks in real-time, updating the status of sales and purchase orders. Reference data such as items and quantities must be kept aligned in both directions so orders map correctly.
- How does ml-connector handle SAP Business One session authentication and inactivity timeout?
- ml-connector creates a B1SESSION token by POSTing to the /Login endpoint and reuses that session across multiple API calls within the 30-minute inactivity window to avoid cold-start overhead. If a session expires (SAP Business One returns error code -5002), ml-connector automatically re-authenticates and retries the failed request. Sessions are not created per-request; they are pooled and reused.
- What unit conversions and data mappings are required between the two systems?
- ShipBob requires inventory dimensions in inches and weights in ounces; ml-connector converts SAP Business One item dimensions and weights to those units. Items and product variants are matched by SKU or an agreed mapping field so a purchase order line item in SAP Business One correctly identifies the variant in ShipBob. Quantities flow as-is, and warehouse location mapping is configured once during setup so each purchase order routes to the correct fulfillment center.
Related integrations
More SAP Business One integrations
Other systems that connect to ShipBob
Connect SAP Business One and ShipBob
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started