Eurosender API (2025-03.1)

Take the complexity out of logistics with Eurosender’s multi-carrier shipping API. Connect to a global network of trusted carriers and access over 150 million pre-negotiated rates—all through one simple integration.

Automate your shipping workflows, reduce costs, and scale your operations as your business grows. From real-time tracking to faster deliveries and better customer experience, the API gives you the tools to move smarter and faster—without the overhead.

Download OpenAPI description
Languages
Servers
Sandbox

https://sandbox-api.eurosender.com/

Production

https://api.eurosender.com/

Quote Endpoints

The Quote endpoint allows you to obtain accurate and up-to-date pricing for your desired shipment based on package details, service types, and other criteria. By providing comprehensive shipment information, you can receive tailored quotes reflecting available shipping options, estimated costs, and any applicable fees. This powerful feature enables businesses to compare different shipping methods, optimize cost-efficiency, and provide transparent pricing to end users — all through seamless API integration. Whether you’re shipping parcels, pallets, or freight, the Quote endpoint delivers fast, reliable data essential for making informed logistics decisions.

Key benefits include:

  • Real-time pricing based on shipment details and service types
  • Access to multiple shipping options with clear cost breakdowns
  • Support for additional services and date-based price adjustments
  • Foundation for subsequent order creation and validation workflows

Use this endpoint to streamline your shipping process and empower your customers with immediate, transparent shipping quotes.

Operations

Order Endpoints

The Order section of the Eurosender API offers a full set of endpoints to manage every step of the shipping lifecycle. From orders creation and rder validating orders, scheduling pickups, accessing shipping documents, and tracking deliveries—this section provides the tools needed to integrate smooth, automated logistics operations into your system.

Key capabilities include:

  • Order Creation: Easily create orders and generate shipment labels
  • Order Validation: Validate your order data before submission to prevent errors
  • Pickup Scheduling: Schedule and manage pickup timeframes for your shipments
  • Order Cancellation: Cancel orders when allowed, before they enter shipping
  • Order Tracking: Monitor shipment status and delivery progress in real time
  • Document Retrieval: Access essential documents such as invoices, labels, and tracking codes
  • Proforma Invoice Management: Create and upload proforma invoices for customs clearance
  • Order Details Retrieval: Retrieve comprehensive status and information for a specific order using its order code.

By leveraging these endpoints, businesses can automate workflows, reduce manual errors, and ensure efficient, reliable delivery service for their customers.

Operations

Create Order

Request

The Order Creation Endpoint is the central gateway for booking shipments via the Eurosender API. By submitting a structured payload, your system can initiate a shipment request tailored to your logistics needs—whether it involves parcel, pallet, or full truckload transport. This endpoint accepts comprehensive order data, including sender and recipient details, parcel dimensions, service type (serviceType), and any value-added services (e.g., insurance, tail-lift, customs documents). It supports a wide range of shipping scenarios, from standard deliveries to complex freight movements across Europe and globally.

Key features include:

  • Full support for various service types (Standard, Priority, Express, Freight, FTL, LTL, Van)
  • Optional order validation prior to submission using the /v1/orders/validate_creation endpoint
  • Automatic error handling and input validation to prevent misconfigurations
  • Integration-ready format to fit seamlessly into your logistics workflows

Once an order is successfully created, the response includes a unique orderId, tracking link, and current status—enabling real-time shipment tracking and operational visibility.

Security
x_api_key
Bodyapplication/jsonrequired

The new OrderRequest resource

shipmentobject(ShipmentRequest)required
shipment.​pickupAddressobject(ShipmentAddressRequest)required
shipment.​pickupAddress.​countryanyrequired

Country code in ISO 3166-1 alpha-2

Example: "LU"
shipment.​pickupAddress.​zipany

ZIP code

Example: "1911"
shipment.​pickupAddress.​cityany

City name, belonging to ZIP code. For cases where providing exact city name is mandatory (like Ireland or Romania), it can be retrieved from endpoint /v1/countries/{countryCode}/cities. This condition depends on Country, flag for this is available at endpoint /v1/countries. If cityId is provided, this field can be empty.

Example: "Luxembourg"
shipment.​pickupAddress.​cityIdany

ID of the City for cases where providing exact city is mandatory (like Ireland or Romania), it can be retrieved from endpoint /v1/countries/{countryCode}/cities. This condition depends on Country, flag for this is available at endpoint /v1/countries. If exact city name is provided in field city, this field can be empty. Example value: 1341 for Dublin in region County Dublin in Ireland

Default null
shipment.​pickupAddress.​streetstring or null

Street name with house number

Example: "9 Rue du Laboratoire"
shipment.​pickupAddress.​regionany

Region name. For cases where providing region (name, code or ID) is mandatory, like Ireland, Romania, Italy, USA, Canada, it can be retrieved from endpoint /v1/countries/{countryCode}/regions. This condition depends on Country, flag for this is available at endpoint /v1/countries. If regionCode or regionId is provided, this field can be empty. Example value: County Dublin in Ireland

Default null
shipment.​pickupAddress.​regionCodeany

Region code. For cases where providing region (name, code or ID) is mandatory, like Ireland, Romania, Italy, USA, Canada, it can be retrieved from endpoint /v1/countries/{countryCode}/regions. This condition depends on Country, flag for this is available at endpoint /v1/countries. If region or regionId is provided, this field can be empty. This field is supported only for some countries (Italy, USA, Canada). Example value: AC for region Ancona in Italy

Default null
shipment.​pickupAddress.​regionIdany

