MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

This API is not authenticated.

Endpoints

POST api/v1/hermes/parcels-groups

Example request:
curl --request POST \
    "http://localhost/api/v1/hermes/parcels-groups" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"CreateParcelsGroup\": {
        \"Apikey\": \"ut\",
        \"ParcelsGroup\": {
            \"MawbDate\": \"2024-06-19T04:40:04\",
            \"ArrivalDate\": \"2024-06-19T04:40:04\"
        }
    }
}"
const url = new URL(
    "http://localhost/api/v1/hermes/parcels-groups"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "CreateParcelsGroup": {
        "Apikey": "ut",
        "ParcelsGroup": {
            "MawbDate": "2024-06-19T04:40:04",
            "ArrivalDate": "2024-06-19T04:40:04"
        }
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/hermes/parcels-groups';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'CreateParcelsGroup' => [
                'Apikey' => 'ut',
                'ParcelsGroup' => [
                    'MawbDate' => '2024-06-19T04:40:04',
                    'ArrivalDate' => '2024-06-19T04:40:04',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
content-security-policy: base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' 'unsafe-eval' 'unsafe-inline' data:;media-src 'self';object-src 'none';script-src 'self' 'unsafe-eval' 'unsafe-inline' https://www.gstatic.com https://cdn.polyfill.io;style-src 'self' 'unsafe-eval' 'unsafe-inline' https://fonts.googleapis.com https://www.gstatic.com https://unpkg.com;font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com data:
access-control-allow-origin: *
set-cookie: XSRF-TOKEN=eyJpdiI6IlozYkV3dFRlbjJUWGF5ZitHeGE5Znc9PSIsInZhbHVlIjoiUnJHWVd2QWhiSW80TE8vcTVGcWlzR3Zya2xidTZ2NENNUUNCRThXRlpjRmg0c0kxNTVNWkNRYU8rdzR1WWI1aUxGSWI4NGhWNkoxV09OUXhOOHN0c3RFMVBBUHhGTzdRZ0M0K3lLY2tvMjQwM3BvQ3ZIaFBFNHdSdXhWN1NMZTQiLCJtYWMiOiI4OTkxMTc3MjVmYTViMTFiNmEzNDA0ZmZiYzE5ZDg4OGY3NDliNjhkZjdmM2M3ZTFhYjFmYmRhMTk0NGUxMzdjIiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:04 GMT; Max-Age=7200; path=/; samesite=lax; saaspatform_session=eyJpdiI6ImErQzd6OEdOditFQjJ0Mld6WlNyQWc9PSIsInZhbHVlIjoiRjNZbm82cFAyS1k1cUNYQVNJcFE0MnpUNG9jZXZ6OWEyelhTUlNwWHBRSGh4MU1pbkQ4bzBDTy9QZTB6b0I4eDI2S3hER0lBU3c0T2tSRHlmaVAxSkNqdTIwS2ZVa1h2RDByWU5DKzh5Q2tIdTV2ekVwd3YrZzZkbnNmQWJ4eGEiLCJtYWMiOiJjNjA5Y2Q0NWQ3NWJhY2JiNTUyY2ZjMzcyN2E4MDUwMzAyYjEwYjIzMTUwZTQ1NGZhZjc4MWQ4MDAyZGE4MjhmIiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:04 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "code": "Unauthorized"
}
 

Request   

POST api/v1/hermes/parcels-groups

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

CreateParcelsGroup   object   
Apikey   string   

Example: ut

ParcelsGroup   object   
MawbDate   string  optional  

Must be a valid date. Example: 2024-06-19T04:40:04

ArrivalDate   string  optional  

Must be a valid date. Example: 2024-06-19T04:40:04

DELETE api/v1/hermes/parcels-groups

Example request:
curl --request DELETE \
    "http://localhost/api/v1/hermes/parcels-groups" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"CancelParcelsGroup\": {
        \"Apikey\": \"exercitationem\"
    }
}"
const url = new URL(
    "http://localhost/api/v1/hermes/parcels-groups"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "CancelParcelsGroup": {
        "Apikey": "exercitationem"
    }
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/hermes/parcels-groups';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'CancelParcelsGroup' => [
                'Apikey' => 'exercitationem',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
content-security-policy: base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' 'unsafe-eval' 'unsafe-inline' data:;media-src 'self';object-src 'none';script-src 'self' 'unsafe-eval' 'unsafe-inline' https://www.gstatic.com https://cdn.polyfill.io;style-src 'self' 'unsafe-eval' 'unsafe-inline' https://fonts.googleapis.com https://www.gstatic.com https://unpkg.com;font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com data:
access-control-allow-origin: *
set-cookie: XSRF-TOKEN=eyJpdiI6IkE4Q1BCS2ROQnB4Vm5nbkk4citSdFE9PSIsInZhbHVlIjoiZCtHTkhhaWZ2MG8wL005OFhCSnRNWkRjaTk5cnBwdmRadnp5N3lzS09SZ0RpWlhyMVBnSzZnb1lQMks5YUZybEpBMHRXaVlENG5WMU9jVEVaVWZvWmZpbExKWHA2NWNIR0tLQ2hldE9rTDZhTnNnQkFjVTlrNGZlZHMvano5M00iLCJtYWMiOiI4ZDhkOGZiMDg4MGUxNTQ2ZWQ0NDBjYTUwZTUwMTRiYTdlMzFmYmNlYzQ5NjJkMTdlY2M5NGYyOTViZmYxNmM1IiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:04 GMT; Max-Age=7200; path=/; samesite=lax; saaspatform_session=eyJpdiI6ImlWbUpBS05SWUZpb3pNMm1wTTNmS2c9PSIsInZhbHVlIjoiaXRkNjBmWUg1TU5OMytiR3BpbjVrVmVqSmFRNnFTRitSRTQ1ZTBhbENaNXliTVhjUnI5dm9ScjRxL1piM3lnT05JdnEzWk8xTk54TlJac1FNWUtFeDJZZDY1Q3BCc01meXRQR1ErYU80L09sSWhOSXNrVDdwMEc5UG9rY1ZrOVUiLCJtYWMiOiI5ZTQ2MGU1NjM4ZGUzNDUxNDU2MmEyYWFkYjg5Mzc4N2E2NjhhMzhiYzU2YjI3ZDBkZWE5NDIzOTE3ODAxODllIiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:04 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "code": "Unauthorized"
}
 

Request   

DELETE api/v1/hermes/parcels-groups

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

CancelParcelsGroup   object  optional  
Apikey   string   

Example: exercitationem

POST api/v1/hermes/parcels

