curl --request POST \
--url https://scx-sbx.api.jtl-software.com/v1/channel/order/return \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sellerId": "4711",
"orderId": "43523-43432-43532",
"channelReturnId": "R12343",
"orderItem": [
{
"orderItemId": "5437233",
"quantity": "1.0",
"note": "<string>"
}
]
}
'import requests
url = "https://scx-sbx.api.jtl-software.com/v1/channel/order/return"
payload = {
"sellerId": "4711",
"orderId": "43523-43432-43532",
"channelReturnId": "R12343",
"orderItem": [
{
"orderItemId": "5437233",
"quantity": "1.0",
"note": "<string>"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
sellerId: '4711',
orderId: '43523-43432-43532',
channelReturnId: 'R12343',
orderItem: [{orderItemId: '5437233', quantity: '1.0', note: '<string>'}]
})
};
fetch('https://scx-sbx.api.jtl-software.com/v1/channel/order/return', 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://scx-sbx.api.jtl-software.com/v1/channel/order/return",
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([
'sellerId' => '4711',
'orderId' => '43523-43432-43532',
'channelReturnId' => 'R12343',
'orderItem' => [
[
'orderItemId' => '5437233',
'quantity' => '1.0',
'note' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://scx-sbx.api.jtl-software.com/v1/channel/order/return"
payload := strings.NewReader("{\n \"sellerId\": \"4711\",\n \"orderId\": \"43523-43432-43532\",\n \"channelReturnId\": \"R12343\",\n \"orderItem\": [\n {\n \"orderItemId\": \"5437233\",\n \"quantity\": \"1.0\",\n \"note\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://scx-sbx.api.jtl-software.com/v1/channel/order/return")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"sellerId\": \"4711\",\n \"orderId\": \"43523-43432-43532\",\n \"channelReturnId\": \"R12343\",\n \"orderItem\": [\n {\n \"orderItemId\": \"5437233\",\n \"quantity\": \"1.0\",\n \"note\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://scx-sbx.api.jtl-software.com/v1/channel/order/return")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sellerId\": \"4711\",\n \"orderId\": \"43523-43432-43532\",\n \"channelReturnId\": \"R12343\",\n \"orderItem\": [\n {\n \"orderItemId\": \"5437233\",\n \"quantity\": \"1.0\",\n \"note\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"errorList": [
{
"code": "GEN500",
"message": "Internal Server Error",
"severity": "error",
"hint": null
}
]
}Return Announcement
Create a return announcement. SCX identifies it by the authenticated channel, sellerId, orderId and channelReturnId. Repeating that identity returns 201 without creating another event or changing the first announcement. This also applies after the seller acknowledges the event. Changed item or tracking data does not update an existing announcement. Deduplication lasts while SCX retains the original event. Events already duplicated before this change remain available.
curl --request POST \
--url https://scx-sbx.api.jtl-software.com/v1/channel/order/return \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sellerId": "4711",
"orderId": "43523-43432-43532",
"channelReturnId": "R12343",
"orderItem": [
{
"orderItemId": "5437233",
"quantity": "1.0",
"note": "<string>"
}
]
}
'import requests
url = "https://scx-sbx.api.jtl-software.com/v1/channel/order/return"
payload = {
"sellerId": "4711",
"orderId": "43523-43432-43532",
"channelReturnId": "R12343",
"orderItem": [
{
"orderItemId": "5437233",
"quantity": "1.0",
"note": "<string>"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
sellerId: '4711',
orderId: '43523-43432-43532',
channelReturnId: 'R12343',
orderItem: [{orderItemId: '5437233', quantity: '1.0', note: '<string>'}]
})
};
fetch('https://scx-sbx.api.jtl-software.com/v1/channel/order/return', 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://scx-sbx.api.jtl-software.com/v1/channel/order/return",
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([
'sellerId' => '4711',
'orderId' => '43523-43432-43532',
'channelReturnId' => 'R12343',
'orderItem' => [
[
'orderItemId' => '5437233',
'quantity' => '1.0',
'note' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://scx-sbx.api.jtl-software.com/v1/channel/order/return"
payload := strings.NewReader("{\n \"sellerId\": \"4711\",\n \"orderId\": \"43523-43432-43532\",\n \"channelReturnId\": \"R12343\",\n \"orderItem\": [\n {\n \"orderItemId\": \"5437233\",\n \"quantity\": \"1.0\",\n \"note\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://scx-sbx.api.jtl-software.com/v1/channel/order/return")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"sellerId\": \"4711\",\n \"orderId\": \"43523-43432-43532\",\n \"channelReturnId\": \"R12343\",\n \"orderItem\": [\n {\n \"orderItemId\": \"5437233\",\n \"quantity\": \"1.0\",\n \"note\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://scx-sbx.api.jtl-software.com/v1/channel/order/return")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sellerId\": \"4711\",\n \"orderId\": \"43523-43432-43532\",\n \"channelReturnId\": \"R12343\",\n \"orderItem\": [\n {\n \"orderItemId\": \"5437233\",\n \"quantity\": \"1.0\",\n \"note\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"errorList": [
{
"code": "GEN500",
"message": "Internal Server Error",
"severity": "error",
"hint": null
}
]
}Authorizations
As a Channel Integrator you will receive a API Refresh Token. With such a Refresh Token you need to request an Access Token with a limited Lifetime (see POST /v1/auth). This Access Token must be provided as a Bearer Token in the Authorization Header with every request.
Body
Announcement of a return shipment that the customer is sending back for a marketplace order.
SCX stores one announcement per authenticated channel, sellerId, orderId and channelReturnId. A repeated identity keeps the original payload and does not create another event while the original event is retained.
A unique Id identify a Seller on a specific SalesChannel. The SellerId is generated from the Channel itself during the Seller SignUp Process.
^\w{1,50}$"4711"
1 - 150"43523-43432-43532"
Id used to identify an order return on Marketplace.
"R12343"
Details about what will be to returned to Seller. If the orderItem list is empty as Seller must expect that the whole order is returned.
Show child attributes
Show child attributes
Optional information about return tracking.
Show child attributes
Show child attributes
Response
Return announcement received, or already received with the same identity
Was this page helpful?