Create or overwrite shop order statuses
curl --request POST \
--url https://panel.sendcloud.sc/api/v3/shop-order-statuses \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"integration_id": 23452345,
"statuses": [
{
"external_id": "Send-4",
"translations": [
{
"status": "Sent",
"language": "en-gb"
},
{
"status": "Verzonden",
"language": "nl-nl"
}
]
},
{
"external_id": "15",
"translations": [
{
"status": "Delivered",
"language": "en-gb"
},
{
"status": "Bezorgt",
"language": "nl-nl"
}
]
}
]
}
'import requests
url = "https://panel.sendcloud.sc/api/v3/shop-order-statuses"
payload = {
"integration_id": 23452345,
"statuses": [
{
"external_id": "Send-4",
"translations": [
{
"status": "Sent",
"language": "en-gb"
},
{
"status": "Verzonden",
"language": "nl-nl"
}
]
},
{
"external_id": "15",
"translations": [
{
"status": "Delivered",
"language": "en-gb"
},
{
"status": "Bezorgt",
"language": "nl-nl"
}
]
}
]
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
integration_id: 23452345,
statuses: [
{
external_id: 'Send-4',
translations: [{status: 'Sent', language: 'en-gb'}, {status: 'Verzonden', language: 'nl-nl'}]
},
{
external_id: '15',
translations: [
{status: 'Delivered', language: 'en-gb'},
{status: 'Bezorgt', language: 'nl-nl'}
]
}
]
})
};
fetch('https://panel.sendcloud.sc/api/v3/shop-order-statuses', 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/v3/shop-order-statuses",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'integration_id' => 23452345,
'statuses' => [
[
'external_id' => 'Send-4',
'translations' => [
[
'status' => 'Sent',
'language' => 'en-gb'
],
[
'status' => 'Verzonden',
'language' => 'nl-nl'
]
]
],
[
'external_id' => '15',
'translations' => [
[
'status' => 'Delivered',
'language' => 'en-gb'
],
[
'status' => 'Bezorgt',
'language' => 'nl-nl'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://panel.sendcloud.sc/api/v3/shop-order-statuses"
payload := strings.NewReader("{\n \"integration_id\": 23452345,\n \"statuses\": [\n {\n \"external_id\": \"Send-4\",\n \"translations\": [\n {\n \"status\": \"Sent\",\n \"language\": \"en-gb\"\n },\n {\n \"status\": \"Verzonden\",\n \"language\": \"nl-nl\"\n }\n ]\n },\n {\n \"external_id\": \"15\",\n \"translations\": [\n {\n \"status\": \"Delivered\",\n \"language\": \"en-gb\"\n },\n {\n \"status\": \"Bezorgt\",\n \"language\": \"nl-nl\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://panel.sendcloud.sc/api/v3/shop-order-statuses")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"integration_id\": 23452345,\n \"statuses\": [\n {\n \"external_id\": \"Send-4\",\n \"translations\": [\n {\n \"status\": \"Sent\",\n \"language\": \"en-gb\"\n },\n {\n \"status\": \"Verzonden\",\n \"language\": \"nl-nl\"\n }\n ]\n },\n {\n \"external_id\": \"15\",\n \"translations\": [\n {\n \"status\": \"Delivered\",\n \"language\": \"en-gb\"\n },\n {\n \"status\": \"Bezorgt\",\n \"language\": \"nl-nl\"\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v3/shop-order-statuses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"integration_id\": 23452345,\n \"statuses\": [\n {\n \"external_id\": \"Send-4\",\n \"translations\": [\n {\n \"status\": \"Sent\",\n \"language\": \"en-gb\"\n },\n {\n \"status\": \"Verzonden\",\n \"language\": \"nl-nl\"\n }\n ]\n },\n {\n \"external_id\": \"15\",\n \"translations\": [\n {\n \"status\": \"Delivered\",\n \"language\": \"en-gb\"\n },\n {\n \"status\": \"Bezorgt\",\n \"language\": \"nl-nl\"\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_bodynull{
"errors": [
{
"status": "400",
"code": "non_field_errors",
"title": "Wrong format",
"detail": "Wrong request format, expected object"
}
]
}Shop order statuses
Create or overwrite shop order statuses
Insert shop-specific custom statuses into the Sendcloud system.
POST
/
shop-order-statuses
Create or overwrite shop order statuses
curl --request POST \
--url https://panel.sendcloud.sc/api/v3/shop-order-statuses \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"integration_id": 23452345,
"statuses": [
{
"external_id": "Send-4",
"translations": [
{
"status": "Sent",
"language": "en-gb"
},
{
"status": "Verzonden",
"language": "nl-nl"
}
]
},
{
"external_id": "15",
"translations": [
{
"status": "Delivered",
"language": "en-gb"
},
{
"status": "Bezorgt",
"language": "nl-nl"
}
]
}
]
}
'import requests
url = "https://panel.sendcloud.sc/api/v3/shop-order-statuses"
payload = {
"integration_id": 23452345,
"statuses": [
{
"external_id": "Send-4",
"translations": [
{
"status": "Sent",
"language": "en-gb"
},
{
"status": "Verzonden",
"language": "nl-nl"
}
]
},
{
"external_id": "15",
"translations": [
{
"status": "Delivered",
"language": "en-gb"
},
{
"status": "Bezorgt",
"language": "nl-nl"
}
]
}
]
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
integration_id: 23452345,
statuses: [
{
external_id: 'Send-4',
translations: [{status: 'Sent', language: 'en-gb'}, {status: 'Verzonden', language: 'nl-nl'}]
},
{
external_id: '15',
translations: [
{status: 'Delivered', language: 'en-gb'},
{status: 'Bezorgt', language: 'nl-nl'}
]
}
]
})
};
fetch('https://panel.sendcloud.sc/api/v3/shop-order-statuses', 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/v3/shop-order-statuses",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'integration_id' => 23452345,
'statuses' => [
[
'external_id' => 'Send-4',
'translations' => [
[
'status' => 'Sent',
'language' => 'en-gb'
],
[
'status' => 'Verzonden',
'language' => 'nl-nl'
]
]
],
[
'external_id' => '15',
'translations' => [
[
'status' => 'Delivered',
'language' => 'en-gb'
],
[
'status' => 'Bezorgt',
'language' => 'nl-nl'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://panel.sendcloud.sc/api/v3/shop-order-statuses"
payload := strings.NewReader("{\n \"integration_id\": 23452345,\n \"statuses\": [\n {\n \"external_id\": \"Send-4\",\n \"translations\": [\n {\n \"status\": \"Sent\",\n \"language\": \"en-gb\"\n },\n {\n \"status\": \"Verzonden\",\n \"language\": \"nl-nl\"\n }\n ]\n },\n {\n \"external_id\": \"15\",\n \"translations\": [\n {\n \"status\": \"Delivered\",\n \"language\": \"en-gb\"\n },\n {\n \"status\": \"Bezorgt\",\n \"language\": \"nl-nl\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://panel.sendcloud.sc/api/v3/shop-order-statuses")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"integration_id\": 23452345,\n \"statuses\": [\n {\n \"external_id\": \"Send-4\",\n \"translations\": [\n {\n \"status\": \"Sent\",\n \"language\": \"en-gb\"\n },\n {\n \"status\": \"Verzonden\",\n \"language\": \"nl-nl\"\n }\n ]\n },\n {\n \"external_id\": \"15\",\n \"translations\": [\n {\n \"status\": \"Delivered\",\n \"language\": \"en-gb\"\n },\n {\n \"status\": \"Bezorgt\",\n \"language\": \"nl-nl\"\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v3/shop-order-statuses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"integration_id\": 23452345,\n \"statuses\": [\n {\n \"external_id\": \"Send-4\",\n \"translations\": [\n {\n \"status\": \"Sent\",\n \"language\": \"en-gb\"\n },\n {\n \"status\": \"Verzonden\",\n \"language\": \"nl-nl\"\n }\n ]\n },\n {\n \"external_id\": \"15\",\n \"translations\": [\n {\n \"status\": \"Delivered\",\n \"language\": \"en-gb\"\n },\n {\n \"status\": \"Bezorgt\",\n \"language\": \"nl-nl\"\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_bodynull{
"errors": [
{
"status": "400",
"code": "non_field_errors",
"title": "Wrong format",
"detail": "Wrong request format, expected object"
}
]
}OAuth2 scopes required:
write:integration. See Scopes for OAuth apps.Only the Prestashop V2 integration is supported.
- Integrations can have their own custom shop statuses.
- To get your order updates in time, Sendcloud needs to know what statuses are available.
- This endpoint updates all existing statuses. That includes creating new statuses, changing existing ones, and deleting ones that no longer exist.
Authorizations
HTTPBasicAuthOAuth2ClientCreds
Basic Authentication using API key and secrets is currently the main authentication mechanism.
Body
application/json
Response
OK.