ml-connector
Microsoft Dynamics GPShipBob

Microsoft Dynamics GP and ShipBob integration

Dynamics GP runs your on-premises financial and inventory management. ShipBob runs your fulfillment centers. Connecting them keeps your sales orders and inventory in sync without manual re-keying. New orders placed through your sales channels flow into Dynamics GP as sales orders, ShipBob shipments post back to GP with tracking updates, and inventory adjustments in GP sync back to ShipBob's available stock. ml-connector handles the very different authentication models on each side and moves the data on a schedule you control.

How Microsoft Dynamics GP works

Microsoft Dynamics GP is an on-premises ERP system installed on Windows Server with SQL Server backend. It exposes vendors, payables invoices, purchase orders, payments, GL accounts, journal entries, customers, receivables invoices, and inventory items through REST Service Based Architecture (SBA) endpoints or SOAP Web Services, both with ModifiedDate filters for polling. Every call requires Windows Active Directory credentials mapped to a Dynamics GP user with role-based security; OAuth2 and API keys are not supported. GP does not support webhooks or push notifications, so records must be polled at customer-defined intervals. Posted transactions are read-only; only unposted work transactions can be modified. The on-premises model requires the customer to expose the SBA or SOAP endpoint through the firewall with a valid SSL certificate.

How ShipBob works

ShipBob is a REST API for e-commerce fulfillment and storage. It exposes orders, shipments, products, variants, inventory, warehouse receiving orders, returns, billing invoices, and tracking information. Every call requires OAuth2 bearer token authentication with access tokens valid for 1 hour and refresh tokens for 30 days, plus a shipbob_channel_id header to identify the application channel. ShipBob supports webhooks for order.shipped, order.shipment.tracking.updated, order.shipment.delivered, return.created, return.updated, and wro.created events, with HMAC-SHA256 signature verification using the webhook-id, webhook-timestamp, and webhook-signature headers. Writes to ShipBob are scoped to the caller's own channel; reads can pull from all channels. Inventory is tracked by weight in ounces and dimensions in inches.

What moves between them

Orders from ShipBob flow into Dynamics GP as sales orders mapped to the correct customer and warehouse. Shipment events from ShipBob are received via webhook and create shipment records in Dynamics GP with tracking details. Inventory adjustments made in Dynamics GP sync back to ShipBob's fulfillment centers to keep available stock current. Returns initiated in ShipBob also post back to Dynamics GP as inventory receipts. The main flow is bidirectional: ShipBob events trigger GP transactions, and GP inventory changes push back to ShipBob on a schedule tied to your fulfillment cadence.

How ml-connector handles it

ml-connector stores the Windows domain credentials and ShipBob OAuth2 tokens encrypted and refreshes the ShipBob access token when a call returns 401. On the Dynamics GP side it authenticates using the customer's Windows domain account and accepts the full SBA or SOAP endpoint URL since GP is on-premises; it polls for new or updated records using ModifiedDate filters on a schedule you control. On the ShipBob side it registers a webhook endpoint to receive order and shipment events in real time, validates the HMAC-SHA256 signature on each webhook, and also performs periodic inventory syncs back to ShipBob when GP inventory is updated. ShipBob orders are mapped to Dynamics GP sales orders by matching ShipBob locations to GP warehouse codes and ShipBob products to GP inventory items; if a mapping is missing, the record is flagged for manual review rather than failing silently. Because Dynamics GP only allows changes to unposted transactions, shipments are created as draft records until the order is marked as shipped in ShipBob, at which point they can be posted. Every record carries a full audit trail and can be replayed if a downstream sync fails.

A real-world example

A mid-sized wholesale distributor uses Dynamics GP for order management and inventory, and ShipBob for three fulfillment centers across the country. Before the integration, when an online customer placed an order, the sales team manually entered it into Dynamics GP, then notified ShipBob via email with a pick list. When ShipBob shipped the order, the team manually updated Dynamics GP with tracking information and then had to deduct inventory from each warehouse code in GP by hand. With Dynamics GP and ShipBob connected, each ShipBob order automatically creates a sales order in Dynamics GP mapped to the right warehouse, ShipBob shipment events post tracking details back to GP, and inventory adjustments in GP sync back to ShipBob so fulfillment centers always see current stock. The manual entry and email loops are gone, and month-end reconciliation is faster.

What you can do

  • Create sales orders in Dynamics GP when ShipBob receives orders, with products and quantities mapped from ShipBob to GP inventory items.
  • Post shipment records to Dynamics GP when ShipBob ships orders, including tracking information and warehouse codes.
  • Sync inventory adjustments from Dynamics GP back to ShipBob fulfillment centers so available stock is always current.
  • Authenticate Dynamics GP with Windows Active Directory credentials and ShipBob with OAuth2, with encrypted credential storage and token refresh.
  • Receive ShipBob order and shipment events via webhook with HMAC-SHA256 signature verification, poll Dynamics GP using ModifiedDate filters, and maintain a full audit trail on every record.

Questions

How does the integration handle Dynamics GP's on-premises requirement and Windows authentication?
ml-connector accepts the full SBA or SOAP endpoint URL per customer and uses the Windows domain credentials that the customer provides to authenticate against Dynamics GP. Because GP is on-premises, the customer must expose the endpoint through the firewall with a valid SSL certificate, and ml-connector validates the certificate on every call. No cloud auth method is needed; Windows Active Directory handles identity.
Which direction does data move between Dynamics GP and ShipBob?
The flow is bidirectional. ShipBob orders and shipments flow into Dynamics GP as sales orders and shipment records, while inventory adjustments made in Dynamics GP sync back to ShipBob so fulfillment centers see current stock. Returns initiated in ShipBob also post back to Dynamics GP as inventory receipts.
What happens if a ShipBob order cannot be mapped to a Dynamics GP customer or warehouse?
ml-connector flags the record for manual review rather than failing the entire sync. The order is queued in a review state, an alert is generated, and the team can inspect the missing mapping, create the customer or warehouse in Dynamics GP if needed, then replay the record through the integration once the mapping is complete.

Related integrations

Connect Microsoft Dynamics GP and ShipBob

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

Get started