Region ID. For cases where providing region (name, code or ID) is mandatory, like Ireland, Romania, Italy, USA, Canada, it can be retrieved from endpoint /v1/countries/{countryCode}/regions. This condition depends on Country, flag for this is available at endpoint /v1/countries. If region or regionCode is provided, this field can be empty. Example value: 6 for region County Dublin in Ireland

Default null
shipment.​pickupAddress.​customFieldsany

Additional address fields that can be provided for some countries, like doorbell for Germany. Availability of the fields and flag if optional or required can be retrieved from endpoint /v1/countries.

Default []
shipment.​pickupAddress.​pudoPointCodestring or null

For internal use only

Example: null
shipment.​pickupAddress.​customerPudoNumberstring or null

For internal use only

Example: null
shipment.​pickupAddress.​additionalInfoanyDeprecated

Not used.

Default null
shipment.​pickupAddress.​timeZoneNameanyDeprecated

Not used.

Default null
shipment.​deliveryAddressobject(ShipmentAddressRequest)required
shipment.​deliveryAddress.​countryanyrequired

Country code in ISO 3166-1 alpha-2

Example: "LU"
shipment.​deliveryAddress.​zipany

ZIP code

Example: "1911"
shipment.​deliveryAddress.​cityany

City name, belonging to ZIP code. For cases where providing exact city name is mandatory (like Ireland or Romania), it can be retrieved from endpoint /v1/countries/{countryCode}/cities. This condition depends on Country, flag for this is available at endpoint /v1/countries. If cityId is provided, this field can be empty.

Example: "Luxembourg"
shipment.​deliveryAddress.​cityIdany

ID of the City for cases where providing exact city is mandatory (like Ireland or Romania), it can be retrieved from endpoint /v1/countries/{countryCode}/cities. This condition depends on Country, flag for this is available at endpoint /v1/countries. If exact city name is provided in field city, this field can be empty. Example value: 1341 for Dublin in region County Dublin in Ireland

Default null
shipment.​deliveryAddress.​streetstring or null

Street name with house number

Example: "9 Rue du Laboratoire"
shipment.​deliveryAddress.​regionany

Region name. For cases where providing region (name, code or ID) is mandatory, like Ireland, Romania, Italy, USA, Canada, it can be retrieved from endpoint /v1/countries/{countryCode}/regions. This condition depends on Country, flag for this is available at endpoint /v1/countries. If regionCode or regionId is provided, this field can be empty. Example value: County Dublin in Ireland

Default null
shipment.​deliveryAddress.​regionCodeany

Region code. For cases where providing region (name, code or ID) is mandatory, like Ireland, Romania, Italy, USA, Canada, it can be retrieved from endpoint /v1/countries/{countryCode}/regions. This condition depends on Country, flag for this is available at endpoint /v1/countries. If region or regionId is provided, this field can be empty. This field is supported only for some countries (Italy, USA, Canada). Example value: AC for region Ancona in Italy

Default null
shipment.​deliveryAddress.​regionIdany

Region ID. For cases where providing region (name, code or ID) is mandatory, like Ireland, Romania, Italy, USA, Canada, it can be retrieved from endpoint /v1/countries/{countryCode}/regions. This condition depends on Country, flag for this is available at endpoint /v1/countries. If region or regionCode is provided, this field can be empty. Example value: 6 for region County Dublin in Ireland

Default null
shipment.​deliveryAddress.​customFieldsany

Additional address fields that can be provided for some countries, like doorbell for Germany. Availability of the fields and flag if optional or required can be retrieved from endpoint /v1/countries.

Default []
shipment.​deliveryAddress.​pudoPointCodestring or null

For internal use only

Example: null
shipment.​deliveryAddress.​customerPudoNumberstring or null

For internal use only

Example: null
shipment.​deliveryAddress.​additionalInfoanyDeprecated

Not used.

Default null
shipment.​deliveryAddress.​timeZoneNameanyDeprecated

Not used.

Default null
shipment.​pickupDatestring(date-time)

Pickup date, can be empty to retrieve first possible date (minPickupDate). Time part is ignored. Value must be in RFC3339 format (for example 2023-04-04T00:00:00Z)

Default "2023-04-04T00:00:00Z"
shipment.​pickupTypestring or null

Specifies if new pickup needs to be scheduled (new_pickup_request), or there is already pre-arranged regular pickup scheduled (scheduled_pickup), or there is no need for pickup because the shipment will be dropped off at a courier location (drop_off).
Not supported (ignored) on some couriers.

Default "new_pickup_request"
Enum"new_pickup_request""scheduled_pickup""drop_off"null
Example: "new_pickup_request"
shipment.​independentPickupboolean

Pickup request with desires pickup time frame will be called independently (in 30 minutes) by using Pickup endpoint.

Default false
Example: false
shipment.​pickupContactShipmentContactRequest (object) or null

Pickup contact, not needed for Quote, but required for Order.

Any of:

Pickup contact, not needed for Quote, but required for Order.

shipment.​deliveryContactShipmentContactRequest (object) or null

Delivery contact, not needed for Quote, but required for Order.

Any of:

Delivery contact, not needed for Quote, but required for Order.

shipment.​addOnsany

Extra addons that can be selected/activated if supported (returned by Quote)

Default []
Enum"flexibleChanges""early_delivery"
parcelsobject(ParcelsRequest)required
parcels.​envelopesany

envelopes is named 'Documents' on website. More info

