ml-connector
Microsoft Dynamics GPShipStation

Microsoft Dynamics GP and ShipStation integration

Microsoft Dynamics GP manages your financial records, customers, and inventory on-premises. ShipStation handles order fulfillment, shipping labels, and tracking across multiple sales channels. Connecting the two keeps your orders, inventory, and fulfillment status aligned in real time. Sales orders created in ShipStation flow into Microsoft Dynamics GP with the correct customer and item mappings, and shipment status updates flow back so your financial records reflect what actually shipped.

How Microsoft Dynamics GP works

Microsoft Dynamics GP is an on-premises ERP system installed on customer's Windows Server with SQL Server backend. It exposes vendors, payables invoices, purchase orders, GL accounts, GL journal entries, customers, receivables invoices, and inventory items through REST Service Based Architecture (SBA) endpoints at https://<server>:<port>/GPService/Tenants(<TenantName>)/Companies(<CompanyName>)/<Module>/<Resource>, or through SOAP Web Services at http://<server>:<port>/Dynamics/GPService. Authentication uses Windows Active Directory with Negotiate/Kerberos or NTLM, requiring a domain account with appropriate GP user role. Microsoft Dynamics GP does not support webhooks or push notifications, so data is read by polling with ModifiedDate filters at customer-defined intervals.

How ShipStation works

ShipStation is a cloud-based shipping platform that aggregates orders from multiple sales channels, manages carriers and rates, and generates shipping labels. It exposes orders, customers, products, shipments, warehouses, and purchase orders through REST APIs with V2 at https://api.shipstation.com/v2 and V1 at https://ssapi.shipstation.com. Authentication uses API Key headers in V2 or HTTP Basic Auth in V1 with base64-encoded apiKey and apiSecret. ShipStation supports outbound webhooks for order and shipment events, though webhook payloads contain only resource pointers and require authenticated follow-up calls to fetch full data. ShipStation rate limits at 200 requests per minute for V2 and 40 requests per minute for V1.

What moves between them

Sales orders from ShipStation flow into Microsoft Dynamics GP as receivables documents, with ShipStation customers mapped to existing GP customers and ShipStation line items mapped to GP inventory items. Shipment status from ShipStation updates back to Microsoft Dynamics GP so the financial system reflects what has shipped. Inventory levels are polled from both directions: ShipStation warehouse stock flows into GP inventory on demand, and GP inventory adjustments are read to update ShipStation warehouse counts. The integration runs on a schedule tied to order fulfillment cycles rather than waiting for push events.

How ml-connector handles it

ml-connector stores the Windows domain credentials securely and presents them to Microsoft Dynamics GP's on-premises SBA or SOAP endpoint over HTTPS. ShipStation API keys are stored encrypted and presented on each REST call with rate-limit backoff. Because neither system supports full bidirectional webhooks, ml-connector polls ShipStation's modifyDate filter for order and shipment changes, and polls Microsoft Dynamics GP with ModifiedDate filters on inventory and customer records. Orders map to GP documents by matching ShipStation customer username to GP customer ID and ShipStation SKU to GP item code. The integration handles the fact that Microsoft Dynamics GP's fiscal periods must be open to create transactions, and it tracks the status of orders through ShipStation's immutable states (shipped, cancelled). Each record carries a full audit trail so replays are possible if a downstream call fails.

A real-world example

A mid-sized e-commerce retailer runs Microsoft Dynamics GP on-premises for accounting and inventory, and uses ShipStation to manage order fulfillment across their website, Amazon, and eBay. Before the integration, fulfillment staff picked and packed orders in ShipStation, generated labels, and shipped packages, but the orders never reached the accounting system until the finance team manually entered them as sales invoices at month-end. With Microsoft Dynamics GP and ShipStation connected, each order flows into Microsoft Dynamics GP automatically with the correct customer and item mappings. When a shipment is marked as shipped in ShipStation, the status updates into the corresponding GP document. At month-end, the revenue is already booked, inventory has been updated in real time, and the finance team has visibility into what shipped versus what is still pending.

What you can do

  • Sync ShipStation orders into Microsoft Dynamics GP as sales documents with customer and item mapping.
  • Pull shipment status from ShipStation back into Microsoft Dynamics GP to reflect fulfillment progress.
  • Map ShipStation customers and SKUs to existing Microsoft Dynamics GP customers and inventory items.
  • Authenticate to on-premises Microsoft Dynamics GP via Windows Active Directory and to ShipStation via API keys.
  • Poll both systems on a schedule with retries, rate-limit backoff, and a full audit trail on every record.

Questions

How does the integration authenticate to on-premises Microsoft Dynamics GP?
ml-connector stores a Windows domain account securely and presents it to Microsoft Dynamics GP's SBA or SOAP endpoint using Negotiate/Kerberos or NTLM authentication. The domain account must be created by the customer and granted the appropriate user role in Microsoft Dynamics GP. The GP instance must be exposed through the customer's firewall with a valid SSL certificate or through a local agent.
Which direction do orders flow between the two systems?
Orders flow primarily from ShipStation into Microsoft Dynamics GP as sales documents. Shipment status updates flow back from ShipStation so Microsoft Dynamics GP's financial records reflect actual fulfillment. Inventory can flow in both directions: ShipStation warehouse stock updates Microsoft Dynamics GP inventory on demand, and GP inventory adjustments update ShipStation warehouse counts.
How does the integration handle ShipStation's immutable shipped status and Microsoft Dynamics GP's fiscal period constraints?
ml-connector respects ShipStation's immutable order states and does not attempt to modify orders after they are shipped or cancelled. For Microsoft Dynamics GP, it validates that the fiscal period is open before creating transactions, and it tracks when orders were created so it does not retry against closed periods. If a period closes before an order is posted, the integration surfaces the error with full audit context.

Related integrations

Connect Microsoft Dynamics GP and ShipStation

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

Get started