curl --request POST \
--url https://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"merchant": {
"code": "acme_inc",
"name": "ACME Inc.",
"custom_fields": {
"is_gift": {
"value": true
},
"order_details": {
"value": "test details"
},
"department": {
"id": 3,
"label": "Shipping"
},
"priority_levels": [
{
"id": 1,
"label": "Urgent"
},
{
"id": 2,
"label": "High"
}
],
"cost_of_goods": {
"amount": 156.99,
"currency": "USD"
},
"assigned_user": {
"value": 42
}
}
},
"default_tpb_group_id": 5,
"default_duties_tpb_group_id": 5
}
'import requests
url = "https://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings"
payload = {
"merchant": {
"code": "acme_inc",
"name": "ACME Inc.",
"custom_fields": {
"is_gift": { "value": True },
"order_details": { "value": "test details" },
"department": {
"id": 3,
"label": "Shipping"
},
"priority_levels": [
{
"id": 1,
"label": "Urgent"
},
{
"id": 2,
"label": "High"
}
],
"cost_of_goods": {
"amount": 156.99,
"currency": "USD"
},
"assigned_user": { "value": 42 }
}
},
"default_tpb_group_id": 5,
"default_duties_tpb_group_id": 5
}
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({
merchant: {
code: 'acme_inc',
name: 'ACME Inc.',
custom_fields: {
is_gift: {value: true},
order_details: {value: 'test details'},
department: {id: 3, label: 'Shipping'},
priority_levels: [{id: 1, label: 'Urgent'}, {id: 2, label: 'High'}],
cost_of_goods: {amount: 156.99, currency: 'USD'},
assigned_user: {value: 42}
}
},
default_tpb_group_id: 5,
default_duties_tpb_group_id: 5
})
};
fetch('https://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings', 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://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings",
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([
'merchant' => [
'code' => 'acme_inc',
'name' => 'ACME Inc.',
'custom_fields' => [
'is_gift' => [
'value' => true
],
'order_details' => [
'value' => 'test details'
],
'department' => [
'id' => 3,
'label' => 'Shipping'
],
'priority_levels' => [
[
'id' => 1,
'label' => 'Urgent'
],
[
'id' => 2,
'label' => 'High'
]
],
'cost_of_goods' => [
'amount' => 156.99,
'currency' => 'USD'
],
'assigned_user' => [
'value' => 42
]
]
],
'default_tpb_group_id' => 5,
'default_duties_tpb_group_id' => 5
]),
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://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings"
payload := strings.NewReader("{\n \"merchant\": {\n \"code\": \"acme_inc\",\n \"name\": \"ACME Inc.\",\n \"custom_fields\": {\n \"is_gift\": {\n \"value\": true\n },\n \"order_details\": {\n \"value\": \"test details\"\n },\n \"department\": {\n \"id\": 3,\n \"label\": \"Shipping\"\n },\n \"priority_levels\": [\n {\n \"id\": 1,\n \"label\": \"Urgent\"\n },\n {\n \"id\": 2,\n \"label\": \"High\"\n }\n ],\n \"cost_of_goods\": {\n \"amount\": 156.99,\n \"currency\": \"USD\"\n },\n \"assigned_user\": {\n \"value\": 42\n }\n }\n },\n \"default_tpb_group_id\": 5,\n \"default_duties_tpb_group_id\": 5\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://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"merchant\": {\n \"code\": \"acme_inc\",\n \"name\": \"ACME Inc.\",\n \"custom_fields\": {\n \"is_gift\": {\n \"value\": true\n },\n \"order_details\": {\n \"value\": \"test details\"\n },\n \"department\": {\n \"id\": 3,\n \"label\": \"Shipping\"\n },\n \"priority_levels\": [\n {\n \"id\": 1,\n \"label\": \"Urgent\"\n },\n {\n \"id\": 2,\n \"label\": \"High\"\n }\n ],\n \"cost_of_goods\": {\n \"amount\": 156.99,\n \"currency\": \"USD\"\n },\n \"assigned_user\": {\n \"value\": 42\n }\n }\n },\n \"default_tpb_group_id\": 5,\n \"default_duties_tpb_group_id\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings")
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 \"merchant\": {\n \"code\": \"acme_inc\",\n \"name\": \"ACME Inc.\",\n \"custom_fields\": {\n \"is_gift\": {\n \"value\": true\n },\n \"order_details\": {\n \"value\": \"test details\"\n },\n \"department\": {\n \"id\": 3,\n \"label\": \"Shipping\"\n },\n \"priority_levels\": [\n {\n \"id\": 1,\n \"label\": \"Urgent\"\n },\n {\n \"id\": 2,\n \"label\": \"High\"\n }\n ],\n \"cost_of_goods\": {\n \"amount\": 156.99,\n \"currency\": \"USD\"\n },\n \"assigned_user\": {\n \"value\": 42\n }\n }\n },\n \"default_tpb_group_id\": 5,\n \"default_duties_tpb_group_id\": 5\n}"
response = http.request(request)
puts response.read_body{
"resource": {
"type": "<string>",
"id": 1
},
"meta": {
"processing_time": 123
}
}{
"errors": [
{
"type": "parameters",
"message": "The supplied parameters are invalid.",
"details": [
{
"key": "hold_until_date",
"message": "The date must be in the future."
}
]
}
]
}{
"errors": [
{
"type": "not_found",
"message": "The server could not find the requested resource."
}
]
}{
"errors": [
{
"type": "unable_to_process",
"message": "The supplied parameters are invalid.",
"details": [
{
"key": "hold_until_date",
"message": "The date must be in the future."
}
]
}
]
}Create Retailer Merchant Setting
Creates a new RetailerMerchantSetting under the given Retailer. Only one row may exist per (retailer, merchant) pair.
curl --request POST \
--url https://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"merchant": {
"code": "acme_inc",
"name": "ACME Inc.",
"custom_fields": {
"is_gift": {
"value": true
},
"order_details": {
"value": "test details"
},
"department": {
"id": 3,
"label": "Shipping"
},
"priority_levels": [
{
"id": 1,
"label": "Urgent"
},
{
"id": 2,
"label": "High"
}
],
"cost_of_goods": {
"amount": 156.99,
"currency": "USD"
},
"assigned_user": {
"value": 42
}
}
},
"default_tpb_group_id": 5,
"default_duties_tpb_group_id": 5
}
'import requests
url = "https://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings"
payload = {
"merchant": {
"code": "acme_inc",
"name": "ACME Inc.",
"custom_fields": {
"is_gift": { "value": True },
"order_details": { "value": "test details" },
"department": {
"id": 3,
"label": "Shipping"
},
"priority_levels": [
{
"id": 1,
"label": "Urgent"
},
{
"id": 2,
"label": "High"
}
],
"cost_of_goods": {
"amount": 156.99,
"currency": "USD"
},
"assigned_user": { "value": 42 }
}
},
"default_tpb_group_id": 5,
"default_duties_tpb_group_id": 5
}
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({
merchant: {
code: 'acme_inc',
name: 'ACME Inc.',
custom_fields: {
is_gift: {value: true},
order_details: {value: 'test details'},
department: {id: 3, label: 'Shipping'},
priority_levels: [{id: 1, label: 'Urgent'}, {id: 2, label: 'High'}],
cost_of_goods: {amount: 156.99, currency: 'USD'},
assigned_user: {value: 42}
}
},
default_tpb_group_id: 5,
default_duties_tpb_group_id: 5
})
};
fetch('https://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings', 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://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings",
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([
'merchant' => [
'code' => 'acme_inc',
'name' => 'ACME Inc.',
'custom_fields' => [
'is_gift' => [
'value' => true
],
'order_details' => [
'value' => 'test details'
],
'department' => [
'id' => 3,
'label' => 'Shipping'
],
'priority_levels' => [
[
'id' => 1,
'label' => 'Urgent'
],
[
'id' => 2,
'label' => 'High'
]
],
'cost_of_goods' => [
'amount' => 156.99,
'currency' => 'USD'
],
'assigned_user' => [
'value' => 42
]
]
],
'default_tpb_group_id' => 5,
'default_duties_tpb_group_id' => 5
]),
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://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings"
payload := strings.NewReader("{\n \"merchant\": {\n \"code\": \"acme_inc\",\n \"name\": \"ACME Inc.\",\n \"custom_fields\": {\n \"is_gift\": {\n \"value\": true\n },\n \"order_details\": {\n \"value\": \"test details\"\n },\n \"department\": {\n \"id\": 3,\n \"label\": \"Shipping\"\n },\n \"priority_levels\": [\n {\n \"id\": 1,\n \"label\": \"Urgent\"\n },\n {\n \"id\": 2,\n \"label\": \"High\"\n }\n ],\n \"cost_of_goods\": {\n \"amount\": 156.99,\n \"currency\": \"USD\"\n },\n \"assigned_user\": {\n \"value\": 42\n }\n }\n },\n \"default_tpb_group_id\": 5,\n \"default_duties_tpb_group_id\": 5\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://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"merchant\": {\n \"code\": \"acme_inc\",\n \"name\": \"ACME Inc.\",\n \"custom_fields\": {\n \"is_gift\": {\n \"value\": true\n },\n \"order_details\": {\n \"value\": \"test details\"\n },\n \"department\": {\n \"id\": 3,\n \"label\": \"Shipping\"\n },\n \"priority_levels\": [\n {\n \"id\": 1,\n \"label\": \"Urgent\"\n },\n {\n \"id\": 2,\n \"label\": \"High\"\n }\n ],\n \"cost_of_goods\": {\n \"amount\": 156.99,\n \"currency\": \"USD\"\n },\n \"assigned_user\": {\n \"value\": 42\n }\n }\n },\n \"default_tpb_group_id\": 5,\n \"default_duties_tpb_group_id\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{base_url_domain}/api/global/v1/shipping/retailers/{id}/merchant-settings")
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 \"merchant\": {\n \"code\": \"acme_inc\",\n \"name\": \"ACME Inc.\",\n \"custom_fields\": {\n \"is_gift\": {\n \"value\": true\n },\n \"order_details\": {\n \"value\": \"test details\"\n },\n \"department\": {\n \"id\": 3,\n \"label\": \"Shipping\"\n },\n \"priority_levels\": [\n {\n \"id\": 1,\n \"label\": \"Urgent\"\n },\n {\n \"id\": 2,\n \"label\": \"High\"\n }\n ],\n \"cost_of_goods\": {\n \"amount\": 156.99,\n \"currency\": \"USD\"\n },\n \"assigned_user\": {\n \"value\": 42\n }\n }\n },\n \"default_tpb_group_id\": 5,\n \"default_duties_tpb_group_id\": 5\n}"
response = http.request(request)
puts response.read_body{
"resource": {
"type": "<string>",
"id": 1
},
"meta": {
"processing_time": 123
}
}{
"errors": [
{
"type": "parameters",
"message": "The supplied parameters are invalid.",
"details": [
{
"key": "hold_until_date",
"message": "The date must be in the future."
}
]
}
]
}{
"errors": [
{
"type": "not_found",
"message": "The server could not find the requested resource."
}
]
}{
"errors": [
{
"type": "unable_to_process",
"message": "The supplied parameters are invalid.",
"details": [
{
"key": "hold_until_date",
"message": "The date must be in the future."
}
]
}
]
}Authorizations
Generate a JWT access token through a Custom Global Integration and provide it with each request in the Authorization header prefixed with "Bearer" and then a single space.
Path Parameters
The id of the parent Retailer.
x >= 1Body
An object conforming to the RetailerMerchantSetting schema to be created. The merchant property is required.
A RetailerMerchantSetting holds per-merchant defaults for a Retailer. Third-party billing
groups are merchant-scoped, so the retailer's TPB defaults live here — one row per
(retailer, merchant).
Merchant these settings apply to. Required on create; cannot be changed.
Show child attributes
Show child attributes
Default shipping third-party billing group ID for order-integration defaults. Use 0 for None (no third-party billing); omit or null to fall back to the order default.
x >= 05
Default duties & taxes third-party billing group ID, applied when the retailer's default_duties_payor is third_party.
x >= 15
Parent Retailer reference. Set from the path; cannot be changed.
Show child attributes
Show child attributes
Was this page helpful?