Configure EPO Pricing
curl --request POST \
--url https://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"epoId": "EPO-123",
"consignorId": "CGNR-456",
"pricingRules": [
{
"serviceLevel": "EXPRESS",
"basePricePerKg": 3.5,
"minimumCharge": 50,
"currency": "USD",
"volumeDiscounts": [
{
"minWeightKg": 100,
"maxWeightKg": 500,
"discountPercent": 5
}
],
"surcharges": [
{
"type": "FUEL",
"percentage": 12.5,
"fixedAmount": 0.25
}
]
}
],
"validFrom": "2025-01-01",
"validTo": "2025-12-31",
"autoRenew": true,
"notes": "Special pricing agreement for premium customer"
}
'import requests
url = "https://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config"
payload = {
"epoId": "EPO-123",
"consignorId": "CGNR-456",
"pricingRules": [
{
"serviceLevel": "EXPRESS",
"basePricePerKg": 3.5,
"minimumCharge": 50,
"currency": "USD",
"volumeDiscounts": [
{
"minWeightKg": 100,
"maxWeightKg": 500,
"discountPercent": 5
}
],
"surcharges": [
{
"type": "FUEL",
"percentage": 12.5,
"fixedAmount": 0.25
}
]
}
],
"validFrom": "2025-01-01",
"validTo": "2025-12-31",
"autoRenew": True,
"notes": "Special pricing agreement for premium customer"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
epoId: 'EPO-123',
consignorId: 'CGNR-456',
pricingRules: [
{
serviceLevel: 'EXPRESS',
basePricePerKg: 3.5,
minimumCharge: 50,
currency: 'USD',
volumeDiscounts: [{minWeightKg: 100, maxWeightKg: 500, discountPercent: 5}],
surcharges: [{type: 'FUEL', percentage: 12.5, fixedAmount: 0.25}]
}
],
validFrom: '2025-01-01',
validTo: '2025-12-31',
autoRenew: true,
notes: 'Special pricing agreement for premium customer'
})
};
fetch('https://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config', 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://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config",
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([
'epoId' => 'EPO-123',
'consignorId' => 'CGNR-456',
'pricingRules' => [
[
'serviceLevel' => 'EXPRESS',
'basePricePerKg' => 3.5,
'minimumCharge' => 50,
'currency' => 'USD',
'volumeDiscounts' => [
[
'minWeightKg' => 100,
'maxWeightKg' => 500,
'discountPercent' => 5
]
],
'surcharges' => [
[
'type' => 'FUEL',
'percentage' => 12.5,
'fixedAmount' => 0.25
]
]
]
],
'validFrom' => '2025-01-01',
'validTo' => '2025-12-31',
'autoRenew' => true,
'notes' => 'Special pricing agreement for premium customer'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config"
payload := strings.NewReader("{\n \"epoId\": \"EPO-123\",\n \"consignorId\": \"CGNR-456\",\n \"pricingRules\": [\n {\n \"serviceLevel\": \"EXPRESS\",\n \"basePricePerKg\": 3.5,\n \"minimumCharge\": 50,\n \"currency\": \"USD\",\n \"volumeDiscounts\": [\n {\n \"minWeightKg\": 100,\n \"maxWeightKg\": 500,\n \"discountPercent\": 5\n }\n ],\n \"surcharges\": [\n {\n \"type\": \"FUEL\",\n \"percentage\": 12.5,\n \"fixedAmount\": 0.25\n }\n ]\n }\n ],\n \"validFrom\": \"2025-01-01\",\n \"validTo\": \"2025-12-31\",\n \"autoRenew\": true,\n \"notes\": \"Special pricing agreement for premium customer\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"epoId\": \"EPO-123\",\n \"consignorId\": \"CGNR-456\",\n \"pricingRules\": [\n {\n \"serviceLevel\": \"EXPRESS\",\n \"basePricePerKg\": 3.5,\n \"minimumCharge\": 50,\n \"currency\": \"USD\",\n \"volumeDiscounts\": [\n {\n \"minWeightKg\": 100,\n \"maxWeightKg\": 500,\n \"discountPercent\": 5\n }\n ],\n \"surcharges\": [\n {\n \"type\": \"FUEL\",\n \"percentage\": 12.5,\n \"fixedAmount\": 0.25\n }\n ]\n }\n ],\n \"validFrom\": \"2025-01-01\",\n \"validTo\": \"2025-12-31\",\n \"autoRenew\": true,\n \"notes\": \"Special pricing agreement for premium customer\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"epoId\": \"EPO-123\",\n \"consignorId\": \"CGNR-456\",\n \"pricingRules\": [\n {\n \"serviceLevel\": \"EXPRESS\",\n \"basePricePerKg\": 3.5,\n \"minimumCharge\": 50,\n \"currency\": \"USD\",\n \"volumeDiscounts\": [\n {\n \"minWeightKg\": 100,\n \"maxWeightKg\": 500,\n \"discountPercent\": 5\n }\n ],\n \"surcharges\": [\n {\n \"type\": \"FUEL\",\n \"percentage\": 12.5,\n \"fixedAmount\": 0.25\n }\n ]\n }\n ],\n \"validFrom\": \"2025-01-01\",\n \"validTo\": \"2025-12-31\",\n \"autoRenew\": true,\n \"notes\": \"Special pricing agreement for premium customer\"\n}"
response = http.request(request)
puts response.read_body{
"configId": "CONF-789",
"status": "ACTIVE",
"createdAt": "2024-12-20T10:30:00Z",
"createdBy": "user@example.com",
"message": "Pricing configuration successfully created"
}AWB Stock Management
Configure EPO Pricing
Configure different pricing tiers for Express Parcel Operators (EPO) based on specific consignors. This API allows EPO to set custom pricing rules for individual consignors based on volume agreements, service levels, or negotiated rates.
POST
/
api
/
epo
/
pricing-config
Configure EPO Pricing
curl --request POST \
--url https://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"epoId": "EPO-123",
"consignorId": "CGNR-456",
"pricingRules": [
{
"serviceLevel": "EXPRESS",
"basePricePerKg": 3.5,
"minimumCharge": 50,
"currency": "USD",
"volumeDiscounts": [
{
"minWeightKg": 100,
"maxWeightKg": 500,
"discountPercent": 5
}
],
"surcharges": [
{
"type": "FUEL",
"percentage": 12.5,
"fixedAmount": 0.25
}
]
}
],
"validFrom": "2025-01-01",
"validTo": "2025-12-31",
"autoRenew": true,
"notes": "Special pricing agreement for premium customer"
}
'import requests
url = "https://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config"
payload = {
"epoId": "EPO-123",
"consignorId": "CGNR-456",
"pricingRules": [
{
"serviceLevel": "EXPRESS",
"basePricePerKg": 3.5,
"minimumCharge": 50,
"currency": "USD",
"volumeDiscounts": [
{
"minWeightKg": 100,
"maxWeightKg": 500,
"discountPercent": 5
}
],
"surcharges": [
{
"type": "FUEL",
"percentage": 12.5,
"fixedAmount": 0.25
}
]
}
],
"validFrom": "2025-01-01",
"validTo": "2025-12-31",
"autoRenew": True,
"notes": "Special pricing agreement for premium customer"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
epoId: 'EPO-123',
consignorId: 'CGNR-456',
pricingRules: [
{
serviceLevel: 'EXPRESS',
basePricePerKg: 3.5,
minimumCharge: 50,
currency: 'USD',
volumeDiscounts: [{minWeightKg: 100, maxWeightKg: 500, discountPercent: 5}],
surcharges: [{type: 'FUEL', percentage: 12.5, fixedAmount: 0.25}]
}
],
validFrom: '2025-01-01',
validTo: '2025-12-31',
autoRenew: true,
notes: 'Special pricing agreement for premium customer'
})
};
fetch('https://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config', 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://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config",
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([
'epoId' => 'EPO-123',
'consignorId' => 'CGNR-456',
'pricingRules' => [
[
'serviceLevel' => 'EXPRESS',
'basePricePerKg' => 3.5,
'minimumCharge' => 50,
'currency' => 'USD',
'volumeDiscounts' => [
[
'minWeightKg' => 100,
'maxWeightKg' => 500,
'discountPercent' => 5
]
],
'surcharges' => [
[
'type' => 'FUEL',
'percentage' => 12.5,
'fixedAmount' => 0.25
]
]
]
],
'validFrom' => '2025-01-01',
'validTo' => '2025-12-31',
'autoRenew' => true,
'notes' => 'Special pricing agreement for premium customer'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config"
payload := strings.NewReader("{\n \"epoId\": \"EPO-123\",\n \"consignorId\": \"CGNR-456\",\n \"pricingRules\": [\n {\n \"serviceLevel\": \"EXPRESS\",\n \"basePricePerKg\": 3.5,\n \"minimumCharge\": 50,\n \"currency\": \"USD\",\n \"volumeDiscounts\": [\n {\n \"minWeightKg\": 100,\n \"maxWeightKg\": 500,\n \"discountPercent\": 5\n }\n ],\n \"surcharges\": [\n {\n \"type\": \"FUEL\",\n \"percentage\": 12.5,\n \"fixedAmount\": 0.25\n }\n ]\n }\n ],\n \"validFrom\": \"2025-01-01\",\n \"validTo\": \"2025-12-31\",\n \"autoRenew\": true,\n \"notes\": \"Special pricing agreement for premium customer\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"epoId\": \"EPO-123\",\n \"consignorId\": \"CGNR-456\",\n \"pricingRules\": [\n {\n \"serviceLevel\": \"EXPRESS\",\n \"basePricePerKg\": 3.5,\n \"minimumCharge\": 50,\n \"currency\": \"USD\",\n \"volumeDiscounts\": [\n {\n \"minWeightKg\": 100,\n \"maxWeightKg\": 500,\n \"discountPercent\": 5\n }\n ],\n \"surcharges\": [\n {\n \"type\": \"FUEL\",\n \"percentage\": 12.5,\n \"fixedAmount\": 0.25\n }\n ]\n }\n ],\n \"validFrom\": \"2025-01-01\",\n \"validTo\": \"2025-12-31\",\n \"autoRenew\": true,\n \"notes\": \"Special pricing agreement for premium customer\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://1a557de0-701c-477d-bedd-433520441dae.mock.pstmn.io/api/epo/pricing-config")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"epoId\": \"EPO-123\",\n \"consignorId\": \"CGNR-456\",\n \"pricingRules\": [\n {\n \"serviceLevel\": \"EXPRESS\",\n \"basePricePerKg\": 3.5,\n \"minimumCharge\": 50,\n \"currency\": \"USD\",\n \"volumeDiscounts\": [\n {\n \"minWeightKg\": 100,\n \"maxWeightKg\": 500,\n \"discountPercent\": 5\n }\n ],\n \"surcharges\": [\n {\n \"type\": \"FUEL\",\n \"percentage\": 12.5,\n \"fixedAmount\": 0.25\n }\n ]\n }\n ],\n \"validFrom\": \"2025-01-01\",\n \"validTo\": \"2025-12-31\",\n \"autoRenew\": true,\n \"notes\": \"Special pricing agreement for premium customer\"\n}"
response = http.request(request)
puts response.read_body{
"configId": "CONF-789",
"status": "ACTIVE",
"createdAt": "2024-12-20T10:30:00Z",
"createdBy": "user@example.com",
"message": "Pricing configuration successfully created"
}Reference Documentation
For more information on EPO pricing configuration, please refer to:
- Page 32 of “Functional_Requirements_V18 FINAL”: https://belli.sg/4oz9ZuL
Authorizations
ApiKeyAuthApiKeyHeader
Body
application/json
Example:
"EPO-123"
Example:
"CGNR-456"
Show child attributes
Show child attributes
Example:
"2025-01-01"
Example:
"2025-12-31"
Example:
true
Example:
"Special pricing agreement for premium customer"
Response
201 - application/json
Pricing configuration successfully created
⌘I