While creating parcels in our system, it is possible to create a single parcels or several at once. The payload is similar in both casesIt is recommended to start with the basic request and update the other fields step by step.
The system uses the identifiers to check if there is an existing parcel record with these identifiers.
In case the parcel with the same identifiers already exists, each next request will be updating the parcel record.
In case the parcel record gets an error, resending the request with the same identifiers and modified receiver data, for example, can be used to resolve the issues.
@host = https:
@apiKey = apitest1234567890
PUT {{host}}/api/v1/parcels
content-type: application/json
X-API-KEY: {{apiKey}}
{
"identifiers": {
"senderParcelNr": "Test-SE-0036"
},
"parcel": {
"transactionType": "B2C",
"parcelGrossWeight": 0.15,
"currency": "USD",
"items": [
{
"description": "plastic toy",
"hsCode": "950300",
"quantity": 1,
"valuePerItem": 0.1,
"weightPerItem": 0.1
}
]
},
"additionalInfo": {
"serviceCode": "UZPO-PRIME"
},
"receiver": {
"name": "A test consignee",
"phone": "+123456",
"address": "Skeppsbron 5-1",
"zipCode": "41121",
"city": "GÖTEBORG",
"countryCode": "SE"
}
}
For a better overview, the request content has been split here by payload sections.First section “identifiers”:#
{
"identifiers": {
"senderParcelNr": "Test-SE-0036",
"parcelNr": "LP00000005PP"
},
"parcel": {...},
"additionalInfo": {...},
"receiver": {...}
}
It can include the following parcel identifiers:
senderParcelNr is the client’s reference to this specific parcel. This must be unique throughout all the created parcels. (Client can use their order number or generate a unique code that they can use to recognize the parcel.) If the parcelNr is left empty, this must be filled.
parcelNr – there are some cases where an offline parcel number range is provided. In these cases, the UPU format parcel number should be added to this field. If this is not the case, the parcelNr will be generated and provided by PostPlus.Next section "parcel" contains info about the parcel itself:#
{
"identifiers": {...},
"parcel": {
"transactionType": "B2C",
"parcelGrossWeight": 0.15,
"currency": "USD",
"items": [
{
"description": "plastic toy",
"hsCode": "950300",
"skuCode": "ABC123",
"quantity": 1,
"valuePerItem": 0.1,
"weightPerItem": 0.1
}
]
},
"additionalInfo": {...},
"receiver": {...}
}
transactionType is B2C as default. Other option is C2C in which case the sender information section needs to be filled.
Parcel value and parcel weight are calculated based on the items inside the parcel by adding up all the quantity times value/weight for each item. (Please note that you can also specify parcelGrossWeight property value, which must be equal to or greater than the sum of all items' weight because of packaging but it can never be lower.) There is a currency field, which also applies to the item level: all the items inside the parcel need values in the same currency.description should be filled, skuCode is optional.
hsCode is not a mandatory field but should be filled if possible. There might be situations where this is needed and if it is not provided, our system would try to add it based on the description. This might not be optimal. (6-10 characters)
quantity is how many of the same item is inside the parcel, value and weight are indicated based on one singular item. There can be more than one different item inside the parcel. In these cases, this section needs to be duplicated per each different item.Next section is "additionalInfo":#
This section contains important information about product type (
serviceCode property) tax type and tax identification.
{
"identifiers": {...},
"parcel": {...},
"additionalInfo": {
"serviceCode": "UZPO-PRIME",
"taxType": "DDU",
"taxIdentification": ""
},
"receiver": {...}
}
serviceCode - service or product identifier, used for explicit service selection, instead of relying on automatic selection by the system.
taxType determines how PostPlus will receive these goods. Possible tax type options include:Empty – blank value is intended for shipments to non-EU destinations under DDU.
DDU – these parcels will not be customs cleared in AMS, but by destination post. VAT and service fee to be paid by addressee.
DDP – the parcels of these manifest lines will arrive to AMS terminal already customs cleared by third party appointed by the client.
IOSS – the parcels with IOSS will be customs cleared by PostPlus, VAT to be paid by IOSS number holder.
VOEC – applies to destination Norway.
TAXID – applies to other Non-EU destinations such as CH.
taxIdentification property:If tax type is empty, tax identification should be empty
In case of DDU, empty or other tax identification
Tax identification IOSS should always be accompanied by a valid IOSS number
Tax type VOEC should be accompanied by a valid VOEC number
Tax type TAXID should be accompanied by a valid tax identification number agreed with PostPlus
{
"identifiers": {...},
"parcel": {...},
"additionalInfo": {...},
"receiver": {
"name": "A test consignee",
"phone": "+123456",
"address": "Skeppsbron 5-1",
"zipCode": "41121",
"city": "GÖTEBORG",
"countryCode": "SE"
}
}
The consignee information consists of columns like name, phone number, email, address, zip code, city, state, and country code (2 characters). In the case of non-postal channels, either phone number or email is always required.When
trsansactionType is
C2C sender section must be included in the request. The ection consists of attributes like name, phone number, email, address, zip code, city, state, and country code (2 characters).
{
"identifiers": {...},
"parcel": {...},
"additionalInfo": {...},
"receiver": {...},
"sender": {
"name": "A test consignor",
"phone": "+123456",
"address": "Skeppsbron 5-1",
"zipCode": "41121",
"city": "GÖTEBORG",
"countryCode": "SE"
}
}
The next section indicates the status of the parcel:#
Setting
isCancelled to true, will cancel this parcel record. Once parcel data has been added to the system, either via manifest file or API, a parcel record is created. This record will remain in the system and will be marked as cancelled when on subsequent requests
isCancelled property is set to true.
{
"identifiers": {...},
"parcel": {...},
"receiver": {...},
"additionalInfo": {...},
"status": {
"isCancelled": true
}
}
Cancelling the parcel is necessary when you want to switch the product type for example, and you cancel sending this via postal channels and intend to upload the same sender parcel number to a non-postal channel. Since this sender parcel number currently has a generated parcel number, there's no possibility of generating a new non-postal parcel number for this before cancelling this specific record.