POST v1/Shipments

Creates a new shipment for an order.

Request Information

URI Parameters

None.

Body Parameters

AddShipmentInfo
NameDescriptionTypeAdditional information
OrderId

Order identifier for which you want to add a shipment

integer

None.

WarehouseId

Optional Warehouse for which the shipment is created.<br /><br />Allocated OrderRows for this shipment must have assigned this warehouse.<br /><br /> If not specified, the warehouse is determined based on the first OrderRow assigned to this shipment.

integer

None.

OrderRows

Optional collection of OrderRow identifiers<br /><br />All orderrows must have been assigned the same warehouse.<br /><br /> If not specified, all shippable orderrows with allocation for the specified warehouse are added.

Collection of integer

None.

ShippingCode

Optional Shipping code for shipment.<br /><br /> If not provided, ShopCtrl will generate the shippingcode.

string

None.

PreferredShipDate

Optional preferred ship date.

date

None.

GeneratePickList

Optional toggle to indicate whether the picklist should be generated on creation of the shipment.<br /><br />If you set this to false, you can still generate the PickList by calling the GeneratePickList API method.<br /><br />If not specified (null), Generate PickList setting from Warehouse is used.

boolean

None.

GeneratePackingSlip

Optional toggle to indicate whether the packingslip should be generated on creation of the shipment.<br /><br />If you set this to false, you can still generate the PackingSlip by calling the GeneratePackingSlip API method.<br /><br />If not specified (null), Generate packingslip setting from shop settings are used.

boolean

None.

PackingSlipTemplateId

Optional provide a specific PackingSlip document template Id. When not specified, the default configured template will be used.

integer

None.

CarrierAccountId

Optional id of CarrierAccount that should be used for the shipment.<br /><br />If not specified and CarrierAccountId is set for Order, CarrierAccountId from Order is used, otherwise CarrierAccountId remains blank.<br /><br />CarrierAccountId can also implicitly set when you add the first parcel.

integer

None.

CashOnDeliveryPayment

optional amount to be paid to the postman when the shipment is delivered.

decimal number

None.

Parameters

Optional collection of key-value pairs.

Collection of OrderShipmentParam

None.

Request Formats

application/json, text/json

Sample:
{
  "OrderId": 1,
  "WarehouseId": 2,
  "OrderRows": [
    1,
    2
  ],
  "ShippingCode": "sample string 3",
  "PreferredShipDate": "2026-01-11T16:13:31.4895317+01:00",
  "GeneratePickList": true,
  "GeneratePackingSlip": true,
  "PackingSlipTemplateId": 1,
  "CarrierAccountId": 1,
  "CashOnDeliveryPayment": 1.0,
  "Parameters": [
    {
      "Key": "sample string 1",
      "Value": "sample string 2"
    },
    {
      "Key": "sample string 1",
      "Value": "sample string 2"
    }
  ]
}

application/xml, text/xml

Sample:
<AddShipmentInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <OrderId>1</OrderId>
  <WarehouseId>2</WarehouseId>
  <OrderRows>
    <OrderRowId>1</OrderRowId>
    <OrderRowId>2</OrderRowId>
  </OrderRows>
  <ShippingCode>sample string 3</ShippingCode>
  <PreferredShipDate>2026-01-11T16:13:31.4895317+01:00</PreferredShipDate>
  <GeneratePickList>true</GeneratePickList>
  <GeneratePackingSlip>true</GeneratePackingSlip>
  <PackingSlipTemplateId>1</PackingSlipTemplateId>
  <CarrierAccountId>1</CarrierAccountId>
  <CashOnDeliveryPayment>1</CashOnDeliveryPayment>
  <Parameters>
    <Parameter>
      <Key>sample string 1</Key>
      <Value>sample string 2</Value>
    </Parameter>
    <Parameter>
      <Key>sample string 1</Key>
      <Value>sample string 2</Value>
    </Parameter>
  </Parameters>
</AddShipmentInfo>

Response Information

Resource Description

Result. HttpStatus OK if shipment was created succesfully

Shipment
NameDescriptionTypeAdditional information
PreferredShipDate

The preferred date to ship the Shipment.

date

None.

OrderRows

Gets or sets the order rows included in this Shipment.

Collection of integer

None.

Params

Gets or sets the parameters.

Collection of ShipmentParameter

None.

Packages

Gets or sets the parameters.

Collection of ShipmentPackage

None.

Id

