Oracle NetSuite and ShipStation integration
Oracle NetSuite is your system of record for finance and customer data. ShipStation is your order fulfillment and shipping platform. Connecting the two keeps your fulfillment status and inventory in sync without re-entry. When an order ships in ShipStation, ml-connector updates the sales order in Oracle NetSuite with tracking information and fulfillment status. When inventory or customer data changes in Oracle NetSuite, ShipStation's warehouse records reflect the update. The integration runs on your schedule with automatic retries and a complete audit trail.
What moves between them
Orders flow primarily from ShipStation into Oracle NetSuite. When an order ships in ShipStation, ml-connector receives a webhook, fetches the full shipment record via authenticated GET, and posts the tracking number and fulfillment status to the matching Oracle NetSuite sales order. Inventory and customer reference data flows from Oracle NetSuite into ShipStation to keep warehouse stock levels and customer profiles aligned. The sync runs on a schedule configured per customer, typically once per day for inventory updates and in real-time for shipment webhooks. Order IDs are the natural join key between systems.
How ml-connector handles it
ml-connector stores both credential sets encrypted: ShipStation API keys decrypted on each outbound call, and Oracle NetSuite OAuth credentials cached after the initial M2M handshake. When ShipStation webhooks arrive, they contain only resource pointers, so ml-connector immediately fetches the full shipment and order records using the ShipStation API Key. It then maps tracking numbers and fulfillment status to the corresponding Oracle NetSuite sales order using order ID lookup. For inventory updates, ml-connector polls Oracle NetSuite inventory items on schedule via SuiteQL and syncs the quantities to ShipStation warehouses. OAuth token refresh is handled on 401 response and cached for the 60-minute window. ShipStation's V2 rate limit of 200 requests per minute is tracked via response headers; ml-connector queues and retries if limit is approached. All webhook payloads are deduplicated using order ID to prevent duplicate shipment posts. Every record carries a full audit trail and can be replayed if a downstream write fails.
A real-world example
A mid-sized e-commerce merchant runs Oracle NetSuite for finance, CRM, and master product and customer data. Orders arrive from multiple channels: direct website, marketplace, and B2B reseller channels. Before the integration, the fulfillment team used ShipStation to pick, pack, and ship orders, then manually logged back into Oracle NetSuite to update each order with tracking numbers and mark it fulfilled. Inventory counts in Oracle NetSuite drifted from ShipStation because stock transfers in the warehouse were never reflected in the ERP, causing forecast and reorder-point calculations to be inaccurate. With Oracle NetSuite and ShipStation connected, each shipment automatically updates the sales order with tracking data, inventory movements in Oracle NetSuite flow into ShipStation within hours, and the warehouse team has a single source of truth for available stock. Month-end close is faster because fulfillment status and inventory reconciliation are already complete.
What you can do
- Sync shipment status and tracking numbers from ShipStation back into Oracle NetSuite sales orders in real-time via webhooks.
- Keep inventory quantities aligned between Oracle NetSuite and ShipStation warehouses on a schedule you control.
- Deduplicate orders and shipments across both systems using order ID as the natural key.
- Handle ShipStation's API Key authentication and Oracle NetSuite's OAuth 2.0 M2M flow with automatic token refresh.
- Decrypt and securely present stored credentials, track rate limits, and provide full audit trail on every record posted or updated.
Questions
- In which direction do orders and inventory move between Oracle NetSuite and ShipStation?
- Shipment status and tracking flow from ShipStation into Oracle NetSuite sales orders in real-time. Inventory quantities flow from Oracle NetSuite into ShipStation warehouses on a schedule you define, typically daily. Customer master data also flows from Oracle NetSuite to ShipStation so that reseller or account hierarchy information stays synchronized.
- Does the integration handle ShipStation's webhook pointer payloads?
- Yes. ShipStation webhooks contain only resource_type and resource_url pointers, not the full shipment or order data. ml-connector immediately fetches the full record using an authenticated GET call to the ShipStation API, then maps the tracking number and status to the Oracle NetSuite sales order. This ensures ml-connector always works with the latest, complete data.
- How does ml-connector manage OAuth token refresh and ShipStation API rate limits?
- Oracle NetSuite OAuth tokens expire after 60 minutes with no refresh token, so ml-connector handles the full M2M credential cycle on demand. ShipStation's V2 API returns rate limit status in response headers (X-Rate-Limit-Limit, X-Rate-Limit-Remaining, X-Rate-Limit-Reset); ml-connector tracks these and queues calls if the limit is approaching. All retries carry exponential backoff and a full audit trail.
Related integrations
More Oracle NetSuite integrations
Other systems that connect to ShipStation
Connect Oracle NetSuite and ShipStation
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started