CSV Import Guide & Template

This page documents the same column names and rules as the live batch CSV uploader: one row per shipment, UTF-8 encoding, and validation for addresses, weight, carrier, and (when countries differ) customs.

How CSV upload works

You upload a spreadsheet with a header row; each data row becomes one label quote. After processing you pick rates and pay on the batch checkout page. Automatic volume discounts apply by label count (see tiers below). Friendly column aliases (e.g. “Street Address”) are mapped where supported, but the canonical names below always work.

Minimum required columns

Every row must include these headers exactly as written:

from_name,from_street1,from_city,from_state,from_zip,from_country,to_name,to_street1,to_city,to_state,to_zip,to_country,parcel_weight,carrier

For custom packages (default when package_type is empty or custom), you must also supply parcel_length, parcel_width, and parcel_height using parcel_distance_unit (default in). Some predefined package_type values allow omitting dimensions when the carrier supports them.

Full sample header (domestic + optional fields)

Use this single header line if you want optional phones, emails, units, service level, and insurance columns in one file:

from_name,from_street1,from_street2,from_city,from_state,from_zip,from_country,from_phone,from_email,to_name,to_street1,to_street2,to_city,to_state,to_zip,to_country,to_phone,to_email,parcel_length,parcel_width,parcel_height,parcel_weight,parcel_distance_unit,parcel_mass_unit,carrier,service_level,rate_priority,payment_method,stripe_token,email,wallet_address,insurance_amount,insurance_currency

Sender and recipient columns

Column Description Required
from_nameSender name or businessYes
from_street1Sender street line 1Yes
from_street2Sender apt / suiteNo
from_city, from_state, from_zipSender city, region code, postal codeYes
from_countryISO 2-letter country (e.g. US, CA)Yes
from_phone, from_emailSender contact (recommended for some carriers)No
to_nameRecipient nameYes
to_street1Recipient street line 1Yes
to_street2Recipient apt / suiteNo
to_city, to_state, to_zipRecipient city, region code, postal codeYes
to_countryISO 2-letter countryYes
to_phone, to_emailRecipient contactNo

Parcel, carrier, and rate selection

Column Description Required
parcel_weightTotal shipment weight; unit from parcel_mass_unit (default lb)Yes
parcel_mass_unite.g. lb, kg, ozNo
parcel_length, parcel_width, parcel_heightDimensions in parcel_distance_unit (default in); required for custom packagesConditional
parcel_distance_unitin or cmNo
package_typecustom or a carrier-specific predefined packageNo
carrierCarrier token (e.g. usps, ups, fedex, canadapost)Yes
service_levelOptional specific service codeNo
rate_prioritybest_value (default), cheapest, or fastestNo
signature_confirmationCarrier signature option when supportedNo
emailOrder / delivery emailNo
payment_method, stripe_token, wallet_addressAdvanced: most users pay on the batch checkout screen after uploadNo
insurance_amount, insurance_currencyOptional declared valueNo

International rows (different from_country and to_country)

When sender and recipient countries differ, customs data is required. Use the International CSV template below for a full header including customs columns. You can supply either a single line item via customs_description and related fields, or multiple items in customs_items as JSON (see the batch import page for examples).

Column Description Typical
customs_contents_typee.g. MERCHANDISE, GIFT, DOCUMENTSRequired
customs_contents_explanationShort summary of contentsRequired
customs_non_delivery_optionRETURN or ABANDONRequired
customs_certify_signerSigner name (defaults to sender if omitted)Often required
customs_descriptionSingle-item description (truncated per carrier rules)Or use JSON
customs_quantity, customs_value_amount, customs_net_weightQty, declared value, item weightWith simple line
customs_origin_country, customs_mass_unit, customs_value_currencyOrigin ISO code, weight unit, currencyWith simple line
customs_itemsJSON array for multiple customs linesAlternative
customs_incoterm, customs_eel_pfcTrade and compliance fields when neededOptional

Total customs item weight must not exceed parcel_weight (after unit conversion) or the row will fail validation.

Bulk Discount Tiers (Applied Automatically)

We reward volume! When you upload a CSV file with multiple labels, your total cost will receive an automatic discount based on how many valid labels are in your file:

Label Count Discount
10+5% off
25+8% off
50+10% off
75+12% off
100+15% off

Discounts are applied before checkout and reflected in your order summary.

Important notes

Download CSV Template

Download CSV template International CSV template

Once Uploaded

Need Help?

If you’re unsure how to format your file, contact support — we’re happy to help!