Zippendo has no separate CN22 form. CN22 Customs Declaration / CN23 Customs Declaration are document types on Documents when the carrier (or a job) produced that file. You prepare them by filling line-level customs fields and Term of Trade.
Term of Trade
On Create Shipment → Basic Information, Term of Trade defaults to DAP. Change it when the destination needs a different Incoterm. On shipment Overview it is read-only under Shipment Information.Parcel customs fields (create)
Add Parcel / Edit Parcel. Subtitle: Configure parcel weight, dimensions, and order lines. Package
Order Lines — at least one (At least one order line is required). Add Order Line. Empty: No order lines yet. Add an order line to get started.
Each Order Line :
Save: Save. Cancel: Cancel.
Carriers that cross a customs border expect description, quantity, and unit price > 0 on every line. Missing those at send: The customs declaration is incomplete. Each item needs a description, a quantity, and a declared value greater than zero. (
CARRIER_CUSTOMS_INCOMPLETE). Wrong product: This carrier product cannot carry a customs declaration. Choose a customs-capable product for shipments that cross a customs border. (CARRIER_CUSTOMS_UNSUPPORTED_PRODUCT).


Add Parcel — weight, dimensions, and line fields including Country of Origin and Tariff Number
Edit package (existing shipment)
On Package Details, Edit package (or the row) while status is Draft, Pending, or Error. Title: Edit package. Subtitle: Package # · Saving updates this shipment (all packages are re-saved). Same fields, slightly different labels (no asterisks on SKU):
Save: Save / Saving…. Toast: Shipment updated successfully / Failed to update shipment.


Edit package on a pending shipment — customs fields on each line
Documents tab
Shipment tabs: Overview, Documents (badge = count), Tracking (only if tracking exists). Documents is empty until send: No documents / Generated labels and system documents will appear here when available. After send, Print All appears in the card header. Columns:
Row click opens the viewer. Row menu:
Type values (i18n):
- Label
- Customs Invoice
- Commercial Invoice
- Proforma Invoice
- Packing List
- Certificate of Origin
- CN22 Customs Declaration
- CN23 Customs Declaration
- Other


Documents after send — Label row with format, size, View, Download, Print, and Print All
Viewer
Modal title = document type (Label, CN22 Customs Declaration, …). Subtitle: • • (for example PDF • A4 • 10 Sep 2026). PDFs render in an iframe; images render as a picture. There is no rotate control here — rotation is a printer setting.

View opens the Label modal with a PDF preview
Confirm: Print. Toasts: print job(s) created / document(s) failed to print.


Print All opens Print Documents when no printer is set on the shipment
Shipping-rule document generation
On Shipping rules → New, Document Generation:
There is no Generate CN22 toggle. Some carriers (FedEx, DHL Express, UPS, PostNord, Bring) file the declaration themselves. Then the rule shows: produces the customs declaration and commercial invoice itself and returns them with the label, so Zippendo does not generate its own copies for this rule. The two invoice checkboxes are hidden.
Jobs run after send. Background jobs are not processed in the local testenv, so a rule toggle may not add extra rows until production workers run.


Document Generation on a new GLS shipping rule — proforma, commercial invoice, packing list
Fill Country of Origin, Tariff Number, Description, Unit Price, and Term of Trade before Send Shipment. Then use Documents to view, download, or print the Label and any customs files the carrier or rule produced.