Retrieve the status of a return
curl --request GET \
--url https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling \
--header 'Authorization: Bearer <token>'import requests
url = "https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"download_url": "https://panel.sendcloud.sc/api/v2/brand/my-brand/return-portal/label/download?token=xxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxx",
"return": 123456,
"parcels": [
7654321
],
"tracking_numbers": [
"3SYZXG123456789"
]
}{
"error": {
"code": 404,
"request": "api/v2/brand/brand_domain/return-portal",
"message": "No ReturnsPortal matches the given query"
}
}Return portal API
Retrieve the status of a return
Find out the label creation status for a return parcel.
GET
/
brand
/
{brand_domain}
/
return-portal
/
label
/
polling
Retrieve the status of a return
curl --request GET \
--url https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling \
--header 'Authorization: Bearer <token>'import requests
url = "https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v2/brand/{brand_domain}/return-portal/label/polling")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"download_url": "https://panel.sendcloud.sc/api/v2/brand/my-brand/return-portal/label/download?token=xxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxx",
"return": 123456,
"parcels": [
7654321
],
"tracking_numbers": [
"3SYZXG123456789"
]
}{
"error": {
"code": 404,
"request": "api/v2/brand/brand_domain/return-portal",
"message": "No ReturnsPortal matches the given query"
}
}API v2 is entering maintenance mode. New users should start with API v3 to access our latest features and improved performance. Already using v2? Don’t worry, your current integration remains fully functional. Read more about maintenance mode, or check out the migration guide for API v3.
id, so you don’t need to provide any additional lookup details or authentication.
- A
200response will indicate that the label is ready and can be downloaded. - A
202response will indicate that the label is not ready to be downloaded but the return data has been accepted. If you have paid returns enabled this status is used to indicate we are waiting for payment. For more information take a look at this help center article. - A
500response means that the label announcement failed.
Authorizations
The JWT generated when starting the Return Portal process
Path Parameters
The domain of the brand configured for your return portal.
Query Parameters
Polling token, used to find the return
Response
OK
A URL pointing to the downloadable label
ID of the created return
ID(s) of the created parcels of the return
Tracking number(s) of the created parcels
If available the customs-declaration can be downloaded here