For each line item in the shipment, look up the correct 6-digit HS (Harmonized System) tariff code using a customs classification service or your product database
Build a customs object with: recipient EIN/IOSS/EORI tax identifier (required for EU and UK), incoterms code (e.g. DAP or DDP), and a commodities array with description, quantity, unit value, country of origin, and HS code per line
Set the dutiesPayment on the shipment: DAP (Delivered At Place) bills duties to the recipient; DDP (Delivered Duty Paid) bills them to the shipper account
Include the customs object in the shipment creation request to the carrier API (FedEx, DHL, UPS); some carriers auto-generate the commercial invoice PDF from this data
For shipments into the EU valued under the de minimis threshold, include the IOSS number in the customs object to prevent double VAT collection at customs
Archive the commercial invoice and customs data per shipment for a minimum of 5 years to comply with export record-keeping requirements
Known gotchas
HS codes must match the importing country's tariff schedule; the 6-digit international code is often sufficient but some countries require 8–10 digit national sub-headings — using only 6 digits can cause customs delays
DDP shipments require the shipper to have a registered importer account or power of attorney in the destination country; selecting DDP without this arrangement causes the shipment to be held or returned
The EU removed the VAT de minimis threshold for goods from outside the EU in 2021; all B2C shipments into the EU regardless of value now require an IOSS or VAT registration — omitting it results in double taxation and recipient refusal
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp