Skip to main content
How-to

ShipMonk Fulfillment Integration Guide

Last Updated: June 26, 2026


Table of Contents

  1. Overview

  2. Prerequisites

  3. Setup

  4. Integration Behavior Reference

  5. Order Modification Workflows

  6. Timing Constraints

  7. Troubleshooting

  8. Related Documentation


Overview

ShipMonk is a 3PL (third-party logistics) provider. When integrated with UltraCart, ShipMonk receives orders for fulfillment and sends shipment confirmations (tracking numbers, package details) back to UltraCart.

This guide covers the full integration lifecycle: initial setup and configuration, how UltraCart and ShipMonk communicate after an order is placed, and the correct workflows for modifying or canceling orders after transmission.


Prerequisites

  • An active ShipMonk account with API access enabled

  • A ShipMonk API Store (not a manual/import store)

  • A ShipMonk API Key and Store ID

  • UltraCart access to configure Distribution Centers and item fulfillment settings

Important: In ShipMonk, you must create and authorize an API store before you can generate API keys. See Step 1 below.


Setup

Step 1: Obtain ShipMonk API Credentials

Step 1a: Generate a Store (skip if you already have a ShipMonk API Store)

Within the ShipMonk app, navigate to Account Settings > General Settings > Stores. Click Integrate Another Store and complete the Typeform. A ShipMonk integrations team member will respond within 48 hours to complete the request.

Step 1b: Create an API Key

Once your store is authorized, navigate to Integration API Keys and create an API key. Your store's unique ID is also available on this screen.

Note: Save the API key in a secure location. If you lose it, you will need to generate a new one. You can revoke existing keys at any time via Action > Revoke API Key in the Integration API Key settings.

image-20260305-192953.png


Step 2: Configure the UltraCart Transmission Mechanism

UltraCart requires a fulfillment endpoint to send orders to ShipMonk and receive shipment confirmations back.

  1. In UltraCart, navigate to Operations > Fulfillment > Distribution Centers.

  2. Create a new Distribution Center or edit an existing one you want ShipMonk to fulfill from.

  3. Set the Transmission Mechanism to ShipMonk.

  4. Enter the ShipMonk connection details:

    • Base URL: https://api.shipmonk.com

    • Authentication header: Api-Key: YOUR_API_KEY

    • Store ID: (from your ShipMonk Integration API Keys screen)

image-20260625-200242.png

Note: The exact UltraCart field names for URL, headers, and credential storage depend on which fulfillment transmission plugin or mechanism is enabled on your account. The ShipMonk values listed above are consistent regardless of UI variation.


Step 3: Configure ShipMonk Shipping Methods in UltraCart

ShipMonk requires each order to specify a shipping service value that ShipMonk recognizes. You map UltraCart checkout shipping method names to the ShipMonk shipping service values configured in your ShipMonk store.

  1. In UltraCart, open the ShipMonk Distribution Center and go to Shipping Methods / Method Mapping.

  2. Add a mapping for each shipping method available at checkout.

Use the following table as a template. Fill in the ShipMonk-side values that match your store's carrier and service configuration:

UltraCart Shipping Method (Checkout)ShipMonk Shipping Service ValueNotes
UPS Ground[ShipMonk value]Use the exact service configured for your ShipMonk store
UPS 2nd Day Air[ShipMonk value]
ShipMonk Fulfillment StatusCan Request Hold?Can Modify Items?
Awaiting fulfillmentYesYes
ProcessingYes (request immediately)Usually yes
PickingUrgent request requiredMay be possible with direct ShipMonk support contact
PackedNoNo
ShippedNoNo

UltraCart does not display ShipMonk fulfillment status. To determine where an order is in the fulfillment queue, log in to the ShipMonk portal or contact ShipMonk support directly.


Troubleshooting

Order shows "Shipped" in UltraCart but was expected to be on hold

Symptoms: UltraCart shows a shipped status, but the merchant had requested a hold or modification.

Root Cause: ShipMonk holds are not communicated back to UltraCart. UltraCart shows shipped status once ShipMonk releases and ships the order, regardless of any intermediate hold periods.

Solution: This is expected behavior. Verify actual hold and shipment status in the ShipMonk portal, not in UltraCart.


Refund was issued in UltraCart but ShipMonk shipped the full order

Symptoms: A refund was processed in UltraCart, but ShipMonk fulfilled and shipped the complete original order.

Root Cause: Refunds in UltraCart are payment adjustments and do not send any signal to ShipMonk. Issuing a refund does not hold, modify, or cancel the ShipMonk order.

Solution: For future orders, follow the Pre-Shipment Order Modification workflow above. A ShipMonk hold must be placed and item changes made in ShipMonk before issuing the refund in UltraCart.


ShipMonk holds the order due to SKU mismatch

Symptoms: ShipMonk places the order on hold with a "SKU not found" or "insufficient inventory" error.

Root Cause: The Fulfillment SKU configured on the UltraCart item does not match the SKU ShipMonk has on file.

Solution: In UltraCart, navigate to the item's Fulfillment / Distribution Center settings and update the Fulfillment SKU to match the exact value in ShipMonk. See Step 4.


ShipMonk says the order cannot be modified

Symptoms: ShipMonk declines a modification or hold request.

Root Cause: The order has already been picked, packed, or shipped.

Solution: Accept the fulfilled order. Issue a refund in UltraCart for unwanted items. Coordinate a return with the customer if applicable.


Was this page helpful?