---
title: "How to Create Shipment With Magento 2 API"
url: "https://magecomp.com/blog/create-shipment-with-magento-2-api/"
date: "2021-09-07T10:13:54+00:00"
modified: "2021-09-07T10:13:54+00:00"
author:
  name: "Dhiren Vasoya"
  url: "https://magecomp.com/"
categories:
  - "Magento Tutorials"
word_count: 506
reading_time: "3 min read"
summary: "Hello, Magento pals!"
description: "Learn more on How to Create Shipment With Magento 2 API - Endpoint: POST /rest//V1/order/3/ship. where 1 is the order id."
keywords: "Magento Tutorials"
language: "en"
schema_type: "Article"
related_posts:
  - title: "How to Configure Shipping Policy in Magento 2?"
    url: "https://magecomp.com/blog/configure-shipping-policy-magento-2/"
  - title: "Guide to Configure WYSIWYG Editor in Magento 2 (Updated 2026)"
    url: "https://magecomp.com/blog/configure-wysiwyg-editor-in-magento-2/"
  - title: "Easy Method to Apply The Default Theme In Magento 2"
    url: "https://magecomp.com/blog/apply-default-theme-magento-2/"
---

# How to Create Shipment With Magento 2 API

_Published: September 7, 2021_  
_Author: Dhiren Vasoya_  

![How to Create Shipment With Magento 2 API](https://magecomp.com/blog/wp-content/uploads/2021/09/How-to-Create-Shipment-With-Magento-2-API-1024x512.webp)

**Hello, Magento pals!**

Magento 2 is a flexible, powerful E-commerce platform that enables the user to create shipping of an order with the use of API. hence, I am here with this complete tutorial on how you can create shipping with Magento 2 API.
Let’s get going!
## Create Shipment With Magento 2 REST API
Get the order_item_id of all the products that are to be shipped in order to create a shipment with Magento 2. Note that:
- To create a partial shipment, define only the **order_item_ids** that are going to be shipped now. - If the call is successful on a full shipment, The order status is changed to Complete.
**Endpoint:**

**POST https://domain.com/rest/<store_code>/V1/order/1/ship**

Here, 1 is Your Order Id and store_code (optional).
**Headers:**

**Content-Type: application/json**

**Authorization: Bearer <administrator token>**

**Payload:**

```
{
  "items": [
    {
      "order_item_id": 1,
      "qty": 1
    },
    {
      "order_item_id": 2,
      "qty": 2
    },
    {
      "order_item_id": 3,
      "qty": 3
    }
  ],
  "notify": true,
  "appendComment": true,
  "comment": {
    "comment": "Shipment from the warehouse"
  },
  "tracks": [
     {
       "track_number": "456456465",
       "title": "fedex Title Here",
       "carrier_code": "fedex"
     }
   ]
}
```

**Response:**

**The shipment ID, such as 3.**

## Check the results
1. Go to Sales > Shipments in the admin panel. The Three shipments for this order are displayed in the grid.2. Go to Catalog > Products. Check that the Quantity per Source values are correct for each product, based on the selections you made at shipment.
Create Sample Example for shipment using REST API so create **shipment_rest_api.php** in your Magento root path after adding the below code.
```
<?php

$admindata = array("username" => "admin", "password" => "admin@123");

$ch = curl_init("http://domain.com/rest/V1/integration/admin/token");

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($admindata));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Content-Length: " . strlen(json_encode($admindata))));

$token = curl_exec($ch);

curl_close($ch);

echo "Token : ".$token;

$ch = curl_init();

if (!$ch)

{

    return "Couldn't initialize a cURL handle";

}

$data = '{

  "items": [

    {

      "order_item_id": 4,

      "qty": 1

    }

  ]

}';

$host= "http://domain.com/rest/V1/order/4/ship";

curl_setopt($ch, CURLOPT_URL,$host);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Authorization: Bearer " . json_decode($token)));

$curlresponse = curl_exec($ch);

print_r(curl_error($curlresponse));

$responseData=json_decode($curlresponse);

echo "";

print_r($responseData);

echo "";
```

After adding the above code, run the below URL to check shipment was created or not.
**http://domain.com/shipment_rest_api.php**

## Bottom Line
The aforementioned are the comprehensive details on How to Create Shipment With Magento 2 API. we anticipate that this blog post was a beneficial one for what you were looking for.
If you have any complications or want to talk about something relevant to this problem, please write us in the comments below. I look forward to hearing from you!
**Happy Coding!**


---

_View the original post at: [https://magecomp.com/blog/create-shipment-with-magento-2-api/](https://magecomp.com/blog/create-shipment-with-magento-2-api/)_  
_Served as markdown by [Third Audience](https://github.com/third-audience) v3.5.3_  
_Generated: 2026-10-01 12:58:12 UTC_  
