ml-connector
SYSPROShipBob

SYSPRO and ShipBob integration

SYSPRO handles manufacturing, distribution, and finance. ShipBob handles fulfillment and warehouse operations. Connecting them keeps your inventory in agreement and eliminates manual order entry between systems. New orders placed through ShipBob flow into SYSPRO's sales ledger, confirmed shipments update SYSPRO inventory, and warehouse receiving orders align stock levels across both systems. ml-connector manages the very different authentication models on each side and moves data on schedules you control.

How SYSPRO works

SYSPRO 8 exposes suppliers, purchase orders, sales orders, inventory masters, general ledger accounts, warehouses, and warehouse transactions through two API layers: e.net Business Objects (REST and SOAP, read and write) authenticated with session tokens from a Logon endpoint, and OData (REST GET only) authenticated with HTTP Basic Auth using auto-generated SQL credentials. SYSPRO is deployed per customer on premises or in cloud, so there is no shared base URL. SYSPRO does not support outbound webhooks, so inventory and order records are read by polling on a regular interval.

How ShipBob works

ShipBob exposes orders, shipments, products, inventory levels, warehouse receiving orders, returns, and billing documents through REST APIs authenticated with OAuth2 Authorization Code flow (for multi-tenant apps) or Personal Access Tokens (for single-merchant integrations). ShipBob publishes webhook events for order lifecycle, shipment tracking, receiving, returns, and billing, with every webhook signed using HMAC-SHA256. The shipbob_channel_id header on all calls identifies which fulfillment channel is receiving or sending data.

What moves between them

Orders flow from ShipBob into SYSPRO via webhooks. When ShipBob receives an order, ml-connector captures the order.shipment event, maps ShipBob items to SYSPRO inventory SKUs, and posts a confirmed sales order into SYSPRO's ArInvoice and ArCustomer tables. Inventory flows in both directions: SYSPRO inventory masters are polled and sent to ShipBob to keep stock levels current, and ShipBob warehouse receiving orders (WRO) trigger SYSPRO inventory transactions. Shipment tracking flows from ShipBob back into SYSPRO so sales orders reflect actual fulfillment status.

How ml-connector handles it

ml-connector stores SYSPRO session tokens and ShipBob OAuth tokens encrypted, refreshes ShipBob tokens when they expire (1-hour lifetime), and manages SYSPRO session logons to keep the session alive across polling intervals. On the ShipBob side it verifies every webhook signature using the stored webhook secret and HMAC-SHA256 before processing the event. When an order arrives via webhook, ml-connector looks up the ShipBob sales channel to find the matching SYSPRO customer, maps ShipBob items against SYSPRO InvMaster records by SKU, and writes the order into SYSPRO via Business Objects REST. For inventory syncs, ml-connector polls SYSPRO OData for InvWarehouse and InvPrice records on a regular interval and pushes updates to ShipBob's inventory endpoint, tagged with the shipbob_channel_id for the correct fulfillment center. Receiving orders trigger SYSPRO InvWarehouse transactions to adjust on-hand balances. ShipBob rate limits are handled with exponential backoff and jitter.

A real-world example

A mid-sized fashion distributor uses SYSPRO ERP to manage production, purchasing, and sales across five warehouses, and uses ShipBob to fulfill orders placed online and through partners. Before the integration, the warehouse team received picking lists from ShipBob via email and manually entered confirmed orders into SYSPRO by end of day, which created delays and SKU mismatches when SYSPRO quantities differed from ShipBob stock. With SYSPRO and ShipBob connected, orders confirmed in ShipBob flow into SYSPRO automatically with correct SKUs and quantities, warehouse staff pick from ShipBob with confidence that SYSPRO inventory is in sync, and receiving orders update stock in both systems in real time. Order-to-cash cycle time dropped and inventory variance closed.

What you can do

  • Receive ShipBob orders via webhook and post confirmed sales orders into SYSPRO's sales ledger with correct customer and SKU mapping.
  • Keep SYSPRO inventory balances in sync with ShipBob fulfillment center stock levels via scheduled polling and inventory updates.
  • Sync warehouse receiving orders from ShipBob into SYSPRO inventory transactions so stock counts reconcile across both systems.
  • Authenticate ShipBob with OAuth2 bearer tokens and SYSPRO with session tokens, managing token refresh and logon persistence.
  • Verify ShipBob webhook signatures, handle 429 rate limits with backoff, and maintain a full audit trail on every record moved.

Questions

Which direction does data move between SYSPRO and ShipBob?
Orders and shipment tracking flow from ShipBob into SYSPRO via webhooks, so new orders are posted to SYSPRO's sales ledger and fulfillment status updates SYSPRO sales orders. Inventory flows in both directions: SYSPRO inventory masters are polled and pushed to ShipBob to keep stock current at fulfillment centers, and ShipBob warehouse receiving orders trigger SYSPRO inventory transactions so on-hand balances reconcile.
How does the integration handle SYSPRO's customer-hosted deployment and multiple authentication methods?
ml-connector accepts the full SYSPRO server URL per customer and stores both the OData credentials (HTTP Basic Auth) and the Business Objects session token per customer. It polls SYSPRO OData for read-only data and uses Business Objects REST for order writes, managing session token logons to keep the session alive between polling intervals so connection overhead is minimized.
How are ShipBob webhooks secured and what happens if a signature verification fails?
Every ShipBob webhook is signed using HMAC-SHA256 with a webhook secret. ml-connector verifies the signature on every event using the stored secret and the webhook-id, webhook-timestamp, and webhook-signature headers. If the signature fails, the event is rejected immediately and logged, so no unsigned or tampered orders enter SYSPRO.

Related integrations

Connect SYSPRO and ShipBob

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started