Service points

Find your service point easily

Retrieve the list of active carriers, query service points by GPS location, and check their availability.

Service points, also known as drop-off locations, are physical locations affiliated with one or more specific carriers. Parcels can be dropped off at these locations, and a driver will collect them and take them to be sorted at the carrier sorting hub. Parcels can also be delivered to service points as an alternative to door-to-door delivery. A service point can be a local post office, a brick-and-mortar store, or a fuel station.

Service point delivery is an increasingly popular choice amongst e-commerce consumers, as it allows them to pick up their parcels at a time and location that’s convenient to them. The customer can see when their parcel is ready for collection via the tracking number.

You can activate tracking notifications via your Sendcloud account (see Track a parcel) to automatically notify your customers when their parcel has been delivered and is awaiting collection from a service point.

This tutorial will cover the basics of Creating a parcel using a service point delivery method.


Step 1: Enable service point delivery

Before you can begin using the API, you need to make that service points are enabled in your Sendcloud integration settings.

Tip: If service points are not enabled for your integration, you’ll see the following error message: “Service point support is not activated for this integration”.
  1. In your Sendcloud account, go to Integration settings
  2. Find your API integration in the list and click Edit
  3. In the settings page for your API integration, click to enable Service points
  4. Enable your Carriers for service point delivery and press Save

Step 2: Retrieve a service point

You need to find the id for the service point you want to deliver to before you can specify it in your request to Create a parcel. You can do so by making an API GET request to the Service points endpoint and specifying a country and a search radius based on a postcode or a GPS location.

Example request

GET https://servicepoints.sendcloud.sc/api/v2/service-points?country=NL&address=5611%20EM&radius=1000

Example response

If everything went well, you should receive a response which lists all of the available service points within a 1 km radius of our postcode. The example below shows one of the returned locations:

 1[
 2    {
 3        "id": 10659026,
 4        "code": "214361",
 5        "is_active": true,
 6        "shop_type": null,
 7        "extra_data":
 8        {
 9            "partner_name": "PostNL",
10            "sales_channel": "",
11            "terminal_type": "",
12            "retail_network_id": "PNPNL-01"
13        },
14        "name": "Pakket- en Briefautomaat",
15        "street": "Bomansplaats",
16        "house_number": "20PBA",
17        "postal_code": "5611NT",
18        "city": "Eindhoven",
19        "latitude": "51.431009",
20        "longitude": "5.484843",
21        "email": "",
22        "phone": "",
23        "homepage": "",
24        "carrier": "postnl",
25        "country": "NL",
26        "formatted_opening_times":
27        {
28            "0":
29            [
30                "00:00 - 23:59"
31            ],
32            "1":
33            [
34                "00:00 - 23:59"
35            ],
36            "2":
37            [
38                "00:00 - 23:59"
39            ],
40            "3":
41            [
42                "00:00 - 23:59"
43            ],
44            "4":
45            [
46                "00:00 - 23:59"
47            ],
48            "5":
49            [
50                "00:00 - 23:59"
51            ],
52            "6":
53            [
54                "00:00 - 23:59"
55            ]
56        },
57        "open_tomorrow": true,
58        "open_upcoming_week": true,
59        "distance": 530
60    }
61]

Some things to note about the response:

  • A service point id is assigned to each of the service points which are returned, e.g. "id": 10771430. This is the identifier we will use to create our shipment and deliver it to this specific service point.
  • The carrier field corresponds to the carrier which is associated with this particular service point
  • The response includes the opening times for all of the service points which were returned

Step 3: Find a service point delivery method

To ship a parcel to a service point, you need to select an appropriate method. Now that we have a service point id, we can make an API call to the Shipping methods endpoint to retrieve a list of methods we can use to create our parcel.

Example request

GET https://panel.sendcloud.sc/api/v2/shipping_methods/?service_point_id=10659026

1curl --location -g --request GET https://panel.sendcloud.sc/api/v2/shipping_methods/?service_point_id=10659026

Example response

 1{
 2    "shipping_methods":
 3    [
 4        {
 5            "id": 7,
 6            "name": "PostNL service point 0-23kg",
 7            "carrier": "postnl",
 8            "min_weight": "0.001",
 9            "max_weight": "23.001",
10            "service_point_input": "required",
11            "price": 0,
12            "countries":
13            [
14                {
15                    "id": 2,
16                    "name": "Netherlands",
17                    "price": 5.3,
18                    "iso_2": "NL",
19                    "iso_3": "NLD",
20                    "lead_time_hours": 24
21                }
22            ]
23        }
24    ]
25}

Step 4: Create the parcel

Now we have both the service point id and an appropriate shipping method id, we can Create a parcel.

