curl --request POST \
--url https://api.arcuserp.com/v1/pricing-policies \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"product_id": "550e8400-e29b-41d4-a716-446655440000",
"pricing_level_id": "660e8400-e29b-41d4-a716-446655440001",
"min_quantity": 1,
"sell_price": 49.99,
"pricing_type": "regular"
}
'import requests
url = "https://api.arcuserp.com/v1/pricing-policies"
payload = {
"product_id": "550e8400-e29b-41d4-a716-446655440000",
"pricing_level_id": "660e8400-e29b-41d4-a716-446655440001",
"min_quantity": 1,
"sell_price": 49.99,
"pricing_type": "regular"
}
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({
product_id: '550e8400-e29b-41d4-a716-446655440000',
pricing_level_id: '660e8400-e29b-41d4-a716-446655440001',
min_quantity: 1,
sell_price: 49.99,
pricing_type: 'regular'
})
};
fetch('https://api.arcuserp.com/v1/pricing-policies', 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.arcuserp.com/v1/pricing-policies",
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([
'product_id' => '550e8400-e29b-41d4-a716-446655440000',
'pricing_level_id' => '660e8400-e29b-41d4-a716-446655440001',
'min_quantity' => 1,
'sell_price' => 49.99,
'pricing_type' => 'regular'
]),
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://api.arcuserp.com/v1/pricing-policies"
payload := strings.NewReader("{\n \"product_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"pricing_level_id\": \"660e8400-e29b-41d4-a716-446655440001\",\n \"min_quantity\": 1,\n \"sell_price\": 49.99,\n \"pricing_type\": \"regular\"\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://api.arcuserp.com/v1/pricing-policies")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"product_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"pricing_level_id\": \"660e8400-e29b-41d4-a716-446655440001\",\n \"min_quantity\": 1,\n \"sell_price\": 49.99,\n \"pricing_type\": \"regular\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/pricing-policies")
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 \"product_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"pricing_level_id\": \"660e8400-e29b-41d4-a716-446655440001\",\n \"min_quantity\": 1,\n \"sell_price\": 49.99,\n \"pricing_type\": \"regular\"\n}"
response = http.request(request)
puts response.read_body{
"data": {}
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}Create a pricing policy
Creates a quantity-break pricing policy for a product, scoped to a pricing level or to a specific account and optionally further scoped to one variant; the scope combination must be unique among active policies, up to 100 policies per request. Idempotent via the Idempotency-Key header, and requires the products:write scope.
curl --request POST \
--url https://api.arcuserp.com/v1/pricing-policies \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"product_id": "550e8400-e29b-41d4-a716-446655440000",
"pricing_level_id": "660e8400-e29b-41d4-a716-446655440001",
"min_quantity": 1,
"sell_price": 49.99,
"pricing_type": "regular"
}
'import requests
url = "https://api.arcuserp.com/v1/pricing-policies"
payload = {
"product_id": "550e8400-e29b-41d4-a716-446655440000",
"pricing_level_id": "660e8400-e29b-41d4-a716-446655440001",
"min_quantity": 1,
"sell_price": 49.99,
"pricing_type": "regular"
}
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({
product_id: '550e8400-e29b-41d4-a716-446655440000',
pricing_level_id: '660e8400-e29b-41d4-a716-446655440001',
min_quantity: 1,
sell_price: 49.99,
pricing_type: 'regular'
})
};
fetch('https://api.arcuserp.com/v1/pricing-policies', 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.arcuserp.com/v1/pricing-policies",
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([
'product_id' => '550e8400-e29b-41d4-a716-446655440000',
'pricing_level_id' => '660e8400-e29b-41d4-a716-446655440001',
'min_quantity' => 1,
'sell_price' => 49.99,
'pricing_type' => 'regular'
]),
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://api.arcuserp.com/v1/pricing-policies"
payload := strings.NewReader("{\n \"product_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"pricing_level_id\": \"660e8400-e29b-41d4-a716-446655440001\",\n \"min_quantity\": 1,\n \"sell_price\": 49.99,\n \"pricing_type\": \"regular\"\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://api.arcuserp.com/v1/pricing-policies")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"product_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"pricing_level_id\": \"660e8400-e29b-41d4-a716-446655440001\",\n \"min_quantity\": 1,\n \"sell_price\": 49.99,\n \"pricing_type\": \"regular\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/pricing-policies")
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 \"product_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"pricing_level_id\": \"660e8400-e29b-41d4-a716-446655440001\",\n \"min_quantity\": 1,\n \"sell_price\": 49.99,\n \"pricing_type\": \"regular\"\n}"
response = http.request(request)
puts response.read_body{
"data": {}
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}Authorizations
API key issued per entity via Settings > Developers > API Keys.
Each key carries scopes (e.g. orders:read, products:write).
Bearer token format: Authorization: Bearer ark_live_ent_Test keys use ark_test_ent_. Both are issued per entity
via Settings > Developers > API Keys.
Headers
Body
Product this policy applies to
Pricing level UUID. Required if account_id not provided.
Account-specific price override. Required if pricing_level_id not provided.
Scope to a specific variant (omit for product-wide)
'regular' = absolute sell_price; 'multiplier' = sell_price derived from list_price * adjustment
regular, multiplier Minimum order qty to activate this tier. Must be unique per scope.
x >= 1Absolute sell price (pricing_type='regular')
List price snapshot (pricing_type='multiplier')
Multiplier adjustment (pricing_type='multiplier')
Margin percentage for reference
Mark as the default price for this product
Source system identifier (e.g. 'versa', 'bubble')
ID in the source system
Response
Created pricing policy
Was this page helpful?

