Table of Contents
- Overview
- Customs Rule Types
- Route Matrix
- Geographic Codes Reference
- Field Requirements by Customs Rule
- Constraints & Validation Rules
Customs Clearance Guide
Overview
When shipping across borders in the UK ecosystem, you must include a customsClearance object in your Shipping API payload. The exact fields required depend on the origin and destination country-subdivision combination, which determines which customs rule applies.
Customs Rule Types
There are four customs rule types that govern which fields are required:
| Rule | Description |
|---|---|
| no customs | No customs declaration required. Standard domestic shipment. |
| Type 1 | Northern Ireland-specific rules apply. Selected fields become mandatory. |
| Type 2 | Channel Islands customs rules apply. |
| Type 3 | Most fields are mandatory. |
C2C (Consumer-to-Consumer) no customs status for NI routes may change in the future.
Disclaimer: As new shipping lanes are introduced, additional customs rule types may be added. Always refer to the latest version of this guide and the route matrix for up-to-date requirements.
Geographic Codes Reference
GB Subdivision Codes (ISO 3166-2)
Only the following subdivision codes are supported. No sub-regional codes (e.g. English regions, Scottish Council Areas, Welsh Principal Areas, or Northern Ireland Districts) are accepted.
| Code | Description |
|---|---|
GB-ENG | England |
GB-SCT | Scotland |
GB-WLS | Wales |
GB-GBN | Great Britain (shorthand for GB-ENG, GB-SCT, or GB-WLS) |
GB-NIR | Northern Ireland |
ISO 3166-2 subdivision codes are only supported for country code
GB.Other Supported Country Codes (ISO 3166-1)
| Code | Description |
|---|---|
IM | Isle of Man (Crown Dependency) |
GG | Guernsey (Crown Dependency, Channel Islands) |
JE | Jersey (Crown Dependency, Channel Islands) |
IE | Republic of Ireland |
British Overseas Territories are not supported by InPost logistics.
Route Matrix
The applicable customs rule is determined by the combination of origin and destination.
B2C (Business-to-Consumer) Routes
| Origin | Destination | Customs Rule |
|---|---|---|
| GB (GB-GBN) | GB (GB-GBN) | no customs |
| GB (GB-GBN) | GB (GB-NIR) | Type 1 |
| GB (GB-GBN) | IM | no customs |
| GB (GB-GBN) | GG | Type 2 |
| GB (GB-GBN) | JE | Type 2 |
| GB (GB-GBN) | IE | Type 3 |
| GB (GB-NIR) | GB (GB-GBN) | no customs |
| GB (GB-NIR) | GB (GB-NIR) | no customs |
| GB (GB-NIR) | IM | no customs |
| GB (GB-NIR) | GG | Type 2 |
| GB (GB-NIR) | JE | Type 2 |
| GB (GB-NIR) | IE | Type 3 |
| IM | GB (GB-GBN) | no customs |
| IM | GB (GB-NIR) | Type 1 |
| IM | IM | no customs |
| IM | GG | Type 2 |
| IM | JE | Type 2 |
| IM | IE | Type 3 |
| GG | any | N/A — not offered |
| JE | any | N/A — not offered |
| IE | any | N/A — not offered |
C2C (Consumer-to-Consumer) Routes
| Origin | Destination | Customs Rule |
|---|---|---|
| GB (GB-GBN) | GB (GB-GBN) | no customs |
| GB (GB-GBN) | GB (GB-NIR) | no customs (may change) |
| GB (GB-GBN) | IM | no customs |
| GB (GB-NIR) | GB (GB-GBN) | no customs |
| GB (GB-NIR) | GB (GB-NIR) | no customs |
| GB (GB-NIR) | IM | no customs |
| IM | GB (GB-GBN) | no customs |
| IM | GB (GB-NIR) | no customs (may change) |
| IM | IM | no customs |
| All others | — | N/A — not offered |
Field Requirements by Customs Rule
Legend
Symbol Meaning M Mandatory — must be provided O Optional — recommended but not required N/A Lane not offered by InPost
| Field | no customs | Type 1 | Type 2 | Type 3 |
|---|---|---|---|---|
shipment.customsClearance.incoterm | O | O | M | M |
shipment.customsClearance.eoriNumber | O | O | O | M |
shipment.customsClearance.invoice.number | O | O | O | O |
shipment.customsClearance.invoice.issueDate | O | O | O | O |
shipment.customsClearance.exportReason | O | O | M | M |
shipment.customsClearance.shippingCost.value | O | O | M | M |
shipment.customsClearance.shippingCost.currency | O | O | M | M |
shipment.parcels[].customsClearance.value | O | O | O | O |
shipment.parcels[].customsClearance.currency | O | O | O | O |
shipment.parcels[].customsClearance.contentsDescription | O | O | O | O |
shipment.parcels[].customsClearance.contents[].description | O | M | M | M |
shipment.parcels[].customsClearance.contents[].quantity | O | M | M | M |
shipment.parcels[].customsClearance.contents[].hsCode | O | O | O | M |
shipment.parcels[].customsClearance.contents[].productOriginCountryCode | O | O | M | M |
shipment.parcels[].customsClearance.contents[].unitWeight | O | O | O | O |
shipment.parcels[].customsClearance.contents[].unitValue.amount | O | M | M | M |
shipment.parcels[].customsClearance.contents[].unitValue.unit | O | M | M | M |
Constraints & Validation Rules
- Contents array max size:
contents[]accepts a maximum of 10 items per parcel. - Subdivision codes: ISO 3166-2 subdivision codes are only supported for country
GB. Only the valuesGB-ENG,GB-SCT,GB-WLS,GB-GBN, andGB-NIRare accepted. No sub-regional codes are valid. - British Overseas Territories are not supported.
- Date format:
invoice.issueDatemust follow ISO 8601 format:YYYY-MM-DD.