Shipping API
Integration made easy

Here you can find complete technical reference needed to consume Shipping API with the list of available methods, their descriptions, method invoke examples, and example request/response JSON objects used in communication.

Contents

    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.

    Shipping api process overview

    Important notes

    1. All Byte[] fields are transported over the network as Base64 strings and need to be decoded client-side. Base64 Wikipedia article.
    2. 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: GET

    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:

    1. API consumer creates shipment defining which collies are to be delivered and which collies are to be picked up.
    2. 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).
    3. 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:

    1. API consumer wants something delivered and something returned.
    2. 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:

    1. 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
    2. 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:

    1. API consumer -> consignee,
    2. 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
    }
    
    The final recipient of a financial instrument co-financed by the European Fund for the Regional Development within the Operational Program "Competitiveness and Cohesion".
    Cookie settings