Shipping API process
NEWS: Infranet not providing support for Shipping API in Croatia as of 1st June 2021.
In order to better understand the Shipping API process, the developer should consult the following flowchart. The depicted shipping API process describes what the Shipping API is designed for. This sample flowchart explains major process flows and major API methods used by all users of Shipping APIs. However, Shipping API can be used in many different cases However, if you require any help determining if Shipping API fits your need, do not hesitate to contact your courier's support.
Important notes
- All Byte[] fields are transported over the network as Base64 strings and need to be decoded client-side. Base64 Wikipedia article.
- Store your API Key securely server-side. Do not, by any means, use it from the client-side (javascript) code.
Supported country prefixes
Supported country prefixes are in accordance with the ISO 3166-1 alpha-2 standard, part of the ISO 3166 standard published by the International Organization for Standardization (ISO), to represent countries, dependent territories, and special areas of geographical interest.
The country prefixes are used in these API methods: CreateShipmentPlain, UpdateShipmentPlain, CreateShipment, UpdateShipment, CreateShipmentWithCustomerBarcode
Overseas Express HR - Support not available as of 1.6.2021.
COUNTRY | COUNTRY PREFIX |
---|---|
Austria | AT |
Belgium | BE |
Bosnia and Herzegovina | BA |
Bulgaria | BG |
China | CN |
Croatia | HR |
Czechia | CZ |
Denmark | DK |
France | FR |
Germany | DE |
Hungary | HU |
Ireland | IE |
Italy | IT |
Luxembourg | LU |
Montenegro | ME |
Netherlands | NL |
Poland | PL |
Portugal | PT |
Romania | RO |
Serbia | RS |
Slovakia | SK |
Slovenia | SI |
Spain | ES |
Switzerland | CH |
United Kingdom | GB |
City Express RS and Express One BA
Eurodis is not supported in the countries of Serbia and Bosnia and Herzegovina. Since these countries do not use the Shipping API for import and export, the supported country prefixes are:
City Express RS
COUNTRY | COUNTRY PREFIX |
---|---|
Serbia | RS |
Express One BA
COUNTRY | COUNTRY PREFIX |
---|---|
Bosnia and Herzegovina | BA |
List of API methods
Depending on the HTTP method, the API method is invoked either with URL query parameters for GET HTTP method or JSON in the request body for POST HTTP method. Each method description below indicates which HTTP method is used.
GetShipmentStatusByShipmentId
HTTP method: GET
The method will return the status of the shipment with the passed-in id. Shipment statuses are defined and described in ShipmentStatusEnum.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ShipmentId | Int32 | / | True | |
ApiKey | Guid | / | True |
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
Shipment | ResponseShipment | |
IsValid | Boolean | Value of this field is indicating if the request was successful. If a value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "Shipment": { "ShipmentId": 1, "Status": 1, "DateCreated": "2014-09-08T14:41:51.9190163+02:00", "StatusDate": "2014-09-08T14:41:51.9190163+02:00", "ReturnDocument": false, "CargoNetShipmentId": "Text value", "TrackingCode": "OEX123456ABCDEF", "PriceInformation": { "Net": 0.0, "Gross": 0.0 }, "Collies": [ { "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value", "MultifunctionalBarcode": "Text value", "Services": "Text value" } ], "Traces": [ { "ParcelNumber": "Text value", "ScanDate": "2014-09-08T14:41:51.9220166+02:00", "ScanTime": "2014-09-08T14:41:51.9220166+02:00", "StatusNumber": 1, "StatusDescription": "Text value", "CenterName": "Text value", "Remark": "Text value" } ], "DeliveryCenterAbbreviation": "ZA", "TourNumber": 12 }, "IsValid": false, "ModelErrors": null, "ValidationErrors": null }
GetShipmentStatusByTrackingCode
HTTP method: GET
The method will return the status of the shipment with the passed in tracking code. Shipment statuses are defined and described in ShipmentStatusEnum.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
Code | String | / | True | |
ApiKey | Guid | / | True |
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
Shipment | ResponseShipment | |
IsValid | Boolean | Value of this field is indicating if the request was successful. If a value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "Shipment": { "ShipmentId": 1, "Status": 1, "DateCreated": "2014-09-08T14:41:51.9190163+02:00", "StatusDate": "2014-09-08T14:41:51.9190163+02:00", "ReturnDocument": false, "CargoNetShipmentId": "Text value", "TrackingCode": "OEX123456ABCDEF", "PriceInformation": { "Net": 0.0, "Gross": 0.0 }, "Collies": [ { "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value", "MultifunctionalBarcode": "Text value", "Services": "Text value" } ], "Traces": [ { "ParcelNumber": "Text value", "ScanDate": "2014-09-08T14:41:51.9220166+02:00", "ScanTime": "2014-09-08T14:41:51.9220166+02:00", "StatusNumber": 1, "StatusDescription": "Text value", "CenterName": "Text value", "Remark": "Text value" } ], "DeliveryCenterAbbreviation": "ZA", "TourNumber": 12 }, "IsValid": false, "ModelErrors": null, "ValidationErrors": null }
GetShipmentStatusByRef1AndPickupDate
HTTP method: GET
The method will return the status of the shipment with the REF1 field and shipping date passed in. The REF1 field must be unique for any given date so the data must be passed in. Shipment statuses are defined and described in ShipmentStatusEnum.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
Ref1 | String | 35 | / | True |
PickupDate | DateTime | / | True | |
ApiKey | Guid | / | True |
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
Shipment | ResponseShipment | / |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "Shipment": { "ShipmentId": 1, "Status": 1, "DateCreated": "2014-09-08T14:41:52.1320376+02:00", "StatusDate": "2014-09-08T14:41:52.1320376+02:00", "ReturnDocument": false, "CargoNetShipmentId": "Text value", "TrackingCode": "OEX123456ABCDEF", "PriceInformation": { "Net": 0.0, "Gross": 0.0 }, "Collies": [ { "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value", "MultifunctionalBarcode": "Text value", "Services": "Text value" } ], "Traces": [ { "ParcelNumber": "Text value", "ScanDate": "2014-09-08T14:41:52.1320376+02:00", "ScanTime": "2014-09-08T14:41:52.1320376+02:00", "StatusNumber": 1, "StatusDescription": "Text value", "CenterName": "Text value", "Remark": "Text value" } ], "DeliveryCenterAbbreviation": "ZA", "TourNumber": 12 }, "IsValid": false, "ModelErrors": null, "ValidationErrors": null }
GetShipmentStatusByAnyRef
HTTP method: GET
The method used to return shipment statuses containing information in the REF fields. The fields can be freely used for any customer need. Shipment statuses are defined and described in ShipmentStatusEnum.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
RefType | Int32 | 1, 2 or 3 for Ref1, Ref2 or Ref3 | True | |
SearchParameter | String | 35 | Ref field value to search for | True |
ApiKey | Guid | / | True |
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
Shipments | List of ResponseShipment | / |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "Shipments": [ { "ShipmentId": 1, "Status": 1, "DateCreated": "2014-09-08T14:41:52.1350379+02:00", "StatusDate": "2014-09-08T14:41:52.1350379+02:00", "ReturnDocument": false, "CargoNetShipmentId": "Text value", "TrackingCode": "OEX123456ABCDEF", "PriceInformation": { "Net": 0.0, "Gross": 0.0 }, "Collies": [ { "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value", "MultifunctionalBarcode": "Text value", "Services": "Text value" } ], "Traces": [ { "ParcelNumber": "Text value", "ScanDate": "2014-09-08T14:41:52.1350379+02:00", "ScanTime": "2014-09-08T14:41:52.1350379+02:00", "StatusNumber": 1, "StatusDescription": "Text value", "CenterName": "Text value", "Remark": "Text value" } ], "DeliveryCenterAbbreviation": "ZA", "TourNumber": 12, } ], "IsValid": false, "ModelErrors": null, "ValidationErrors": null }
CreateShipmentPlain
HTTP method: POST
The method used to create shipments without listing colli data, the method requires just the number of collies to be sent. In case of ShipperPrintsLabels set to true a pickup order is immediately created, if the ShipperPrintsLabels is set to false the sender is expected to print the shipping labels.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
NumberOfCollies | Int32 | Number of collies contained in this shipment. Must be greater than 0. | True | |
Weight | Double? | In the case a Shipping API user is allowed to send shipments without weighing, the weight of the whole shipment in kilograms has to be passed in the request. In the case a Shipping API user is allowed to send shipments without weighing but has not entered the weight of the whole shipment in kilograms, an error 10041 will be displayed in the response. In the case a Shipping API user is not allowed to send shipments without weighing, the weight of the whole shipment in kilograms may or may not be entered since the process of weighing will be carried out by the delivery service. | False | |
ShipperPrintsLabels | Boolean | Flag indicating whether shipper or sender prints shipping labels. | True | |
Ref1 | String | 35 | The Value of this field must be unique on a single date. It is printed on a shipping label. | True |
Ref2 | String | 35 | Value is printed on a shipping label. | True |
Ref3 | String | 35 | Value is printed on a shipping label. | True |
RemarkGoods | String | 150 | Description of goods being sent. | False |
CountOfBillingUnits | Double? | Count of billing units (e.g if the shipment contains 3 small boxes value of this field is 3 and the value of BillingUnit is SBX). | False | |
ConsigneeName | String | 35 | / | True |
ConsigneePostalCode | String | 10 | / | True |
ConsigneeStreet | String | 70 | / | True |
ConsigneeCity | String | 35 | / | True |
ConsigneeCountryPrefix | String | 3 | Please consult the supported country prefixes list | True |
ConsigneeTelephoneNumber | String | 30 | / | False |
ConsigneeFaxNumber | String | 30 | / | False |
ConsigneeGsmNumber | String | 30 | / | False |
ConsigneeEmailAddress | String | 70 | / | False |
SenderName | String | 35 | / | True |
SenderPostalCode | String | 10 | / | True |
SenderStreet | String | 70 | / | True |
SenderCity | String | 35 | / | True |
SenderCountryPrefix | String | 3 | HR, RS, BA, ... | True |
SenderTelephoneNumber | String | 30 | / | False |
SenderFaxNumber | String | 30 | / | False |
SenderGsmNumber | String | 30 | / | False |
SenderEmailAddress | String | 70 | / | False |
ExpressType | Int32 | Indicates until when the shipment should be delivered. See ExpressTypeEnum for allowed values. | True | |
ExWorksType | Int32? | Null value means that the sender pays for shipping. See ExWorksTypeEnum for allowed values. | False | |
NotificationType | Int32 | See NotificationTypeEnum for allowed values. | True | |
AllowSaturdayDelivery | Boolean | / | True | |
PickupStart | DateTime? | If both date and time are passed the time value should be looked up by calling GetPossibleDateTimesForShipments method. It is possible to pass only date value (with 00:00:00 time) in both pickupStart and pickupEnd fields. In that case, shipment will be created with 1st available interval for pickup for the given postal code. | False | |
PickupEnd | DateTime? | If both date and time are passed the time value should be looked up by calling GetPossibleDateTimesForShipments method. It is possible to pass only date value (with 00:00:00 time) in both pickupStart and pickupEnd fields. In that case, shipment will be created with 1st available interval for pickup for the given postal code. | False | |
DeliveryStart | DateTime? | Date part of this field is ignored. Only time is important. If the value is not null, DeliveryEnd must be set as well. The combination of DeliveryStart and DeliveryEnd indicates the delivery time frame. Time value for this field should be looked up by calling GetPossibleDateTimesForShipments method. If the value is null shipment will be created with 1st available interval for delivery for the given postal code. | False | |
DeliveryEnd | DateTime? | Date part of this field is ignored. Only time is important. If the value is not null, DeliveryStart must be set as well. The combination of DeliveryStart and DeliveryEnd indicates the delivery time frame. Time value for this field should be looked up by calling GetPossibleDateTimesForShipments method. If the value is null shipment will be created with 1st available interval for delivery for the given postal code. | False | |
CodAmount | Double? | Cash on delivery amount. | False | |
CodCurrency | Int32? | Currency for the cash on delivery. If CodAmount is null, this field is ignored. See CurrencyEnum for allowed values. | False | |
InsuranceAmount | Double? | If a shipment is insured this field contains the amount of insurance. | False | |
Currency | Int32? | Currency for insurance. If InsuranceAmount is null, this field is ignored. See CurrencyEnum for allowed values. | False | |
RemarkDelivery | String | 150 | Description of delivery usually printed on the shipping label. | True |
RemarkPickup | String | 150 | Description of pickup usually printed on the shipping label. | True |
IsCargo | Boolean | Flag indicating if the shipment consists of pallets instead of boxes. | True | |
ReturnDocument | Boolean | Flag indicating whether return document exists that is collected upon delivery. | True | |
BillingUnit | Int32? | If CustomerBillingUnitOverride is set, this field is ignored. See BillingUnitEnum for allowed values and their descriptions. | False | |
ShipmentDocumentData | Byte[] | PDF document that is merged with the shipping label PDF as a new page. When shipping labels are fetched with later API calls this document is returned as a part of the shipping label. | False | |
ShipmentDocumentExtension | String | 10 | Extension of the document. For now, only a "PDF" value is allowed. Must be "PDF" if ShipmentDocumentData is not null. | False |
ApiKey | Guid | Authentication API key. | True |
JSON example:
{ "NumberOfCollies": 1, "Weight": null, "OverseasPrintsShippingLabels": false, "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RemarkGoods": "Text value", "CountOfBillingUnits": null, "ConsigneeName": "Text value", "ConsigneePostalCode": "Text value", "ConsigneeStreet": "Text value", "ConsigneeCity": "Text value", "ConsigneeCountryPrefix": "HR", "ConsigneeTelephoneNumber": "Text value", "ConsigneeFaxNumber": "Text value", "ConsigneeGsmNumber": "Text value", "ConsigneeEmailAddress": "Text value", "SenderName": "Text value", "SenderPostalCode": "Text value", "SenderStreet": "Text value", "SenderCity": "Text value", "SenderCountryPrefix": "HR", "SenderTelephoneNumber": "Text value", "SenderFaxNumber": "Text value", "SenderGsmNumber": "Text value", "SenderEmailAddress": "Text value", "ExpressType": 100, "ExWorksType": null, "NotificationType": 3, "AllowSaturdayDelivery": false, "PickupStart": null, "PickupEnd": null, "DeliveryStart": null, "DeliveryEnd": null, "CodAmount": null, "CodCurrency": null, "InsuranceAmount": null, "Currency": null, "RemarkDelivery": "Text value", "RemarkPickup": "Text value", "IsCargo": false, "ReturnDocument": false, "BillingUnit": null, "ShipmentDocumentData": null, "ShipmentDocumentExtension": null, "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
CreatedShipmentId | Int32? | Identifier of the created shipment. Value is not null only if the request was valid |
Collies | List of ResponseColli | Value is not null only if the request was valid |
PickupStart | DateTime? | Value is not null only if the request was valid |
PickupEnd | DateTime? | Value is not null only if the request was valid |
DeliveryStart | DateTime? | Value is not null only if the request was valid |
DeliveryEnd | DateTime? | Value is not null only if the request was valid |
PriceInformation | PriceInformation | Value is not null only if the request was valid |
ValidPickupIntervals | List of TimeInterval | Value is not null only if the request was valid |
ValidDeliveryIntervals | List of TimeInterval | Value is not null only if the request was valid |
AdditionalInfo | AdditionalInfo | Value is not null only if the request was valid |
ExpectedSenderAddress | ExpectedSenderAddress | Value is not null only if the request was valid |
DeliveryCenterAbbreviation | String | Delivery center for created shipment. Represents routing information. This must be printed if for some reason client creates its own shipping labels and not API's built-in functionality for fetching shipping labels. |
TrackingCode | String | Tracking code used to track shipment right upon shipment creation. Code can be used on Overseas web tracking site - Support for Croatia not available as of 1.6.2021. - or as a parameter of GetShipmentStatusByTrackingCode method. |
TourNumber | Int32? | Tour number for the created shipment. Represents routing information. This must be printed if for some reason client creates its own shipping labels and not API's built-in functionality for fetching shipping labels. |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "CreatedShipmentId": 153, "Collies": [ { "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value" } ], "PickupStart": "2014-09-08T12:00:00+02:00", "PickupEnd": "2014-09-08T118:00:00+02:00", "DeliveryStart": "2014-09-09T12:00:00+02:00", "DeliveryEnd": "2014-09-09T18:00:00+02:00", "PriceInformation": { "Net": 100.0, "Gross": 150.0 }, "ValidPickupIntervals": [ { "From": "2014-09-08T12:00:00+02:00", "To": "2014-09-08T18:00:00+02:00" } ], "ValidDeliveryIntervals": [ { "From": "2014-09-09T12:00:00+02:00", "To": "2014-09-09T18:00:00+02:00" } ], "AdditionalInfo": { "DeliveryBefore0830": false, "DeliveryBefore1030": false, "SaturdayDelivery": false }, "ExpectedSenderAddress": { "PostalCode": "Text value", "City": "Text value", "Street": "Text value" }, "DeliveryCenterAbbreviation": "ZA", "TrackingCode": "OEX123456ABCDEF", "TourNumber": 12, "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
UpdateShipmentPlain
HTTP method: POST
The method used to update an existing shipment. This method can not be used in the case of the OverseasPrintsShippingLabels - Support for Croatia not available as of 1.6.2021. - set to true.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ShipmentId | Int32 | Identifier of the shipment being updated. | / | True |
NumberOfCollies | Int32 | Number of collies contained in this shipment. Must be greater than 0. | True | |
Weight | Double? | Weight of the whole shipment in kilograms. | False | |
ShipperPrintsLabels | Boolean | Flag indicating whether shipper or sender prints shipping labels. | True | |
Ref1 | String | 35 | The Value of this field must be unique on a single date. It is printed on a shipping label. | True |
Ref2 | String | 35 | Value is printed on a shipping label. | True |
Ref3 | String | 35 | Value is printed on a shipping label. | True |
RemarkGoods | String | 150 | Description of goods being sent. | False |
CountOfBillingUnits | Double? | Count of billing units (e.g if the shipment contains 3 small boxes value of this field is 3 and the value of BillingUnit is SBX). | False | |
ConsigneeName | String | 35 | / | True |
ConsigneePostalCode | String | 10 | / | True |
ConsigneeStreet | String | 70 | / | True |
ConsigneeCity | String | 35 | / | True |
ConsigneeCountryPrefix | String | 3 | Please consult the supported country prefixes list | True |
ConsigneeTelephoneNumber | String | 30 | / | False |
ConsigneeFaxNumber | String | 30 | / | False |
ConsigneeGsmNumber | String | 30 | / | False |
ConsigneeEmailAddress | String | 70 | / | False |
SenderName | String | 35 | / | True |
SenderPostalCode | String | 10 | / | True |
SenderStreet | String | 70 | / | True |
SenderCity | String | 35 | / | True |
SenderCountryPrefix | String | 3 | HR | True |
SenderTelephoneNumber | String | 30 | / | False |
SenderFaxNumber | String | 30 | / | False |
SenderGsmNumber | String | 30 | / | False |
SenderEmailAddress | String | 70 | / | False |
ExpressType | Int32 | Indicates until when the shipment should be delivered. See ExpressTypeEnum for allowed values. | True | |
ExWorksType | Int32? | Null value means that the sender pays for shipping. See ExWorksTypeEnum for allowed values. | False | |
NotificationType | Int32 | See NotificationTypeEnum for allowed values. | True | |
AllowSaturdayDelivery | Boolean | / | True | |
PickupStart | DateTime? | If both date and time are passed the time value should be looked up by calling GetPossibleDateTimesForShipments method. It is possible to pass only date value (with 00:00:00 time) in both pickupStart and pickupEnd fields. In that case, shipment will be created with 1st available interval for pickup for the given postal code. | False | |
PickupEnd | DateTime? | If both date and time are passed the time value should be looked up by calling GetPossibleDateTimesForShipments method. It is possible to pass only date value (with 00:00:00 time) in both pickupStart and pickupEnd fields. In that case, shipment will be created with 1st available interval for pickup for the given postal code. | False | |
DeliveryStart | DateTime? | Date part of this field is ignored. Only time is important. If the value is not null, DeliveryEnd must be set as well. The combination of DeliveryStart and DeliveryEnd indicates the delivery time frame. Time value for this field should be looked up by calling GetPossibleDateTimesForShipments method. If the value is null shipment will be created with 1st available interval for delivery for the given postal code. | False | |
DeliveryEnd | DateTime? | Date part of this field is ignored. Only time is important. If the value is not null, DeliveryStart must be set as well. The combination of DeliveryStart and DeliveryEnd indicates the delivery time frame. Time value for this field should be looked up by calling GetPossibleDateTimesForShipments method. If the value is null shipment will be created with 1st available interval for delivery for the given postal code. | False | |
CodAmount | Double? | Cash on delivery amount. | False | |
CodCurrency | Int32? | Currency for the cash on delivery. If CodAmount is null, this field is ignored. See CurrencyEnum for allowed values. | False | |
InsuranceAmount | Double? | If a shipment is insured this field contains the amount of insurance. | False | |
Currency | Int32? | Currency for insurance. If InsuranceAmount is null, this field is ignored. See CurrencyEnum for allowed values. | False | |
RemarkDelivery | String | 150 | Description of delivery usually printed on the shipping label. | True |
RemarkPickup | String | 150 | Description of pickup usually printed on the shipping label. | True |
IsCargo | Boolean | Flag indicating if the shipment consists of pallets instead of boxes. | True | |
ReturnDocument | Boolean | Flag indicating whether return document exists that is collected upon delivery. | True | |
BillingUnit | Int32? | If CustomerBillingUnitOverride is set, this field is ignored. See BillingUnitEnum for allowed values and their descriptions. | False | |
ShipmentDocumentData | Byte[] | PDF document that is merged with the shipping label PDF as a new page. When shipping labels are fetched with later API calls this document is returned as a part of the shipping label. | False | |
ShipmentDocumentExtension | String | 10 | Extension of the document. For now, only "PDF" value is allowed. Must be "PDF" if ShipmentDocumentData is not null. | False |
ApiKey | Guid | Authentication API key. | True |
JSON example:
{ "NumberOfCollies": 1, "Weight": null, "OverseasPrintsShippingLabels": false, "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RemarkGoods": "Text value", "CountOfBillingUnits": null, "ConsigneeName": "Text value", "ConsigneePostalCode": "Text value", "ConsigneeStreet": "Text value", "ConsigneeCity": "Text value", "ConsigneeCountryPrefix": "HR", "ConsigneeTelephoneNumber": "Text value", "ConsigneeFaxNumber": "Text value", "ConsigneeGsmNumber": "Text value", "ConsigneeEmailAddress": "Text value", "SenderName": "Text value", "SenderPostalCode": "Text value", "SenderStreet": "Text value", "SenderCity": "Text value", "SenderCountryPrefix": "HR", "SenderTelephoneNumber": "Text value", "SenderFaxNumber": "Text value", "SenderGsmNumber": "Text value", "SenderEmailAddress": "Text value", "ExpressType": 100, "ExWorksType": null, "NotificationType": 3, "AllowSaturdayDelivery": false, "PickupStart": null, "PickupEnd": null, "DeliveryStart": null, "DeliveryEnd": null, "CodAmount": null, "CodCurrency": null, "InsuranceAmount": null, "Currency": null, "RemarkDelivery": "Text value", "RemarkPickup": "Text value", "IsCargo": false, "ReturnDocument": false, "BillingUnit": null, "ShipmentDocumentData": null, "ShipmentDocumentExtension": null, "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
CreatedShipmentId | Int32? | Identifier of the created shipment. Value is not null only if the request was valid |
Collies | List of ResponseColli | Value is not null only if the request was valid |
PickupStart | DateTime? | Value is not null only if the request was valid |
PickupEnd | DateTime? | Value is not null only if the request was valid |
DeliveryStart | DateTime? | Value is not null only if the request was valid |
DeliveryEnd | DateTime? | Value is not null only if the request was valid |
PriceInformation | PriceInformation | Value is not null only if the request was valid |
ValidPickupIntervals | List of TimeInterval | Value is not null only if the request was valid |
ValidDeliveryIntervals | List of TimeInterval | Value is not null only if the request was valid |
AdditionalInfo | AdditionalInfo | Value is not null only if the request was valid |
ExpectedSenderAddress | ExpectedSenderAddress | Value is not null only if the request was valid |
DeliveryCenterAbbreviation | String | Delivery center for created shipment. Represents routing information. This must be printed if for some reason client creates own shipping labels and not API's built-in functionality for fetching shipping labels. |
TrackingCode | String | Tracking code used to track shipment right upon shipment creation. Code can be used on Overseas- Support for Croatia not available as of 1.6.2021. - web tracking site or as a parameter of GetShipmentStatusByTrackingCode method. |
TourNumber | Int32? | Tour number for created shipment. Represents routing information. This must be printed if for some reason client creates own shipping labels and not API's built-in functionality for fetching shipping labels. |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "CreatedShipmentId": 153, "Collies": [ { "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value" } ], "PickupStart": "2014-09-08T12:00:00+02:00", "PickupEnd": "2014-09-08T118:00:00+02:00", "DeliveryStart": "2014-09-09T12:00:00+02:00", "DeliveryEnd": "2014-09-09T18:00:00+02:00", "PriceInformation": { "Net": 100.0, "Gross": 150.0 }, "ValidPickupIntervals": [ { "From": "2014-09-08T12:00:00+02:00", "To": "2014-09-08T18:00:00+02:00" } ], "ValidDeliveryIntervals": [ { "From": "2014-09-09T12:00:00+02:00", "To": "2014-09-09T18:00:00+02:00" } ], "AdditionalInfo": { "DeliveryBefore0830": false, "DeliveryBefore1030": false, "SaturdayDelivery": false }, "ExpectedSenderAddress": { "PostalCode": "Text value", "City": "Text value", "Street": "Text value" }, "DeliveryCenterAbbreviation": "ZA", "TrackingCode": "OEX123456ABCDEF", "TourNumber": 12, "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
CreateShipment
HTTP method: POST
The method used to create shipments containing the list of collies. When using this method the sender information must match the data for the API key since it is expected of the sender to print the shipping labels.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ShipmentWeight | Double? | Weight of the whole shipment in kilograms. | False | |
Collies | List of ComplexShipmentColli | List of collies contained in this shipment. | True | |
RemarkGoods | String | 150 | Description of goods being sent. | False |
CountOfBillingUnits | Double? | Count of billing units (e.g if the shipment contains 3 small boxes value of this field is 3 and the value of BillingUnit is SBX). | False | |
ConsigneeName | String | 35 | / | True |
ConsigneePostalCode | String | 10 | / | True |
ConsigneeStreet | String | 70 | / | True |
ConsigneeCity | String | 35 | / | True |
ConsigneeCountryPrefix | String | 3 | Please consult the supported country prefixes list | True |
ConsigneeTelephoneNumber | String | 30 | / | False |
ConsigneeFaxNumber | String | 30 | / | False |
ConsigneeGsmNumber | String | 30 | / | False |
ConsigneeEmailAddress | String | 70 | / | False |
SenderName | String | 35 | / | True |
SenderPostalCode | String | 10 | / | True |
SenderStreet | String | 70 | / | True |
SenderCity | String | 35 | / | True |
SenderCountryPrefix | String | 3 | HR | True |
SenderTelephoneNumber | String | 30 | / | False |
SenderFaxNumber | String | 30 | / | False |
SenderGsmNumber | String | 30 | / | False |
SenderEmailAddress | String | 70 | / | False |
ExpressType | Int32 | Indicates until when the shipment should be delivered. See ExpressTypeEnum for allowed values. | True | |
ExWorksType | Int32? | Null value means that the sender pays for shipping. See ExWorksTypeEnum for allowed values. | False | |
NotificationType | Int32 | See NotificationTypeEnum for allowed values. | True | |
AllowSaturdayDelivery | Boolean | / | True | |
PickupStart | DateTime? | If both date and time are passed the time value should be looked up by calling GetPossibleDateTimesForShipments method. It is possible to pass only date value (with 00:00:00 time) in both pickupStart and pickupEnd fields. In that case, shipment will be created with 1st available interval for pickup for the given postal code. | False | |
PickupEnd | DateTime? | If both date and time are passed the time value should be looked up by calling GetPossibleDateTimesForShipments method. It is possible to pass only date value (with 00:00:00 time) in both pickupStart and pickupEnd fields. In that case, shipment will be created with 1st available interval for pickup for the given postal code. | False | |
DeliveryStart | DateTime? | Date part of this field is ignored. Only time is important. If the value is not null, DeliveryEnd must be set as well. The combination of DeliveryStart and DeliveryEnd indicates the delivery time frame. Time value for this field should be looked up by calling GetPossibleDateTimesForShipments method. If the value is null shipment will be created with 1st available interval for delivery for the given postal code. | False | |
DeliveryEnd | DateTime? | Date part of this field is ignored. Only time is important. If the value is not null, DeliveryStart must be set as well. The combination of DeliveryStart and DeliveryEnd indicates the delivery time frame. Time value for this field should be looked up by calling GetPossibleDateTimesForShipments method. If the value is null shipment will be created with 1st available interval for delivery for the given postal code. | False | |
CodAmount | Double? | Cash on delivery amount. | False | |
CodCurrency | Int32? | Currency for the cash on delivery. If CodAmount is null, this field is ignored. See CurrencyEnum for allowed values. | False | |
InsuranceAmount | Double? | If a shipment is insured this field contains the insurance amount. | False | |
Currency | Int32? | Currency for the insurance. If InsuranceAmount is null, this field is ignored. See CurrencyEnum for allowed values. | False | |
RemarkDelivery | String | 150 | Description of delivery usually printed on the shipping label. | True |
RemarkPickup | String | 150 | Description of pickup usually printed on the shipping label. | True |
IsCargo | Boolean | Flag indicating if the shipment consists of pallets instead of boxes. | True | |
ReturnDocument | Boolean | Flag indicating whether return document exists that is collected upon delivery. | True | |
BillingUnit | Int32? | If CustomerBillingUnitOverride is set, this field is ignored. See BillingUnitEnum for allowed values and their description. | False | |
ShipmentDocumentData | Byte[] | PDF document that is merged with the shipping label PDF as a new page. When shipping labels are fetched with later API calls this document is returned as a part of the shipping label. | False | |
ShipmentDocumentExtension | String | 10 | Extension of the document. For now, only "PDF" value is allowed. Must be "PDF" if ShipmentDocumentData is not null. | False |
DropOffParcelShopId | String | If a shipment is to be picked up at Parcel shop, Parcel shop id is passed in this field. | False | |
DeliveryParcelShopId | String | If a shipment is to be delivered to a Parcel shop, Parcel shop id is passed in this field. | False | |
ApiKey | Guid | Authentication API key. | True |
JSON example:
{ "ShipmentWeight": null, "Collies": [ { "ColliWeight": null, "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RemarkGoods": "Text value", "ColliDocumentData": null, "ColliDocumentExtension": null } ], "RemarkGoods": "Text value", "CountOfBillingUnits": null, "ConsigneeName": "Text value", "ConsigneePostalCode": "Text value", "ConsigneeStreet": "Text value", "ConsigneeCity": "Text value", "ConsigneeCountryPrefix": "HR", "ConsigneeTelephoneNumber": "Text value", "ConsigneeFaxNumber": "Text value", "ConsigneeGsmNumber": "Text value", "ConsigneeEmailAddress": "Text value", "SenderName": "Text value", "SenderPostalCode": "Text value", "SenderStreet": "Text value", "SenderCity": "Text value", "SenderCountryPrefix": "HR", "SenderTelephoneNumber": "Text value", "SenderFaxNumber": "Text value", "SenderGsmNumber": "Text value", "SenderEmailAddress": "Text value", "ExpressType": 100, "ExWorksType": null, "NotificationType": 3, "AllowSaturdayDelivery": false, "PickupStart": null, "PickupEnd": null, "DeliveryStart": null, "DeliveryEnd": null, "CodAmount": null, "CodCurrency": null, "InsuranceAmount": null, "Currency": null, "RemarkDelivery": "Text value", "RemarkPickup": "Text value", "IsCargo": false, "ReturnDocument": false, "BillingUnit": null, "ShipmentDocumentData": null, "ShipmentDocumentExtension": null, "DropOffParcelShopId": null, "DeliveryParcelShopId": null, "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
CreatedShipmentId | Int32? | Identifier of the created shipment. Value is not null only if the request was valid |
Collies | List of ResponseColli | Value is not null only if the request was valid |
PickupStart | DateTime? | Value is not null only if the request was valid |
PickupEnd | DateTime? | Value is not null only if the request was valid |
DeliveryStart | DateTime? | Value is not null only if the request was valid |
DeliveryEnd | DateTime? | Value is not null only if the request was valid |
PriceInformation | PriceInformation | Value is not null only if the request was valid |
ValidPickupIntervals | List of TimeInterval | Value is not null only if the request was valid |
ValidDeliveryIntervals | List of TimeInterval | Value is not null only if the request was valid |
AdditionalInfo | AdditionalInfo | Value is not null only if the request was valid |
ExpectedSenderAddress | ExpectedSenderAddress | Value is not null only if the request was valid |
DeliveryCenterAbbreviation | String | Delivery center for created shipment. Represents routing information. This must be printed if for some reason client creates its own shipping labels and not API's built-in functionality for fetching shipping labels. |
TrackingCode | String | Tracking code used to track shipment right upon shipment creation. Code can be used on Overseas - Support for Croatia not available as of 1.6.2021. - web tracking site or as a parameter of GetShipmentStatusByTrackingCode method. |
TourNumber | Int32? | Tour number for the created shipment. Represents routing information. This must be printed if for some reason client creates its own shipping labels and not API's built-in functionality for fetching shipping labels. |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
ReturnShipment | Same as return object for CreateShipment (this method) | Used in Shipments with returns (contains examples). |
JSON example:
{ "CreatedShipmentId": 153, "Collies": [ { "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value" } ], "PickupStart": "2014-09-08T12:00:00+02:00", "PickupEnd": "2014-09-08T118:00:00+02:00", "DeliveryStart": "2014-09-09T12:00:00+02:00", "DeliveryEnd": "2014-09-09T18:00:00+02:00", "PriceInformation": { "Net": 100.0, "Gross": 150.0 }, "ValidPickupIntervals": [ { "From": "2014-09-08T12:00:00+02:00", "To": "2014-09-08T18:00:00+02:00" } ], "ValidDeliveryIntervals": [ { "From": "2014-09-09T12:00:00+02:00", "To": "2014-09-09T18:00:00+02:00" } ], "AdditionalInfo": { "DeliveryBefore0830": false, "DeliveryBefore1030": false, "SaturdayDelivery": false }, "ExpectedSenderAddress": { "PostalCode": "Text value", "City": "Text value", "Street": "Text value" }, "DeliveryCenterAbbreviation": "ZA", "TrackingCode": "OEX123456ABCDEF", "TourNumber": 12, "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
UpdateShipment
HTTP method: POST
The method will update shipment information if no labels have been printed for this shipment.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ShipmentId | Int32 | Identifier of the shipment being updated | True | |
ShipmentWeight | Double? | Weight of the whole shipment in kilograms. | False | |
Collies | List of ComplexShipmentColli | List of collies contained in this shipment. | True | |
Ref1 | String | 35 | The Value of this field must be unique on a single date. It is printed on a shipping label. | True |
Ref2 | String | 35 | Value is printed on a shipping label. | True |
Ref3 | String | 35 | Value is printed on a shipping label. | True |
RemarkGoods | String | 150 | Description of goods being sent. | False |
CountOfBillingUnits | Double? | Count of billing units (e.g if the shipment contains 3 small boxes value of this field is 3 and the value of BillingUnit is SBX). | False | |
ConsigneeName | String | 35 | / | True |
ConsigneePostalCode | String | 10 | / | True |
ConsigneeStreet | String | 70 | / | True |
ConsigneeCity | String | 35 | / | True |
ConsigneeCountryPrefix | String | 3 | Please consult the supported country prefixes list | True |
ConsigneeTelephoneNumber | String | 30 | / | False |
ConsigneeFaxNumber | String | 30 | / | False |
ConsigneeGsmNumber | String | 30 | / | False |
ConsigneeEmailAddress | String | 70 | / | False |
SenderName | String | 35 | / | True |
SenderPostalCode | String | 10 | / | True |
SenderStreet | String | 70 | / | True |
SenderCity | String | 35 | / | True |
SenderCountryPrefix | String | 3 | HR | True |
SenderTelephoneNumber | String | 30 | / | False |
SenderFaxNumber | String | 30 | / | False |
SenderGsmNumber | String | 30 | / | False |
SenderEmailAddress | String | 70 | / | False |
ExpressType | Int32 | Indicates until when the shipment should be delivered. See ExpressTypeEnum for allowed values. | True | |
ExWorksType | Int32? | Null value means that the sender pays for shipping. See ExWorksTypeEnum for allowed values. | False | |
NotificationType | Int32 | See NotificationTypeEnum for allowed values. | True | |
AllowSaturdayDelivery | Boolean | / | True | |
PickupStart | DateTime? | If both date and time are passed the time value should be looked up by calling GetPossibleDateTimesForShipments method. It is possible to pass only date value (with 00:00:00 time) in both pickupStart and pickupEnd fields. In that case, shipment will be created with 1st available interval for pickup for the given postal code. | False | |
PickupEnd | DateTime? | If both date and time are passed the time value should be looked up by calling GetPossibleDateTimesForShipments method. It is possible to pass only date value (with 00:00:00 time) in both pickupStart and pickupEnd fields. In that case, shipment will be created with 1st available interval for pickup for the given postal code. | False | |
DeliveryStart | DateTime? | Date part of this field is ignored. Only time is important. If the value is not null, DeliveryEnd must be set as well. The combination of DeliveryStart and DeliveryEnd indicates the delivery time frame. Time value for this field should be looked up by calling GetPossibleDateTimesForShipments method. If the value is null shipment will be created with 1st available interval for delivery for the given postal code. | False | |
DeliveryEnd | DateTime? | Date part of this field is ignored. Only time is important. If the value is not null, DeliveryStart must be set as well. The combination of DeliveryStart and DeliveryEnd indicates the delivery time frame. Time value for this field should be looked up by calling GetPossibleDateTimesForShipments method. If the value is null shipment will be created with 1st available interval for delivery for the given postal code. | False | |
CodAmount | Double? | Cash on delivery amount. | False | |
CodCurrency | Int32? | Currency for the cash on delivery. If CodAmount is null, this field is ignored. See CurrencyEnum for allowed values. | False | |
InsuranceAmount | Double? | If a shipment is insured this field contains the insurance amount. | False | |
Currency | Int32? | Currency for the insurance. If InsuranceAmount is null, this field is ignored. See CurrencyEnum for allowed values. | False | |
RemarkDelivery | String | 150 | Description of delivery usually printed on the shipping label. | True |
RemarkPickup | String | 150 | Description of pickup usually printed on the shipping label. | True |
IsCargo | Boolean | Flag indicating if the shipment consists of pallets instead of boxes. | True | |
ReturnDocument | Boolean | Flag indicating whether return document exists that is collected upon delivery. | True | |
BillingUnit | Int32? | If CustomerBillingUnitOverride is set, this field is ignored. See BillingUnitEnum for allowed values and their description. | False | |
ShipmentDocumentData | Byte[] | PDF document that is merged with the shipping label PDF as a new page. When shipping labels are fetched with later API calls this document is returned as a part of the shipping label. | False | |
ShipmentDocumentExtension | String | 10 | Extension of the document. For now, only "PDF" value is allowed. Must be "PDF" if ShipmentDocumentData is not null. | False |
DropOffParcelShopId | String | If a shipment is to be picked up at Parcel shop, Parcel shop id is passed in this field. | False | |
DeliveryParcelShopId | String | If a shipment is to be delivered to a Parcel shop, Parcel shop id is passed in this field. | False | |
ApiKey | Guid | Authentication API key. | True |
JSON example:
{ "ShipmentWeight": null, "Collies": [ { "ColliWeight": null, "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RemarkGoods": "Text value", "ColliDocumentData": null, "ColliDocumentExtension": null } ], "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RemarkGoods": "Text value", "CountOfBillingUnits": null, "ConsigneeName": "Text value", "ConsigneePostalCode": "Text value", "ConsigneeStreet": "Text value", "ConsigneeCity": "Text value", "ConsigneeCountryPrefix": "HR", "ConsigneeTelephoneNumber": "Text value", "ConsigneeFaxNumber": "Text value", "ConsigneeGsmNumber": "Text value", "ConsigneeEmailAddress": "Text value", "SenderName": "Text value", "SenderPostalCode": "Text value", "SenderStreet": "Text value", "SenderCity": "Text value", "SenderCountryPrefix": "HR", "SenderTelephoneNumber": "Text value", "SenderFaxNumber": "Text value", "SenderGsmNumber": "Text value", "SenderEmailAddress": "Text value", "ExpressType": 100, "ExWorksType": null, "NotificationType": 3, "AllowSaturdayDelivery": false, "PickupStart": null, "PickupEnd": null, "DeliveryStart": null, "DeliveryEnd": null, "CodAmount": null, "CodCurrency": null, "InsuranceAmount": null, "Currency": null, "RemarkDelivery": "Text value", "RemarkPickup": "Text value", "IsCargo": false, "ReturnDocument": false, "BillingUnit": null, "ShipmentDocumentData": null, "ShipmentDocumentExtension": null, "DropOffParcelShopId": null, "DeliveryParcelShopId": null, "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
CreatedShipmentId | Int32? | Identifier of the created shipment. Value is not null only if the request was valid |
Collies | List of ResponseColli | Value is not null only if the request was valid |
PickupStart | DateTime? | Value is not null only if the request was valid |
PickupEnd | DateTime? | Value is not null only if the request was valid |
DeliveryStart | DateTime? | Value is not null only if the request was valid |
DeliveryEnd | DateTime? | Value is not null only if the request was valid |
PriceInformation | PriceInformation | Value is not null only if the request was valid |
ValidPickupIntervals | List of TimeInterval | Value is not null only if the request was valid |
ValidDeliveryIntervals | List of TimeInterval | Value is not null only if the request was valid |
AdditionalInfo | AdditionalInfo | Value is not null only if the request was valid |
ExpectedSenderAddress | ExpectedSenderAddress | Value is not null only if the request was valid |
DeliveryCenterAbbreviation | String | Delivery center for created shipment. Represents routing information. This must be printed if for some reason client creates its own shipping labels and not API's built-in functionality for fetching shipping labels. |
TrackingCode | String | Tracking code used to track shipment right upon shipment creation. Code can be used on Overseas - Support for Croatia not available as of 1.6.2021. - web tracking site or as a parameter of GetShipmentStatusByTrackingCode method. |
TourNumber | Int32? | Tour number for the created shipment. Represents routing information. This must be printed if for some reason client creates its own shipping labels and not API's built-in functionality for fetching shipping labels. |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "CreatedShipmentId": 153, "Collies": [ { "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value" } ], "PickupStart": "2014-09-08T12:00:00+02:00", "PickupEnd": "2014-09-08T118:00:00+02:00", "DeliveryStart": "2014-09-09T12:00:00+02:00", "DeliveryEnd": "2014-09-09T18:00:00+02:00", "PriceInformation": { "Net": 100.0, "Gross": 150.0 }, "ValidPickupIntervals": [ { "From": "2014-09-08T12:00:00+02:00", "To": "2014-09-08T18:00:00+02:00" } ], "ValidDeliveryIntervals": [ { "From": "2014-09-09T12:00:00+02:00", "To": "2014-09-09T18:00:00+02:00" } ], "AdditionalInfo": { "DeliveryBefore0830": false, "DeliveryBefore1030": false, "SaturdayDelivery": false }, "ExpectedSenderAddress": { "PostalCode": "Text value", "City": "Text value", "Street": "Text value" }, "DeliveryCenterAbbreviation": "ZA", "TrackingCode": "OEX123456ABCDEF", "TourNumber": 12, "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
CreateShipmentWithCustomerBarcode
HTTP method: POST
Method used to create shipments containing the list of collies with customer barcode on each. When using this method the sender information must match the data for the API key since it is expected of the sender to print the shipping labels.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ShipmentWeight | Double? | Weight of the whole shipment in kilograms. | False | |
Collies | List of ComplexShipmentColli | List of collies contained in this shipment. | True | |
Ref1 | String | 35 | The Value of this field must be unique on a single date. It is printed on a shipping label. | True |
Ref2 | String | 35 | Value is printed on a shipping label. | True |
Ref3 | String | 35 | Value is printed on a shipping label. | True |
RemarkGoods | String | 150 | Description of goods being sent. | False |
CountOfBillingUnits | Double? | Count of billing units (e.g if the shipment contains 3 small boxes value of this field is 3 and the value of BillingUnit is SBX). | False | |
ConsigneeName | String | 35 | / | True |
ConsigneePostalCode | String | 10 | / | True |
ConsigneeStreet | String | 70 | / | True |
ConsigneeCity | String | 35 | / | True |
ConsigneeCountryPrefix | String | 3 | Please consult the supported country prefixes list | True |
ConsigneeTelephoneNumber | String | 30 | / | False |
ConsigneeFaxNumber | String | 30 | / | False |
ConsigneeGsmNumber | String | 30 | / | False |
ConsigneeEmailAddress | String | 70 | / | False |
SenderName | String | 35 | / | True |
SenderPostalCode | String | 10 | / | True |
SenderStreet | String | 70 | / | True |
SenderCity | String | 35 | / | True |
SenderCountryPrefix | String | 3 | HR | True |
SenderTelephoneNumber | String | 30 | / | False |
SenderFaxNumber | String | 30 | / | False |
SenderGsmNumber | String | 30 | / | False |
SenderEmailAddress | String | 70 | / | False |
ExpressType | Int32 | Indicates until when the shipment should be delivered. See ExpressTypeEnum for allowed values. | True | |
ExWorksType | Int32? | Null value means that the sender pays for shipping. See ExWorksTypeEnum for allowed values. | False | |
NotificationType | Int32 | See NotificationTypeEnum for allowed values. | True | |
AllowSaturdayDelivery | Boolean | / | True | |
PickupStart | DateTime? | If both date and time are passed the time value should be looked up by calling GetPossibleDateTimesForShipments method. It is possible to pass only date value (with 00:00:00 time) in both pickupStart and pickupEnd fields. In that case, shipment will be created with 1st available interval for pickup for the given postal code. | False | |
PickupEnd | DateTime? | If both date and time are passed the time value should be looked up by calling GetPossibleDateTimesForShipments method. It is possible to pass only date value (with 00:00:00 time) in both pickupStart and pickupEnd fields. In that case, shipment will be created with 1st available interval for pickup for the given postal code. | False | |
DeliveryStart | DateTime? | Date part of this field is ignored. Only time is important. If the value is not null, DeliveryEnd must be set as well. The combination of DeliveryStart and DeliveryEnd indicates the delivery time frame. Time value for this field should be looked up by calling GetPossibleDateTimesForShipments method. If the value is null shipment will be created with 1st available interval for delivery for the given postal code. | False | |
DeliveryEnd | DateTime? | Date part of this field is ignored. Only time is important. If the value is not null, DeliveryStart must be set as well. The combination of DeliveryStart and DeliveryEnd indicates the delivery time frame. Time value for this field should be looked up by calling GetPossibleDateTimesForShipments method. If the value is null shipment will be created with 1st available interval for delivery for the given postal code. | False | |
CodAmount | Double? | Cash on delivery amount. | False | |
CodCurrency | Int32? | Currency for the cash on delivery. If CodAmount is null, this field is ignored. See CurrencyEnum for allowed values. | False | |
InsuranceAmount | Double? | If a shipment is insured this field contains the insurance amount. | False | |
Currency | Int32? | Currency for the insurance. If InsuranceAmount is null, this field is ignored. See CurrencyEnum for allowed values. | False | |
RemarkDelivery | String | 150 | Description of delivery usually printed on the shipping label. | True |
RemarkPickup | String | 150 | Description of pickup usually printed on the shipping label. | True |
IsCargo | Boolean | Flag indicating if the shipment consists of pallets instead of boxes. | True | |
ReturnDocument | Boolean | Flag indicating whether return document exists that is collected upon delivery. | True | |
BillingUnit | Int32? | If CustomerBillingUnitOverride is set, this field is ignored. See BillingUnitEnum for allowed values and their description. | False | |
ShipmentDocumentData | Byte[] | PDF document that is merged with the shipping label PDF as a new page. When shipping labels are fetched with later API calls this document is returned as a part of the shipping label. | False | |
ShipmentDocumentExtension | String | 10 | Extension of the document. For now, only "PDF" value is allowed. Must be "PDF" if ShipmentDocumentData is not null. | False |
DropOffParcelShopId | String | If a shipment is to be picked up at Parcel shop, Parcel shop id is passed in this field. | False | |
DeliveryParcelShopId | String | If a shipment is to be delivered to a Parcel shop, Parcel shop id is passed in this field. | False | |
ApiKey | Guid | Authentication API key. | True |
JSON example:
{ "ShipmentWeight": null, "Collies": [ { "ColliWeight": null, "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "BarcodeCustomer": "Text value", "RemarkGoods": "Text value", "ColliDocumentData": null, "ColliDocumentExtension": null } ], "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RemarkGoods": "Text value", "CountOfBillingUnits": null, "ConsigneeName": "Text value", "ConsigneePostalCode": "Text value", "ConsigneeStreet": "Text value", "ConsigneeCity": "Text value", "ConsigneeCountryPrefix": "HR", "ConsigneeTelephoneNumber": "Text value", "ConsigneeFaxNumber": "Text value", "ConsigneeGsmNumber": "Text value", "ConsigneeEmailAddress": "Text value", "SenderName": "Text value", "SenderPostalCode": "Text value", "SenderStreet": "Text value", "SenderCity": "Text value", "SenderCountryPrefix": "HR", "SenderTelephoneNumber": "Text value", "SenderFaxNumber": "Text value", "SenderGsmNumber": "Text value", "SenderEmailAddress": "Text value", "ExpressType": 100, "ExWorksType": null, "NotificationType": 3, "AllowSaturdayDelivery": false, "PickupStart": null, "PickupEnd": null, "DeliveryStart": null, "DeliveryEnd": null, "CodAmount": null, "CodCurrency": null, "InsuranceAmount": null, "Currency": null, "RemarkDelivery": "Text value", "RemarkPickup": "Text value", "IsCargo": false, "ReturnDocument": false, "BillingUnit": null, "ShipmentDocumentData": null, "ShipmentDocumentExtension": null, "DropOffParcelShopId": null, "DeliveryParcelShopId": null, "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
CreatedShipmentId | Int32? | Identifier of the created shipment. Value is not null only if the request was valid |
Collies | List of ResponseColli | Value is not null only if the request was valid |
PickupStart | DateTime? | Value is not null only if the request was valid |
PickupEnd | DateTime? | Value is not null only if the request was valid |
DeliveryStart | DateTime? | Value is not null only if the request was valid |
DeliveryEnd | DateTime? | Value is not null only if the request was valid |
PriceInformation | PriceInformation | Value is not null only if the request was valid |
ValidPickupIntervals | List of TimeInterval | Value is not null only if the request was valid |
ValidDeliveryIntervals | List of TimeInterval | Value is not null only if the request was valid |
AdditionalInfo | AdditionalInfo | Value is not null only if the request was valid |
ExpectedSenderAddress | ExpectedSenderAddress | Value is not null only if the request was valid |
DeliveryCenterAbbreviation | String | Delivery center for created shipment. Represents routing information. This must be printed if for some reason client creates its own shipping labels and not API's built-in functionality for fetching shipping labels. |
TrackingCode | String | Tracking code used to track shipment right upon shipment creation. Code can be used on Overseas - Support for Croatia not available as of 1.6.2021. - web tracking site or as a parameter of GetShipmentStatusByTrackingCode method. |
TourNumber | Int32? | Tour number for the created shipment. Represents routing information. This must be printed if for some reason client creates its own shipping labels and not API's built-in functionality for fetching shipping labels. |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
ReturnShipment | Same as return object for CreateShipment (this method) | Used in Shipments with returns (contains examples). |
JSON example:
{ "CreatedShipmentId": 153, "Collies": [ { "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarcodeCustomer": "Text value", "BarCode": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value" } ], "PickupStart": "2014-09-08T12:00:00+02:00", "PickupEnd": "2014-09-08T118:00:00+02:00", "DeliveryStart": "2014-09-09T12:00:00+02:00", "DeliveryEnd": "2014-09-09T18:00:00+02:00", "PriceInformation": { "Net": 100.0, "Gross": 150.0 }, "ValidPickupIntervals": [ { "From": "2014-09-08T12:00:00+02:00", "To": "2014-09-08T18:00:00+02:00" } ], "ValidDeliveryIntervals": [ { "From": "2014-09-09T12:00:00+02:00", "To": "2014-09-09T18:00:00+02:00" } ], "AdditionalInfo": { "DeliveryBefore0830": false, "DeliveryBefore1030": false, "SaturdayDelivery": false }, "ExpectedSenderAddress": { "PostalCode": "Text value", "City": "Text value", "Street": "Text value" }, "DeliveryCenterAbbreviation": "ZA", "TrackingCode": "OEX123456ABCDEF", "TourNumber": 12, "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
CancelShipment
HTTP method: POST
The method will cancel the shipment with the passed in shipment id. In order to cancel a shipment, a pickup list containing it must not exist.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ShipmentId | Int32 | / | True | |
ApiKey | Guid | / | True |
JSON example:
{ "ShipmentId": 1, "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
CanceledShipmentId | Int32? | Identifier of the canceled shipment. Value is not null only if the request was valid |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "CanceledShipmentId": 1, "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
GetShippingLabelsForSingleShipment
HTTP method: POST
The method will return the shipping labels for the passed in shipment id.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ShipmentId | Int32 | / | True | |
ApiKey | Guid | / | True |
JSON example:
{ "ShipmentId": 1, "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
ShipmentIds | List of Int32 | Will contain only 1 shipment id |
LabelInfo | LabelResponse | Contains information about shipping labels and the page size used |
NumberOfLabels | Int32 | Number of labels contained on the returned PDF document |
PdfDocument | Byte[] | PDF document that contains all the shipping labels |
InvalidShipmentIds | List of Int32 | Array is not empty if the request wasn't valid. It contains shipment Ids for which shipping labels cannot be returned. Can contain a maximum 1 shipment Id for this request |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "ShipmentIds": [ 1 ], "LabelInfo": { "PageWidth": 0.0, "PageHeight": 0.0, "LabelWidth": 0.0, "LabelHeight": 0.0, "TopMargin": 0.0, "SideMargin": 0.0, "HorizontalPitch": 0.0, "VerticalPitch": 0.0, "MaxHorizontalLabels": 1, "MaxVerticalLabels": 1 }, "NumberOfLabels": 1, "PdfDocument": [BYTE ARRAY DATA (omitted because it's not human-readable)], "InvalidShipmentIds": [ ], "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
GetShippingLabelsForAllShipments
HTTP method: POST
The method will return the shipping labels document for all the available shipments.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ApiKey | Guid | / | True |
JSON example:
{ "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
ShipmentIds | List of Int32 | Shipment Ids of returned shipping labels |
LabelInfo | LabelResponse | Contains information about shipping labels and page size used |
NumberOfLabels | Int32 | Number of labels contained on the returned PDF document |
PdfDocument | Byte[] | PDF document that contains all the shipping labels |
InvalidShipmentIds | List of Int32 | Will always be empty for this request |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "ShipmentIds": [ 4, 32, 58 ], "LabelInfo": { "PageWidth": 0.0, "PageHeight": 0.0, "LabelWidth": 0.0, "LabelHeight": 0.0, "TopMargin": 0.0, "SideMargin": 0.0, "HorizontalPitch": 0.0, "VerticalPitch": 0.0, "MaxHorizontalLabels": 1, "MaxVerticalLabels": 1 }, "NumberOfLabels": 1, "PdfDocument": [BYTE ARRAY], "InvalidShipmentIds": [ ], "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
GetShippingLabelsForShipments
HTTP method: POST
The method will return the shipping labels document for the shipment ids passed to the method.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ShipmentIds | List of Int32 | Array of shipment Ids to get shipping labels for | True | |
ApiKey | Guid | / | True |
JSON example:
{ "ShipmentIds": [ 1, 5 ], "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
ShipmentIds | List of Int32 | Shipment Ids of returned shipping labels |
LabelInfo | LabelResponse | Contains information about shipping labels and page size used |
NumberOfLabels | Int32 | Number of labels contained on the returned PDF document |
PdfDocument | Byte[] | PDF document that contains all the shipping labels |
InvalidShipmentIds | List of Int32 | Array is not empty if the request wasn't valid. It contains shipment Ids for which shipping labels cannot be returned. It can contain 1 or more shipment Ids. No shipping labels will be returned if this array is not empty |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "ShipmentIds": [ 1, 5 ], "LabelInfo": { "PageWidth": 0.0, "PageHeight": 0.0, "LabelWidth": 0.0, "LabelHeight": 0.0, "TopMargin": 0.0, "SideMargin": 0.0, "HorizontalPitch": 0.0, "VerticalPitch": 0.0, "MaxHorizontalLabels": 1, "MaxVerticalLabels": 1 }, "NumberOfLabels": 2, "PdfDocument": [BYTE ARRAY], "InvalidShipmentIds": [ ], "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
RequestPickup
HTTP method: POST
Method will return the pickup list identifier along with the pickup list document for all shipments that are available for pickup.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ApiKey | Guid | / | True |
JSON example:
{ "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
PickupId | Int32? | Identifier of the pickup in Shipping API |
PickupListDocument | Byte[] | PDF document that contains pickup list |
ColliInfo | List of ColliInfoForPickupResponse | / |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "PickupId": null, "PickupListDocument": [BYTE ARRAY], "ColliInfo": [ { "ColliId": 1, "CargoNetColliId": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value" } ], "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
RequestPickupForShipments
HTTP method: POST
Method will return the pickup list identifier along with the pickup list document for all shipment ids passed to the method.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ShipmentIds | List of Int32 | / | True | |
ApiKey | Guid | / | True |
JSON example:
{ "ShipmentIds": [ 1, 5 ], "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
PickupId | Int32? | Identifier of a pickup in Shipping API |
PickupListDocument | Byte[] | PDF document that contains pickup list |
ColliInfo | List of ColliInfoForPickupResponse | / |
InvalidShipmentIds | List of Int32 | Array is not empty if the request wasn't valid. It contains shipment Ids for which shipping labels cannot be returned. Can contain 1 or more shipment Ids. No shipping labels will be returned if this object is not empty |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "PickupId": 652, "PickupListDocument": [BYTE ARRAY], "ColliInfo": [ { "ColliId": 1, "CargoNetColliId": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value" } ], "InvalidShipmentIds": [ ], "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
GetPickupListContainingColli
HTTP method: GET
Method will return the pickup list identifier along with the pickup list document containing the colli id passed to the method.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ColliId | Int32 | / | True | |
ApiKey | Guid | / | True |
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
PickupId | Int32? | If the response is valid, this field contains Shipping API pickup identifier |
PickupListDocument | Byte[] | PDF document containing pickup list |
ColliInfo | List of ColliInfoForPickupResponse | / |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "PickupId": 231, "PickupListDocument": [BYTE ARRAY], "ColliInfo": [ { "ColliId": 1, "CargoNetColliId": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value" } ], "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
GetPossibleDateTimesForShipments
HTTP method: GET
The method will return the possible pickup and delivery times for shipment data. One of these intervals should be used when creating a shipment through the API.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
PickupDate | DateTime? | Date of pickup. The time part is ignored. If null is passed, the first possible date is taken. | False | |
PickupCountryPrefix | String | 3 | Local country prefix (e.g HR). If null is passed, the default value from system config is used | False |
PickupPostalCode | String | 10 | / | True |
PickupCity | String | 35 | / | False |
DeliveryCountryPrefix | String | 3 | If null is passed, the default value from system config is used | False |
DeliveryPostalCode | String | 10 | / | True |
DeliveryCity | String | 35 | / | False |
OverseasPrintsShippingLabels | Boolean | Flag indicating whether shipper prints shipping labels. If true, the PickupDate field should be at least one day in the future if it was not passed as null. Support for Croatia not available as of 1.6.2021. | True | |
ApiKey | Guid | / | True |
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
PossibleDateTimes | List of PossibleDateTimeForShipment | / |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "PossibleDateTimes": [ { "PickupPostalCode": "Text value", "PickupCity": "Text value", "DeliveryPostalCode": "Text value", "DeliveryCity": "Text value", "AvailablePickupIntervals": [ { "From": "2014-09-08T15:07:59.7947882+02:00", "To": "2014-09-08T15:07:59.7947882+02:00" } ], "AvailableDeliveryIntervals": [ { "From": "2014-09-08T15:07:59.7947882+02:00", "To": "2014-09-08T15:07:59.7947882+02:00" } ], "AdditionalInfo": { "DeliveryBefore0830": false, "DeliveryBefore1030": false, "SaturdayDelivery": false } } ], "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
GetLocations
HTTP method: GET
Method will return all postal codes containing the passed in string. The string can be either the postal code or city name.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
PostalCodeOrName | String | 35 | City or postal code have to be passed here | True |
ApiKey | Guid | / | True |
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
PostalLocations | List of ResponsePostalLocation | / |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "PostalLocations": [ { "Name": "Text value", "PostalCode": "Text value" } ], "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
GetAllPickupAndDeliveryIntervals
HTTP method: GET
The method will return all the pickup and delivery postal codes along with the available time intervals. Should be used if this data wants to be stored locally, this information is not volatile and an update interval of one day is recommended.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ApiKey | Guid | / | True |
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
Intervals | List of PostalLocationInfo | / |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "Intervals": [ { "Name": "Text value", "PostalCode": "Text value", "PickupTimeIntervals": [ { "From": "2014-09-08T15:07:59.8137901+02:00", "To": "2014-09-08T15:07:59.8137901+02:00" } ], "DeliveryTimeIntervals": [ { "From": "2014-09-08T15:07:59.8147902+02:00", "To": "2014-09-08T15:07:59.8147902+02:00" } ] } ], "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
GetParcelShops
HTTP method: GET
The method will return all parcel shops.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ApiKey | Guid | / | True |
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
ParcelShops | List of ResponseParcelShop | / |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "ParcelShops": [ { "Id": 123, "Name": "MyShop MS646", "Latitude": "32.908017", "Longitude": "12.983954", "Address": "Some street 22", "PostalCode": "99999", "City": "MS646", "Description": "", "GlobalLocationNumber": "MS646", "LocationId": "99999999", "WorkingHoursDescription": "Work days: 6:30 do 20:30\r\nSaturdays: 7:00 do 14:30" } ], "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
GetPriceInformation
HTTP method: POST
The method used to check for shipment price information. It can easily be used to preview the shipping costs for a customer.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
PickupDate | DateTime | Only date part is relevant | True | |
SenderPostalCode | String | 10 | / | True |
SenderCountryPrefix | String | 3 | / | True |
ConsigneePostalCode | String | 10 | / | True |
ConsigneeCountryPrefix | String | 3 | / | True |
BillingUnit | Int32? | See BillingUnitEnum for available values. If CustomerBillingUnitOverride is set, this field is ignored | False | |
ShipmentWeight | Double? | / | False | |
CountOfBillingUnits | Double? | / | False | |
CodAmount | Double? | / | False | |
ExWorksType | Int32? | null value means sender is paying for shipping | False | |
InsuranceAmount | Double? | / | False | |
ReturnDocument | Boolean? | / | False | |
ExpressType | Int32? | See ExpressTypeEnum for available values | False | |
AllowSaturdayDelivery | Boolean? | / | False | |
IsCargo | Boolean? | Flag indicating whether the shipment consists of pallets | False | |
NumberOfCollies | Int32? | / | False | |
Collies | List of PriceInformationColli | / | True | |
ApiKey | Guid | / | True |
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
PriceInformation | PriceInformation | / |
BillingUnit | Int32? | See BillingUnitEnum for available values |
CountOfBillingUnits | Double? | / |
NumberOfCollies | Int32? | / |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "PriceInformation": { "Net": 0.0, "Gross": 0.0 }, "BillingUnit": null, "CountOfBillingUnits": null, "NumberOfCollies": null, "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
GetActiveShipments
HTTP method: GET
The method that returns all non failed, non picked up shipments for an API key.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ApiKey | Guid | / | True |
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
Shipments | List of ResponseShipment | / |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "Shipments": [ { "ShipmentId": 1, "Status": 1, "DateCreated": "2014-09-08T15:07:59.8287916+02:00", "StatusDate": "2014-09-08T15:07:59.8287916+02:00", "ReturnDocument": false, "CargoNetShipmentId": "Text value", "PriceInformation": { "Net": 0.0, "Gross": 0.0 }, "Collies": [ { "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value" } ], "Traces": [ { "ParcelNumber": "Text value", "ScanDate": "2014-09-08T15:07:59.8287916+02:00", "ScanTime": "2014-09-08T15:07:59.8287916+02:00", "StatusNumber": 1, "StatusDescription": "Text value", "CenterName": "Text value", "Remark": "Text value" } ] } ], "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
CreateApiKey
HTTP method: POST
Method to create new API keys. The API key used to call this method must have the CanAdministrateApiKeys permission, also the field CanAdministrateApiKeys sets this permission for the newly created API key.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
LogoImageExtension_S | String | 10 | Only picture formats are allowed (PNG, JPG, BMP). Required if LogoImageData_S is not null | False |
LogoImageData_S | Byte[] | Small logo image for the new api key. If the parameter is null, a new api key will inherit the logo image of the current api key | False | |
LogoImageExtension_M | String | 10 | Only picture formats are allowed (PNG, JPG, BMP). Required if LogoImageData_M is not null | False |
LogoImageData_M | Byte[] | Medium logo image for the new api key. If the parameter is null, a new api key will inherit the logo image of the current api key | False | |
LogoImageExtension_L | String | 10 | Only picture formats are allowed (PNG, JPG, BMP). Required if LogoImageData_L is not null | False |
LogoImageData_L | Byte[] | Large logo image for the new api key. If the parameter is null, a new api key will inherit the logo image of the current api key | True | |
IsActive | Boolean | Indicates whether the api key is allowed to make requests | True | |
Description | String | 150 | / | True |
PickupPostalCode | String | 10 | / | True |
PickupCity | String | 10 | / | True |
PickupStreet | String | 10 | / | True |
CanAdministrateApiKeys | Boolean | Indicates if the api key will have administrative privileges (create/edit other keys) | True | |
ApiKey | Guid | / | True |
JSON example:
{ "LogoImageExtension_S": "Text value", "LogoImageData_S": [BYTE_ARRAY], "LogoImageExtension_M": "Text value", "LogoImageData_M": [BYTE_ARRAY], "LogoImageExtension_L": "Text value", "LogoImageData_L": [BYTE_ARRAY], "IsActive": false, "Description": "Text value", "PickupPostalCode": "Text value", "PickupCity": "Text value", "PickupStreet": "Text value", "CanAdministrateApiKeys": false, "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
CreatedApiKeyId | Int32? | Newly created api key id. Null if the request is not valid |
CreatedApiKeyValue | Guid? | Newly created api key value. Null if the request is not valid |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "CreatedApiKeyId": 512, "CreatedApiKeyValue": 00000000-0000-0000-0000-000000000000, "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
UpdateApiKey
HTTP method: POST
Method to update values of an existing API key. The API key used to call this method must have the CanAdministrateApiKeys permission.
Request
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
UpdatedApiKeyValue | Guid | Api key value being updated | True | |
LogoImageExtension_S | String | 10 | Only picture formats are allowed (PNG, JPG, BMP). Required if LogoImageData_S is not null | False |
LogoImageData_S | Byte[] | Small logo image for the new api key. If the parameter is null, a new api key will inherit the logo image of the current api key | False | |
LogoImageExtension_M | String | 10 | Only picture formats are allowed (PNG, JPG, BMP). Required if LogoImageData_M is not null | False |
LogoImageData_M | Byte[] | Medium logo image for the new api key. If the parameter is null, a new api key will inherit the logo image of the current api key | False | |
LogoImageExtension_L | String | 10 | Only picture formats are allowed (PNG, JPG, BMP). Required if LogoImageData_L is not null | False |
LogoImageData_L | Byte[] | Large logo image for the new api key. If the parameter is null, a new api key will inherit the logo image of the current api key | True | |
IsActive | Boolean | Indicates whether the api key is allowed to make requests | True | |
Description | String | 150 | / | True |
PickupPostalCode | String | 10 | / | True |
PickupCity | String | 10 | / | True |
PickupStreet | String | 10 | / | True |
CanAdministrateApiKeys | Boolean | Indicates if the api key will have administrative privileges (create/edit other keys) | True | |
ApiKey | Guid | / | True |
JSON example:
{ "LogoImageExtension_S": "Text value", "LogoImageData_S": [BYTE_ARRAY], "LogoImageExtension_M": "Text value", "LogoImageData_M": [BYTE_ARRAY], "LogoImageExtension_L": "Text value", "LogoImageData_L": [BYTE_ARRAY], "IsActive": false, "Description": "Text value", "PickupPostalCode": "Text value", "PickupCity": "Text value", "PickupStreet": "Text value", "CanAdministrateApiKeys": false, "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response
FIELD NAME | FIELD TYPE | DESCRIPTION |
---|---|---|
CreatedApiKeyId | Int32? | Updated api key id. Null if the request is not valid |
CreatedApiKeyValue | Guid? | Updated api key value. Null if the request is not valid |
IsValid | Boolean | Value of this field is indicating if the request was successful. If the value is 'false', see ValidationErrors and ModelErrors fields for more information. |
ModelErrors | Dictionary with key as String and value as String | This dictionary will contain errors regarding request fields. E.g If a value is required but not passed that error will be contained here. Key is the name of the required field and value is something like 'Field xxx is required' |
ValidationErrors | List of Int32 | Values in this list are from CoreValidationExceptionCode enum |
JSON example:
{ "CreatedApiKeyId": 512, "CreatedApiKeyValue": 00000000-0000-0000-0000-000000000000, "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
Complex types used in request/response objects
ComplexShipmentColli
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ColliWeight | Double? | / | False | |
Ref1 | String | 35 | Unique Colli identifier should be passed in this field. It is later printed on the shipping label | True |
Ref2 | String | 35 | / | True |
Ref3 | String | 35 | / | True |
BarcodeCustomer | String | 35 | Customer barcode | False |
RemarkGoods | String | 150 | Description of goods being sent | True |
ColliDocumentData | Byte[] | PDF document to be sent with the shipment's colli | False | |
ColliDocumentExtension | String | 30 | Extension of the document. Must be "PDF" if ColliDocumentData is not null | False |
IsReturnColli | Boolean | Indicating if colli is return shipment colli. See Shipments with returns | False |
JSON example:
{ "ColliWeight": null, "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "BarcodeCustomer": "Text value", "RemarkGoods": "Text value", "ColliDocumentData": null, "ColliDocumentExtension": null, "IsReturnColli": false }
PriceInformationColli
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ColliWeight | Double | / | True |
JSON example:
{ "ColliWeight": 0.0 }
AdditionalInfo
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
DeliveryBefore0830 | Boolean | / | True | |
DeliveryBefore1030 | Boolean | / | True | |
SaturdayDelivery | Boolean | / | True |
JSON example:
{ "DeliveryBefore0830": false, "DeliveryBefore1030": false, "SaturdayDelivery": false }
ColliInfoForPickupResponse
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ColliId | Int32 | / | True | |
CargoNetColliId | String | 8 | / | True |
Ref1 | String | 35 | / | True |
Ref2 | String | 35 | / | False |
Ref3 | String | 35 | / | False |
RefInt | String | 35 | / | False |
JSON example:
{ "ColliId": 1, "CargoNetColliId": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value" }
ExpectedSenderAddress
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
PostalCode | String | 10 | / | False |
City | String | 25 | / | False |
Street | String | 70 | / | False |
JSON example:
{ "PostalCode": "Text value", "City": "Text value", "Street": "Text value" }
LabelResponse
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
PageWidth | Double | / | True | |
PageHeight | Double | / | True | |
LabelWidth | Double | / | True | |
LabelHeight | Double | / | True | |
TopMargin | Double | / | True | |
SideMargin | Double | / | True | |
HorizontalPitch | Double | / | True | |
VerticalPitch | Double | / | True | |
MaxHorizontalLabels | Int32 | / | True | |
MaxVerticalLabels | Int32 | / | True |
JSON example:
{ "PageWidth": 0.0, "PageHeight": 0.0, "LabelWidth": 0.0, "LabelHeight": 0.0, "TopMargin": 0.0, "SideMargin": 0.0, "HorizontalPitch": 0.0, "VerticalPitch": 0.0, "MaxHorizontalLabels": 1, "MaxVerticalLabels": 1 }
PossibleDateTimeForShipment
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
PickupPostalCode | String | 30 | / | True |
PickupCity | String | 30 | / | True |
DeliveryPostalCode | String | 30 | / | True |
DeliveryCity | String | 30 | / | True |
AvailablePickupIntervals | List of TimeInterval | / | True | |
AvailableDeliveryIntervals | List of TimeInterval | / | True | |
AdditionalInfo | AdditionalInfo | / | True |
JSON example:
{ "PickupPostalCode": "Text value", "PickupCity": "Text value", "DeliveryPostalCode": "Text value", "DeliveryCity": "Text value", "AvailablePickupIntervals": [ { "From": "2014-09-08T15:23:38.596659+02:00", "To": "2014-09-08T15:23:38.596659+02:00" } ], "AvailableDeliveryIntervals": [ { "From": "2014-09-08T15:23:38.596659+02:00", "To": "2014-09-08T15:23:38.596659+02:00" } ], "AdditionalInfo": { "DeliveryBefore0830": false, "DeliveryBefore1030": false, "SaturdayDelivery": false } }
PostalLocationInfo
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
Name | String | 30 | / | True |
PostalCode | String | 30 | / | True |
PickupTimeIntervals | List of TimeInterval | / | True | |
DeliveryTimeIntervals | List of TimeInterval | / | True |
JSON example:
{ "Name": "Text value", "PostalCode": "Text value", "PickupTimeIntervals": [ { "From": "2014-09-08T15:23:38.596659+02:00", "To": "2014-09-08T15:23:38.596659+02:00" } ], "DeliveryTimeIntervals": [ { "From": "2014-09-08T15:23:38.596659+02:00", "To": "2014-09-08T15:23:38.596659+02:00" } ] }
PriceInformation
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
Net | Double | Price without tax | True | |
Gross | Double | Price with tax | True |
JSON example:
{ "Net": 0.0, "Gross": 0.0 }
ResponseColli
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ColliId | Int32 | / | True | |
Status | Int32 | See ColliStatusEnum for allowed values | True | |
CargoNetColliId | String | 8 | CargoNetId - it will be null if parent shipment is in status Pending or Failed | False |
BarCode | String | 16 | Barcode - it will be null unless parent shipment was processed | False |
Ref1 | String | 35 | / | True |
Ref2 | String | 35 | / | False |
Ref3 | String | 35 | / | False |
RefInt | String | 35 | / | False |
MultifunctionalBarcode | String | Used in special cases when Shipping API consumer prints own shipping labels and not using API's built-in functionality for shipping label fetching. Code128B specification should be used for the first 8 characters and Code128C for the rest. If a shipping label is not too small, using Code128B for the entire barcode should suffice (since this generates a larger barcode image). | False | |
Services | String | String representation of services applied to this colli. Used in special cases when Shipping API consumer prints own shipping labels and not using API's built-in functionality for shipping label fetching. | False |
JSON example:
{ "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value", "MultifunctionalBarcode": "Text value", "Services": "Text value" }
ResponsePostalLocation
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
Name | String | 30 | / | True |
PostalCode | String | 30 | / | True |
JSON example:
{ "Name": "Text value", "PostalCode": "Text value" }
ResponseParcelShop
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
Id | Int32 | / | True | |
Name | String | / | True | |
Latitude | Double | / | True | |
Longitude | Double | / | True | |
Address | String | / | True | |
PostalCode | String | / | True | |
City | String | / | True | |
Description | String | / | True | |
GlobalLocationNumber | String | / | True | |
LocationId | String | / | True | |
WorkingHoursDescription | String | Human readable plain text describing working hours of this parcel shop | True |
JSON example:
{ "Id": 123, "Name": "MyShop MS646", "Latitude": "32.908017", "Longitude": "12.983954", "Address": "Some street 22", "PostalCode": "99999", "City": "MS646", "Description": "", "GlobalLocationNumber": "MS646", "LocationId": "99999999", "WorkingHoursDescription": "Work days: 6:30 do 20:30\r\nSaturdays: 7:00 do 14:30" }
ResponseShipment
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ShipmentId | Int32 | / | True | |
Status | Int32 | / | True | |
DateCreated | DateTime | / | True | |
StatusDate | DateTime | / | True | |
ReturnDocument | Boolean | / | True | |
CargoNetShipmentId | String | 30 | / | True |
TrackingCode | String | 15 | Tracking code used to track shipment right upon shipment creation. Code can be used on Overseas - Support for Croatia not available as of 1.6.2021. - web tracking site or as a parameter of GetShipmentStatusByTrackingCode method. | True |
PriceInformation | PriceInformation | / | True | |
Collies | List of ResponseColli | / | True | |
Traces | List of ResponseTrace | / | True | |
DeliveryCenterAbbreviation | String | Delivery center for created shipment. Represents routing information. This must be printed if for some reason client creates own shipping labels and not API's built-in functionality for fetching shipping labels. | False | |
TourNumber | Int32? | Tour number for the created shipment. Represents routing information. This must be printed if for some reason client creates its own shipping labels and not API's built-in functionality for fetching shipping labels. | False |
JSON example:
{ "ShipmentId": 1, "Status": 1, "DateCreated": "2014-09-08T15:23:38.5976591+02:00", "StatusDate": "2014-09-08T15:23:38.5976591+02:00", "ReturnDocument": false, "CargoNetShipmentId": "Text value", "TrackingCode": "OEX123456ABCDEF", "PriceInformation": { "Net": 0.0, "Gross": 0.0 }, "Collies": [ { "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value" } ], "Traces": [ { "ParcelNumber": "Text value", "ScanDate": "2014-09-08T15:23:38.5976591+02:00", "ScanTime": "2014-09-08T15:23:38.5976591+02:00", "StatusNumber": 1, "StatusDescription": "Text value", "CenterName": "Text value", "Remark": "Text value" } ], "DeliveryCenterAbbreviation": "ZA", "TourNumber": 12 }
ResponseTrace
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
ParcelNumber | String | 30 | / | True |
ScanDate | DateTime | / | True | |
ScanTime | DateTime | / | True | |
StatusNumber | Int32 | / | True | |
StatusDescription | String | 30 | / | True |
CenterName | String | 30 | / | True |
Remark | String | 30 | / | True |
JSON example:
{ "ParcelNumber": "Text value", "ScanDate": "2014-09-08T15:23:38.5976591+02:00", "ScanTime": "2014-09-08T15:23:38.5976591+02:00", "StatusNumber": 1, "StatusDescription": "Text value", "CenterName": "Text value", "Remark": "Text value" }
TimeInterval
FIELD NAME | FIELD TYPE | MAX LENGTH | DESCRIPTION | IS REQUIRED |
---|---|---|---|---|
From | DateTime | / | True | |
To | DateTime | / | True |
JSON example:
{ "From": "2014-09-08T15:23:38.5976591+02:00", "To": "2014-09-08T15:23:38.5976591+02:00" }
Enums (constant values) used in request/response objects
If, in request or response object, field type is one of these enumerations, Int32 value of the enum member should be passed. If a field is marked as nullable (has '?' behind type name), a null value can still be passed. For example, CreateShipmentPlainRequest object has both, a field that takes a nullable ExWorksTypeEnum value and a field that takes ExpressTypeEnum value. When invoking CreateShipmentPlain API method, these values should be one of the Int32 values contained in these enum members, or null for ExWorksTypeEnum field, since it is marked as nullable (not required).
ExWorksTypeEnum
VALUE (INT32) | NAME | DESCRIPTION |
---|---|---|
4 | ExWorks | Consignee pays for the shipping |
44 | CashPrepaid | Shipping fee is prepaid |
ExpressTypeEnum
VALUE (INT32) | NAME | DESCRIPTION |
---|---|---|
21 | T1030 | Delivery until 10:30 |
22 | T0830 | Delivery until 08:30 |
100 | EoBD | Delivery until the end of business day |
NotificationTypeEnum
VALUE (INT32) | NAME | DESCRIPTION |
---|---|---|
0 | None | / |
1 | AutomaticViaEmail | / |
2 | AutomaticViaSms | / |
3 | Both | / |
ShipmentStatusEnum
VALUE (INT32) | NAME | DESCRIPTION |
---|---|---|
1 | Pending | / |
2 | Successful | / |
3 | Failed | / |
4 | DataDefined | / |
5 | Canceled | / |
6 | AwaitingPickup | / |
7 | PickupInitiated | / |
8 | PartiallyPrinted | / |
11 | PickupInitiatedWhilePending | / |
ColliStatusEnum
VALUE (INT32) | NAME | DESCRIPTION |
---|---|---|
1 | NoPrinting | / |
2 | AwaitingPrint | / |
3 | Printed | / |
4 | MarkedForNoPrint | / |
CurrencyEnum
VALUE (INT32) | NAME | DESCRIPTION |
---|---|---|
0 | National | / |
1 | Euro | / |
BillingUnitEnum
The default Billing Unit is a kilogram (kg). In requests, customers can use the default Billing Unit (kg) or a Billing unit defined in their contract. If a customer uses a kilogram as a Billing Unit but he has a different Billing Unit contracted, the Billing Unit will automatically be overridden with the contracted Billing Unit. The Billing Unit is defined in the customer's contract which is configured in the administration interface.
Available in Republic of Croatia
If the customer, when creating a shipment, sends a Billing Unit which is not box or letter (LETT, SBX, MBX, LBX, XLBX), an error 1011 (UnsupportedBillingUnit) will occur and the request will not be successful.
VALUE (INT32) | NAME | DESCRIPTION |
---|---|---|
12 | LETT | Letter |
13 | SBX | Small box |
14 | MBX | Medium box |
15 | LBX | Large box |
16 | XLBX | Extra large box |
Available in Republic of Serbia
If the customer, when creating a shipment, sends a Billing Unit which is not a box ( S, M, L, BOX), an error 1011 (UnsupportedBillingUnit) will occur and the request will not be successful.
VALUE (INT32) | NAME | DESCRIPTION |
---|---|---|
11 | PKLG | Paleta (kg) |
13 | S | S |
14 | M | M |
15 | L | L |
16 | XLBX | XL |
17 | WPI | Težina po paketu |
4 | PL | Paleta(e) |
5 | VRED | Vrednost |
6 | BOX | Kutija(e) |
7 | KOM | Komadi |
CoreValidationExceptionCode
VALUE (INT32) | NAME | DESCRIPTION |
---|---|---|
10000 | InvalidApiKey | / |
10001 | PickupFromAndToDateMismatch | / |
10002 | PickupFromMustBeLesserThanTo | / |
10003 | PickupNotPossibleOnDate | / |
10004 | PickupInvalidInterval | / |
10005 | DeliveryFromMustBeLesserThanTo | / |
10006 | DeliveryInvalidInterval | / |
10007 | ShipmentNotfound | / |
10008 | ConsigneePostalCodeAndCityInvalidCombination | / |
10009 | SenderPostalCodeAndCityInvalidCombination | / |
10010 | NonFailedShipmentWithRef1AndPickupDateAlreadyExists | / |
10011 | UnsupportedBillingUnit | / |
10012 | CountOfBillingUnitsMustBeSet | / |
10013 | ExpectedSenderAddressDoesntMatch | / |
10014 | PickupInvalidPostalCode | / |
10015 | DeliveryInvalidPostalCode | / |
10016 | CutoffTimePassed | / |
10017 | NoActiveLabelLayoutSetting | / |
10018 | CannotUseOexPackaging | / |
10019 | NoShipmentsForPickupFound | / |
10020 | NoDataDefinedShipmentsFound | / |
10021 | DeliveryInvalidExpressType | / |
10022 | InvalidExWorksType | / |
10023 | ExpressDeliveryNotAvailableForCargo | / |
10024 | ColliesOrNumberOfColliesMustBeSent | / |
10025 | ServiceNotAvailableForSenderPostalCode | / |
10026 | ServiceNotAvailableForConsigneePostalCode | / |
10027 | UnsupportedSenderCountryPrefix | / |
10028 | UnsupportedConsigneeCountryPrefix | / |
10029 | BothSenderAndConsigneeCannotContainInternationalCountryPrefixes | / |
10030 | UnsupportedFormatOfShipmentDocument | / |
10031 | UnsupportedFormatOfColliDocument | / |
10032 | NoPostalLocationsFound | / |
10033 | CannotUpdateShipment | / |
10034 | PickupNotYetRequestedForShipment | / |
10035 | PickupNotYetRequestedForColli | / |
10036 | UnsupportedSearchByRefType | / |
10037 | InvalidIBAN | / |
10038 | ColliWithCustomerBarcodeAndPickupDateAlreadyExists | / |
10039 | PickupListDoesNotExist | / |
10040 | ApiKeyCannotManuallySetRef3 | / |
10041 | ApiKeyUsesAutomaticInitWeightMustBeSet | / |
10042 | ColliCustomerBarcodeMustBeSet | / |
10043 | CashOnDeliveryAmountCanNotBeLesserThanZero | / |
10500 | InvalidExpressType | / |
11000 | ApiKeyNotAuthorizedToRequestEuroplate | / |
11001 | ShipmentNotValidForEuroplatePrinting | / |
11002 | InvalidShipmentStatusForEuroplatePrinting | / |
11003 | ColliWeightIsGreaterThanMaxAllowedColliWeight | / |
11004 | InsufficientConsigneeData | / |
11005 | ColliWeightIsZero | / |
15000 | ApiKeyNotAuthorizedToAdministrateApiKeys | / |
15001 | PostalCodeAndCityInvalidCombination | / |
15002 | InvalidLogoImageData | / |
15003 | ApiKeyNotFound | / |
15004 | CannotRemoveAdministrationPrivileges | / |
16000 | ApiKeyCannotUseShipmentsWithReturns | / |
16001 | CannotUseParcelShopsIfShipmentContainsPickCollies | / |
16002 | ExpectedReturnShipmentConsigneeDoesntMatch | / |
16003 | PickupAndDeliveryDatesMustBeNullWhenCreatingShipmentWithReturn | / |
16004 | ShipmentWithReturnCannotUseCashOnDeliveryService | / |
16005 | NoActiveLabelLayoutSettingForReturnShipment | / |
16006 | FetchingLabelForColliInReturnShipmentIsNotAllowed | / |
16007 | ColliInReturnShipmentCannotBeMarkedForNoPrint | / |
16008 | CannotGetPickupListForReturnShipmentColli | / |
16009 | EndpointDoesNotSupportShipmentsWithReturns | / |
16010 | ReturnShipmentsCannotBeCancelledDirectly | / |
20000 | UnknownError | / |
20001 | ApiKeyFailedToSerialize | / |
20002 | SystemMaintenance | / |
Using XML for data exchange
It is possible to use the XML structure in the Shipping API data exchange. By default, all the responses from Shipping API are JSON formatted. To explicitly request XML response just add a query parameter "response=xml" at the end of API endpoint URL (e.g "http://api.shippingapi.com/api/data/CreateShipmentPlain?response=xml"). When making a GET or POST request using XML consult List of API methods section for the list of objects and their fields. Note that, regardless of format (XML or JSON) used, GET requests are always made passing the parameters in URL query (e.g "http://api.shippingapi.com/api/data/GetShipmentStatusByShipmentId?ApiKey=A75A955B-2C0F-4D22-89DD-1A10717E692E&ShipmentId=1028&response=xml"), while POST requests are passed in the request body as XML or JSON. Examples for Shipping API CreateShipment method request (POST) and response in XML follow:
Request (POST)
<?xml version="1.0" encoding="utf-8"?> <Request> <ApiKey>A75A955B-2C0F-4D22-89DD-1A10717E692E</ApiKey> <ConsigneeName>Ivan Horvat</ConsigneeName> <ConsigneePostalCode>23000</ConsigneePostalCode> <ConsigneeStreet>G. Budislavića 89</ConsigneeStreet> <ConsigneeCity>Zadar</ConsigneeCity> <SenderName>Marko Marković</SenderName> <SenderPostalCode>10000</SenderPostalCode> <SenderStreet>Ulica grada Vukovara 123</SenderStreet> <SenderCity>Zagreb</SenderCity> <ExpressType>100</ExpressType> <Collies> <Ref1>First colli ref1</Ref1> </Collies> <Collies> <Ref1>Second colli ref1</Ref1> </Collies> </Request>
Response
<?xml version="1.0" encoding="utf-8"?> <Response> <CreatedShipmentId>6992</CreatedShipmentId> <Collies> <ColliId>12840</ColliId> <Status>2</Status> <CargoNetColliId>35056994</CargoNetColliId> <BarCode>1910013505699414</BarCode> <Ref1>First colli ref1</Ref1> <Ref2 /> <Ref3 /> <RefInt /> </Collies> <Collies> <ColliId>12841</ColliId> <Status>2</Status> <CargoNetColliId>35056995</CargoNetColliId> <BarCode>1910013505699513</BarCode> <Ref1>Second colli ref1</Ref1> <Ref2 /> <Ref3 /> <RefInt /> </Collies> <PickupStart>2014-09-18T08:00:00</PickupStart> <PickupEnd>2014-09-18T20:00:00</PickupEnd> <DeliveryStart>2014-09-19T08:00:00</DeliveryStart> <DeliveryEnd>2014-09-19T17:00:00</DeliveryEnd> <PriceInformation> <Net>0</Net> <Gross>0</Gross> </PriceInformation> <ValidPickupIntervals /> <ValidDeliveryIntervals /> <AdditionalInfo /> <ExpectedSenderAddress /> <IsValid>true</IsValid> <ModelErrors /> <ValidationErrors /> </Response>
Shipments with returns
When the business process dictates a scenario in which it is necessary to deliver something and pick something up on the same address, shipments with returns can be used.
The process consists of the following:
- API consumer creates shipment defining which collies are to be delivered and which collies are to be picked up.
- System automatically creates two shipments; one from API consumer to the recipient (consignee) and one from the recipient (consignee [which becomes sender in this shipment]) back to the API consumer (or the third party if allowed by API administrator).
- API consumer prints shipping labels for shipment from himself to the recipient (consignee) and among those labels there are shipping labels for the second shipment (from consignee back to the API consumer) that are sent with the original shipment so consignee can use them for the return shipment.
There can be two scenarios when using shipments with returns:
- API consumer wants something delivered and something returned.
- API consumer wants something returned.
These scenarios are basically the same, with one minor difference; the first one has collies that need to be delivered + a single colli containing shipping label(s) for the return shipment. The second scenario has only a single colli with a shipping label(s) for return.
Usage
To use shipments with a return, the API administrator needs to allow that option for API consumer's API key. Once allowed, the consumer, can create a shipment with returns using CreateShipment method as he normally would with a few minor changes:
- Sender data in that shipment is address data of pick-up location and consignee data is API consumer's address data (or the third party if allowed by API administrator), basically the same as creating a normal pick-up shipment
- Shipment needs to have at least one return colli defined (IsReturnColli set to true). Return colli is part of a return shipment, representing something API consumer wants to be returned. See ComplexShipmentColli.
This results in the creation of two shipments:
- API consumer -> consignee,
- Consignee -> API consumer (or the third party if allowed by API administrator)
and response object, besides normal CreateShipment response, contains return shipment data stored in ReturnShipment field.
Using shipments with return has the following limitations:
- Informative price calculation is not supported and PriceInformation field in response is always null.
- Shipments with returns cannot be updated, only canceled if their current status allows it.
- All the actions (getting labels, requesting pick-up, even cancelling) regarding shipments with returns should be performed on the delivery shipment (a shipment returned upon creation, not the one contained in ReturnShipment field).
- Requesting shipment status GetShipmentStatusByShipmentId, GetShipmentStatusByRef1AndPickupDate, GetShipmentStatusByAnyRef can be performed on both delivery and return shipment, they essentially are two different shipments.
JSON examples
Creating shipment with return (first colli is to be delivered, second to be returned (IsReturnColli = true)):
{ "ShipmentWeight": null, "Collies": [ { "ColliWeight": null, "Ref1": "Delivery ref1", "Ref2": "Text value", "Ref3": "Text value", "RemarkGoods": "Text value", "ColliDocumentData": null, "IsReturnColli": false }, { "ColliWeight": null, "Ref1": "Return ref1", "Ref2": "Text value", "Ref3": "Text value", "RemarkGoods": "Text value", "ColliDocumentData": null, "IsReturnColli": true } ], "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RemarkGoods": "Text value", "CountOfBillingUnits": null, "ConsigneeName": "Text value", "ConsigneePostalCode": "Text value", "ConsigneeStreet": "Text value", "ConsigneeCity": "Text value", "ConsigneeCountryPrefix": "HR", "ConsigneeTelephoneNumber": "Text value", "ConsigneeFaxNumber": "Text value", "ConsigneeGsmNumber": "Text value", "ConsigneeEmailAddress": "Text value", "SenderName": "Text value", "SenderPostalCode": "Text value", "SenderStreet": "Text value", "SenderCity": "Text value", "SenderCountryPrefix": "HR", "SenderTelephoneNumber": "Text value", "SenderFaxNumber": "Text value", "SenderGsmNumber": "Text value", "SenderEmailAddress": "Text value", "ExpressType": 100, "ExWorksType": null, "NotificationType": 3, "AllowSaturdayDelivery": false, "PickupStart": null, "PickupEnd": null, "DeliveryStart": null, "DeliveryEnd": null, "CodAmount": null, "CodCurrency": null, "InsuranceAmount": null, "Currency": null, "RemarkDelivery": "Text value", "RemarkPickup": "Text value", "IsCargo": false, "ReturnDocument": false, "BillingUnit": null, "ShipmentDocumentData": null, "ShipmentDocumentExtension": null, "ApiKey": "00000000-0000-0000-0000-000000000000" }
Response to the request above should be something like:
{ "CreatedShipmentId": 153, "Collies": [ { "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Delivery ref1", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value", "ColliDocumentExtension": null, "MultifunctionalBarcode": "Text value", "Services": "Text value" } ], "PickupStart": "2014-09-08T12:00:00+02:00", "PickupEnd": "2014-09-08T118:00:00+02:00", "DeliveryStart": "2014-09-09T12:00:00+02:00", "DeliveryEnd": "2014-09-09T18:00:00+02:00", "PriceInformation": { "Net": 100.0, "Gross": 150.0 }, "ValidPickupIntervals": [ { "From": "2014-09-08T12:00:00+02:00", "To": "2014-09-08T18:00:00+02:00" } ], "ValidDeliveryIntervals": [ { "From": "2014-09-09T12:00:00+02:00", "To": "2014-09-09T18:00:00+02:00" } ], "AdditionalInfo": { "DeliveryBefore0830": false, "DeliveryBefore1030": false, "SaturdayDelivery": false }, "ExpectedSenderAddress": { "PostalCode": "Text value", "City": "Text value", "Street": "Text value" }, "DeliveryCenterAbbreviation": "ZA", "TourNumber": 12, "ReturnShipment": { "CreatedShipmentId": 17688, "Collies": [ { "ColliId": 111226, "Status": 3, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Return ref1", "Ref2": "Text value", "Ref3": "Text value", "RefInt": null, "BarcodeCustomer": null, "ColliDocumentExtension": null, "MultifunctionalBarcode": "Text value", "Services": "Text value" } ] }, "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
Getting shipping labels in separate response fields
If API administrator allows it for certain API key, it is possible to get shipping labels and colli/shipment documents in separate response fields when using GetShippingLabelsForSingleShipment, GetShippingLabelsForAllShipments, GetShippingLabelsForShipments. In that case, response to these API calls looks something like following (note Labels field):
Response
{ "ShipmentIds": [ 17689 ], "LabelInfo": { "PageWidth": 10.0, "PageHeight": 14.8, "LabelWidth": 10.0, "LabelHeight": 14.8, "TopMargin": 0.0, "SideMargin": 0.15, "HorizontalPitch": 10.5, "VerticalPitch": 14.8, "MaxHorizontalLabels": 1, "MaxVerticalLabels": 1 }, "NumberOfLabels": 2, "PdfDocument": null, "InvalidShipmentIds": [], "Labels": [ { "ShipmentId": 17689, "ShipmentPdfDocuments": [BYTE ARRAY DATA (omitted because it's not human-readable)], "ColliLabelsAndDocuments": [ { "ColliId": 111227, "CargoNetColliId": "64021637", "LabelPdfDocument": [BYTE ARRAY DATA (omitted because it's not human-readable)], "ColliPdfDocument": [BYTE ARRAY DATA (omitted because it's not human-readable)] }, { "ColliId": 111228, "CargoNetColliId": "64021638", "LabelPdfDocument": [BYTE ARRAY DATA (omitted because it's not human-readable)], "ColliPdfDocument": [BYTE ARRAY DATA (omitted because it's not human-readable)] } ] } ], "IsValid": true, "ModelErrors": null, "ValidationErrors": null }
Shipping API callback example
The Shipping API callback will look exactly like a response to the GetShipmentStatusByShipmentId method.
{ "Shipment": { "ShipmentId": 1, "Status": 1, "DateCreated": "2014-09-08T14:41:51.9190163+02:00", "StatusDate": "2014-09-08T14:41:51.9190163+02:00", "ReturnDocument": false, "CargoNetShipmentId": "Text value", "TrackingCode": "OEX123456ABCDEF", "PriceInformation": { "Net": 0.0, "Gross": 0.0 }, "Collies": [ { "ColliId": 1, "Status": 1, "CargoNetColliId": "Text value", "BarCode": "Text value", "Ref1": "Text value", "Ref2": "Text value", "Ref3": "Text value", "RefInt": "Text value", "MultifunctionalBarcode": "Text value", "Services": "Text value" } ], "Traces": [ { "ParcelNumber": "Text value", "ScanDate": "2014-09-08T14:41:51.9220166+02:00", "ScanTime": "2014-09-08T14:41:51.9220166+02:00", "StatusNumber": 1, "StatusDescription": "Text value", "CenterName": "Text value", "Remark": "Text value" } ], "DeliveryCenterAbbreviation": "ZA", "TourNumber": 12 }, "IsValid": false, "ModelErrors": null, "ValidationErrors": null }