Default []
parcels.​packagesArray of objects(PackageRequest)
parcels.​palletsArray of objects(PalletRequest)
parcels.​vansArray of objects(VanRequest)

Can be used only with serviceType van

parcels.​ltlsArray of objects(LtlRequest)<= 1 items

LTL: Less than truckload
Only one allowed per shipment, can't be mixed with FTL
Can be used only with serviceType ftl

parcels.​ftlsArray of objects(FtlRequest)

FTL: Full truckload
Can't be mixed with LTL
Can be used only with serviceType ftl

serviceTypestringrequired

Service type to use. More on service types

Enum"selection""flexi""regular_plus""express""freight""freight_priority""freight_priority_express""van""ftl"
Example: "regular_plus"
serviceSubtypestring or null

For internal use only.

Default null
Enum"door_to_door""door_to_shop""shop_to_door""shop_to_shop"
Example: "door_to_door"
courierTagstring or null

For internal use only.

Default null
Example: null
courierIdinteger or null

Explicit courier to use, for internal use only.

Default null
Example: null
paymentMethodstringrequired

Payment method, where credit is for User credits (pre-paid, Wallet) and deferred must be additionally approved to be enabled for use. Other payment methods are not supported. More info on user credits. More info on deferred payment.

Default "deferred"
Enum"credit""deferred"
Example: "deferred"
currencyCodestring

Only EUR supported.

Default "EUR"
Example: "EUR"
insuranceIdinteger or null

Optional additional insurance ID, one of the values provided in Quotes responses under options.serviceTypes.insurances.

Example: null
orderContactobject(OrderContactRequest)required
orderContact.​emailstring or null(email)

Email address for transactional emails like order status changes,... If not provided, email address from User profile is used.

Example: null
orderContact.​nameanyDeprecated

Not used.

Default null
orderContact.​phoneanyDeprecated

Not used.

Default null
orderContact.​contactMethodanyDeprecated

Not used.

Default null
orderContact.​contactCustomerTypeanyDeprecated

Not used.

Default null
commentstring or null
Example: null
customerInternalReferencestring or null

Reference 1 for the order that can be exported in Invoice specification.
This reference will be shown on label for some couriers.

Example: null
customerBillingReferencestring or null

Reference 2 for the order that can be exported in Invoice specification

Example: null
labelFormatstringrequired

Format in which labels will be created. Defaults to pdf.

Default "pdf"
Enum"pdf""zpl"
Example: "pdf"
curl -i -X POST \
  https://sandbox-api.eurosender.com/v1/orders \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -d '{
    "shipment": {
      "pickupAddress": {
        "country": "LU",
        "zip": "1911",
        "city": "Luxembourg",
        "cityId": null,
        "street": "9 Rue du Laboratoire",
        "additionalInfo": null,
        "region": null,
        "regionCode": null,
        "regionId": null,
        "timeZoneName": null,
        "customFields": [],
        "pudoPointCode": null,
        "customerPudoNumber": null
      },
      "deliveryAddress": {
        "country": "LU",
        "zip": "1911",
        "city": "Luxembourg",
        "cityId": null,
        "street": "9 Rue du Laboratoire",
        "additionalInfo": null,
        "region": null,
        "regionCode": null,
        "regionId": null,
        "timeZoneName": null,
        "customFields": [],
        "pudoPointCode": null,
        "customerPudoNumber": null
      },
      "pickupDate": "2023-04-04T00:00:00Z",
      "pickupType": "new_pickup_request",
      "independentPickup": false,
      "pickupContact": {
        "name": "Eurosender SARL",
        "email": "name@example.com",
        "phone": "+442031292884"
      },
      "deliveryContact": {
        "name": "Eurosender SARL",
        "email": "name@example.com",
        "phone": "+442031292884"
      },
      "addOns": "flexibleChanges"
    },
    "parcels": {
      "envelopes": [],
      "packages": [
        {
          "parcelId": "A00001",
          "quantity": 1,
          "width": 14,
          "height": 14,
          "length": 15,
          "weight": 2,
          "content": "books",
          "value": 150
        }
      ],
      "pallets": [
        {
          "parcelId": "B00001",
          "quantity": 1,
          "width": 80,
          "height": 100,
          "length": 120,
          "weight": 50,
          "content": "tires",
          "value": 500,
          "isStackable": true
        }
      ],
      "vans": [
        {
          "parcelId": "A00001",
          "vanType": "small_van",
          "optionalServices": [
            "help_loading"
          ]
        }
      ],
      "ltls": [
        {
          "parcelId": "T00001",
          "euroPalletQuantity": 12,
          "loadingMeters": null,
          "weight": 3600,
          "notes": "12x 120x80x220cm, 300kg/pallet, total weight: 3.600kg, not-stackable, boxes with a spare parts packed on pallets"
        }
      ],
      "ftls": [
        {
          "parcelId": "T00001"
        }
      ]
    },
    "serviceType": "regular_plus",
    "serviceSubtype": "door_to_door",
    "courierTag": null,
    "courierId": null,
    "paymentMethod": "deferred",
    "currencyCode": "EUR",
    "insuranceId": null,
    "orderContact": {
      "email": null,
      "name": null,
      "phone": null,
      "contactMethod": null,
      "contactCustomerType": null
    },
    "comment": null,
    "customerInternalReference": null,
    "customerBillingReference": null,
    "labelFormat": "pdf"
  }'

Responses

OrderRequest resource created

Bodyapplication/json
orderCodestring
statusany

Values: Pending, Order Received, Deferred Payment, Confirmed, Tracking, Canceled, Label Error, Awaiting Payment, Awaiting customs documentation, Awaiting additional payment