Example request:
curl --request POST \
    "http://localhost/api/v1/hermes/parcels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"CreateParcel\": {
        \"Apikey\": \"quisquam\",
        \"IsTest\": true,
        \"Parcel\": {
            \"Source\": \"HERMES_CORP\",
            \"ReasonForExport\": \"omnis\",
            \"TrackingNumber\": \"itaque\",
            \"Manifest\": false,
            \"LabelType\": \"earum\",
            \"LabelFormat\": \"et\",
            \"FulfilmentOrigin\": \"sed\",
            \"ShipperReferenceID\": \"nobis\",
            \"CustomerReference1\": \"fugiat\",
            \"CustomerReference2\": \"minima\",
            \"Shipper\": {
                \"AccountNumber\": \"quos\",
                \"ContactName\": \"alias\",
                \"Company\": \"hic\",
                \"Address1\": \"non\",
                \"Address2\": \"qui\",
                \"Address3\": \"iste\",
                \"City\": \"fuga\",
                \"Country\": \"necessitatibus\",
                \"Zip\": \"doloribus\",
                \"CountryCode\": \"autem\",
                \"Phone\": \"beatae\",
                \"Email\": \"maud.barrows@example.com\",
                \"Vat\": \"libero\",
                \"TaxID\": \"placeat\",
                \"Eori\": \"officiis\",
                \"RegNumber\": \"animi\",
                \"Url\": \"https:\\/\\/www.johnston.org\\/ex-repellat-tempore-vero-vitae-aut-dolorem\"
            },
            \"Consignee\": {
                \"ContactName\": \"itaque\",
                \"Company\": \"asperiores\",
                \"Address1\": \"alias\",
                \"Address2\": \"quia\",
                \"Address3\": \"quis\",
                \"City\": \"quod\",
                \"Country\": \"earum\",
                \"Zip\": \"qui\",
                \"CountryCode\": \"voluptas\",
                \"Phone\": \"quo\",
                \"Email\": \"amy74@example.com\",
                \"Vat\": \"nemo\",
                \"PudoID\": \"nostrum\",
                \"NationalID\": \"quia\",
                \"PassportNumber\": \"eaque\",
                \"PassportIssueDate\": \"corrupti\",
                \"PassportExpiryDate\": \"repellat\",
                \"PassportIssuedBy\": \"iusto\",
                \"PassportIssueCountryCode\": \"GB\",
                \"ContactNameLocal\": \"aliquam\",
                \"TaxID\": \"illo\"
            },
            \"PaymentReferenceNumber\": \"id\",
            \"PaymentDateTime\": \"tenetur\",
            \"PaymentProvider\": \"voluptatum\",
            \"Service\": \"HERMES_INTERNATIONAL\",
            \"Collect\": \"molestiae\",
            \"Pieces\": \"1\",
            \"Weight\": \"3.02\",
            \"WeightUnit\": \"K\",
            \"Length\": \"4\",
            \"Width\": \"4\",
            \"Height\": \"4\",
            \"DimUnit\": \"cm\",
            \"DescriptionOfGoods\": \"quam\",
            \"Value\": \"iste\",
            \"ShippingCost\": \"voluptatem\",
            \"Currency\": \"GBP\",
            \"MerchantARN\": \"nulla\",
            \"PurchaserABN\": \"incidunt\",
            \"GSTExemptionCode\": \"officiis\",
            \"Terms\": \"DDP\",
            \"CODAmount\": \"132.99\",
            \"CODCurrency\": \"sed\",
            \"DangerousGoods\": false,
            \"ShipperBrandingID\": \"debitis\",
            \"Items\": [
                {
                    \"Description\": \"Dolorem repellat omnis aliquam dolores.\",
                    \"SkuCode\": \"est\",
                    \"HsCode\": \"beatae\",
                    \"CountryOfOrigin\": \"esse\",
                    \"PurchaseUrl\": \"http:\\/\\/www.pacocha.com\\/error-porro-officia-perspiciatis-assumenda\",
                    \"ImageUrl\": \"http:\\/\\/www.hills.org\\/\",
                    \"Quantity\": \"ut\",
                    \"Value\": \"dolore\",
                    \"DetailedDescription\": \"cumque\",
                    \"ItemComposition\": \"100% Cotton\",
                    \"DG\": {
                        \"Type\": \"vero\",
                        \"ProductType\": \"quasi\",
                        \"Capacity\": \"beatae\",
                        \"CapacityUOM\": \"reiciendis\"
                    }
                }
            ]
        }
    }
}"
const url = new URL(
    "http://localhost/api/v1/hermes/parcels"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "CreateParcel": {
        "Apikey": "quisquam",
        "IsTest": true,
        "Parcel": {
            "Source": "HERMES_CORP",
            "ReasonForExport": "omnis",
            "TrackingNumber": "itaque",
            "Manifest": false,
            "LabelType": "earum",
            "LabelFormat": "et",
            "FulfilmentOrigin": "sed",
            "ShipperReferenceID": "nobis",
            "CustomerReference1": "fugiat",
            "CustomerReference2": "minima",
            "Shipper": {
                "AccountNumber": "quos",
                "ContactName": "alias",
                "Company": "hic",
                "Address1": "non",
                "Address2": "qui",
                "Address3": "iste",
                "City": "fuga",
                "Country": "necessitatibus",
                "Zip": "doloribus",
                "CountryCode": "autem",
                "Phone": "beatae",
                "Email": "maud.barrows@example.com",
                "Vat": "libero",
                "TaxID": "placeat",
                "Eori": "officiis",
                "RegNumber": "animi",
                "Url": "https:\/\/www.johnston.org\/ex-repellat-tempore-vero-vitae-aut-dolorem"
            },
            "Consignee": {
                "ContactName": "itaque",
                "Company": "asperiores",
                "Address1": "alias",
                "Address2": "quia",
                "Address3": "quis",
                "City": "quod",
                "Country": "earum",
                "Zip": "qui",
                "CountryCode": "voluptas",
                "Phone": "quo",
                "Email": "amy74@example.com",
                "Vat": "nemo",
                "PudoID": "nostrum",
                "NationalID": "quia",
                "PassportNumber": "eaque",
                "PassportIssueDate": "corrupti",
                "PassportExpiryDate": "repellat",
                "PassportIssuedBy": "iusto",
                "PassportIssueCountryCode": "GB",
                "ContactNameLocal": "aliquam",
                "TaxID": "illo"
            },
            "PaymentReferenceNumber": "id",
            "PaymentDateTime": "tenetur",
            "PaymentProvider": "voluptatum",
            "Service": "HERMES_INTERNATIONAL",
            "Collect": "molestiae",
            "Pieces": "1",
            "Weight": "3.02",
            "WeightUnit": "K",
            "Length": "4",
            "Width": "4",
            "Height": "4",
            "DimUnit": "cm",
            "DescriptionOfGoods": "quam",
            "Value": "iste",
            "ShippingCost": "voluptatem",
            "Currency": "GBP",
            "MerchantARN": "nulla",
            "PurchaserABN": "incidunt",
            "GSTExemptionCode": "officiis",
            "Terms": "DDP",
            "CODAmount": "132.99",
            "CODCurrency": "sed",
            "DangerousGoods": false,
            "ShipperBrandingID": "debitis",
            "Items": [
                {
                    "Description": "Dolorem repellat omnis aliquam dolores.",
                    "SkuCode": "est",
                    "HsCode": "beatae",
                    "CountryOfOrigin": "esse",
                    "PurchaseUrl": "http:\/\/www.pacocha.com\/error-porro-officia-perspiciatis-assumenda",
                    "ImageUrl": "http:\/\/www.hills.org\/",
                    "Quantity": "ut",
                    "Value": "dolore",
                    "DetailedDescription": "cumque",
                    "ItemComposition": "100% Cotton",
                    "DG": {
                        "Type": "vero",
                        "ProductType": "quasi",
                        "Capacity": "beatae",
                        "CapacityUOM": "reiciendis"
                    }
                }
            ]
        }
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/hermes/parcels';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'CreateParcel' => [
                'Apikey' => 'quisquam',
                'IsTest' => true,
                'Parcel' => [
                    'Source' => 'HERMES_CORP',
                    'ReasonForExport' => 'omnis',
                    'TrackingNumber' => 'itaque',
                    'Manifest' => false,
                    'LabelType' => 'earum',
                    'LabelFormat' => 'et',
                    'FulfilmentOrigin' => 'sed',
                    'ShipperReferenceID' => 'nobis',
                    'CustomerReference1' => 'fugiat',
                    'CustomerReference2' => 'minima',
                    'Shipper' => [
                        'AccountNumber' => 'quos',
                        'ContactName' => 'alias',
                        'Company' => 'hic',
                        'Address1' => 'non',
                        'Address2' => 'qui',
                        'Address3' => 'iste',
                        'City' => 'fuga',
                        'Country' => 'necessitatibus',
                        'Zip' => 'doloribus',
                        'CountryCode' => 'autem',
                        'Phone' => 'beatae',
                        'Email' => 'maud.barrows@example.com',
                        'Vat' => 'libero',
                        'TaxID' => 'placeat',
                        'Eori' => 'officiis',
                        'RegNumber' => 'animi',
                        'Url' => 'https://www.johnston.org/ex-repellat-tempore-vero-vitae-aut-dolorem',
                    ],
                    'Consignee' => [
                        'ContactName' => 'itaque',
                        'Company' => 'asperiores',
                        'Address1' => 'alias',
                        'Address2' => 'quia',
                        'Address3' => 'quis',
                        'City' => 'quod',
                        'Country' => 'earum',
                        'Zip' => 'qui',
                        'CountryCode' => 'voluptas',
                        'Phone' => 'quo',
                        'Email' => 'amy74@example.com',
                        'Vat' => 'nemo',
                        'PudoID' => 'nostrum',
                        'NationalID' => 'quia',
                        'PassportNumber' => 'eaque',
                        'PassportIssueDate' => 'corrupti',
                        'PassportExpiryDate' => 'repellat',
                        'PassportIssuedBy' => 'iusto',
                        'PassportIssueCountryCode' => 'GB',
                        'ContactNameLocal' => 'aliquam',
                        'TaxID' => 'illo',
                    ],
                    'PaymentReferenceNumber' => 'id',
                    'PaymentDateTime' => 'tenetur',
                    'PaymentProvider' => 'voluptatum',
                    'Service' => 'HERMES_INTERNATIONAL',
                    'Collect' => 'molestiae',
                    'Pieces' => '1',
                    'Weight' => '3.02',
                    'WeightUnit' => 'K',
                    'Length' => '4',
                    'Width' => '4',
                    'Height' => '4',
                    'DimUnit' => 'cm',
                    'DescriptionOfGoods' => 'quam',
                    'Value' => 'iste',
                    'ShippingCost' => 'voluptatem',
                    'Currency' => 'GBP',
                    'MerchantARN' => 'nulla',
                    'PurchaserABN' => 'incidunt',
                    'GSTExemptionCode' => 'officiis',
                    'Terms' => 'DDP',
                    'CODAmount' => '132.99',
                    'CODCurrency' => 'sed',
                    'DangerousGoods' => false,
                    'ShipperBrandingID' => 'debitis',
                    'Items' => [
                        [
                            'Description' => 'Dolorem repellat omnis aliquam dolores.',
                            'SkuCode' => 'est',
                            'HsCode' => 'beatae',
                            'CountryOfOrigin' => 'esse',
                            'PurchaseUrl' => 'http://www.pacocha.com/error-porro-officia-perspiciatis-assumenda',
                            'ImageUrl' => 'http://www.hills.org/',
                            'Quantity' => 'ut',
                            'Value' => 'dolore',
                            'DetailedDescription' => 'cumque',
                            'ItemComposition' => '100% Cotton',
                            'DG' => [
                                'Type' => 'vero',
                                'ProductType' => 'quasi',
                                'Capacity' => 'beatae',
                                'CapacityUOM' => 'reiciendis',
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
content-security-policy: base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' 'unsafe-eval' 'unsafe-inline' data:;media-src 'self';object-src 'none';script-src 'self' 'unsafe-eval' 'unsafe-inline' https://www.gstatic.com https://cdn.polyfill.io;style-src 'self' 'unsafe-eval' 'unsafe-inline' https://fonts.googleapis.com https://www.gstatic.com https://unpkg.com;font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com data:
access-control-allow-origin: *
set-cookie: XSRF-TOKEN=eyJpdiI6IklpUzRxRFlyOWpmclMxTzdhbTdSUkE9PSIsInZhbHVlIjoiQitwQWRFNHRBczJhU00zcklUblpzbHY3ZW5QcFRRYnVzOXV4Y0JhQjI3cHQ3ZTFqMEROQ25mNll4UzJpTWNrQ1JIWE1JbWNWQ090R0RSOVhRSkdua1JKdGlTYkFycHN2c3FHWGNtUDhOS1l3akJWdzc3QUF4WUtuMmk1RTJ1b3MiLCJtYWMiOiJiODkyZGUxZTU1YjM0ZjEyMDhjMzQ0YmRkYzM1NDI1OTUwZTI1YmJjOTk5MTM4NDQyYTBjZWUyMDU0YjgzMDg5IiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:03 GMT; Max-Age=7200; path=/; samesite=lax; saaspatform_session=eyJpdiI6IlF0SEhnNEFPRUZ3UXZIck9oUHJpRXc9PSIsInZhbHVlIjoiNVdaOFlGaWhyOSszdGV5ckRGNk1vRGp3MWpzWXdic1NqeWk1MVhIMGUxZWw4dUlXQ1ovOWt1R1ZpdGVCeTJUb0FJUHhrVndwc2oyV3ZiNEtJWUxCdjVJTmh2cmREaWh6SGNoU1FWaHJaejNIY1doQTBlYUJsSWFpaUp1d1FmNVMiLCJtYWMiOiJlOWM0NzNkNDdhODJkYWY3MWZlZWRkZTVhZGM4NmY0ODAwZjRhMzMyMDJjODY2ZTdhZDVlM2Q4MDU5NzNlZTRjIiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:03 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "code": "Unauthorized"
}
 

Request   

POST api/v1/hermes/parcels

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

CreateParcel   object   
Apikey   string   

API key Example: quisquam

IsTest   boolean  optional  

Test mode flag. true - test mode Example: true

Parcel   object   

The Parcel details

Source   string   

Use “HERMES_CORP”. Example: HERMES_CORP

ReasonForExport   string   

Reason for export Example: omnis

TrackingNumber   string   

Hermes Assigned Tracking Number Example: itaque

Manifest   boolean  optional  

Example: false

LabelType   string  optional  

Example: earum

LabelFormat   string  optional  

in:PNG,PDF,ZPL200,ZPL300 Example: et

FulfilmentOrigin   string  optional  

Example: sed

ShipperReferenceID   string  optional  

Example: nobis

CustomerReference1   string  optional  

Example: fugiat

CustomerReference2   string  optional  

Example: minima

Shipper   object   

The Shipper details

AccountNumber   string  optional  

Hermes Account Number, will be used to send back billing data Example: quos

ContactName   string  optional  

Example: alias

Company   string  optional  

Example: hic

Address1   string   

Example: non

Address2   string  optional  

Example: qui

Address3   string  optional  

Example: iste

City   string   

Example: fuga

Country   string  optional  

Example: necessitatibus

Zip   string  optional  

Required for Countries/Territories that use Zip/Postal codes Example: doloribus

CountryCode   string   

ISO Country/Territory Code Eg. “GB”. Example: autem

Phone   string  optional  

Example: beatae

Email   email   

Example: maud.barrows@example.com

Vat   string  optional  

Example: libero

TaxID   string  optional  

Norway VOEC / Import EORI number Example: placeat

Eori   string  optional  

Shipper UK EORI Number Example: officiis

RegNumber   string  optional  

Shipper OSS/IOSS Registration Number Required for IOSS shipments to destination EU Example: animi

Url   string  optional  

Required for USA destination Example: https://www.johnston.org/ex-repellat-tempore-vero-vitae-aut-dolorem

Consignee   object   

The Consignee details

ContactName   string   

Example: itaque

Company   string  optional  

Example: asperiores

Address1   string   

Example: alias

Address2   string  optional  

Example: quia

Address3   string  optional  

Example: quis

City   string   

Example: quod

Country   string  optional  

Required for USA and Canada destinations (Use 2 letter State Codes). Required for Australia destination (Use 2 / 3 letter state code). Example: earum

Zip   string  optional  

Required for Destination Countries/Territories that use Zip/Post codes. Example: qui

CountryCode   string   

ISO Country/Territory Code. Example: voluptas

Phone   string  optional  

Required for PUDO services and shipments going to HU, CZ, PL, SK and HR. (must be mobile), otherwise recommended. International format only (eg. +441268123456). Example: quo

Email   email  optional  

Example: amy74@example.com

Vat   string  optional  

Example: nemo

PudoID   string   

Required for PUDO services. Pickup ID of the pickup point. Example: nostrum

NationalID   string  optional  

Example: quia

PassportNumber   string  optional  

Required depending on destination/route Example: eaque

PassportIssueDate   date_format:d/m/Y  optional  

Required depending on destination/route, DD/MM/YYYY format Example: corrupti

PassportExpiryDate   date_format:d/m/Y  optional  

Required depending on destination/route, DD/MM/YYYY format Example: repellat

PassportIssuedBy   string  optional  

Required depending on destination/route Example: iusto

PassportIssueCountryCode   string  optional  

Required depending on destination/route. Example: GB

ContactNameLocal   string  optional  

Required depending on destination/route Example: aliquam

TaxID   string  optional  

Required depending on destination/route Example: illo

PaymentReferenceNumber   string  optional  

Required depending on destination/route Example: id

PaymentDateTime   string  optional  

Required depending on destination/route Format: YYYY-MM-DD HH:MM:SS Example: tenetur

PaymentProvider   string  optional  

Required depending on destination/route Example: voluptatum

Service   string  optional  

Use ‘HERMES_INTERNATIONAL’. Example: HERMES_INTERNATIONAL

Collect   string  optional  

Example: molestiae

Pieces   string  optional  

Always “1”. Example: 1

Weight   string  optional  

Eg. “3.02”. Example: 3.02

WeightUnit   string   

“K” = Kg, “L” = Lbs. Example: K

Length   numeric  optional  

In Cms. Example: 4

Width   numeric  optional  

In Cms. Example: 4

Height   numeric  optional  

In Cms. Example: 4

DimUnit   string  optional  

“cm” only. Example: cm

DescriptionOfGoods   string  optional  

Overall Shipment Description Example: quam

Value   numeric   

Overall Shipment Value Example: iste

ShippingCost   numeric  optional  

Overall Cost of Shipping Example: voluptatem

Currency   string   

ISO Currency Code. Example: GBP

MerchantARN   string  optional  

Merchant ARN required for GST calculation (Australia) Example: nulla

PurchaserABN   string  optional  

Purchaser ABN If applicable (Australia) Example: incidunt

GSTExemptionCode   string  optional  

If GST has not been charged, then provide the exemption code (Australia) Example: officiis

Terms   string  optional  

“DDU” or “DDP”. Example: DDP

CODAmount   numeric  optional  

Cash on Delivery Amount. Example: 132.99

CODCurrency   string  optional  

Cash on Delivery Currency. 3 Characters. Example GBP Example: sed

DangerousGoods   boolean  optional  

Example: false

ShipperBrandingID   string  optional  

Example: debitis

Items   object[]  optional  
Description   string  optional  

Required for outside EU Example: Dolorem repellat omnis aliquam dolores.

SkuCode   string  optional  

For China and Russia, please populate with SKU Code Example: est

HsCode   string  optional  

For China Direct, please populate with HS Code Example: beatae

CountryOfOrigin   string  optional  

ISO Country/Territory Code Example: esse

PurchaseUrl   string  optional  

Direct link to the product required for Russia Example: http://www.pacocha.com/error-porro-officia-perspiciatis-assumenda

ImageUrl   string  optional  

Direct link to the product image Example: http://www.hills.org/

Quantity   numeric  optional  

Total number of pieces in this item Required for outside EU Example: ut

Value   numeric  optional  

Total value of this item (all pieces). Required for outside EU Example: dolore

DetailedDescription   string  optional  

Detailed description of the item Example: cumque

ItemComposition   string  optional  

Composition of the item. Example: 100% Cotton

DG   object  optional  

Dangerous goods info (if present parcel's DangerousGoods should be true)

Type   string  optional  

Dangerous goods type. 2 Characters. Example LQ Example: vero

ProductType   string  optional  

Dangerous goods product type. Example UN1266 Example: quasi

Capacity   numeric  optional  

Capacity. 6 digits, 3 decimal points. Example 1.000 Example: beatae

CapacityUOM   string  optional  

CapacityUOM. “l“ = Litres, “ml“ = Millilitres, “g“ = Grams. Example g Example: reiciendis

POST api/v1/hermes/parcels/register

Example request:
curl --request POST \
    "http://localhost/api/v1/hermes/parcels/register" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"CreateParcel\": {
        \"Apikey\": \"nostrum\",
        \"IsTest\": true,
        \"Parcel\": {
            \"Source\": \"HERMES_CORP\",
            \"ReasonForExport\": \"debitis\",
            \"TrackingNumber\": \"quis\",
            \"Manifest\": true,
            \"LabelType\": \"optio\",
            \"LabelFormat\": \"qui\",
            \"FulfilmentOrigin\": \"nobis\",
            \"ShipperReferenceID\": \"et\",
            \"CustomerReference1\": \"sit\",
            \"CustomerReference2\": \"animi\",
            \"Shipper\": {
                \"AccountNumber\": \"doloremque\",
                \"ContactName\": \"ut\",
                \"Company\": \"temporibus\",
                \"Address1\": \"quaerat\",
                \"Address2\": \"repellat\",
                \"Address3\": \"animi\",
                \"City\": \"voluptas\",
                \"Country\": \"asperiores\",
                \"Zip\": \"qui\",
                \"CountryCode\": \"ducimus\",
                \"Phone\": \"mollitia\",
                \"Email\": \"osbaldo94@example.net\",
                \"Vat\": \"velit\",
                \"TaxID\": \"sapiente\",
                \"Eori\": \"voluptates\",
                \"RegNumber\": \"molestias\",
                \"Url\": \"https:\\/\\/www.hilpert.com\\/ipsum-eos-possimus-illo-omnis-ullam-velit-voluptate\"
            },
            \"Consignee\": {
                \"ContactName\": \"repellat\",
                \"Company\": \"maiores\",
                \"Address1\": \"adipisci\",
                \"Address2\": \"quis\",
                \"Address3\": \"et\",
                \"City\": \"dolorum\",
                \"Country\": \"sed\",
                \"Zip\": \"repellendus\",
                \"CountryCode\": \"et\",
                \"Phone\": \"veritatis\",
                \"Email\": \"kcarter@example.com\",
                \"Vat\": \"et\",
                \"PudoID\": \"eligendi\",
                \"NationalID\": \"quisquam\",
                \"PassportNumber\": \"blanditiis\",
                \"PassportIssueDate\": \"dicta\",
                \"PassportExpiryDate\": \"nostrum\",
                \"PassportIssuedBy\": \"laboriosam\",
                \"PassportIssueCountryCode\": \"GB\",
                \"ContactNameLocal\": \"ab\",
                \"TaxID\": \"qui\"
            },
            \"PaymentReferenceNumber\": \"voluptatem\",
            \"PaymentDateTime\": \"culpa\",
            \"PaymentProvider\": \"id\",
            \"Service\": \"HERMES_INTERNATIONAL\",
            \"Collect\": \"accusantium\",
            \"Pieces\": \"1\",
            \"Weight\": \"3.02\",
            \"WeightUnit\": \"K\",
            \"Length\": \"4\",
            \"Width\": \"4\",
            \"Height\": \"4\",
            \"DimUnit\": \"cm\",
            \"DescriptionOfGoods\": \"amet\",
            \"Value\": \"accusantium\",
            \"ShippingCost\": \"eos\",
            \"Currency\": \"GBP\",
            \"MerchantARN\": \"aut\",
            \"PurchaserABN\": \"placeat\",
            \"GSTExemptionCode\": \"quo\",
            \"Terms\": \"DDP\",
            \"CODAmount\": \"132.99\",
            \"CODCurrency\": \"placeat\",
            \"DangerousGoods\": false,
            \"ShipperBrandingID\": \"quo\",
            \"Items\": [
                {
                    \"Description\": \"Laudantium et quidem ab aperiam totam tempora quia.\",
                    \"SkuCode\": \"dignissimos\",
                    \"HsCode\": \"harum\",
                    \"CountryOfOrigin\": \"consequuntur\",
                    \"PurchaseUrl\": \"https:\\/\\/www.conroy.com\\/laborum-veritatis-sapiente-et-ullam\",
                    \"ImageUrl\": \"https:\\/\\/oreilly.com\\/odio-qui-suscipit-est-earum.html\",
                    \"Quantity\": \"cum\",
                    \"Value\": \"sequi\",
                    \"DetailedDescription\": \"voluptatum\",
                    \"ItemComposition\": \"100% Cotton\",
                    \"DG\": {
                        \"Type\": \"quasi\",
                        \"ProductType\": \"et\",
                        \"Capacity\": \"pariatur\",
                        \"CapacityUOM\": \"voluptatem\"
                    }
                }
            ]
        }
    }
}"
const url = new URL(
    "http://localhost/api/v1/hermes/parcels/register"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "CreateParcel": {
        "Apikey": "nostrum",
        "IsTest": true,
        "Parcel": {
            "Source": "HERMES_CORP",
            "ReasonForExport": "debitis",
            "TrackingNumber": "quis",
            "Manifest": true,
            "LabelType": "optio",
            "LabelFormat": "qui",
            "FulfilmentOrigin": "nobis",
            "ShipperReferenceID": "et",
            "CustomerReference1": "sit",
            "CustomerReference2": "animi",
            "Shipper": {
                "AccountNumber": "doloremque",
                "ContactName": "ut",
                "Company": "temporibus",
                "Address1": "quaerat",
                "Address2": "repellat",
                "Address3": "animi",
                "City": "voluptas",
                "Country": "asperiores",
                "Zip": "qui",
                "CountryCode": "ducimus",
                "Phone": "mollitia",
                "Email": "osbaldo94@example.net",
                "Vat": "velit",
                "TaxID": "sapiente",
                "Eori": "voluptates",
                "RegNumber": "molestias",
                "Url": "https:\/\/www.hilpert.com\/ipsum-eos-possimus-illo-omnis-ullam-velit-voluptate"
            },
            "Consignee": {
                "ContactName": "repellat",
                "Company": "maiores",
                "Address1": "adipisci",
                "Address2": "quis",
                "Address3": "et",
                "City": "dolorum",
                "Country": "sed",
                "Zip": "repellendus",
                "CountryCode": "et",
                "Phone": "veritatis",
                "Email": "kcarter@example.com",
                "Vat": "et",
                "PudoID": "eligendi",
                "NationalID": "quisquam",
                "PassportNumber": "blanditiis",
                "PassportIssueDate": "dicta",
                "PassportExpiryDate": "nostrum",
                "PassportIssuedBy": "laboriosam",
                "PassportIssueCountryCode": "GB",
                "ContactNameLocal": "ab",
                "TaxID": "qui"
            },
            "PaymentReferenceNumber": "voluptatem",
            "PaymentDateTime": "culpa",
            "PaymentProvider": "id",
            "Service": "HERMES_INTERNATIONAL",
            "Collect": "accusantium",
            "Pieces": "1",
            "Weight": "3.02",
            "WeightUnit": "K",
            "Length": "4",
            "Width": "4",
            "Height": "4",
            "DimUnit": "cm",
            "DescriptionOfGoods": "amet",
            "Value": "accusantium",
            "ShippingCost": "eos",
            "Currency": "GBP",
            "MerchantARN": "aut",
            "PurchaserABN": "placeat",
            "GSTExemptionCode": "quo",
            "Terms": "DDP",
            "CODAmount": "132.99",
            "CODCurrency": "placeat",
            "DangerousGoods": false,
            "ShipperBrandingID": "quo",
            "Items": [
                {
                    "Description": "Laudantium et quidem ab aperiam totam tempora quia.",
                    "SkuCode": "dignissimos",
                    "HsCode": "harum",
                    "CountryOfOrigin": "consequuntur",
                    "PurchaseUrl": "https:\/\/www.conroy.com\/laborum-veritatis-sapiente-et-ullam",
                    "ImageUrl": "https:\/\/oreilly.com\/odio-qui-suscipit-est-earum.html",
                    "Quantity": "cum",
                    "Value": "sequi",
                    "DetailedDescription": "voluptatum",
                    "ItemComposition": "100% Cotton",
                    "DG": {
                        "Type": "quasi",
                        "ProductType": "et",
                        "Capacity": "pariatur",
                        "CapacityUOM": "voluptatem"
                    }
                }
            ]
        }
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/hermes/parcels/register';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'CreateParcel' => [
                'Apikey' => 'nostrum',
                'IsTest' => true,
                'Parcel' => [
                    'Source' => 'HERMES_CORP',
                    'ReasonForExport' => 'debitis',
                    'TrackingNumber' => 'quis',
                    'Manifest' => true,
                    'LabelType' => 'optio',
                    'LabelFormat' => 'qui',
                    'FulfilmentOrigin' => 'nobis',
                    'ShipperReferenceID' => 'et',
                    'CustomerReference1' => 'sit',
                    'CustomerReference2' => 'animi',
                    'Shipper' => [
                        'AccountNumber' => 'doloremque',
                        'ContactName' => 'ut',
                        'Company' => 'temporibus',
                        'Address1' => 'quaerat',
                        'Address2' => 'repellat',
                        'Address3' => 'animi',
                        'City' => 'voluptas',
                        'Country' => 'asperiores',
                        'Zip' => 'qui',
                        'CountryCode' => 'ducimus',
                        'Phone' => 'mollitia',
                        'Email' => 'osbaldo94@example.net',
                        'Vat' => 'velit',
                        'TaxID' => 'sapiente',
                        'Eori' => 'voluptates',
                        'RegNumber' => 'molestias',
                        'Url' => 'https://www.hilpert.com/ipsum-eos-possimus-illo-omnis-ullam-velit-voluptate',
                    ],
                    'Consignee' => [
                        'ContactName' => 'repellat',
                        'Company' => 'maiores',
                        'Address1' => 'adipisci',
                        'Address2' => 'quis',
                        'Address3' => 'et',
                        'City' => 'dolorum',
                        'Country' => 'sed',
                        'Zip' => 'repellendus',
                        'CountryCode' => 'et',
                        'Phone' => 'veritatis',
                        'Email' => 'kcarter@example.com',
                        'Vat' => 'et',
                        'PudoID' => 'eligendi',
                        'NationalID' => 'quisquam',
                        'PassportNumber' => 'blanditiis',
                        'PassportIssueDate' => 'dicta',
                        'PassportExpiryDate' => 'nostrum',
                        'PassportIssuedBy' => 'laboriosam',
                        'PassportIssueCountryCode' => 'GB',
                        'ContactNameLocal' => 'ab',
                        'TaxID' => 'qui',
                    ],
                    'PaymentReferenceNumber' => 'voluptatem',
                    'PaymentDateTime' => 'culpa',
                    'PaymentProvider' => 'id',
                    'Service' => 'HERMES_INTERNATIONAL',
                    'Collect' => 'accusantium',
                    'Pieces' => '1',
                    'Weight' => '3.02',
                    'WeightUnit' => 'K',
                    'Length' => '4',
                    'Width' => '4',
                    'Height' => '4',
                    'DimUnit' => 'cm',
                    'DescriptionOfGoods' => 'amet',
                    'Value' => 'accusantium',
                    'ShippingCost' => 'eos',
                    'Currency' => 'GBP',
                    'MerchantARN' => 'aut',
                    'PurchaserABN' => 'placeat',
                    'GSTExemptionCode' => 'quo',
                    'Terms' => 'DDP',
                    'CODAmount' => '132.99',
                    'CODCurrency' => 'placeat',
                    'DangerousGoods' => false,
                    'ShipperBrandingID' => 'quo',
                    'Items' => [
                        [
                            'Description' => 'Laudantium et quidem ab aperiam totam tempora quia.',
                            'SkuCode' => 'dignissimos',
                            'HsCode' => 'harum',
                            'CountryOfOrigin' => 'consequuntur',
                            'PurchaseUrl' => 'https://www.conroy.com/laborum-veritatis-sapiente-et-ullam',
                            'ImageUrl' => 'https://oreilly.com/odio-qui-suscipit-est-earum.html',
                            'Quantity' => 'cum',
                            'Value' => 'sequi',
                            'DetailedDescription' => 'voluptatum',
                            'ItemComposition' => '100% Cotton',
                            'DG' => [
                                'Type' => 'quasi',
                                'ProductType' => 'et',
                                'Capacity' => 'pariatur',
                                'CapacityUOM' => 'voluptatem',
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
content-security-policy: base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' 'unsafe-eval' 'unsafe-inline' data:;media-src 'self';object-src 'none';script-src 'self' 'unsafe-eval' 'unsafe-inline' https://www.gstatic.com https://cdn.polyfill.io;style-src 'self' 'unsafe-eval' 'unsafe-inline' https://fonts.googleapis.com https://www.gstatic.com https://unpkg.com;font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com data:
access-control-allow-origin: *
set-cookie: XSRF-TOKEN=eyJpdiI6IlRrenplTjJVT3d0NG44akJ6ZGJ2OVE9PSIsInZhbHVlIjoiZHdDY2dUQi9xZjh5TjlKNFcxUi8zTlE0d2srbldNVkJSTjhKZytITDNPZGRic3dIZVh4aHoyOVc1cDc2K1RLbXRGUW1VN3duRG91MDZDMllVSS9pWk1aYU5Bazlsb0JUS1dUU1R3MWZmVHNEQlVhd1gxYkNPR1hyeTFyQURVL28iLCJtYWMiOiJlMTdkNWQyODg1ZjkxYTFmNWIzYWNkMWY4YmZmOGE1MjMyMjFmYmEzY2ZiMzMwNGMyNzFhMjVmNDI1MTA1ZmUyIiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:04 GMT; Max-Age=7200; path=/; samesite=lax; saaspatform_session=eyJpdiI6ImxzY3lWeWY0eldxVGhsSFJhaHN3Qmc9PSIsInZhbHVlIjoiY3ZWTUphRWhqQld6MXJzYmR3ZXV5aGlTdktXditwZzkrTmVNMGI1UTdhZ3RjYlVhR0RvQzBSU3A2aUs3SDZoNVhxWi9jNUx6TWJZVVIwUUcybVFlWmtrakNxcGN4QzhXbVE4V2RTWVhhV3phOEMxOGZaNW9oZExMUXhsUVN4SlMiLCJtYWMiOiI3YjUyM2VkODc0YjNkZTZkZGE1YWJlZmQxNzBiODRmOWYwZGMxYWU3MGZjM2I1NTJiNTlmYTgyNDBhZTgwNTc0IiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:04 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "code": "Unauthorized"
}
 

Request   

POST api/v1/hermes/parcels/register

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

CreateParcel   object   
Apikey   string   

API key Example: nostrum

IsTest   boolean  optional  

Test mode flag. true - test mode Example: true

Parcel   object   

The Parcel details

Source   string   

Use “HERMES_CORP”. Example: HERMES_CORP

ReasonForExport   string   

Reason for export Example: debitis

TrackingNumber   string   

Hermes Assigned Tracking Number Example: quis

Manifest   boolean  optional  

Example: true

LabelType   string  optional  

Example: optio

LabelFormat   string  optional  

in:PNG,PDF,ZPL200,ZPL300 Example: qui

FulfilmentOrigin   string  optional  

Example: nobis

ShipperReferenceID   string  optional  

Example: et

CustomerReference1   string  optional  

Example: sit

CustomerReference2   string  optional  

Example: animi

Shipper   object   

The Shipper details

AccountNumber   string  optional  

Hermes Account Number, will be used to send back billing data Example: doloremque

ContactName   string  optional  

Example: ut

Company   string  optional  

Example: temporibus

Address1   string   

Example: quaerat

Address2   string  optional  

Example: repellat

Address3   string  optional  

Example: animi

City   string   

Example: voluptas

Country   string  optional  

Example: asperiores

Zip   string  optional  

Required for Countries/Territories that use Zip/Postal codes Example: qui

CountryCode   string   

ISO Country/Territory Code Eg. “GB”. Example: ducimus

Phone   string  optional  

Example: mollitia

Email   email   

Example: osbaldo94@example.net

Vat   string  optional  

Example: velit

TaxID   string  optional  

Norway VOEC / Import EORI number Example: sapiente

Eori   string  optional  

Shipper UK EORI Number Example: voluptates

RegNumber   string  optional  

Shipper OSS/IOSS Registration Number Required for IOSS shipments to destination EU Example: molestias

Url   string  optional  

Required for USA destination Example: https://www.hilpert.com/ipsum-eos-possimus-illo-omnis-ullam-velit-voluptate

Consignee   object   

The Consignee details

ContactName   string   

Example: repellat

Company   string  optional  

Example: maiores

Address1   string   

Example: adipisci

Address2   string  optional  

Example: quis

Address3   string  optional  

Example: et

City   string   

Example: dolorum

Country   string  optional  

Required for USA and Canada destinations (Use 2 letter State Codes). Required for Australia destination (Use 2 / 3 letter state code). Example: sed

Zip   string  optional  

Required for Destination Countries/Territories that use Zip/Post codes. Example: repellendus

CountryCode   string   

ISO Country/Territory Code. Example: et

Phone   string  optional  

Required for PUDO services and shipments going to HU, CZ, PL, SK and HR. (must be mobile), otherwise recommended. International format only (eg. +441268123456). Example: veritatis

Email   email  optional  

Example: kcarter@example.com

Vat   string  optional  

Example: et

PudoID   string   

Required for PUDO services. Pickup ID of the pickup point. Example: eligendi

NationalID   string  optional  

Example: quisquam

PassportNumber   string  optional  

Required depending on destination/route Example: blanditiis

PassportIssueDate   date_format:d/m/Y  optional  

Required depending on destination/route, DD/MM/YYYY format Example: dicta

PassportExpiryDate   date_format:d/m/Y  optional  

Required depending on destination/route, DD/MM/YYYY format Example: nostrum

PassportIssuedBy   string  optional  

Required depending on destination/route Example: laboriosam

PassportIssueCountryCode   string  optional  

Required depending on destination/route. Example: GB

ContactNameLocal   string  optional  

Required depending on destination/route Example: ab

TaxID   string  optional  

Required depending on destination/route Example: qui

PaymentReferenceNumber   string  optional  

Required depending on destination/route Example: voluptatem

PaymentDateTime   string  optional  

Required depending on destination/route Format: YYYY-MM-DD HH:MM:SS Example: culpa

PaymentProvider   string  optional  

Required depending on destination/route Example: id

Service   string  optional  

Use ‘HERMES_INTERNATIONAL’. Example: HERMES_INTERNATIONAL

Collect   string  optional  

Example: accusantium

Pieces   string  optional  

Always “1”. Example: 1

Weight   string  optional  

Eg. “3.02”. Example: 3.02

WeightUnit   string   

“K” = Kg, “L” = Lbs. Example: K

Length   numeric  optional  

In Cms. Example: 4

Width   numeric  optional  

In Cms. Example: 4

Height   numeric  optional  

In Cms. Example: 4

DimUnit   string  optional  

“cm” only. Example: cm

DescriptionOfGoods   string  optional  

Overall Shipment Description Example: amet

Value   numeric   

Overall Shipment Value Example: accusantium

ShippingCost   numeric  optional  

Overall Cost of Shipping Example: eos

Currency   string   

ISO Currency Code. Example: GBP

MerchantARN   string  optional  

Merchant ARN required for GST calculation (Australia) Example: aut

PurchaserABN   string  optional  

Purchaser ABN If applicable (Australia) Example: placeat

GSTExemptionCode   string  optional  

If GST has not been charged, then provide the exemption code (Australia) Example: quo

Terms   string  optional  

“DDU” or “DDP”. Example: DDP

CODAmount   numeric  optional  

Cash on Delivery Amount. Example: 132.99

CODCurrency   string  optional  

Cash on Delivery Currency. 3 Characters. Example GBP Example: placeat

DangerousGoods   boolean  optional  

Example: false

ShipperBrandingID   string  optional  

Example: quo

Items   object[]  optional  
Description   string  optional  

Required for outside EU Example: Laudantium et quidem ab aperiam totam tempora quia.

SkuCode   string  optional  

For China and Russia, please populate with SKU Code Example: dignissimos

HsCode   string  optional  

For China Direct, please populate with HS Code Example: harum

CountryOfOrigin   string  optional  

ISO Country/Territory Code Example: consequuntur

PurchaseUrl   string  optional  

Direct link to the product required for Russia Example: https://www.conroy.com/laborum-veritatis-sapiente-et-ullam

ImageUrl   string  optional  

Direct link to the product image Example: https://oreilly.com/odio-qui-suscipit-est-earum.html

Quantity   numeric  optional  

Total number of pieces in this item Required for outside EU Example: cum

Value   numeric  optional  

Total value of this item (all pieces). Required for outside EU Example: sequi

DetailedDescription   string  optional  

Detailed description of the item Example: voluptatum

ItemComposition   string  optional  

Composition of the item. Example: 100% Cotton

DG   object  optional  

Dangerous goods info (if present parcel's DangerousGoods should be true)

Type   string  optional  

Dangerous goods type. 2 Characters. Example LQ Example: quasi

ProductType   string  optional  

Dangerous goods product type. Example UN1266 Example: et

Capacity   numeric  optional  

Capacity. 6 digits, 3 decimal points. Example 1.000 Example: pariatur

CapacityUOM   string  optional  

CapacityUOM. “l“ = Litres, “ml“ = Millilitres, “g“ = Grams. Example g Example: voluptatem

POST api/v1/hermes/parcels/accept

Example request:
curl --request POST \
    "http://localhost/api/v1/hermes/parcels/accept" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"AcceptParcel\": {
        \"Apikey\": \"ea\",
        \"IsTest\": true,
        \"Parcel\": {
            \"TrackingNumber\": \"alias\",
            \"ProcessedDateTime\": \"2024-06-19T04:40:04\",
            \"Weight\": 420426660.03,
            \"Height\": 0.7576,
            \"Width\": 13903229.08165,
            \"Length\": 12408.69
        }
    }
}"
const url = new URL(
    "http://localhost/api/v1/hermes/parcels/accept"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "AcceptParcel": {
        "Apikey": "ea",
        "IsTest": true,
        "Parcel": {
            "TrackingNumber": "alias",
            "ProcessedDateTime": "2024-06-19T04:40:04",
            "Weight": 420426660.03,
            "Height": 0.7576,
            "Width": 13903229.08165,
            "Length": 12408.69
        }
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/hermes/parcels/accept';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'AcceptParcel' => [
                'Apikey' => 'ea',
                'IsTest' => true,
                'Parcel' => [
                    'TrackingNumber' => 'alias',
                    'ProcessedDateTime' => '2024-06-19T04:40:04',
                    'Weight' => 420426660.03,
                    'Height' => 0.7576,
                    'Width' => 13903229.08165,
                    'Length' => 12408.69,
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
content-security-policy: base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' 'unsafe-eval' 'unsafe-inline' data:;media-src 'self';object-src 'none';script-src 'self' 'unsafe-eval' 'unsafe-inline' https://www.gstatic.com https://cdn.polyfill.io;style-src 'self' 'unsafe-eval' 'unsafe-inline' https://fonts.googleapis.com https://www.gstatic.com https://unpkg.com;font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com data:
access-control-allow-origin: *
set-cookie: XSRF-TOKEN=eyJpdiI6InU3ZWN0eW5FOVZkZEdwTlIrWEdwVFE9PSIsInZhbHVlIjoiV0ljb0dncGJPWGRQYjZGbTU4RzFwU1U5RG0xTmsyTThKYWh4MWNNRWVyRE1DSEwrcVk3bTZHenhKVUV3cjVCQWk2dTFLZWtDM2xSby8vb2ViQ1IzQjIvZUczeEorcjVnMDZYUEdDc3BXS2FKdThETGJTcEVCTUl3VE1jcnFCemsiLCJtYWMiOiIwMGNmMjRlMDUxMmQxODlhNzZlZmQ0MTQ0ZjZlNDEwYzcyMGNlNGY0OGI0MzM0MjFiOWU1NjAyMzY5ODQxMzIyIiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:04 GMT; Max-Age=7200; path=/; samesite=lax; saaspatform_session=eyJpdiI6ImVRNWpPQi9VSTVlblZLa2xQYkFmWWc9PSIsInZhbHVlIjoiV21pMFdOV1dCTWhaNFREbGR3Z25CbUNoNHhGOGIxeXlmMThRYnpKWGY3cmk5MFo2aHdKSDlhUEVEWERSZmpjdDFGZmsrSy80N3JXb0EwaHB2c2Fjenk5NlpFZklUaW1wTHBaTnlWN3R1em1mdCtVdUNBaStpbS85WG15YWtPcUgiLCJtYWMiOiIxZDAzZTM2NTExZWVhZTU5YzVmOWU0NWZkZGVmNzdmMjdmZGFmMWM3YzA4ZmUzNTdjMDVlMjkyYjlhNjA0Yjk0IiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:04 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "code": "Unauthorized"
}
 

Request   

POST api/v1/hermes/parcels/accept

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

AcceptParcel   object   
Apikey   string   

Example: ea

IsTest   boolean   

Example: true

Parcel   object   
TrackingNumber   string   

Example: alias

ProcessedDateTime   string  optional  

Must be a valid date. Example: 2024-06-19T04:40:04

Weight   number   

Example: 420426660.03

Height   number  optional  

Example: 0.7576

Width   number  optional  

Example: 13903229.08165

Length   number  optional  

Example: 12408.69

POST api/v1/hermes/determinerouting

Example request:
curl --request POST \
    "http://localhost/api/v1/hermes/determinerouting" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"CreateParcel\": {
        \"Apikey\": \"in\",
        \"IsTest\": true,
        \"Parcel\": {
            \"Source\": \"HERMES_CORP\",
            \"ReasonForExport\": \"tempora\",
            \"TrackingNumber\": \"ut\",
            \"Manifest\": false,
            \"LabelType\": \"aut\",
            \"LabelFormat\": \"debitis\",
            \"FulfilmentOrigin\": \"corporis\",
            \"ShipperReferenceID\": \"mollitia\",
            \"CustomerReference1\": \"atque\",
            \"CustomerReference2\": \"rerum\",
            \"Shipper\": {
                \"AccountNumber\": \"voluptas\",
                \"ContactName\": \"quia\",
                \"Company\": \"eos\",
                \"Address1\": \"qui\",
                \"Address2\": \"eaque\",
                \"Address3\": \"sit\",
                \"City\": \"non\",
                \"Country\": \"quia\",
                \"Zip\": \"nostrum\",
                \"CountryCode\": \"est\",
                \"Phone\": \"ut\",
                \"Email\": \"weissnat.trent@example.com\",
                \"Vat\": \"ipsum\",
                \"TaxID\": \"enim\",
                \"Eori\": \"optio\",
                \"RegNumber\": \"est\",
                \"Url\": \"http:\\/\\/hodkiewicz.com\\/eligendi-officiis-in-saepe-aliquid-voluptas-et\"
            },
            \"Consignee\": {
                \"ContactName\": \"est\",
                \"Company\": \"tempore\",
                \"Address1\": \"magnam\",
                \"Address2\": \"tenetur\",
                \"Address3\": \"quod\",
                \"City\": \"vitae\",
                \"Country\": \"excepturi\",
                \"Zip\": \"totam\",
                \"CountryCode\": \"itaque\",
                \"Phone\": \"at\",
                \"Email\": \"carson25@example.com\",
                \"Vat\": \"quia\",
                \"PudoID\": \"quam\",
                \"NationalID\": \"et\",
                \"PassportNumber\": \"iusto\",
                \"PassportIssueDate\": \"qui\",
                \"PassportExpiryDate\": \"non\",
                \"PassportIssuedBy\": \"est\",
                \"PassportIssueCountryCode\": \"GB\",
                \"ContactNameLocal\": \"molestiae\",
                \"TaxID\": \"culpa\"
            },
            \"PaymentReferenceNumber\": \"quia\",
            \"PaymentDateTime\": \"non\",
            \"PaymentProvider\": \"occaecati\",
            \"Service\": \"HERMES_INTERNATIONAL\",
            \"Collect\": \"sit\",
            \"Pieces\": \"1\",
            \"Weight\": \"3.02\",
            \"WeightUnit\": \"K\",
            \"Length\": \"4\",
            \"Width\": \"4\",
            \"Height\": \"4\",
            \"DimUnit\": \"cm\",
            \"DescriptionOfGoods\": \"voluptates\",
            \"Value\": \"ad\",
            \"ShippingCost\": \"dolores\",
            \"Currency\": \"GBP\",
            \"MerchantARN\": \"qui\",
            \"PurchaserABN\": \"qui\",
            \"GSTExemptionCode\": \"quam\",
            \"Terms\": \"DDP\",
            \"CODAmount\": \"132.99\",
            \"CODCurrency\": \"provident\",
            \"DangerousGoods\": true,
            \"ShipperBrandingID\": \"dolorum\",
            \"Items\": [
                {
                    \"Description\": \"Facere eius non error quidem.\",
                    \"SkuCode\": \"dignissimos\",
                    \"HsCode\": \"qui\",
                    \"CountryOfOrigin\": \"ut\",
                    \"PurchaseUrl\": \"http:\\/\\/www.mcglynn.net\\/animi-eum-ut-harum-architecto-aspernatur.html\",
                    \"ImageUrl\": \"http:\\/\\/blanda.info\\/sunt-repellat-quas-aperiam-vel-et-et.html\",
                    \"Quantity\": \"voluptatem\",
                    \"Value\": \"quia\",
                    \"DetailedDescription\": \"et\",
                    \"ItemComposition\": \"100% Cotton\",
                    \"DG\": {
                        \"Type\": \"nisi\",
                        \"ProductType\": \"adipisci\",
                        \"Capacity\": \"porro\",
                        \"CapacityUOM\": \"quod\"
                    }
                }
            ]
        }
    }
}"
const url = new URL(
    "http://localhost/api/v1/hermes/determinerouting"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "CreateParcel": {
        "Apikey": "in",
        "IsTest": true,
        "Parcel": {
            "Source": "HERMES_CORP",
            "ReasonForExport": "tempora",
            "TrackingNumber": "ut",
            "Manifest": false,
            "LabelType": "aut",
            "LabelFormat": "debitis",
            "FulfilmentOrigin": "corporis",
            "ShipperReferenceID": "mollitia",
            "CustomerReference1": "atque",
            "CustomerReference2": "rerum",
            "Shipper": {
                "AccountNumber": "voluptas",
                "ContactName": "quia",
                "Company": "eos",
                "Address1": "qui",
                "Address2": "eaque",
                "Address3": "sit",
                "City": "non",
                "Country": "quia",
                "Zip": "nostrum",
                "CountryCode": "est",
                "Phone": "ut",
                "Email": "weissnat.trent@example.com",
                "Vat": "ipsum",
                "TaxID": "enim",
                "Eori": "optio",
                "RegNumber": "est",
                "Url": "http:\/\/hodkiewicz.com\/eligendi-officiis-in-saepe-aliquid-voluptas-et"
            },
            "Consignee": {
                "ContactName": "est",
                "Company": "tempore",
                "Address1": "magnam",
                "Address2": "tenetur",
                "Address3": "quod",
                "City": "vitae",
                "Country": "excepturi",
                "Zip": "totam",
                "CountryCode": "itaque",
                "Phone": "at",
                "Email": "carson25@example.com",
                "Vat": "quia",
                "PudoID": "quam",
                "NationalID": "et",
                "PassportNumber": "iusto",
                "PassportIssueDate": "qui",
                "PassportExpiryDate": "non",
                "PassportIssuedBy": "est",
                "PassportIssueCountryCode": "GB",
                "ContactNameLocal": "molestiae",
                "TaxID": "culpa"
            },
            "PaymentReferenceNumber": "quia",
            "PaymentDateTime": "non",
            "PaymentProvider": "occaecati",
            "Service": "HERMES_INTERNATIONAL",
            "Collect": "sit",
            "Pieces": "1",
            "Weight": "3.02",
            "WeightUnit": "K",
            "Length": "4",
            "Width": "4",
            "Height": "4",
            "DimUnit": "cm",
            "DescriptionOfGoods": "voluptates",
            "Value": "ad",
            "ShippingCost": "dolores",
            "Currency": "GBP",
            "MerchantARN": "qui",
            "PurchaserABN": "qui",
            "GSTExemptionCode": "quam",
            "Terms": "DDP",
            "CODAmount": "132.99",
            "CODCurrency": "provident",
            "DangerousGoods": true,
            "ShipperBrandingID": "dolorum",
            "Items": [
                {
                    "Description": "Facere eius non error quidem.",
                    "SkuCode": "dignissimos",
                    "HsCode": "qui",
                    "CountryOfOrigin": "ut",
                    "PurchaseUrl": "http:\/\/www.mcglynn.net\/animi-eum-ut-harum-architecto-aspernatur.html",
                    "ImageUrl": "http:\/\/blanda.info\/sunt-repellat-quas-aperiam-vel-et-et.html",
                    "Quantity": "voluptatem",
                    "Value": "quia",
                    "DetailedDescription": "et",
                    "ItemComposition": "100% Cotton",
                    "DG": {
                        "Type": "nisi",
                        "ProductType": "adipisci",
                        "Capacity": "porro",
                        "CapacityUOM": "quod"
                    }
                }
            ]
        }
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/hermes/determinerouting';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'CreateParcel' => [
                'Apikey' => 'in',
                'IsTest' => true,
                'Parcel' => [
                    'Source' => 'HERMES_CORP',
                    'ReasonForExport' => 'tempora',
                    'TrackingNumber' => 'ut',
                    'Manifest' => false,
                    'LabelType' => 'aut',
                    'LabelFormat' => 'debitis',
                    'FulfilmentOrigin' => 'corporis',
                    'ShipperReferenceID' => 'mollitia',
                    'CustomerReference1' => 'atque',
                    'CustomerReference2' => 'rerum',
                    'Shipper' => [
                        'AccountNumber' => 'voluptas',
                        'ContactName' => 'quia',
                        'Company' => 'eos',
                        'Address1' => 'qui',
                        'Address2' => 'eaque',
                        'Address3' => 'sit',
                        'City' => 'non',
                        'Country' => 'quia',
                        'Zip' => 'nostrum',
                        'CountryCode' => 'est',
                        'Phone' => 'ut',
                        'Email' => 'weissnat.trent@example.com',
                        'Vat' => 'ipsum',
                        'TaxID' => 'enim',
                        'Eori' => 'optio',
                        'RegNumber' => 'est',
                        'Url' => 'http://hodkiewicz.com/eligendi-officiis-in-saepe-aliquid-voluptas-et',
                    ],
                    'Consignee' => [
                        'ContactName' => 'est',
                        'Company' => 'tempore',
                        'Address1' => 'magnam',
                        'Address2' => 'tenetur',
                        'Address3' => 'quod',
                        'City' => 'vitae',
                        'Country' => 'excepturi',
                        'Zip' => 'totam',
                        'CountryCode' => 'itaque',
                        'Phone' => 'at',
                        'Email' => 'carson25@example.com',
                        'Vat' => 'quia',
                        'PudoID' => 'quam',
                        'NationalID' => 'et',
                        'PassportNumber' => 'iusto',
                        'PassportIssueDate' => 'qui',
                        'PassportExpiryDate' => 'non',
                        'PassportIssuedBy' => 'est',
                        'PassportIssueCountryCode' => 'GB',
                        'ContactNameLocal' => 'molestiae',
                        'TaxID' => 'culpa',
                    ],
                    'PaymentReferenceNumber' => 'quia',
                    'PaymentDateTime' => 'non',
                    'PaymentProvider' => 'occaecati',
                    'Service' => 'HERMES_INTERNATIONAL',
                    'Collect' => 'sit',
                    'Pieces' => '1',
                    'Weight' => '3.02',
                    'WeightUnit' => 'K',
                    'Length' => '4',
                    'Width' => '4',
                    'Height' => '4',
                    'DimUnit' => 'cm',
                    'DescriptionOfGoods' => 'voluptates',
                    'Value' => 'ad',
                    'ShippingCost' => 'dolores',
                    'Currency' => 'GBP',
                    'MerchantARN' => 'qui',
                    'PurchaserABN' => 'qui',
                    'GSTExemptionCode' => 'quam',
                    'Terms' => 'DDP',
                    'CODAmount' => '132.99',
                    'CODCurrency' => 'provident',
                    'DangerousGoods' => true,
                    'ShipperBrandingID' => 'dolorum',
                    'Items' => [
                        [
                            'Description' => 'Facere eius non error quidem.',
                            'SkuCode' => 'dignissimos',
                            'HsCode' => 'qui',
                            'CountryOfOrigin' => 'ut',
                            'PurchaseUrl' => 'http://www.mcglynn.net/animi-eum-ut-harum-architecto-aspernatur.html',
                            'ImageUrl' => 'http://blanda.info/sunt-repellat-quas-aperiam-vel-et-et.html',
                            'Quantity' => 'voluptatem',
                            'Value' => 'quia',
                            'DetailedDescription' => 'et',
                            'ItemComposition' => '100% Cotton',
                            'DG' => [
                                'Type' => 'nisi',
                                'ProductType' => 'adipisci',
                                'Capacity' => 'porro',
                                'CapacityUOM' => 'quod',
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
content-security-policy: base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' 'unsafe-eval' 'unsafe-inline' data:;media-src 'self';object-src 'none';script-src 'self' 'unsafe-eval' 'unsafe-inline' https://www.gstatic.com https://cdn.polyfill.io;style-src 'self' 'unsafe-eval' 'unsafe-inline' https://fonts.googleapis.com https://www.gstatic.com https://unpkg.com;font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com data:
access-control-allow-origin: *
set-cookie: XSRF-TOKEN=eyJpdiI6IjRrcTBubHZodGprbHdsQUs0bm54dEE9PSIsInZhbHVlIjoiZlplOU9hd0JNUi9mblplYzdyc1BaSUUySjZHQllUdmthZmI5RDQ5V0dYdWszVkNWZFdlK1hPcHJwdCtjWG5lSTVYdE0yZVA0RUY1VTRtc2dvRGo0M1VLQkJ1QTJPTUFVakY5bk1nRFBvRXRiRXBPMmxSbmxTMDB0WG8rc2ZVRnQiLCJtYWMiOiJiMjkxYWU3NGQ1NjY2NWQzNTRhOTE2MDJhNjIyYjU5NWRhNGRlOTExMzVlYjg1Mzg4NDZhODhkODQ4N2EyOTdjIiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:04 GMT; Max-Age=7200; path=/; samesite=lax; saaspatform_session=eyJpdiI6InNEaVdIWk1YZTR1RUJnUTFDeU9KRUE9PSIsInZhbHVlIjoiNXFJamIyanN0R2JHOHAzWUZ1MEFqenQzWW4ydk5XWlJJUW16L05XeXlaVHpZbzNYaytiR0FYcEo4bmd2TW9EUkFuTjBDcVFzSVVYUDZzeVg4N0ZjaUlpTmwxa0d5ZUo4SElrNkJJTzVKRFB5ZEdGVlJYeVNpSzlDUkpzaFJ4bFEiLCJtYWMiOiI1MGNlODg2MTAyNDZmMjdjMWM1ZGU1MmE3NTg1YzQ4MTAyYjVhYzlmY2JiYTcyZDFhM2UwZWY1YjhkZTE4Y2UzIiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:04 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "code": "Unauthorized"
}
 

Request   

POST api/v1/hermes/determinerouting

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

CreateParcel   object   
Apikey   string   

API key Example: in

IsTest   boolean  optional  

Test mode flag. true - test mode Example: true

Parcel   object   

The Parcel details

Source   string   

Use “HERMES_CORP”. Example: HERMES_CORP

ReasonForExport   string   

Reason for export Example: tempora

TrackingNumber   string   

Hermes Assigned Tracking Number Example: ut

Manifest   boolean  optional  

Example: false

LabelType   string  optional  

Example: aut

LabelFormat   string  optional  

in:PNG,PDF,ZPL200,ZPL300 Example: debitis

FulfilmentOrigin   string  optional  

Example: corporis

ShipperReferenceID   string  optional  

Example: mollitia

CustomerReference1   string  optional  

Example: atque

CustomerReference2   string  optional  

Example: rerum

Shipper   object   

The Shipper details

AccountNumber   string  optional  

Hermes Account Number, will be used to send back billing data Example: voluptas

ContactName   string  optional  

Example: quia

Company   string  optional  

Example: eos

Address1   string   

Example: qui

Address2   string  optional  

Example: eaque

Address3   string  optional  

Example: sit

City   string   

Example: non

Country   string  optional  

Example: quia

Zip   string  optional  

Required for Countries/Territories that use Zip/Postal codes Example: nostrum

CountryCode   string   

ISO Country/Territory Code Eg. “GB”. Example: est

Phone   string  optional  

Example: ut

Email   email   

Example: weissnat.trent@example.com

Vat   string  optional  

Example: ipsum

TaxID   string  optional  

Norway VOEC / Import EORI number Example: enim

Eori   string  optional  

Shipper UK EORI Number Example: optio

RegNumber   string  optional  

Shipper OSS/IOSS Registration Number Required for IOSS shipments to destination EU Example: est

Url   string  optional  

Required for USA destination Example: http://hodkiewicz.com/eligendi-officiis-in-saepe-aliquid-voluptas-et

Consignee   object   

The Consignee details

ContactName   string   

Example: est

Company   string  optional  

Example: tempore

Address1   string   

Example: magnam

Address2   string  optional  

Example: tenetur

Address3   string  optional  

Example: quod

City   string   

Example: vitae

Country   string  optional  

Required for USA and Canada destinations (Use 2 letter State Codes). Required for Australia destination (Use 2 / 3 letter state code). Example: excepturi

Zip   string  optional  

Required for Destination Countries/Territories that use Zip/Post codes. Example: totam

CountryCode   string   

ISO Country/Territory Code. Example: itaque

Phone   string  optional  

Required for PUDO services and shipments going to HU, CZ, PL, SK and HR. (must be mobile), otherwise recommended. International format only (eg. +441268123456). Example: at

Email   email  optional  

Example: carson25@example.com

Vat   string  optional  

Example: quia

PudoID   string   

Required for PUDO services. Pickup ID of the pickup point. Example: quam

NationalID   string  optional  

Example: et

PassportNumber   string  optional  

Required depending on destination/route Example: iusto

PassportIssueDate   date_format:d/m/Y  optional  

Required depending on destination/route, DD/MM/YYYY format Example: qui

PassportExpiryDate   date_format:d/m/Y  optional  

Required depending on destination/route, DD/MM/YYYY format Example: non

PassportIssuedBy   string  optional  

Required depending on destination/route Example: est

PassportIssueCountryCode   string  optional  

Required depending on destination/route. Example: GB

ContactNameLocal   string  optional  

Required depending on destination/route Example: molestiae

TaxID   string  optional  

Required depending on destination/route Example: culpa

PaymentReferenceNumber   string  optional  

Required depending on destination/route Example: quia

PaymentDateTime   string  optional  

Required depending on destination/route Format: YYYY-MM-DD HH:MM:SS Example: non

PaymentProvider   string  optional  

Required depending on destination/route Example: occaecati

Service   string  optional  

Use ‘HERMES_INTERNATIONAL’. Example: HERMES_INTERNATIONAL

Collect   string  optional  

Example: sit

Pieces   string  optional  

Always “1”. Example: 1

Weight   string  optional  

Eg. “3.02”. Example: 3.02

WeightUnit   string   

“K” = Kg, “L” = Lbs. Example: K

Length   numeric  optional  

In Cms. Example: 4

Width   numeric  optional  

In Cms. Example: 4

Height   numeric  optional  

In Cms. Example: 4

DimUnit   string  optional  

“cm” only. Example: cm

DescriptionOfGoods   string  optional  

Overall Shipment Description Example: voluptates

Value   numeric   

Overall Shipment Value Example: ad

ShippingCost   numeric  optional  

Overall Cost of Shipping Example: dolores

Currency   string   

ISO Currency Code. Example: GBP

MerchantARN   string  optional  

Merchant ARN required for GST calculation (Australia) Example: qui

PurchaserABN   string  optional  

Purchaser ABN If applicable (Australia) Example: qui

GSTExemptionCode   string  optional  

If GST has not been charged, then provide the exemption code (Australia) Example: quam

Terms   string  optional  

“DDU” or “DDP”. Example: DDP

CODAmount   numeric  optional  

Cash on Delivery Amount. Example: 132.99

CODCurrency   string  optional  

Cash on Delivery Currency. 3 Characters. Example GBP Example: provident

DangerousGoods   boolean  optional  

Example: true

ShipperBrandingID   string  optional  

Example: dolorum

Items   object[]  optional  
Description   string  optional  

Required for outside EU Example: Facere eius non error quidem.

SkuCode   string  optional  

For China and Russia, please populate with SKU Code Example: dignissimos

HsCode   string  optional  

For China Direct, please populate with HS Code Example: qui

CountryOfOrigin   string  optional  

ISO Country/Territory Code Example: ut

PurchaseUrl   string  optional  

Direct link to the product required for Russia Example: http://www.mcglynn.net/animi-eum-ut-harum-architecto-aspernatur.html

ImageUrl   string  optional  

Direct link to the product image Example: http://blanda.info/sunt-repellat-quas-aperiam-vel-et-et.html

Quantity   numeric  optional  

Total number of pieces in this item Required for outside EU Example: voluptatem

Value   numeric  optional  

Total value of this item (all pieces). Required for outside EU Example: quia

DetailedDescription   string  optional  

Detailed description of the item Example: et

ItemComposition   string  optional  

Composition of the item. Example: 100% Cotton

DG   object  optional  

Dangerous goods info (if present parcel's DangerousGoods should be true)

Type   string  optional  

Dangerous goods type. 2 Characters. Example LQ Example: nisi

ProductType   string  optional  

Dangerous goods product type. Example UN1266 Example: adipisci

Capacity   numeric  optional  

Capacity. 6 digits, 3 decimal points. Example 1.000 Example: porro

CapacityUOM   string  optional  

CapacityUOM. “l“ = Litres, “ml“ = Millilitres, “g“ = Grams. Example g Example: quod

Hermes Cancel Parcels.

Store a newly created resource in storage. TODO: Move to ApiHermesCancelParcelAction

Example request:
curl --request DELETE \
    "http://localhost/api/v1/hermes/parcels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"tracking_numbers\": [],
    \"api_key\": \"ipsam\",
    \"CancelParcel\": {
        \"Apikey\": \"id\",
        \"Parcel\": {
            \"TrackingNumber\": [
                \"eos\"
            ]
        }
    }
}"
const url = new URL(
    "http://localhost/api/v1/hermes/parcels"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "tracking_numbers": [],
    "api_key": "ipsam",
    "CancelParcel": {
        "Apikey": "id",
        "Parcel": {
            "TrackingNumber": [
                "eos"
            ]
        }
    }
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/hermes/parcels';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'tracking_numbers' => [],
            'api_key' => 'ipsam',
            'CancelParcel' => [
                'Apikey' => 'id',
                'Parcel' => [
                    'TrackingNumber' => [
                        'eos',
                    ],
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "tracking_number": "Error",
    "another_tracking_number": "Canceled",
    "third_tracking_number": "Error message"
}
 

Request   

DELETE api/v1/hermes/parcels

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

tracking_numbers   object   
api_key   string   

Example: ipsam

CancelParcel   object   
Apikey   string   

API key Example: id

Parcel   object   

The Parcel details

TrackingNumber   string[]   

Hermes Assigned Tracking Numbers

GET api/v1/hermes/automation-testing/parcels/{searchNumber}

Example request:
curl --request GET \
    --get "http://localhost/api/v1/hermes/automation-testing/parcels/aliquid" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/hermes/automation-testing/parcels/aliquid"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/hermes/automation-testing/parcels/aliquid';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "errors": [
        "Malformed json content given"
    ]
}
 

Request   

GET api/v1/hermes/automation-testing/parcels/{searchNumber}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

searchNumber   string   

Example: aliquid

Change status of the parcel for QA purposes.

Example request:
curl --request PATCH \
    "http://localhost/api/v1/hermes/automation-testing/parcels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"UpdateParcel\": {
        \"Parcels\": [
            \"adipisci\"
        ]
    }
}"
const url = new URL(
    "http://localhost/api/v1/hermes/automation-testing/parcels"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "UpdateParcel": {
        "Parcels": [
            "adipisci"
        ]
    }
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/hermes/automation-testing/parcels';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'UpdateParcel' => [
                'Parcels' => [
                    'adipisci',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
content-security-policy: base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' 'unsafe-eval' 'unsafe-inline' data:;media-src 'self';object-src 'none';script-src 'self' 'unsafe-eval' 'unsafe-inline' https://www.gstatic.com https://cdn.polyfill.io;style-src 'self' 'unsafe-eval' 'unsafe-inline' https://fonts.googleapis.com https://www.gstatic.com https://unpkg.com;font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com data:
access-control-allow-origin: *
set-cookie: XSRF-TOKEN=eyJpdiI6IjJNOTlqN0xJbjVSUDh0cW4vVHNWVHc9PSIsInZhbHVlIjoieGFTSUkxRlQzQlNsZEdvRE5sWEpjSjRFeUxNOVNqdFl6SVdQdkcxblJRVDFMVllpTUkwanJ5aTlUblRNS0YzREtKYkNtdUhFV2ZWZy9pWmVQa0hiUjdrbHNLcFpGY28yZThPTzhpTmZLdmlOZGdFVGp0UHZMeFFYakwyaEdZTkQiLCJtYWMiOiJjNTE3OWUyMzc0NzA5NDc1ZGU1NzBlZDQ5ZWNjNmI0ZjU5NjNiNzkyMWE4MTVlMjY3NmM3YzRiNDVlYTc5ODRiIiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:04 GMT; Max-Age=7200; path=/; samesite=lax; saaspatform_session=eyJpdiI6InFkR3BiT1lXODdiNFd5bEVKa2QzOWc9PSIsInZhbHVlIjoieTh3U1VSMEVGT0xpUFE3WG1Nc2h5TndONEhiSFVCUkRSQUIraytTWHpxckl3WEZQYTlwRmJ3bkJFa2d4TVBXZTAza0s2bXNkalExcVB3RlFQN1ZiWEwxQkUvLzRJL2E4RzFMaHBtQlBHWkxSVlhLTEJIb0RRRnRQSGlWcHl2bUgiLCJtYWMiOiIyOGVmM2U0YWYwZWM4NWU4Yjg3ODFhNDNhN2IyYWNiOTA2NTk2MDFlODUxN2M2ZmNmOWRlM2E2MWI1NjM3YjQzIiwidGFnIjoiIn0%3D; expires=Wed, 19-Jun-2024 05:40:04 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "code": "Unauthorized"
}
 

Request   

PATCH api/v1/hermes/automation-testing/parcels

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

UpdateParcel   object   
Parcels   string[]   
Status   string   

Example: aut

ShipperReferenceID   string  optional  

This field is required when UpdateParcel.Parcels.*.TrackingNumber is not present.

TrackingNumber   string  optional  

This field is required when UpdateParcel.Parcels.*.ShipperReferenceID is not present.

Parcel   object  optional  
ShipperReferenceID   string  optional  

Example: animi

TrackingNumber   string  optional  

Example: tenetur

Status   integer  optional  

Example: 8

Get tracking history for parcels.

Example request:
curl --request POST \
    "http://localhost/api/v1/hermes/tracking" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"TrackParcel\": {
        \"Apikey\": \"numquam\",
        \"Parcels\": [
            \"sed\"
        ]
    }
}"
const url = new URL(
    "http://localhost/api/v1/hermes/tracking"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "TrackParcel": {
        "Apikey": "numquam",
        "Parcels": [
            "sed"
        ]
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/hermes/tracking';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'TrackParcel' => [
                'Apikey' => 'numquam',
                'Parcels' => [
                    'sed',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "TrackParcelResponse": {
        "Parcels": [
            {
                "TrackingNumber": "",
                "ShipmentReferenceID": "",
                "CarrierTrackingNumber": "",
                "CarrierTrackingURL": "",
                "ServiceName": "",
                "CarrierName": "",
                "Weight": 0,
                "WeightUOM": "",
                "OriginHub": "",
                "Events": [
                    {
                        "EventDateTime": "2000-01-01 00:00:00",
                        "TrackingCode": 0,
                        "Description": "",
                        "Location": ""
                    }
                ]
            },
            {
                "TrackingNumber": "",
                "Error": "Parcel not found"
            }
        ],
        "ErrorLevel": 0,
        "Error": null
    }
}
 

Request   

POST api/v1/hermes/tracking

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

TrackParcel   object   
Apikey   string   

API key Example: numquam

Parcels   string[]   

List of Tracking numbers to search by

Get PUDO points

Example request:
curl --request GET \
    --get "http://localhost/api/v1/hermes/pudo?page=12" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"Pudo\": {
        \"Apikey\": \"modi\",
        \"PudoId\": \"odio\",
        \"CarrierCode\": \"et\",
        \"CarrierId\": 6,
        \"ShippingAPIServiceId\": 14,
        \"PerPage\": 2,
        \"Page\": 20,
        \"Address\": {
            \"Country\": \"qui\",
            \"State\": \"illum\",
            \"Zip\": \"qui\",
            \"City\": \"distinctio\",
            \"Addr1\": \"est\",
            \"Addr2\": \"et\",
            \"Addr3\": \"eum\"
        }
    }
}"
const url = new URL(
    "http://localhost/api/v1/hermes/pudo"
);