To create a parcel which ships directly to a specific service point:

  1. Add the service point id in the to_service_point field
  2. Add the shipping method id for your service point delivery method under shipment
  3. The value of request_label is true, so the parcel will be announced and you can download the shipping label as soon as your POST the request

Example request:

 1curl --location -g --request POST 'https://panel.sendcloud.sc/api/v2/parcels' \
 2--header 'Authorization: Basic <credentials>' \
 3--data-raw '
 4{
 5	"parcels": [
 6		{
 7			"name": "John Doe",
 8			"company_name": "Sendcloud",
 9			"address": "Insulindelaan",
10			"house_number": "115",
11			"city": "Eindhoven",
12			"postal_code": "5642CV",
13			"telephone": "+31612345678",
14			"email": "john@doe.com",
15			"data": [],
16			"country": "NL",
17			"shipment": {
18				"id": 4203
19			},
20			"weight": "0.005",
21			"insured_value": 0,
22			"total_order_value": "11.11",
23			"total_order_value_currency": "EUR",
24			"quantity": 1,
25			"request_label": true,
26			"shipment": {
27				"id": "7"
28			},
29			"to_service_point": 10659026
30		}
31	]
32}'

Example response:

  1{
  2    "parcels":
  3    [
  4        {
  5            "id": 1,
  6            "address": "Insulindelaan 115",
  7            "address_2": "",
  8            "address_divided":
  9            {
 10                "street": "Insulindelaan",
 11                "house_number": "115"
 12            },
 13            "city": "Eindhoven",
 14            "company_name": "Sendcloud",
 15            "country":
 16            {
 17                "iso_2": "NL",
 18                "iso_3": "NLD",
 19                "name": "Netherlands"
 20            },
 21            "data":
 22            {},
 23            "date_created": "22-06-2022 13:19:59",
 24            "date_announced": "22-06-2022 13:20:00",
 25            "date_updated": "22-06-2022 13:20:00",
 26            "email": "john@doe.com",
 27            "name": "John Doe",
 28            "postal_code": "5642 CV",
 29            "reference": "0",
 30            "shipment":
 31            {
 32                "id": 7,
 33                "name": "PostNL service point 0-23kg"
 34            },
 35            "status":
 36            {
 37                "id": 1000,
 38                "message": "Ready to send"
 39            },
 40            "to_service_point": 10659026,
 41            "telephone": "+31612345678",
 42            "tracking_number": "3SYZXG140041526",
 43            "weight": "0.005",
 44            "label":
 45            {
 46                "normal_printer":
 47                [
 48                    "https://panel.sendcloud.sc/api/v2/labels/normal_printer/1?start_from=0",
 49                    "https://panel.sendcloud.sc/api/v2/labels/normal_printer/1?start_from=1",
 50                    "https://panel.sendcloud.sc/api/v2/labels/normal_printer/1?start_from=2",
 51                    "https://panel.sendcloud.sc/api/v2/labels/normal_printer/1?start_from=3"
 52                ],
 53                "label_printer": "https://panel.sendcloud.sc/api/v2/labels/label_printer/1"
 54            },
 55            "customs_declaration":
 56            {},
 57            "order_number": "",
 58            "insured_value": 0,
 59            "total_insured_value": 0,
 60            "to_state": null,
 61            "customs_invoice_nr": "",
 62            "customs_shipment_type": null,
 63            "parcel_items":
 64            [],
 65            "documents":
 66            [
 67                {
 68                    "type": "label",
 69                    "size": "a6",
 70                    "link": "https://panel.sendcloud.sc/api/v2/parcels/1/documents/label"
 71                }
 72            ],
 73            "type": "parcel",
 74            "shipment_uuid": null,
 75            "shipping_method": 7,
 76            "external_order_id": "1",
 77            "external_shipment_id": "",
 78            "external_reference": null,
 79            "is_return": false,
 80            "note": "",
 81            "to_post_number": "",
 82            "total_order_value": "11.11",
 83            "total_order_value_currency": "EUR",
 84            "colli_uuid": "d82b77a6-a619-44a7-ae57-7e6b97f75db3",
 85            "collo_nr": 0,
 86            "collo_count": 1,
 87            "awb_tracking_number": null,
 88            "box_number": null,
 89            "length": null,
 90            "width": null,
 91            "height": null,
 92            "shipping_method_checkout_name": null,
 93            "carrier":
 94            {
 95                "code": "postnl"
 96            },
 97            "tracking_url": "https://sendcloudfr.shipping-portal.com/tracking/?country=nl&tracking_number=3syzxg140041526&postal_code=5642+cv"
 98        }
 99    ]
100}
Go to top