serviceTypestring
languagestring
emailstring
paymentMethodstring
currencyCodestring
vatRatestring
parcelsobject(ParcelsResponse)
courierobject(OrderCourierResponse)
shipmentobject(ShipmentResponse)
estimatedDeliveryTimestring
priceobject(PriceResponse)
discountPaymentDiscountResponse (object) or null
Any of:
couponCouponResponse (object) or null
Any of:
insuranceOrderInsuranceResponse (object) or null
Any of:
isCallRequiredboolean
isLabelRequiredboolean
labelLinkstring or null
Example: null
labelFormatstring
commentstring or null
Example: null
customerInternalReferencestring or null
Example: null
customerBillingReferencestring or null
Example: null
documentsArray of objects(OrderDocumentResponse)
createdstring(date-time)
Response
application/json
{ "orderCode": "string", "status": null, "serviceType": "string", "language": "string", "email": "string", "paymentMethod": "string", "currencyCode": "string", "vatRate": "string", "parcels": { "envelopes": [], "packages": [], "pallets": [], "vans": [], "ltls": [], "ftls": [], "nonStandard": [] }, "courier": { "id": 0, "shortName": "string", "countryCode": null, "email": null, "phone": null }, "shipment": { "pickupAddress": {}, "pickupContact": {}, "deliveryAddress": {}, "deliveryContact": {}, "pickupDate": "2019-08-24T14:15:22Z", "pickupType": "new_pickup_request", "addOns": [], "routeDistance": 0 }, "estimatedDeliveryTime": "string", "price": { "original": {}, "converted": {} }, "discount": { "rate": "string", "discount": {} }, "coupon": { "couponCode": "string", "discount": {} }, "insurance": { "id": 0, "text": "string", "price": {} }, "isCallRequired": true, "isLabelRequired": true, "labelLink": null, "labelFormat": "string", "comment": null, "customerInternalReference": null, "customerBillingReference": null, "documents": [ {} ], "created": "2019-08-24T14:15:22Z" }

Validate Order Creation

Request

The Order Validation Endpoint allows you to verify the structure and content of your order payload before finalizing shipment creation. This is especially useful during integration or when dynamically constructing orders based on user input, as it helps catch errors early and ensures your request complies with Eurosender’s API rules.

Use this endpoint to:

  • Confirm that all required fields (e.g., addresses, parcels, service type) are correctly provided
  • Detect any validation issues without creating an actual order
  • Ensure compliance with service-specific rules (e.g., pallet dimensions for freight, required customs data)
  • Both the validation and creation endpoints /v1/orders and /v1/orders/validate_creation use the same payload structure, making it easy to switch between them during testing and production.

    This endpoint is optional but highly recommended for improving API reliability and minimizing shipment errors, especially in automated or high-volume environments.
Security
x_api_key
Bodyapplication/jsonrequired

The new OrderRequest resource

shipmentobject(ShipmentRequest)required
shipment.​pickupAddressobject(ShipmentAddressRequest)required
shipment.​pickupAddress.​countryanyrequired

Country code in ISO 3166-1 alpha-2

Example: "LU"
shipment.​pickupAddress.​zipany

ZIP code

Example: "1911"
shipment.​pickupAddress.​cityany

City name, belonging to ZIP code. For cases where providing exact city name is mandatory (like Ireland or Romania), it can be retrieved from endpoint /v1/countries/{countryCode}/cities. This condition depends on Country, flag for this is available at endpoint /v1/countries. If cityId is provided, this field can be empty.

Example: "Luxembourg"
shipment.​pickupAddress.​cityIdany

ID of the City for cases where providing exact city is mandatory (like Ireland or Romania), it can be retrieved from endpoint /v1/countries/{countryCode}/cities. This condition depends on Country, flag for this is available at endpoint /v1/countries. If exact city name is provided in field city, this field can be empty. Example value: 1341 for Dublin in region County Dublin in Ireland

Default null
shipment.​pickupAddress.​streetstring or null

Street name with house number

Example: "9 Rue du Laboratoire"
shipment.​pickupAddress.​regionany

Region name. For cases where providing region (name, code or ID) is mandatory, like Ireland, Romania, Italy, USA, Canada, it can be retrieved from endpoint /v1/countries/{countryCode}/regions. This condition depends on Country, flag for this is available at endpoint /v1/countries. If regionCode or regionId is provided, this field can be empty. Example value: County Dublin in Ireland

Default null
shipment.​pickupAddress.​regionCodeany

Region code. For cases where providing region (name, code or ID) is mandatory, like Ireland, Romania, Italy, USA, Canada, it can be retrieved from endpoint /v1/countries/{countryCode}/regions. This condition depends on Country, flag for this is available at endpoint /v1/countries. If region or regionId is provided, this field can be empty. This field is supported only for some countries (Italy, USA, Canada). Example value: AC for region Ancona in Italy

Default null
shipment.​pickupAddress.​regionIdany

Region ID. For cases where providing region (name, code or ID) is mandatory, like Ireland, Romania, Italy, USA, Canada, it can be retrieved from endpoint /v1/countries/{countryCode}/regions. This condition depends on Country, flag for this is available at endpoint /v1/countries. If region or regionCode is provided, this field can be empty. Example value: 6 for region County Dublin in Ireland

Default null
shipment.​pickupAddress.​customFieldsany

Additional address fields that can be provided for some countries, like doorbell for Germany. Availability of the fields and flag if optional or required can be retrieved from endpoint /v1/countries.

