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

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

Retrieve the list of countries available for pickup and delivery

Request

This endpoint returns a comprehensive list of countries where Eurosender provides pickup and/or delivery services. It’s an essential step in building a user-friendly interface that only allows valid shipping destinations. The response includes country codes and names, which can be used to populate dropdowns, validate user input, or configure business rules dynamically. Whether you're building quoting, checkout, or address input workflows, integrating this endpoint ensures accuracy and helps prevent failed orders due to unsupported locations.

Security
x_api_key
curl -i -X GET \
  https://sandbox-api.eurosender.com/v1/countries \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

CountryResponse collection

Bodyapplication/jsonArray [
idany
Example: 123
codeany
Example: "LU"
nameany
Example: "Luxembourg"
requiresRegionany
Example: false
requiresCityany
Example: false
activeany
Example: true
isEuany

Flag if country is a member of European Union

Example: true
countryCustomFieldsobject(CountryCustomFieldsResponse)
]
Response
application/json
[ { "id": 123, "code": "LU", "name": "Luxembourg", "requiresRegion": false, "requiresCity": false, "active": true, "isEu": true, "countryCustomFields": {} } ]

Retrieve supported cities within a specific country for pickup and delivery

Request

Use this endpoint to fetch all cities supported by Eurosender for pickup and delivery within a specific country. By providing a valid ISO 3166-1 alpha-2 country code, you’ll receive a filtered list of serviceable cities — ideal for building accurate location selectors and reducing delivery issues. For certain countries, such as Ireland or Romania, specifying the exact city name or city ID is mandatory when placing an order. Whether this requirement applies can be verified via the /v1/countries/{countryCode}/regions endpoint. This allows your system to properly link cities to their administrative regions when needed. This endpoint ensures a seamless shipping experience by enforcing country-specific data requirements, reducing errors during order creation, and improving address validation logic across your integration.

Security
x_api_key
Path
countryCodestringrequired

Two letter country code

Example: IE
curl -i -X GET \
  https://sandbox-api.eurosender.com/v1/countries/IE/cities \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

CityRequest collection

Bodyapplication/jsonArray [
idany

cityId to be used in other endpoints

Example: 1341
nameany
Example: "Dublin"
regionIdany

Region from /v1/countries/{countryCode}/regions endpoint, to match city to proper region

Example: 6
]
Response
application/json
[ { "id": 1341, "name": "Dublin", "regionId": 6 } ]

Retrieve a list of regions within a specific country

Request

The Regions Endpoint delivers detailed information about all official regions within a selected country, identified by its two-letter ISO country code. These regions represent subdivisions such as states, provinces, or counties, which are critical for accurate shipment addressing and logistics planning. Many countries require regional information to ensure orders are processed correctly, and this endpoint supports that by providing up-to-date, validated region identifiers (regionId) and names. The regions retrieved here are linked to their respective cities, enabling seamless address validation and hierarchy navigation. By leveraging this data, your system can dynamically validate and enrich shipping addresses, minimize errors, and comply with country-specific shipping requirements—ultimately ensuring a smoother, faster, and more reliable delivery process for your customers.

Security
x_api_key
Path
countryCodestringrequired

Two letter country code

Example: IE
curl -i -X GET \
  https://sandbox-api.eurosender.com/v1/countries/IE/regions \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

RegionRequest collection

Bodyapplication/jsonArray [
idany

regionId to be used in other endpoints

Example: 6
nameany
Example: "County Dublin"
codeany

regionCode to be used in other endpoints. This field is available only for some countries (Italy, USA, Canada). Example value: AC for region Ancona in Italy

Example: null
]
Response
application/json
[ { "id": 6, "name": "County Dublin", "code": null } ]

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 } ] }