Overview
SendCloud is a European multi-carrier shipping platform that aggregates shipping services from PostNL, DHL, DPD, GLS, UPS, FedEx, bpost, Colissimo, and many other carriers under a single API and dashboard. For e-commerce businesses that ship across multiple European carriers — whether for cost optimisation, service level variation, or geographic carrier preference — SendCloud provides unified label generation, track and trace, return management, and delivery option presentation without requiring separate integrations with each individual carrier.
SendCloud's position in the Dutch and broader European e-commerce market makes it a common integration requirement. Dutch e-commerce businesses use SendCloud to access PostNL alongside DHL and DPD for carrier flexibility. Belgian businesses access bpost alongside international carriers. European e-commerce operations managing deliveries across multiple countries use SendCloud's carrier network to route shipments to the optimal carrier for each destination. The unified API model means that adding a new carrier in SendCloud requires no integration changes — the new carrier becomes accessible through the existing API.
The SendCloud API is a REST API with straightforward JSON payloads. The core workflow — create a parcel, retrieve the label, monitor tracking — follows a consistent pattern across all carriers that SendCloud supports. SendCloud also provides a Service Points API for surfacing pickup location options at checkout, a Returns Portal API for managing customer-initiated returns, and a Checkout API that presents delivery options to customers during e-commerce checkout — the building blocks for a complete shipping and delivery experience.
We build SendCloud integrations for Dutch and European e-commerce businesses, fulfilment operations, and multi-channel retailers that need to connect their order management and operational systems to SendCloud's multi-carrier shipping infrastructure.
What SendCloud Integration Covers
Authentication and API access. SendCloud uses a basic authentication model with public and secret key pairs.
API credentials: the SendCloud API public key and secret key generated in the SendCloud account settings under Integrations. The credentials used for HTTP Basic authentication — the public key as the username and the secret key as the password, base64-encoded in the Authorization: Basic {base64(public_key:secret_key)} header. Separate API credentials for each SendCloud account, with the option for different credential sets per integration.
SendCloud account structure: the SendCloud account contains one or more shipping brands (Sender addresses) and one or more carriers configured with the account's contracted rates. The API credentials that provide access to all brands and carriers configured in the account.
Creating parcels and generating labels. The core SendCloud API operation — creating parcel records that generate shipping labels.
Parcel creation: the POST https://panel.sendcloud.sc/api/v2/parcels endpoint for creating a parcel and generating a label simultaneously. The parcel object with name (recipient name), address (street and number), house_number, city, postal_code, country (ISO country code), email, telephone, weight (in grams), shipment (the SendCloud shipment method object), order_number (the integration's order reference), request_label (true to generate the label immediately).
Shipment method: the shipment object with the id of the SendCloud shipping method — the method that determines the carrier, service level, and available delivery options. The GET /api/v2/shipping_methods endpoint for retrieving the available shipping methods for the account — the list of configured carrier services with their IDs, names, carriers, and minimum and maximum weights and dimensions.
Parcel response: the parcel creation response with the parcel id, the tracking number (tracking_number), the tracking URL (tracking_url), the label URL in the label object, and the status of the parcel. The parcel ID used for subsequent label retrieval, status queries, and tracking.
Batch parcel creation: the POST /api/v2/parcels endpoint with an array of parcel objects in the request body for creating multiple parcels simultaneously — the batch operation that processes many orders in a single API call.
Label retrieval and printing. Accessing the generated labels for printing.
Label URL: the label.label_printer URL in the parcel creation response for the A6 label format suitable for label printers, and the label.normal_printer URL for A4 format labels for desktop printers. The URL that the integration fetches to download the label PDF.
Bulk label PDF: the GET /api/v2/labels endpoint with the parcels query parameter containing comma-separated parcel IDs for downloading multiple labels combined in a single PDF — the bulk label download for printing an entire batch at once.
Label caching: storing the label URL or the label PDF data alongside the parcel record for reprint capability without re-querying the SendCloud API.
Shipment tracking and status. Monitoring parcel status through the delivery lifecycle.
Parcel status retrieval: the GET /api/v2/parcels/{parcelId} endpoint for retrieving the current status of a specific parcel. The status object in the parcel response with the id (status code) and message (human-readable status description). The SendCloud status codes — 1 (pending, not yet announced), 11 (announced), 12 (enroute), 13 (delivered), 1000 (cancelled), 2000 (announced for return), 2100 (return received).
Tracking URL: the tracking_url in the parcel response — the carrier-specific tracking page URL for the parcel. The tracking URL that e-commerce platforms surface to customers for self-service tracking.
Batch status retrieval: the GET /api/v2/parcels endpoint with multiple parcel ID filters for retrieving status across many parcels simultaneously.
Webhooks — real-time status notifications. SendCloud webhooks for receiving parcel status changes without polling.
Webhook configuration: the SendCloud webhook configuration in the account settings — the URL that SendCloud sends status change notifications to. The webhook events — parcel_status_changed for delivery status updates, integration_connected for shipping method changes.
Webhook payload: the webhook POST payload with the action (the event type), the timestamp, and the parcel object with the updated parcel data including the new status. The webhook handler that receives the notification and updates the internal parcel status without requiring a separate API query.
Webhook security: SendCloud includes a SentAt timestamp and signs webhook payloads with a secret — the SendCloud-Signature header that the integration validates to confirm the webhook originated from SendCloud. The HMAC-SHA256 signature computed from the payload and the webhook signing secret.
Service Points API. Querying carrier pickup point locations for checkout integration.
Service points query: the GET /api/v2/service-points endpoint for retrieving carrier service points — pickup points, parcel lockers, and collection locations — near a specific address. The query parameters for country (ISO country code), radius (search radius in metres), latitude and longitude or postal_code for the search centre, and carrier for filtering by specific carrier.
Service point data: the service point response with the location name, address, opening hours, carrier, and the service_point_id used in parcel creation for designating a service point delivery. The service point data rendered in the checkout UI as a map or list for customer selection.
Service point delivery: the parcel with a service point delivery — the to_service_point field in the parcel creation request with the service_point_id of the chosen pickup location. The carrier delivers the parcel to the selected service point rather than the customer's home address.
Returns management. Managing customer-initiated returns through SendCloud's returns infrastructure.
Return portal: SendCloud's hosted return portal that allows customers to initiate returns by entering their order number and email address. The return portal configuration in SendCloud that specifies the return policy, the return reasons, and the allowed return methods. The return portal URL that the e-commerce platform surfaces to customers for return initiation.
Returns API: the GET /api/v2/returns endpoint for listing return parcels and their status. The return parcel data with the return reason, the items being returned, and the return status.
Return label creation: the POST /api/v2/returns endpoint for programmatically creating return labels — the integration that creates a return label when a return is approved and sends it to the customer.
Checkout delivery options. Presenting SendCloud delivery options at e-commerce checkout.
Delivery options API: the SendCloud checkout API that returns the available delivery options for a specific delivery address — home delivery time slots, service point options, and same-day or evening delivery where available. The checkout integration that queries SendCloud for delivery options as the customer enters their address and presents the options for selection.
Checkout widget: SendCloud's hosted JavaScript checkout widget that can be embedded in e-commerce checkout pages — the widget that renders delivery options, service point maps, and time slot selection without requiring the e-commerce platform to implement the UI from scratch.
Multi-carrier routing logic. The integration logic that selects the appropriate SendCloud shipping method based on order characteristics.
Carrier selection rules: the routing logic that selects the shipping method based on destination country, package weight and dimensions, required delivery service level, and cost optimisation rules. The logic that routes domestic Dutch shipments to PostNL, Belgian shipments to bpost, and large international shipments to DHL or UPS based on configurable rules.
Fallback handling: the carrier fallback logic that selects an alternative shipping method when the primary carrier's service is unavailable or when the package characteristics exceed the primary carrier's limits.
SendCloud Integrations — native platform connectors. SendCloud provides native integrations with common e-commerce platforms that reduce custom integration requirements.
WooCommerce, Magento, Shopify plugins: SendCloud's native e-commerce platform plugins that automatically import orders from the e-commerce platform into SendCloud. For businesses using these platforms, the native plugin handles the order import — custom API integration is then required only for the label retrieval, tracking data export back to the e-commerce platform, and any custom routing logic.
Custom integration via API: for order management systems, ERPs, and custom platforms that SendCloud's native plugins do not cover, the full API integration covers order import, label generation, tracking, and returns management.
Integration Patterns
Order management system integration. The OMS or ERP that creates SendCloud parcels when orders reach the ready-to-ship status — the integration that reads orders from the internal system, applies carrier selection rules to choose the appropriate SendCloud shipping method, creates the parcel, retrieves the label, and updates the internal order record with the tracking number and label reference.
Batch end-of-day processing. The end-of-day job that processes all of the day's shipments in a batch — creating parcels for all ready-to-ship orders simultaneously, downloading the combined label PDF, and marking the orders as shipped in the internal system.
Real-time order processing. The integration that creates the SendCloud parcel immediately when an order is placed or confirmed — the real-time label generation that is available for same-day shipping without end-of-day batch processing.
Multi-channel shipping. SendCloud as the unified shipping layer for a multi-channel operation — orders from the own website, from bol.com, from Amazon, and from other channels all processed through SendCloud for carrier selection and label generation, with tracking data returned to each channel.
Technologies Used
- C# / ASP.NET Core — primary SendCloud integration implementation using .NET HTTP client with JSON serialisation
- PHP / Laravel — SendCloud integration for PHP-based e-commerce platforms using the
sendcloud/sendcloudPHP library where available or direct HTTP - TypeScript / Node.js — SendCloud integration for Node.js-based order management and e-commerce systems
- Python — SendCloud integration for Python-based operational tools and data processing
- Rust / Axum — high-performance SendCloud parcel creation for very high-volume shipping operations
- REST / HTTP — SendCloud API communication
- Webhooks — real-time parcel status delivery
- SQL (PostgreSQL / MySQL) — parcel records, tracking data, order-to-parcel mapping, status history
- Redis — webhook deduplication, parcel status caching, label URL caching
- Hangfire / scheduled jobs — batch parcel creation, status polling for accounts without webhooks, daily shipping reports
- ZPL / PDF printing — label printing to thermal label printers and standard printers
- Docker — containerised integration service deployment
- GitHub Actions — CI/CD pipeline for integration service deployment
SendCloud vs Direct Carrier Integration
The choice between SendCloud and direct carrier API integration (direct PostNL, direct DHL) depends on the operation's carrier requirements and volume profile.
SendCloud is appropriate when the operation uses multiple carriers and benefits from a unified API, when the volume does not justify separate direct carrier contracts for each carrier, when the operation wants to add or switch carriers without integration changes, and when SendCloud's pricing (which includes a platform fee) is competitive with direct carrier rates for the operation's volume.
Direct carrier integration is appropriate when the operation has negotiated favourable direct contracts with a single primary carrier that make direct integration economically superior, when the operation needs access to carrier API capabilities that SendCloud does not expose, or when the operation is building a shipping platform that needs direct carrier relationships.
Many operations use both — SendCloud for carriers where direct contracts are not viable, and direct integration for the primary high-volume carrier where direct rates are significantly better.
Multi-Carrier Shipping, Connected to Your Operations
SendCloud integrations built to production standards — correct API authentication, carrier selection logic that routes to the optimal method for each shipment, batch label generation for high-volume packing workflows, webhook-based status monitoring with signature validation, service point integration for checkout delivery options, and the operational reliability that daily shipping operations require.