curl --request POST \
--url https://panel.sendcloud.sc/api/v3/dsf/carrier-support-contacts \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"carrier_code": "postnl",
"email": "carrier@email.com",
"language": "en-us"
}
'import requests
url = "https://panel.sendcloud.sc/api/v3/dsf/carrier-support-contacts"
payload = {
"carrier_code": "postnl",
"email": "carrier@email.com",
"language": "en-us"
}
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({carrier_code: 'postnl', email: 'carrier@email.com', language: 'en-us'})
};
fetch('https://panel.sendcloud.sc/api/v3/dsf/carrier-support-contacts', 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/dsf/carrier-support-contacts",
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([
'carrier_code' => 'postnl',
'email' => 'carrier@email.com',
'language' => 'en-us'
]),
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/dsf/carrier-support-contacts"
payload := strings.NewReader("{\n \"carrier_code\": \"postnl\",\n \"email\": \"carrier@email.com\",\n \"language\": \"en-us\"\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/dsf/carrier-support-contacts")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"carrier_code\": \"postnl\",\n \"email\": \"carrier@email.com\",\n \"language\": \"en-us\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v3/dsf/carrier-support-contacts")
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 \"carrier_code\": \"postnl\",\n \"email\": \"carrier@email.com\",\n \"language\": \"en-us\"\n}"
response = http.request(request)
puts response.read_body{
"id": 1,
"carrier_code": "dpd",
"email": "dpd@email.com",
"language": "nl-nl"
}{
"errors": [
{
"code": "bad_request",
"detail": "Validation Error. Errors: [{'type': 'missing', 'loc': ('email',), 'msg': 'Field required'}]",
"title": "Bad Request",
"status": 400
}
]
}{
"errors": [
{
"code": "conflict",
"detail": "Already exists",
"title": "Conflict",
"status": 409
}
]
}Create carrier support contact
A carrier support contact is required in order to create tickets for shipments sent under your own carrier contract so that we can forward the claim correctly.
Note that ticket creation will fail if a carrier support contact is missing for a carrier you use with your own contract.
curl --request POST \
--url https://panel.sendcloud.sc/api/v3/dsf/carrier-support-contacts \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"carrier_code": "postnl",
"email": "carrier@email.com",
"language": "en-us"
}
'import requests
url = "https://panel.sendcloud.sc/api/v3/dsf/carrier-support-contacts"
payload = {
"carrier_code": "postnl",
"email": "carrier@email.com",
"language": "en-us"
}
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({carrier_code: 'postnl', email: 'carrier@email.com', language: 'en-us'})
};
fetch('https://panel.sendcloud.sc/api/v3/dsf/carrier-support-contacts', 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/dsf/carrier-support-contacts",
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([
'carrier_code' => 'postnl',
'email' => 'carrier@email.com',
'language' => 'en-us'
]),
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/dsf/carrier-support-contacts"
payload := strings.NewReader("{\n \"carrier_code\": \"postnl\",\n \"email\": \"carrier@email.com\",\n \"language\": \"en-us\"\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/dsf/carrier-support-contacts")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"carrier_code\": \"postnl\",\n \"email\": \"carrier@email.com\",\n \"language\": \"en-us\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v3/dsf/carrier-support-contacts")
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 \"carrier_code\": \"postnl\",\n \"email\": \"carrier@email.com\",\n \"language\": \"en-us\"\n}"
response = http.request(request)
puts response.read_body{
"id": 1,
"carrier_code": "dpd",
"email": "dpd@email.com",
"language": "nl-nl"
}{
"errors": [
{
"code": "bad_request",
"detail": "Validation Error. Errors: [{'type': 'missing', 'loc': ('email',), 'msg': 'Field required'}]",
"title": "Bad Request",
"status": 400
}
]
}{
"errors": [
{
"code": "conflict",
"detail": "Already exists",
"title": "Conflict",
"status": 409
}
]
}Authorizations
Basic Authentication using API key and secrets is currently the main authentication mechanism.
Body
A carrier represented by a Sendcloud code
amazon, bpost, bol, bring, brt, budbee, cainiao, chronopost, colisprive, colissimo, colissimo_ec2c, correos, correos_express, cirro, dachser, dbschenker, delivengo, der_kurier, dp, dhl, dhl_de, dhl_ecommerce, dhl_freight, dhl_gb, dhl_parcel_gb, dhl_parcel_iberia, dhl_express, dpd, dpd_at, dpd_fr, dpd_gb, dpd_local, fadello, fairsenden, fedex, fedexcrossborder, fietskoeriers, geodis, gls_de, gls_es, gls_eu, gls_it, gls_nl, glovo, hermes_c2c_gb, hermes_at, hermes_de, hermes_gb, hived, homerr, hurby, inpost_gb, inpost_es, inpost_it, inpost_pl, jongstra, landmark, lettresuivie, mondial_relay, mhi, nacex, ontime, paack, packs, parcelforce, mrw, plx, postat, poste_italiane, poste_it_delivery, postnl, postnl_fulfilment, postnl_large, postnord, quicargo, relais_colis, rjpv2, rjp, royal_mail, royal_mailv2, sandd, sendcloud, seur, skymail, storeshippers, tipsa, transmission, trunkrs, ups, van_straaten, viatim, ctt_express, tnt_it, yodel, europaket, spring, evri_international, asendia, transforce, dhl_2_man_handling "postnl"
Email address of the carrier to which the ticket details will be forwarded.
"carrier@email.com"
Language in which the carrier will be contacted.
de-de, en-gb, en-us, es-es, fr-fr, nl-nl, it-it "en-us"
Response
Create carrier support contact
A carrier represented by a Sendcloud code
amazon, bpost, bol, bring, brt, budbee, cainiao, chronopost, colisprive, colissimo, colissimo_ec2c, correos, correos_express, cirro, dachser, dbschenker, delivengo, der_kurier, dp, dhl, dhl_de, dhl_ecommerce, dhl_freight, dhl_gb, dhl_parcel_gb, dhl_parcel_iberia, dhl_express, dpd, dpd_at, dpd_fr, dpd_gb, dpd_local, fadello, fairsenden, fedex, fedexcrossborder, fietskoeriers, geodis, gls_de, gls_es, gls_eu, gls_it, gls_nl, glovo, hermes_c2c_gb, hermes_at, hermes_de, hermes_gb, hived, homerr, hurby, inpost_gb, inpost_es, inpost_it, inpost_pl, jongstra, landmark, lettresuivie, mondial_relay, mhi, nacex, ontime, paack, packs, parcelforce, mrw, plx, postat, poste_italiane, poste_it_delivery, postnl, postnl_fulfilment, postnl_large, postnord, quicargo, relais_colis, rjpv2, rjp, royal_mail, royal_mailv2, sandd, sendcloud, seur, skymail, storeshippers, tipsa, transmission, trunkrs, ups, van_straaten, viatim, ctt_express, tnt_it, yodel, europaket, spring, evri_international, asendia, transforce, dhl_2_man_handling "postnl"
Email address of the carrier to which the ticket details will be forwarded.
"carrier@email.com"
Language in which the carrier will be contacted.
de-de, en-gb, en-us, es-es, fr-fr, nl-nl, it-it "en-us"