Default []
shipment.​pickupAddress.​pudoPointCodestring or null

For internal use only

Example: null
shipment.​pickupAddress.​customerPudoNumberstring or null

For internal use only

Example: null
shipment.​pickupAddress.​additionalInfoanyDeprecated

Not used.

Default null
shipment.​pickupAddress.​timeZoneNameanyDeprecated

Not used.

Default null
shipment.​deliveryAddressobject(ShipmentAddressRequest)required
shipment.​deliveryAddress.​countryanyrequired

Country code in ISO 3166-1 alpha-2

Example: "LU"
shipment.​deliveryAddress.​zipany

ZIP code

Example: "1911"
shipment.​deliveryAddress.​cityany

City name, belonging to ZIP code. For cases where providing exact city name is mandatory (like Ireland or Romania), it can be retrieved from endpoint /v1/countries/{countryCode}/cities. This condition depends on Country, flag for this is available at endpoint /v1/countries. If cityId is provided, this field can be empty.

Example: "Luxembourg"
shipment.​deliveryAddress.​cityIdany

ID of the City for cases where providing exact city is mandatory (like Ireland or Romania), it can be retrieved from endpoint /v1/countries/{countryCode}/cities. This condition depends on Country, flag for this is available at endpoint /v1/countries. If exact city name is provided in field city, this field can be empty. Example value: 1341 for Dublin in region County Dublin in Ireland

Default null
shipment.​deliveryAddress.​streetstring or null

Street name with house number

Example: "9 Rue du Laboratoire"
shipment.​deliveryAddress.​regionany

Region name. For cases where providing region (name, code or ID) is mandatory, like Ireland, Romania, Italy, USA, Canada, it can be retrieved from endpoint /v1/countries/{countryCode}/regions. This condition depends on Country, flag for this is available at endpoint /v1/countries. If regionCode or regionId is provided, this field can be empty. Example value: County Dublin in Ireland

Default null
shipment.​deliveryAddress.​regionCodeany

Region code. For cases where providing region (name, code or ID) is mandatory, like Ireland, Romania, Italy, USA, Canada, it can be retrieved from endpoint /v1/countries/{countryCode}/regions. This condition depends on Country, flag for this is available at endpoint /v1/countries. If region or regionId is provided, this field can be empty. This field is supported only for some countries (Italy, USA, Canada). Example value: AC for region Ancona in Italy

Default null
shipment.​deliveryAddress.​regionIdany

Region ID. For cases where providing region (name, code or ID) is mandatory, like Ireland, Romania, Italy, USA, Canada, it can be retrieved from endpoint /v1/countries/{countryCode}/regions. This condition depends on Country, flag for this is available at endpoint /v1/countries. If region or regionCode is provided, this field can be empty. Example value: 6 for region County Dublin in Ireland

Default null
shipment.​deliveryAddress.​customFieldsany

Additional address fields that can be provided for some countries, like doorbell for Germany. Availability of the fields and flag if optional or required can be retrieved from endpoint /v1/countries.

Default []
shipment.​deliveryAddress.​pudoPointCodestring or null

For internal use only

Example: null
shipment.​deliveryAddress.​customerPudoNumberstring or null

For internal use only

Example: null
shipment.​deliveryAddress.​additionalInfoanyDeprecated

Not used.

Default null
shipment.​deliveryAddress.​timeZoneNameanyDeprecated

Not used.

Default null
shipment.​pickupDatestring(date-time)

Pickup date, can be empty to retrieve first possible date (minPickupDate). Time part is ignored. Value must be in RFC3339 format (for example 2023-04-04T00:00:00Z)

Default "2023-04-04T00:00:00Z"
shipment.​pickupTypestring or null

Specifies if new pickup needs to be scheduled (new_pickup_request), or there is already pre-arranged regular pickup scheduled (scheduled_pickup), or there is no need for pickup because the shipment will be dropped off at a courier location (drop_off).
Not supported (ignored) on some couriers.

Default "new_pickup_request"
Enum"new_pickup_request""scheduled_pickup""drop_off"null
Example: "new_pickup_request"
shipment.​independentPickupboolean

Pickup request with desires pickup time frame will be called independently (in 30 minutes) by using Pickup endpoint.

Default false
Example: false
shipment.​pickupContactShipmentContactRequest (object) or null

Pickup contact, not needed for Quote, but required for Order.

Any of:

Pickup contact, not needed for Quote, but required for Order.

shipment.​deliveryContactShipmentContactRequest (object) or null

Delivery contact, not needed for Quote, but required for Order.

Any of:

Delivery contact, not needed for Quote, but required for Order.

shipment.​addOnsany

Extra addons that can be selected/activated if supported (returned by Quote)

Default []
Enum"flexibleChanges""early_delivery"
parcelsobject(ParcelsRequest)required
parcels.​envelopesany

envelopes is named 'Documents' on website. More info

Default []
parcels.​packagesArray of objects(PackageRequest)
parcels.​palletsArray of objects(PalletRequest)
parcels.​vansArray of objects(VanRequest)

Can be used only with serviceType van

parcels.​ltlsArray of objects(LtlRequest)<= 1 items

LTL: Less than truckload
Only one allowed per shipment, can't be mixed with FTL
Can be used only with serviceType ftl

parcels.​ftlsArray of objects(FtlRequest)

FTL: Full truckload
Can't be mixed with LTL
Can be used only with serviceType ftl

serviceTypestringrequired

Service type to use. More on service types

