Picklist Shipments
You can create shipment requests for a picklist through the API. This will request the label at the given shipping provider, like PostNL.
| Name |
Type |
Description |
| idshipment |
integer |
Unique Picqer reference |
| idpicklist |
integer |
Picklist where this shipment is for |
| idorder |
integer |
Order where this shipment is for |
| idreturn |
integer |
Return where this shipment is for |
| idpackaging |
integer |
Packaging used for this shipment |
| idcompany_shippingprovider |
integer |
Shipping provider used to create this order |
| provider |
string |
Name of the shipping provider |
| providername |
string |
User-defined name for this provider |
| public_providername |
string |
Name for the 'service' or provider that is known to the public |
| carrier_key |
string |
Identifier of the carrier used for this shipment, see carrier keys |
| weight |
integer |
Weight in grams as filled in during the shipment creation and communicated to the shipping provider. Can be null when the shipment is older than December 4th 2023. |
| cancelled |
boolean |
Is this shipment cancelled? Can be done within 5 minutes after creation. |
| idfulfilment_customer |
integer |
Only for Picqer Fulfilment: Linked to belonging fulfilment customer |
| parcels |
array |
A shipment consists of one or more parcels. |
| parcels.idparcel |
integer |
Unique identifier of the parcel. |
| parcels.idpackaging |
integer |
Packaging used for this parcel. |
| parcels.weight |
integer |
Weight in grams. |
| parcels.tracking_code |
string |
Tracking number provided by the shipping provider for this parcel. |
| parcels.tracking_url |
string |
Publicly accessible URL where the customer can track the parcel. |
| parcels.documents |
array |
Each parcel can have zero or more documents attached, such as a shipping label. |
| parcels.documents.idparcel_document |
integer |
Unique identifier of the document. |
| parcels.documents.type |
string |
Document type: label, customs, or other. |
| parcels.documents.size |
string |
Document size: A6 or A4. |
| parcels.documents.format |
string |
Document format: pdf or zpl. |
| parcels.documents.url |
string |
Publicly accessible URL where the document can be downloaded. |
GET
https://example.picqer.com/api/v1/shipments
HTTP/1.1 200 OK
[
{
"idshipment": 19,
"idpicklist": 439,
"idorder": 1218,
"idreturn": null,
"idpackaging": 34,
"idshippingprovider": 2,
"idcompany_shippingprovider": 2,
"idcompany_shippingprovider_profile": 2,
"provider": "PostNL",
"providername": "PostNL",
"public_providername": "PostNL",
"profile_name": "Standaard",
"carrier_key": "postnl",
"weight": 2000,
"created_by_iduser": 1,
"cancelled": false,
"created": "2021-06-08 11:40:36",
"updated": "2021-06-08 11:40:36",
"idfulfilment_customer": null,
"parcels": [
{
"idparcel": 66,
"idpackaging": null,
"weight": 1000,
"tracking_code": "3SMYPO8610972",
"tracking_url": "https://shipping.com/3SMYPO8610972",
"documents": [
{
"idparcel_document": 67,
"type": "label",
"size": "A6",
"format": "pdf",
"url": "https://example.com/label.pdf"
}
]
}
]
}
]
You can filter the shipments with the following parameters. Add these filters as querystring parameters to the URL.
| Attribute |
Description |
Example |
| search |
Search through the trackingcode fields and the delivery name of picklists the shipments are for. |
3SDEVC931341234 |
| sincedate |
Get shipments created after this datetime |
2025-01-01 12:00:00 |
| untildate |
Get shipments created before this datetime |
2025-01-01 12:00:00 |
GET
https://example.picqer.com/api/v1/shipments/{idshipment}
HTTP/1.1 200 OK
{
"idshipment": 19,
"idpicklist": 439,
"idorder": 1218,
"idreturn": null,
"idpackaging": 34,
"idshippingprovider": 2,
"idcompany_shippingprovider": 2,
"idcompany_shippingprovider_profile": 2,
"provider": "PostNL",
"providername": "PostNL",
"public_providername": "PostNL",
"profile_name": "Standaard",
"carrier_key": "postnl",
"weight": 2000,
"created_by_iduser": 1,
"cancelled": false,
"parcels": [
{
"idparcel": 66,
"idpackaging": null,
"weight": 1000,
"tracking_code": "3SMYPO8610972",
"tracking_url": "https://shipping.com/3SMYPO8610972",
"documents": [
{
"idparcel_document": 67,
"type": "label",
"size": "A6",
"format": "pdf",
"url": "https://example.com/label.pdf"
}
]
}
],
"created": "2021-06-08 11:40:36",
"updated": "2021-06-08 11:40:36"
}
GET
https://example.picqer.com/api/v1/picklists/{idpicklist}/shipments
HTTP/1.1 200 OK
[
{
"idshipment": 19,
"idpicklist": 439,
"idorder": 1218,
"idreturn": null,
"idpackaging": 34,
"idshippingprovider": 2,
"idcompany_shippingprovider": 2,
"idcompany_shippingprovider_profile": 2,
"provider": "PostNL",
"providername": "PostNL",
"public_providername": "PostNL",
"profile_name": "Standaard",
"carrier_key": "postnl",
"weight": 2000,
"created_by_iduser": 1,
"cancelled": false,
"parcels": [
{
"idparcel": 66,
"idpackaging": null,
"weight": 1000,
"tracking_code": "3SMYPO8610972",
"tracking_url": "https://shipping.com/3SMYPO8610972",
"documents": [
{
"idparcel_document": 67,
"type": "label",
"size": "A6",
"format": "pdf",
"url": "https://example.com/label.pdf"
}
]
}
],
"created": "2021-06-08 11:40:36",
"updated": "2021-06-08 11:40:36"
}
]
This gives a list of shipping methods that are allowed for this picklist, including which one is the default selected method for this picklist.
GET
https://example.picqer.com/api/v1/picklists/{idpicklist}/shippingmethods
HTTP/1.1 200 OK
[
{
"idshippingprovider_profile": 1287,
"name": "PostNL - EU Pack Special",
"provider": "PostNL",
"selected": false,
"extra_fields": []
},
{
"idshippingprovider_profile": 1365,
"name": "PostNL - Nederland",
"provider": "PostNL",
"selected": true,
"extra_fields": []
}
]
When you create a shipment, we will send the request to the shipping provider. In most cases this is an external party. This means that processing the request can take up to 20 seconds. Once you receive a 201 CREATED response, the shipment has been created successfully and the response will contain the body of the picklist. To retrieve the details of the created shipment, you can send a GET request to retrieve the shipments from the picklist. If the shipment cannot be created, the response will contain the error from the shipping provider.
If all products are picked while you create a shipment, the picklist status will change to 'closed' automatically.
If you create a shipment with the shipping provider 'Manual', you can provide the track & trace code by using the code parameter within the extrafields key.
If you are using an API key, the shipping label is sent to the shipping label printer of the packing station that is linked to the oldest admin user.
We recommend adding the query parameter return=shipment to get the shipment as response. Otherwise, you will get the full picklist details as a response without details about the created shipment.
POST
https://example.picqer.com/api/v1/picklists/{idpicklist}/shipments?return=shipment
{
"idshippingprofile": 1365,
"idpackaging": 34,
"weight": 1000,
"extrafields": {
"code": "3SDEVC417358420"
}
}
HTTP/1.1 201 Created
{
"idshipment": 9273458,
"idpicklist": 1743677,
"idorder": 362231,
"idreturn": null,
"idpackaging": 34,
"idshippingprovider": 9,
"idcompany_shippingprovider": 273,
"idcompany_shippingprovider_profile": 8273,
"provider": "PostNL",
"providername": "PostNL",
"public_providername": "PostNL",
"profile_name": "Example",
"carrier_key": "postal",
"weight": 1000,
"created_by_iduser": 22313,
"cancelled": false,
"parcels": [
{
"idparcel": 66,
"idpackaging": null,
"weight": 1000,
"tracking_code": "3SMYPO8610972",
"tracking_url": "https://shipping.com/3SMYPO8610972",
"documents": [
{
"idparcel_document": 67,
"type": "label",
"size": "A6",
"format": "pdf",
"url": "https://example.com/label.pdf"
}
]
}
],
"created": "2025-02-14 13:28:20",
"updated": "2025-02-14 13:28:20"
}
Some shipping providers support multicolli shipments. If your shipping provider supports multicolli,
you can create such shipments via the API.
Creating a multicolli shipment is similar to creating a standard shipment, as described above.
The main difference is that you must specify how many parcels the shipment contains.
This is done using the parcels parameter, which should be an array
containing an object for each parcel.
Note that, at present, all parcels are required to have the same packaging and weight.
POST
https://example.picqer.com/api/v1/picklists/{idpicklist}/shipments?return=shipment
{
"idshippingprofile": 1365,
"extrafields": {
"code": "3SDEVC417358420"
},
"parcels": [
{
"idpackaging": 34,
"weight": 1000,
},
{
"idpackaging": 34,
"weight": 1000,
}
]
}
HTTP/1.1 201 Created
{
"idshipment": 9273458,
"idpicklist": 1743677,
"idorder": 362231,
"idreturn": null,
"idpackaging": 34,
"idshippingprovider": 9,
"idcompany_shippingprovider": 273,
"idcompany_shippingprovider_profile": 8273,
"provider": "PostNL",
"providername": "PostNL",
"public_providername": "PostNL",
"profile_name": "Example",
"carrier_key": "postal",
"weight": 1000,
"created_by_iduser": 22313,
"cancelled": false,
"parcels": [
{
"idparcel": 66,
"idpackaging": 34,
"weight": 1000,
"tracking_code": "3SMYPO8610972",
"tracking_url": "https://shipping.com/3SMYPO8610972",
"documents": [
{
"idparcel_document": 67,
"type": "label",
"size": "A6",
"format": "pdf",
"url": "https://example.com/label1.pdf"
}
]
},
{
"idparcel": 67,
"idpackaging": 34,
"weight": 1000,
"tracking_code": "3SMYPO8610973",
"tracking_url": "https://shipping.com/3SMYPO8610973",
"documents": [
{
"idparcel_document": 68,
"type": "label",
"size": "A6",
"format": "pdf",
"url": "https://example.com/label2.pdf"
}
]
}
],
"created": "2025-02-14 13:28:20",
"updated": "2025-02-14 13:28:20"
}