curl --request POST \
--url https://panel.sendcloud.sc/api/v3/dsf/tickets/other \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"tracking_number": "3SABCD1234567",
"subject": "Parcel arrived empty",
"question": "The parcel arrived undamaged but there was nothing inside."
}
'import requests
url = "https://panel.sendcloud.sc/api/v3/dsf/tickets/other"
payload = {
"tracking_number": "3SABCD1234567",
"subject": "Parcel arrived empty",
"question": "The parcel arrived undamaged but there was nothing inside."
}
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({
tracking_number: '3SABCD1234567',
subject: 'Parcel arrived empty',
question: 'The parcel arrived undamaged but there was nothing inside.'
})
};
fetch('https://panel.sendcloud.sc/api/v3/dsf/tickets/other', 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/tickets/other",
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([
'tracking_number' => '3SABCD1234567',
'subject' => 'Parcel arrived empty',
'question' => 'The parcel arrived undamaged but there was nothing inside.'
]),
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/tickets/other"
payload := strings.NewReader("{\n \"tracking_number\": \"3SABCD1234567\",\n \"subject\": \"Parcel arrived empty\",\n \"question\": \"The parcel arrived undamaged but there was nothing inside.\"\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/tickets/other")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"tracking_number\": \"3SABCD1234567\",\n \"subject\": \"Parcel arrived empty\",\n \"question\": \"The parcel arrived undamaged but there was nothing inside.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v3/dsf/tickets/other")
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 \"tracking_number\": \"3SABCD1234567\",\n \"subject\": \"Parcel arrived empty\",\n \"question\": \"The parcel arrived undamaged but there was nothing inside.\"\n}"
response = http.request(request)
puts response.read_bodyCreate a ticket for another issue
Create a ticket for an issue that does not fit any other ticket type, such as an empty parcel or a missing product. It works with both your own contract and parcels created using Sendcloud rates.
curl --request POST \
--url https://panel.sendcloud.sc/api/v3/dsf/tickets/other \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"tracking_number": "3SABCD1234567",
"subject": "Parcel arrived empty",
"question": "The parcel arrived undamaged but there was nothing inside."
}
'import requests
url = "https://panel.sendcloud.sc/api/v3/dsf/tickets/other"
payload = {
"tracking_number": "3SABCD1234567",
"subject": "Parcel arrived empty",
"question": "The parcel arrived undamaged but there was nothing inside."
}
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({
tracking_number: '3SABCD1234567',
subject: 'Parcel arrived empty',
question: 'The parcel arrived undamaged but there was nothing inside.'
})
};
fetch('https://panel.sendcloud.sc/api/v3/dsf/tickets/other', 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/tickets/other",
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([
'tracking_number' => '3SABCD1234567',
'subject' => 'Parcel arrived empty',
'question' => 'The parcel arrived undamaged but there was nothing inside.'
]),
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/tickets/other"
payload := strings.NewReader("{\n \"tracking_number\": \"3SABCD1234567\",\n \"subject\": \"Parcel arrived empty\",\n \"question\": \"The parcel arrived undamaged but there was nothing inside.\"\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/tickets/other")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"tracking_number\": \"3SABCD1234567\",\n \"subject\": \"Parcel arrived empty\",\n \"question\": \"The parcel arrived undamaged but there was nothing inside.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v3/dsf/tickets/other")
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 \"tracking_number\": \"3SABCD1234567\",\n \"subject\": \"Parcel arrived empty\",\n \"question\": \"The parcel arrived undamaged but there was nothing inside.\"\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Basic Authentication using API key and secrets is currently the main authentication mechanism.
Query Parameters
Set to true to force a portal claim. Supported for Colissimo, Chronopost, Colis Privé, Mondial Relay, InPost ES, and DHL Express carriers only. Requires a carrier contract setup.
Body
Data that is needed for creation of a ticket for own contract parcel and parcels created using Sendcloud rates is different. Please refer to relevant examples below.
- Sendcloud rates parcel
- Own contract parcel
Parcel tracking number
"3SABCD1234567"
Short summary of the issue.
5 - 100"Parcel arrived empty"
Description of the issue and any additional context, such as the reason for the ticket.
10"The parcel arrived undamaged but there was nothing inside."
Response
Accepted
Create ticket response