---
title: "Order - Add Manual Shipment"
method: POST
path: "/order/add_manual_shipment"
tags: ["order"]
---

# Order - Add Manual Shipment

`POST /order/add_manual_shipment`

Add a manual shipment with tracking information to an order.

## Request body

- object
  - `store_id` string, required — Store ID
  - `order_number` string, required — Order number
  - `address` ShipTo — Shipping address
    - `name` string — Recipient name
    - `company` string — Company name
    - `address` string — Street address line 1
    - `address2` string — Street address line 2
    - `city` string — City
    - `state` string — State or province
    - `postal_code` string — Postal or ZIP code
    - `country_code` string — Two-letter country code
    - `phone` string — Phone number
    - `email` string — Email address
  - `carrier` string — Carrier name (e.g. USPS, UPS, FedEx)
  - `tracking_number` string — Tracking number
  - `service` string — Shipping service type
  - `order_items` object[] — Items included in the shipment
  - `warehouse_id` string — Warehouse ID to ship from
  - `dropship` boolean — Whether this is a dropship order
  - `no_refresh` boolean — Skip cache refresh after operation
  - `notes` string — Shipment notes
  - `force_deduction` boolean — Force inventory deduction
  - `cost` number — Shipping cost

## Response `200`

Shipment added successfully

- object
  - `shipments` Shipment[], required — Created shipment(s)
    - `_id` string — Shipment ID
    - `user_id` string — User who created the shipment
    - `time` string — Shipment creation time
    - `voided` boolean — Whether the shipment is voided
    - `return_label` boolean — Whether this is a return label
    - `deducted` boolean — Whether inventory was deducted
    - `response` object — Shipment response details
      - `provider` string — Carrier provider name
      - `service` string — Service name
      - `label_url` string — Label URL
      - `tracking_number` string — Tracking number
      - `tracking_url` string — Tracking URL
      - `amount` number — Shipping cost amount
      - `currency` string — Currency code
      - `shipment_id` string — External shipment ID
      - `signature` boolean — Signature confirmation
    - `request` object — Shipment request parameters
      - `order_items` ShipmentOrderItem[] — Items included in shipment
        - `item_id` string — Item ID
        - `variant_id` string — Variant ID
        - `quantity` number — Quantity shipped
        - `sku` string — Item SKU
      - `parcel` object — Parcel dimensions
        - `length` number — Package length
        - `width` number — Package width
        - `height` number — Package height
        - `weight` number — Package weight
        - `weight_unit` string — Weight unit
        - `dimensions_unit` string — Dimensions unit
      - `address` object — Ship-to address used in request
      - `carrier_account_ids` string[] — Carrier account IDs
      - `provider` string — Carrier provider
      - `service` unknown
  - `skulabs_warning` object — Non-fatal warning (e.g. channel notification failure)
    - `message` string — Warning message
    - `type` string — Warning type

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden. Insufficient permissions.
- `429` — Too many requests. Rate limit exceeded.
- `500` — Internal server error.

---

[API](https://skmtc.net/skulabs/apis/skulabs-api.md) · [All operations](https://skmtc.net/skulabs/apis/skulabs-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skulabs/skulabs-api/revisions/4b5ec0ed78a6/schema)