const params = {
    "page": "12",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "Pudo": {
        "Apikey": "modi",
        "PudoId": "odio",
        "CarrierCode": "et",
        "CarrierId": 6,
        "ShippingAPIServiceId": 14,
        "PerPage": 2,
        "Page": 20,
        "Address": {
            "Country": "qui",
            "State": "illum",
            "Zip": "qui",
            "City": "distinctio",
            "Addr1": "est",
            "Addr2": "et",
            "Addr3": "eum"
        }
    }
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/hermes/pudo';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '12',
        ],
        'json' => [
            'Pudo' => [
                'Apikey' => 'modi',
                'PudoId' => 'odio',
                'CarrierCode' => 'et',
                'CarrierId' => 6,
                'ShippingAPIServiceId' => 14,
                'PerPage' => 2,
                'Page' => 20,
                'Address' => [
                    'Country' => 'qui',
                    'State' => 'illum',
                    'Zip' => 'qui',
                    'City' => 'distinctio',
                    'Addr1' => 'est',
                    'Addr2' => 'et',
                    'Addr3' => 'eum',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
   'PudoResponse': {
       'Pudo': [
           {
               'PudoId': '',
               'Alias': '',
               'Title': '',
               'Country': '',
               'State': '',
               'Zip': '',
               'City': '',
               'Addr1': '',
               'Addr2': '',
               'Addr3': '',
               'Lat': 0.0
               'Lng': 0.0
               'ShippingAPIServiceId': [],
               'AvailableServices': [],
               'AvailableLabelFormats': [],
               'WorkHours': {},
               'Additional': {},
           },
       ],
       'Page': 1,
       'LastPage': 2,
   }
}
 

Request   

GET api/v1/hermes/pudo

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Example: 12

Body Parameters

Pudo   object   
Apikey   string   

API key Example: modi

PudoId   string  optional  

PUDO ID Example: odio

CarrierCode   string  optional  

Example: et

CarrierId   integer  optional  

Example: 6

ShippingAPIServiceId   integer  optional  

Example: 14

PerPage   integer  optional  

PUDO points per page Example: 2

Page   integer  optional  

PUDO Example: 20

Address   object  optional  
Country   string  optional  

Example: qui

State   string  optional  

Example: illum

Zip   string  optional  

Example: qui

City   string  optional  

Example: distinctio

Addr1   string  optional  

Example: est

Addr2   string  optional  

Example: et

Addr3   string  optional  

Example: eum

Locate stores by country and zip

Example request:
curl --request GET \
    --get "http://localhost/api/v1/hermes/pudo/locate" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"LocateStore\": {
        \"Apikey\": \"nihil\",
        \"CountryCode\": \"eum\",
        \"ZipCode\": \"labore\"
    }
}"
const url = new URL(
    "http://localhost/api/v1/hermes/pudo/locate"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "LocateStore": {
        "Apikey": "nihil",
        "CountryCode": "eum",
        "ZipCode": "labore"
    }
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/hermes/pudo/locate';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'LocateStore' => [
                'Apikey' => 'nihil',
                'CountryCode' => 'eum',
                'ZipCode' => 'labore',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
   'LocateStoreResponse': {
       'Stores': [
           {
               'ID': '',
               'Carrier': '',
               'Name': '',
               'Address1': '',
               'Address2': '',
               'Address3': '',
               'City': '',
               'State': '',
               'ZipCode': '',
               'CountryCode': '',
               'Latitude': 0.0
               'Longitude': 0.0
               'OpeningTimes': [],
           }
       ]
   }
}
 

Request   

GET api/v1/hermes/pudo/locate

POST api/v1/hermes/pudo/locate

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

LocateStore   object   
Apikey   string   

API key Example: nihil

CountryCode   string   

Example: eum

ZipCode   string   

Example: labore