Enum"selection""flexi""regular_plus""express""freight""freight_priority""freight_priority_express""van""ftl"
Example: "regular_plus"
serviceSubtypestring or null

For internal use only.

Default null
Enum"door_to_door""door_to_shop""shop_to_door""shop_to_shop"
Example: "door_to_door"
courierTagstring or null

For internal use only.

Default null
Example: null
courierIdinteger or null

Explicit courier to use, for internal use only.

Default null
Example: null
paymentMethodstringrequired

Payment method, where credit is for User credits (pre-paid, Wallet) and deferred must be additionally approved to be enabled for use. Other payment methods are not supported. More info on user credits. More info on deferred payment.

Default "deferred"
Enum"credit""deferred"
Example: "deferred"
currencyCodestring

Only EUR supported.

Default "EUR"
Example: "EUR"
insuranceIdinteger or null

Optional additional insurance ID, one of the values provided in Quotes responses under options.serviceTypes.insurances.

Example: null
orderContactobject(OrderContactRequest)required
orderContact.​emailstring or null(email)

Email address for transactional emails like order status changes,... If not provided, email address from User profile is used.

Example: null
orderContact.​nameanyDeprecated

Not used.

Default null
orderContact.​phoneanyDeprecated

Not used.

Default null
orderContact.​contactMethodanyDeprecated

Not used.

Default null
orderContact.​contactCustomerTypeanyDeprecated

Not used.

Default null
commentstring or null
Example: null
customerInternalReferencestring or null

Reference 1 for the order that can be exported in Invoice specification.
This reference will be shown on label for some couriers.

Example: null
customerBillingReferencestring or null

Reference 2 for the order that can be exported in Invoice specification

Example: null
labelFormatstringrequired

Format in which labels will be created. Defaults to pdf.

Default "pdf"
Enum"pdf""zpl"
Example: "pdf"
curl -i -X POST \
  https://sandbox-api.eurosender.com/v1/orders/validate_creation \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -d '{
    "shipment": {
      "pickupAddress": {
        "country": "LU",
        "zip": "1911",
        "city": "Luxembourg",
        "cityId": null,
        "street": "9 Rue du Laboratoire",
        "additionalInfo": null,
        "region": null,
        "regionCode": null,
        "regionId": null,
        "timeZoneName": null,
        "customFields": [],
        "pudoPointCode": null,
        "customerPudoNumber": null
      },
      "deliveryAddress": {
        "country": "LU",
        "zip": "1911",
        "city": "Luxembourg",
        "cityId": null,
        "street": "9 Rue du Laboratoire",
        "additionalInfo": null,
        "region": null,
        "regionCode": null,
        "regionId": null,
        "timeZoneName": null,
        "customFields": [],
        "pudoPointCode": null,
        "customerPudoNumber": null
      },
      "pickupDate": "2023-04-04T00:00:00Z",
      "pickupType": "new_pickup_request",
      "independentPickup": false,
      "pickupContact": {
        "name": "Eurosender SARL",
        "email": "name@example.com",
        "phone": "+442031292884"
      },
      "deliveryContact": {
        "name": "Eurosender SARL",
        "email": "name@example.com",
        "phone": "+442031292884"
      },
      "addOns": "flexibleChanges"
    },
    "parcels": {
      "envelopes": [],
      "packages": [
        {
          "parcelId": "A00001",
          "quantity": 1,
          "width": 14,
          "height": 14,
          "length": 15,
          "weight": 2,
          "content": "books",
          "value": 150
        }
      ],
      "pallets": [
        {
          "parcelId": "B00001",
          "quantity": 1,
          "width": 80,
          "height": 100,
          "length": 120,
          "weight": 50,
          "content": "tires",
          "value": 500,
          "isStackable": true
        }
      ],
      "vans": [
        {
          "parcelId": "A00001",
          "vanType": "small_van",
          "optionalServices": [
            "help_loading"
          ]
        }
      ],
      "ltls": [
        {
          "parcelId": "T00001",
          "euroPalletQuantity": 12,
          "loadingMeters": null,
          "weight": 3600,
          "notes": "12x 120x80x220cm, 300kg/pallet, total weight: 3.600kg, not-stackable, boxes with a spare parts packed on pallets"
        }
      ],
      "ftls": [
        {
          "parcelId": "T00001"
        }
      ]
    },
    "serviceType": "regular_plus",
    "serviceSubtype": "door_to_door",
    "courierTag": null,
    "courierId": null,
    "paymentMethod": "deferred",
    "currencyCode": "EUR",
    "insuranceId": null,
    "orderContact": {
      "email": null,
      "name": null,
      "phone": null,
      "contactMethod": null,
      "contactCustomerType": null
    },
    "comment": null,
    "customerInternalReference": null,
    "customerBillingReference": null,
    "labelFormat": "pdf"
  }'

Responses

OrderRequest resource created

Bodyapplication/json
any
Response
application/json
null

Get Order Details

Request

This endpoint allows you to fetch the current details and status of a specific order using its unique order code. It provides comprehensive information about the shipment’s progress within the Eurosender system, enabling you to monitor key milestones such as order confirmation, pickup, transit, and delivery status.

Key Features:

  • Order Status Updates: Get the latest status and processing stage of your shipment to stay informed on its progress.
  • Comprehensive Order Information: Access detailed data including shipment contents, service type, pricing, and delivery details.
  • Customer Support Ready: Equip your support team with up-to-date order information for quick and accurate assistance.

    Please note, this endpoint reflects internal shipment statuses but does not provide granular, real-time tracking updates like GPS location or courier scan events.
