Create consolidate shipping order
curl --request POST \
--url https://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create \
--header 'Content-Type: application/json' \
--header 'x-rr-apikey: <api-key>' \
--header 'x-rr-apitoken: <api-key>' \
--data '
{
"outboundWarehouseId": 123,
"destinationType": "CUSTOM_ADDRESS",
"destinationWarehouseId": 123,
"deliveryInstructions": "<string>",
"customFieldMap": {}
}
'import requests
url = "https://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create"
payload = {
"outboundWarehouseId": 123,
"destinationType": "CUSTOM_ADDRESS",
"destinationWarehouseId": 123,
"deliveryInstructions": "<string>",
"customFieldMap": {}
}
headers = {
"x-rr-apikey": "<api-key>",
"x-rr-apitoken": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-rr-apikey': '<api-key>',
'x-rr-apitoken': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
outboundWarehouseId: 123,
destinationType: 'CUSTOM_ADDRESS',
destinationWarehouseId: 123,
deliveryInstructions: '<string>',
customFieldMap: {}
})
};
fetch('https://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create', 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://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create",
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([
'outboundWarehouseId' => 123,
'destinationType' => 'CUSTOM_ADDRESS',
'destinationWarehouseId' => 123,
'deliveryInstructions' => '<string>',
'customFieldMap' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-rr-apikey: <api-key>",
"x-rr-apitoken: <api-key>"
],
]);
$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://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create"
payload := strings.NewReader("{\n \"outboundWarehouseId\": 123,\n \"destinationType\": \"CUSTOM_ADDRESS\",\n \"destinationWarehouseId\": 123,\n \"deliveryInstructions\": \"<string>\",\n \"customFieldMap\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-rr-apikey", "<api-key>")
req.Header.Add("x-rr-apitoken", "<api-key>")
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://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create")
.header("x-rr-apikey", "<api-key>")
.header("x-rr-apitoken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"outboundWarehouseId\": 123,\n \"destinationType\": \"CUSTOM_ADDRESS\",\n \"destinationWarehouseId\": 123,\n \"deliveryInstructions\": \"<string>\",\n \"customFieldMap\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-rr-apikey"] = '<api-key>'
request["x-rr-apitoken"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"outboundWarehouseId\": 123,\n \"destinationType\": \"CUSTOM_ADDRESS\",\n \"destinationWarehouseId\": 123,\n \"deliveryInstructions\": \"<string>\",\n \"customFieldMap\": {}\n}"
response = http.request(request)
puts response.read_body{
"consolidateShippingOrderId": "<string>",
"consolidateShippingOrderNumber": "<string>",
"outboundWarehouseId": 123,
"shippingFee": 123,
"deliveryInstructions": "<string>",
"consolidateShippingOrderStatus": "<string>",
"shipTo": {
"shipToCountry": "<string>",
"shipToContactName": "<string>",
"shipToPhone": "<string>",
"shipToFax": "<string>",
"shipToEmail": "jsmith@example.com",
"shipToCompanyName": "<string>",
"shipToStreet1": "<string>",
"shipToStreet2": "<string>",
"shipToStreet3": "<string>",
"shipToCity": "<string>",
"shipToState": "<string>",
"shipToPostalCode": "<string>",
"shipToType": "<string>"
},
"customFieldMap": {}
}{
"correlationId": "<string>",
"meta": {
"status": 123,
"data": {},
"errorCode": "<string>",
"error": {}
}
}Order
Create consolidate shipping order
POST
/
api
/
outbound
/
consolidateShipping
/
order
/
create
Create consolidate shipping order
curl --request POST \
--url https://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create \
--header 'Content-Type: application/json' \
--header 'x-rr-apikey: <api-key>' \
--header 'x-rr-apitoken: <api-key>' \
--data '
{
"outboundWarehouseId": 123,
"destinationType": "CUSTOM_ADDRESS",
"destinationWarehouseId": 123,
"deliveryInstructions": "<string>",
"customFieldMap": {}
}
'import requests
url = "https://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create"
payload = {
"outboundWarehouseId": 123,
"destinationType": "CUSTOM_ADDRESS",
"destinationWarehouseId": 123,
"deliveryInstructions": "<string>",
"customFieldMap": {}
}
headers = {
"x-rr-apikey": "<api-key>",
"x-rr-apitoken": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-rr-apikey': '<api-key>',
'x-rr-apitoken': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
outboundWarehouseId: 123,
destinationType: 'CUSTOM_ADDRESS',
destinationWarehouseId: 123,
deliveryInstructions: '<string>',
customFieldMap: {}
})
};
fetch('https://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create', 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://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create",
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([
'outboundWarehouseId' => 123,
'destinationType' => 'CUSTOM_ADDRESS',
'destinationWarehouseId' => 123,
'deliveryInstructions' => '<string>',
'customFieldMap' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-rr-apikey: <api-key>",
"x-rr-apitoken: <api-key>"
],
]);
$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://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create"
payload := strings.NewReader("{\n \"outboundWarehouseId\": 123,\n \"destinationType\": \"CUSTOM_ADDRESS\",\n \"destinationWarehouseId\": 123,\n \"deliveryInstructions\": \"<string>\",\n \"customFieldMap\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-rr-apikey", "<api-key>")
req.Header.Add("x-rr-apitoken", "<api-key>")
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://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create")
.header("x-rr-apikey", "<api-key>")
.header("x-rr-apitoken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"outboundWarehouseId\": 123,\n \"destinationType\": \"CUSTOM_ADDRESS\",\n \"destinationWarehouseId\": 123,\n \"deliveryInstructions\": \"<string>\",\n \"customFieldMap\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.returnshelper.com/uat/user/api/outbound/consolidateShipping/order/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-rr-apikey"] = '<api-key>'
request["x-rr-apitoken"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"outboundWarehouseId\": 123,\n \"destinationType\": \"CUSTOM_ADDRESS\",\n \"destinationWarehouseId\": 123,\n \"deliveryInstructions\": \"<string>\",\n \"customFieldMap\": {}\n}"
response = http.request(request)
puts response.read_body{
"consolidateShippingOrderId": "<string>",
"consolidateShippingOrderNumber": "<string>",
"outboundWarehouseId": 123,
"shippingFee": 123,
"deliveryInstructions": "<string>",
"consolidateShippingOrderStatus": "<string>",
"shipTo": {
"shipToCountry": "<string>",
"shipToContactName": "<string>",
"shipToPhone": "<string>",
"shipToFax": "<string>",
"shipToEmail": "jsmith@example.com",
"shipToCompanyName": "<string>",
"shipToStreet1": "<string>",
"shipToStreet2": "<string>",
"shipToStreet3": "<string>",
"shipToCity": "<string>",
"shipToState": "<string>",
"shipToPostalCode": "<string>",
"shipToType": "<string>"
},
"customFieldMap": {}
}{
"correlationId": "<string>",
"meta": {
"status": 123,
"data": {},
"errorCode": "<string>",
"error": {}
}
}Creates a draft consolidate shipping order. An order ships return inventory and FBA inventory from one outbound warehouse to one destination.
To find a destination warehouse, call Get all warehouses and pick one whose
If you leave out
destinationType | Destination | Flow |
|---|---|---|
CUSTOM_ADDRESS (default) | The address in shipTo | Create → add inventory → confirm → the warehouse quotes the shipping fee → confirm shipping quote → mark ready to ship |
RH_WAREHOUSE | A Return Helper warehouse, set by destinationWarehouseId | Create → add inventory → confirm. No quote step: each shipment’s fee is charged when it arrives. |
isConsolidateShippingDestination is true. The Hong Kong warehouse is currently the only RH_WAREHOUSE destination.
Destination rules
| Field | CUSTOM_ADDRESS | RH_WAREHOUSE |
|---|---|---|
destinationWarehouseId | Ignored | Required |
shipTo | Required | Ignored. The order’s shipTo is set to the destination warehouse’s address. |
packagingType | Optional: BOX or PALLET | Ignored, stored as null |
destinationType, the order is a CUSTOM_ADDRESS order.
customFieldMap keys may contain only uppercase letters, digits, hyphen and underscore.
For every step after creation, see Consolidate Shipping flow.
Validation failures
meta.error message | Cause |
|---|---|
Warehouse is not a consolidate shipping destination | destinationWarehouseId is not a destination warehouse |
Has no permission to create consolidate shipping order for warehouse id {id} | Your account cannot use outboundWarehouseId |
Custom fields key can only be uppercase alphanumerics, hyphen or underscore | A customFieldMap key breaks the rule above |
Authorizations
Your API key
Your API token — keep this private
Body
application/json
Where the order ships to. Defaults to CUSTOM_ADDRESS.
Available options:
CUSTOM_ADDRESS, RH_WAREHOUSE Destination warehouse. Required when destinationType is RH_WAREHOUSE; must be a warehouse whose isConsolidateShippingDestination is true. Ignored for CUSTOM_ADDRESS.
CUSTOM_ADDRESS orders only. Ignored for RH_WAREHOUSE.
Available options:
BOX, PALLET Ship-to address. Required when destinationType is CUSTOM_ADDRESS; ignored for RH_WAREHOUSE.
Show child attributes
Show child attributes
Your own key-value pairs. Keys may contain only uppercase letters, digits, hyphen and underscore.
Show child attributes
Show child attributes
Response
Success
Consolidate shipping order ID (ULID)
Show child attributes
Show child attributes
Show child attributes
Show child attributes