Here we outline common user flows when using the Sendcloud APIs. For an explanation of the terms used, visit the Glossary.Documentation Index
Fetch the complete documentation index at: https://sendcloud.dev/llms.txt
Use this file to discover all available pages before exploring further.
API v3 user flows
Standard shipment creation flow (Shipments API v3)
- Choose a shipping option: Retrieve available shipping options using
POST /api/v3/shipping-optionsto get carrier services with theirshipping_option_codevalues. - Create the parcel payload: Assemble your shipment payload with the desired
shipping_option_code, along with sender address, recipient details, parcel dimensions, and weight. - Choose synchronous or asynchronous announcement: Decide whether labels should be created immediately (synchronous) or in the background (asynchronous).
- Asynchronous path: Use
POST /api/v3/shipmentswhich returns aparcel_idfor later label retrieval via the Parcel Document API. - Synchronous path: Use
POST /api/v3/shipments/announcewhich returns the label immediately in the response.
- Asynchronous path: Use
- Handle multicollo shipments: If you announced a multicollo shipment (multiple parcels announced together to stay linked throughout delivery), you must retrieve individual labels using the
GET /api/v3/parcels/{id}/documents/labelendpoint for each parcel in the shipment. - Apply the label: Extract the label from the API response. Print the label, affix it to the parcel, and hand it to the carrier via pickup or drop-off.
Shipping orders from E-commerce platforms
- Fetch an imported order: Retrieve an order that was synced from your e-commerce platform using
GET /api/v3/orders. - Create the payload: Assemble your payload with the order information and shipping preferences.
- Choose batch or single shipment: Decide whether to ship multiple orders in one API call (batch processing) or ship one order at a time.
- Ship the order(s):
- Multiple orders (async): Use
POST /api/v3/orders/create-labels-asyncwhich returnsparcel_idvalues for each created parcel. - Single order (sync): Use
POST /api/v3/orders/create-label-syncwhich returns a Base64 encoded label immediately.
- Multiple orders (async): Use
- Retrieve labels for batch shipments: For async/batch processing, call
GET /api/v3/parcels/{id}/documents/labelwith eachparcel_idto retrieve binary label files. - Apply the label: Extract the label (Base64 or binary), print it, affix it to the parcel, and hand it to the carrier.
Announcing a multicollo parcel
- Choose a shipping option: Retrieve available shipping options using
POST /api/v3/shipping-optionsto get carrier services with theirshipping_option_codevalues. - Create the multicollo shipment payload: Assemble your payload with the desired
shipping_option_codeand include multiple parcel objects in a single shipment. This creates a multicollo shipment where all parcels stay linked for the customer’s tracking purposes throughout delivery. - Announce the multicollo shipment: Use
POST /api/v3/shipments/announcewith your array of parcel objects. This returns an array ofparcel_idvalues, one for each parcel in the multicollo shipment. - Retrieve labels for each parcel: Call
GET /api/v3/parcels/{id}/documents/{type}once for eachparcel_idto retrieve individual label files. Each parcel in the multicollo shipment requires its own label. - Apply labels to parcels: Extract each label from the responses, print them, affix each label to its corresponding parcel. In some cases certain parcels in the shipment may have to be shipped at a later date (e.g., limited stock) so coordinate with the carrier accordingly.
Shipping a parcel as a white-label product in the marketplace
Use this flow to ship a parcel under your own branding. To get started:- Choose a shipping option: Retrieve available shipping options using
POST /api/v3/shipping-optionsto get carrier services with theirshipping_option_codevalues. - Choose your brand: Retrieve your configured brands using
GET /api/v2/brandsand select thebrand_idto apply to this shipment. Brands customize customer-facing features like tracking pages and notifications. - Create the parcel payload: Combine your chosen
shipping_option_codeandbrand_idin the parcel payload along with sender address, recipient details, and parcel dimensions. - Announce the shipment: Use
POST /api/v3/shipments/announceto create and announce the shipment with the carrier, which returns the label. - Apply the label: Print the label from the response, affix it to the parcel, and hand it to the carrier via pickup or drop-off.
- Tracking with branded notifications: Once the carrier scans the parcel and updates its status, Sendcloud automatically sends tracking notifications via your chosen channels (email, WhatsApp, tracking page, or SMS) under your selected brand. No further API calls needed.
Setting up event subscriptions
To start receiving real-time parcel event notifications via the Event Subscriptions API (BETA):- Create a connection: Define where events should be delivered (e.g. a webhook URL or Klaviyo integration) using the Create a connection endpoint.
- Create a subscription: Specify which events to listen for and link them to your connection using the Create a subscription endpoint.
- Test your setup: Verify that events are delivered correctly by using the Test event delivery (
/broadcast/test/{subscription_id}) endpoint.