SAP Business One and ShipStation integration
SAP Business One runs order management and inventory for small-to-midsize businesses, while ShipStation handles shipping label generation and carrier selection for e-commerce orders. Connecting them keeps your orders and shipment tracking aligned. When new orders appear in SAP Business One, they can be sent to ShipStation for fulfillment without manual data entry. Shipment confirmations and tracking information flow back into SAP Business One so customers see real-time shipping status and inventory is reduced on shipment, not order.
What moves between them
Orders and inventory items flow from SAP Business One to ShipStation. When an order is created or updated in SAP Business One, ml-connector detects it via polling on a schedule tied to your order fulfillment cycle and pushes it to ShipStation with the customer and item details mapped. Shipment confirmations, tracking numbers, and carrier information flow back from ShipStation into SAP Business One, updating the order status and inventory quantities. Reference data such as item codes and customer identifiers are aligned bidirectionally so orders land on valid ShipStation products and customers.
How ml-connector handles it
ml-connector maintains session tokens on the SAP Business One side by reusing the B1SESSION cookie and refreshing it before the 30-minute inactivity timeout, avoiding expensive cold-start calls. On ShipStation it presents the API key on every request and respects the 200 requests-per-minute rate limit with backoff and retry logic. Orders are mapped from SAP Business One sales orders to ShipStation orders using the DocNum (document number) as the natural idempotency key; ml-connector checks for duplicates on retry to avoid double-shipments. Inventory updates are sent to ShipStation as part of order fulfillment and tracked in the audit log so any reconciliation step has a full trace. ShipStation webhook payloads are pointer-only, so ml-connector follows the resource_url to fetch the actual shipment or order data within the webhook time window. Datetimes from ShipStation v1 are converted from PST/PDT to UTC so timestamps align with SAP Business One. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A small-to-midsize e-commerce business runs SAP Business One for order management and accounting on-premise and uses ShipStation to aggregate orders from multiple sales channels (Shopify, Amazon, eBay) and generate carrier-optimized shipping labels. Before the integration, the order fulfillment team manually exported orders from SAP Business One each morning, copied the customer and item data into ShipStation, generated labels, and then re-entered tracking information back into SAP Business One by hand. With SAP Business One and ShipStation connected, new orders sync automatically from SAP Business One to ShipStation, labels are generated on schedule, and tracking confirmations flow back into SAP Business One without re-keying. The fulfillment team can now focus on packing instead of data entry, and customers see accurate shipment tracking in the sales portal.
What you can do
- Push sales orders from SAP Business One to ShipStation with customer, item, and quantity details mapped correctly.
- Generate shipping labels in ShipStation and sync tracking numbers, carrier names, and shipment status back to SAP Business One.
- Reuse SAP Business One session tokens to avoid expensive authentication on every call, refreshing before timeout.
- Poll SAP Business One on a schedule aligned to your order fulfillment cycle, with duplicate detection and full audit trail.
- Handle ShipStation's 200 requests-per-minute rate limit with backoff and retries, tracking every record change.
Questions
- How does ml-connector keep SAP Business One session tokens from timing out?
- ml-connector reuses the B1SESSION cookie returned from POST /Login and monitors the inactivity timer. It refreshes the token before the 30-minute timeout by making a small authenticated call, so orders can flow continuously without expensive cold-start login calls. If a token does expire (error code -5002), ml-connector logs the timeout and re-authenticates immediately.
- Why do ShipStation webhooks require a follow-up GET call?
- ShipStation webhook payloads contain only the resource URL and type, not the full order or shipment data. ml-connector receives the webhook notification, follows the resource_url with an authenticated GET, and fetches the actual shipment or order details within the webhook time window. This design lets ShipStation emit frequent lightweight notifications without sending large payloads.
- How are orders mapped from SAP Business One to ShipStation without duplicates?
- ml-connector uses the SAP Business One DocNum (document number) as the natural idempotency key. On retry, it checks whether an order with that DocNum has already been sent to ShipStation and skips re-transmission if it has. All create and update operations are logged in the audit trail so any discrepancy can be traced and replayed if needed.
Related integrations
More SAP Business One integrations
Other systems that connect to ShipStation
Connect SAP Business One and ShipStation
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started