Gets or sets the identifier.

integer

Must be 0 (for insert operations)

ShippingCode

Gets or sets the unique code for the shipment.

string

Max length: 200

CreateTimestamp

Gets or sets the create timestamp.

date

Required

ChangeTimestamp

The time data was changed.

date

None.

ShopId

Gets or sets the Shop identifier.

integer

None.

OrderId

Gets or sets the Order identifier.

integer

Required

OrderCode

Gets or sets the corresponding Order code.

string

None.

WarehouseId

Gets or sets the Warehouse identifier.

integer

None.

ParcelId

The Id of the created parcel.

integer

None.

PickedTimestamp

The time picked.

date

None.

PackedTimestamp

The time packed.

date

None.

ShippedTimestamp

The time shipped.

date

None.

HandOverTimestamp

The time the Shipment was communicated to 3rd party fulfilment.

date

None.

ShipmentType

The type of Shipment.

ShipmentTypeEnum

None.

Response Formats

application/json, text/json

Sample:
{
  "PreferredShipDate": "2026-01-11T16:13:31.5051607+01:00",
  "OrderRows": [
    1,
    2
  ],
  "Params": [
    {
      "Key": "sample string 1",
      "Value": "sample string 2",
      "DataType": 0,
      "DataTypeName": "String"
    },
    {
      "Key": "sample string 1",
      "Value": "sample string 2",
      "DataType": 0,
      "DataTypeName": "String"
    }
  ],
  "Packages": [
    {
      "Weight": 1,
      "Length": 2,
      "Width": 3,
      "Height": 4
    },
    {
      "Weight": 1,
      "Length": 2,
      "Width": 3,
      "Height": 4
    }
  ],
  "Id": 1,
  "ShippingCode": "sample string 2",
  "CreateTimestamp": "2026-01-11T16:13:31.5051607+01:00",
  "ChangeTimestamp": "2026-01-11T16:13:31.5051607+01:00",
  "ShopId": 4,
  "OrderId": 5,
  "OrderCode": "sample string 6",
  "WarehouseId": 1,
  "ParcelId": 1,
  "PickedTimestamp": "2026-01-11T16:13:31.5051607+01:00",
  "PackedTimestamp": "2026-01-11T16:13:31.5051607+01:00",
  "ShippedTimestamp": "2026-01-11T16:13:31.5051607+01:00",
  "HandOverTimestamp": "2026-01-11T16:13:31.5051607+01:00",
  "ShipmentType": 1
}

application/xml, text/xml

Sample:
<Shipment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Id>1</Id>
  <ShippingCode>sample string 2</ShippingCode>
  <CreateTimestamp>2026-01-11T16:13:31.5051607+01:00</CreateTimestamp>
  <ChangeTimestamp>2026-01-11T16:13:31.5051607+01:00</ChangeTimestamp>
  <ShopId>4</ShopId>
  <OrderId>5</OrderId>
  <OrderCode>sample string 6</OrderCode>
  <WarehouseId>1</WarehouseId>
  <ParcelId>1</ParcelId>
  <PickedTimestamp>2026-01-11T16:13:31.5051607+01:00</PickedTimestamp>
  <PackedTimestamp>2026-01-11T16:13:31.5051607+01:00</PackedTimestamp>
  <ShippedTimestamp>2026-01-11T16:13:31.5051607+01:00</ShippedTimestamp>
  <HandOverTimestamp>2026-01-11T16:13:31.5051607+01:00</HandOverTimestamp>
  <ShipmentType>OwnShipping</ShipmentType>
  <PreferredShipDate>2026-01-11T16:13:31.5051607+01:00</PreferredShipDate>
  <OrderRows>
    <OrderRows>1</OrderRows>
    <OrderRows>2</OrderRows>
  </OrderRows>
  <Params>
    <Params>
      <Key>sample string 1</Key>
      <Value>sample string 2</Value>
      <DataType>String</DataType>
    </Params>
    <Params>
      <Key>sample string 1</Key>
      <Value>sample string 2</Value>
      <DataType>String</DataType>
    </Params>
  </Params>
  <Packages>
    <Packages>
      <Weight>1</Weight>
      <Length>2</Length>
      <Width>3</Width>
      <Height>4</Height>
    </Packages>
    <Packages>
      <Weight>1</Weight>
      <Length>2</Length>
      <Width>3</Width>
      <Height>4</Height>
    </Packages>
  </Packages>
</Shipment>