Security
x_api_key
Path
orderCodestringrequired

OrderRequest identifier

curl -i -X GET \
  'https://sandbox-api.eurosender.com/v1/orders/{orderCode}' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

OrderRequest resource

Bodyapplication/json
orderCodestring
statusany

Values: Pending, Order Received, Deferred Payment, Confirmed, Tracking, Canceled, Label Error, Awaiting Payment, Awaiting customs documentation, Awaiting additional payment

serviceTypestring
languagestring
emailstring
paymentMethodstring
currencyCodestring
vatRatestring
parcelsobject(ParcelsResponse)
courierobject(OrderCourierResponse)
shipmentobject(ShipmentResponse)
estimatedDeliveryTimestring
priceobject(PriceResponse)
discountPaymentDiscountResponse (object) or null
Any of:
couponCouponResponse (object) or null
Any of:
insuranceOrderInsuranceResponse (object) or null
Any of:
isCallRequiredboolean
isLabelRequiredboolean
labelLinkstring or null
Example: null
labelFormatstring
commentstring or null
Example: null
customerInternalReferencestring or null
Example: null
customerBillingReferencestring or null
Example: null
documentsArray of objects(OrderDocumentResponse)
createdstring(date-time)
Response
application/json
{ "orderCode": "string", "status": null, "serviceType": "string", "language": "string", "email": "string", "paymentMethod": "string", "currencyCode": "string", "vatRate": "string", "parcels": { "envelopes": [], "packages": [], "pallets": [], "vans": [], "ltls": [], "ftls": [], "nonStandard": [] }, "courier": { "id": 0, "shortName": "string", "countryCode": null, "email": null, "phone": null }, "shipment": { "pickupAddress": {}, "pickupContact": {}, "deliveryAddress": {}, "deliveryContact": {}, "pickupDate": "2019-08-24T14:15:22Z", "pickupType": "new_pickup_request", "addOns": [], "routeDistance": 0 }, "estimatedDeliveryTime": "string", "price": { "original": {}, "converted": {} }, "discount": { "rate": "string", "discount": {} }, "coupon": { "couponCode": "string", "discount": {} }, "insurance": { "id": 0, "text": "string", "price": {} }, "isCallRequired": true, "isLabelRequired": true, "labelLink": null, "labelFormat": "string", "comment": null, "customerInternalReference": null, "customerBillingReference": null, "documents": [ {} ], "created": "2019-08-24T14:15:22Z" }

Cancel an existing order by its unique order code

Request

This endpoint allows you to cancel orders that are still eligible for modification. Please note that cancellation may not be possible once the order has entered the shipping process or has been completed. The ability to cancel depends on the current status of the order, so it is recommended to verify the order state before attempting cancellation.

Security
x_api_key
Path
orderCodestringrequired

Order code of existing order

Example: 123456-78
curl -i -X DELETE \
  https://sandbox-api.eurosender.com/v1/orders/123456-78 \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

OrderCancelRequest resource deleted

Retrieve a specific document associated with an order. (Invoice, Labels, Proof Of Delivery, ...)

Request

This endpoint retrieves a document related to a specific order, such as shipping labels or invoices. The document content is returned as base64-encoded data and can be decoded for further use. To receive the document in the correct format, specify the desired content type in the Accept header:

  • Use application/pdf for PDF files
  • Use x-application/zpl for ZPL (Zebra Printer Language) files

Document availability may depend on the current status of the order. Some documents may not be immediately accessible after order creation and may require additional processing time.

Security
x_api_key
Path
orderCodestringrequired

Order code of existing order

Example: 123456-78
idstringrequired

ID of document (as returned by GET /v1/orders{orderCode} endpoint)

Example: invoice_INV-12-345678
curl -i -X GET \
  https://sandbox-api.eurosender.com/v1/orders/123456-78/documents/invoice_INV-12-345678 \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

OrderDocumentRequest resource

Body
any

Retrieve shipping labels for a specific order

Request

This endpoint retrieves the shipping labels associated with a specific order. Labels are available only after the order is confirmed and processed. Each label corresponds to a single parcel in the order—especially important in multi-parcel shipments. To receive labels in a specific format, specify the desired content type in the Accept header:

  • application/pdf for standard printable labels
  • x-application/zpl for Zebra-compatible label printing

Labels become available after the order has been confirmed and processed. Attempting to access labels too early may result in an error or empty response.

Security
x_api_key
Path
orderCodestringrequired

Order code of existing order

Example: 123456-78
curl -i -X GET \
  https://sandbox-api.eurosender.com/v1/orders/123456-78/labels \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

OrderLabelRequest resource

Body
any

Get real-time tracking updates for a specific order

Request

This endpoint retrieves real-time tracking information for a specific order, identified by the orderCode. Once the shipment is accepted and processed by the carrier, tracking data becomes available. The response includes:

  • The current shipment status
  • Key milestones (e.g., picked up, in transit, delivered)
  • A chronological list of tracking events

Tracking information helps users stay informed throughout the delivery lifecycle, improves visibility, and enhances the overall post-order experience. It's especially valuable for integrating automated shipment updates into your system or customer interface.

Security
x_api_key
Path
orderCodestringrequired

Order code of existing order

Example: 123456-78
curl -i -X GET \
  https://sandbox-api.eurosender.com/v1/orders/123456-78/tracking \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

TrackingDetailsResponse resource

Bodyapplication/json
orderCodestring
parcelsArray of objects(TrackingDetailsParcel)
Response
application/json
{ "orderCode": "string", "parcels": [ {} ] }

Proforma Endpoints

The Proforma endpoints enable you to handle all necessary customs documentation required for shipments involving exports or imports. When an order status indicates Awaiting customs documentation, you can use these endpoints to create and upload proforma invoices, ensuring smooth customs clearance and uninterrupted shipment processing.

This functionality is critical for compliance with international shipping regulations and helps avoid delays at customs by providing accurate and timely documentation. You can create proforma documents via the API, submit the required data, and upload PDF invoices encoded in base64 format when necessary.

Key features include:

  • Creating and managing proforma invoices tied to specific orders.
  • Uploading PDF proforma invoices securely through the API.
  • Ensuring compliance with customs requirements to prevent shipment delays.
  • Streamlining the documentation workflow as part of your shipping process automation.

Integrating proforma management into your system guarantees a seamless customs clearance experience, saving time and reducing administrative overhead.

Operations

Country Endpoints

The Country endpoints deliver comprehensive geographic data necessary for precise and compliant shipment handling with the Eurosender API. These endpoints return lists of supported countries, cities, and regions used to define shipment origins and destinations.

Certain countries—such as Ireland, Romania, Italy, the USA, and Canada—require specifying the region (by ID, name, or code) when placing orders. For some of these countries, providing the exact city name or city ID is also mandatory. These requirements are flagged within the country data payload to guide proper order submission.

The response also includes associated region IDs accessible via the /v1/countries/{countryCode}/regions endpoint, allowing for structured regional selection.

Using these endpoints helps ensure your system validates location data accurately, prevents order errors, and complies with local shipping regulations.

Operations

Pickup Endpoints

The Pickup endpoints enable precise management of shipment pickups within the Eurosender API ecosystem. These endpoints support:

  • Initiating pickup requests for orders marked with independentPickup: true, allowing users to control pickup scheduling manually.
  • Retrieving available pickup time slots for orders, contingent on the availability flag options.serviceTypes.pickupTimeFrameSelectionPossible set to true in the quote response.
  • Automatic pickup scheduling if a manual pickup request is not triggered within 30 minutes after order placement, using default pickup time windows.

This functionality ensures your shipments are collected efficiently, providing flexibility to tailor pickup timings while automating routine scheduling. Proper use of these endpoints helps streamline logistics operations and improve delivery reliability.

Operations

Pudo List Endpoint

This endpoint retrieves a list of available Pick-Up Drop-Off (PUDO) points based on the shipment criteria provided. It is designed for service types that involve delivery to or from a designated pick-up location, including:

  • door_to_shop: home collection to a PUDO point
  • shop_to_door: PUDO drop-off to a home delivery
  • shop_to_shop: PUDO drop-off to another PUDO location

Use this endpoint to present users with a selection of eligible PUDO points near the sender's or recipient’s address, enabling flexible and convenient shipping arrangements.

Operations

Webhooks

You can subscribe to a set of events sent by our webhooks. Log in to your Eurosender business account. Navigate to User dashboard → New order → Public API tab. Here you can enable webhooks and see their status. Supported webhooks:

  1. Label(s) ready id: 1 code: order_label_ready Trigger: When label(s) for an order become available (only for orders that require label printing).
  2. Order was submitted to courier id: 2 code: order_submitted_to_courier Trigger: When shipping is booked in the courier's system.
  3. Tracking code(s) ready id: 3 code: order_tracking_ready Trigger: When tracking codes become available for the order, but only if they weren't already available when submitted.
  4. Order was cancelled id: 4 code: order_cancelled Trigger: When (or if) an order is cancelled.
  5. Delivery status id: 5 code: delivery_status_updated Trigger: When a new delivery status event is dispatched.

Webhooks 1–4 send data in the request headers using the pattern below:

Headers:

Webhook-Id: unique_id_for_each_webhook_sent
Webhook-Event: code
Webhook-Signature:...

Body:

{ 'triggerId': id, 'orderCode': '123456-12', 'courierId': 23, # only for webhhok 2 'trackingCodes': [	# only for webhooks 2, 3 { 'orderCode': '123456-12', 'trackingNumber': '11111111', 'trackingUrl': 'https://demo.com/?track=1111111' } ] }

Webhook Delivery status sends data in request header as per pattern below (same payload as GET /v1/orders/{orderCode}/tracking endpoint).

Example:

{ 'notifications': [ { 'trackingDetails': { 'parcels': [ { 'parcelId': 'ebbfce6a-000e-00b4-99aa-004dc9b3ee9a', 'orderCode': '011231-24', 'trackingNumber': '10000010007', 'currentStatus': 'InfoReceived', 'currentSubstatus': 'InfoReceived_001', 'updatedDate': '2024-06-11T09:55:47+02:00', 'expectedDeliveryDate': null, 'pickupDate': '2024-06-10T14:34:31+02:00', 'deliveryDate': null, 'signedBy': null, 'checkpoints': [ { 'eventDate': '2024-06-10T14:34:31+02:00', 'status': 'InTransit', 'substatus': 'InTransit_001', 'location': null, 'countryCode': null, 'message': 'Data sent' }, { 'eventDate': '2024-06-11T11:18:24+02:00', 'status': 'InfoReceived', 'substatus': 'InfoReceived_001', 'location': 'LJUBLJANA', 'countryCode': null, 'message': 'P&S/P&R picked up' } ] } ] }, 'orderCode': '736361-24', 'triggerId': 5 } ] }