All Things Shipping
|
Apr 2, 2026

How to Print Bulk Shipping Labels from a CSV in Shippo

Shippo's CSV import lets you upload a spreadsheet of orders and buy shipping labels in bulk without connecting a store. You map your columns to Shippo's fields once, and Shippo remembers the mapping for every upload after that.

There are three ways to create shipping labels in Shippo: manually create a single label, connect your e-commerce store so orders pull in automatically, or import orders via CSV for bulk label purchases. This guide covers the CSV path, which is the fastest option when your orders live in a spreadsheet or your platform doesn't have a direct integration.

In this article

Which label creation method is right for you?

SituationBest methodWhy
You ship a few orders per day and want full control over each labelManual label creationYou review and customize each shipment individually
You sell on Shopify, WooCommerce, Etsy, or another supported platformStore integrationOrders pull into Shippo automatically with no extra steps
Your platform doesn't integrate with Shippo, but it exports CSVCSV importExport from your platform, upload to Shippo, buy labels in bulk
You want to batch-process a specific subset of orders from a connected storeCSV importExport just the orders you want and upload them as a batch
You don't have an e-commerce store (wholesale, healthcare, print, B2B)CSV importBuild your order list in a spreadsheet and upload when ready
You take orders by phone, email, or in personCSV importLog orders in a spreadsheet, upload when ready to ship
One-time or occasional bulk shipmentCSV importNo integration setup required for a single batch

Want to connect your store instead? See how to set up a store integration in Shippo.

Who should use CSV shipping?

CSV shipping is the right tool whenever orders don't flow automatically into your shipping software.

You ship from an unsupported platform. If your e-commerce platform doesn't have a direct integration with Shippo, CSV is your bridge. Export your orders from your platform, upload the file to Shippo, and buy labels in bulk. It's the same result as a native integration, without any setup.

You don't have an e-commerce store at all. About 74 percent of small businesses in the United States have no online store, and plenty of them ship physical goods regularly. Dental labs ship impression cases to clinics, pharmacies send medication kits to patients, print shops fulfill direct-mail campaigns, and wholesale distributors ship to retailers from a daily order export. None of these businesses sell on Shopify, but all of them can use CSV to buy labels in bulk through Shippo.

You take orders manually. Phone orders, email orders, in-person orders at a trade show. Any time you're tracking orders in a spreadsheet rather than pulling them from a connected store, CSV import turns that spreadsheet into a batch of ready-to-print labels.

What CSV shipping actually saves you

The practical difference between buying labels one at a time and using CSV import is real, and it compounds the more often you ship.

You stop doing data entry twice. When you manually create a label, you're re-entering information that already exists somewhere else: in your order system, your spreadsheet, your ERP. CSV import eliminates that step entirely. Your data goes in once, in the file that already has it, and Shippo uses it to generate every label in the batch. That means no copying addresses by hand, no pasting between windows, and no typos from retyping data you already have.

Your whole batch ships at the same time. Creating labels one at a time means every order is its own task: click, fill, review, buy, repeat. With CSV import, 50 orders take roughly the same amount of time as one. Upload the file, review the batch, buy labels in one transaction, and download a single PDF to print. The whole thing takes about as long as creating a single label by hand.

Fewer errors reach your carriers. Manual data entry has a well-documented error rate, and in shipping, mistakes are expensive: a wrong ZIP code means a returned package and a refund request; a misspelled street means a delay and a customer service ticket. When your order data feeds directly from your source system into Shippo via CSV, the only errors that get through are the ones that were already in the source. Shippo's address validation flags many of those before you buy a single label.

You can rate-shop across 40+ carriers before committing. After importing your CSV, Shippo shows you rate options across USPS, UPS, FedEx, and other carriers for each order. You're not locked into one carrier because that's what your carrier account defaults to. For businesses shipping a mix of package sizes, weights, and destinations, comparing rates across the full carrier network before committing can cut your shipping costs.

The workflow gets faster every time you use it. The first upload takes a few minutes to map your columns to Shippo's fields. After that, you save the mapping as a template and every upload after that is automatic. Your file structure stays the same, Shippo applies the saved mapping, and you go straight to buying labels in about two minutes instead of ten.

What you need before you upload

You need a Shippo account (free to start) and your order data in a spreadsheet. Before uploading, confirm your file has all eight required fields. Missing any one will cause the upload to fail.

Required fields

FieldNotes
Order numberYour own reference ID — can be any string
Recipient nameFirst and last name, or full business name
Street address (line 1)Street number and name; include suite/unit here or in line 2
CityFull city name
StateTwo-letter abbreviation (e.g., CA, NY, TX)
ZIP / postal codeFive-digit ZIP for US; see formatting note below for other countries
CountryTwo-character ISO code (e.g., US, CA, GB)
Recipient emailUse your own email if the customer's isn't available — placeholder values like "N/A" can cause a validation error

Recommended optional fields

These aren't required, but including them saves significant time during label creation:

FieldWhy it helps
Weight per item + weight unitPre-fills the weight field on every label — no manual entry
Package dimensions (L x W x H)Required for accurate DIM weight pricing on UPS and FedEx
Item description + declared valueRequired for international shipments and insurance
Service levelPre-selects the carrier service for each order; skip if you want to rate-shop after import

Start with Shippo's CSV template. It includes all column headers and a sample row so you can see the exact format expected. Download it from the Orders tab in your Shippo account before building your own file. It's faster than starting from scratch. For a full walkthrough, Shippo's help center has a step-by-step CSV upload guide.

How to import orders via CSV in Shippo

  1. Prepare your CSV file. Export orders from your platform or build your spreadsheet. Make sure all eight required fields are present and correctly formatted (see the formatting section below).
  2. Log in to Shippo and go to the Orders tab.
  3. Click Upload CSV in the upper-right corner of the page.
  4. Drag your file onto the upload area, or click Select File to browse for it.
  5. Map your columns to Shippo fields. Shippo shows you each column in your file and asks you to match it to the correct field (recipient name, street address, weight, etc.). This takes a few minutes the first time.
  6. Save the mapping as a template. After you've matched your columns, save the mapping with a name. Every future upload from a file with the same column structure will auto-apply the mapping, so there's no re-mapping needed. If you're uploading CSVs on any kind of recurring schedule, this one step saves the most time.
  7. Click Upload.
  8. Check your email. Shippo sends a confirmation with a count of successfully and unsuccessfully imported orders, plus specific error messages for any rows that failed. If some rows fail, fix those rows and re-upload just the corrected file.

How to format your CSV file (and avoid common errors)

If your CSV has formatting errors, the upload will fail. You can prevent almost all of them by following a few rules.

Address formatting

  • State: Two-letter USPS abbreviation only. "California" fails. "CA" works.
  • Country: Two-character ISO code only. "United States" fails. "US" works.
  • ZIP codes: Excel strips leading zeros from ZIP codes in states like Massachusetts, Connecticut, and New Jersey. Format the ZIP column as text before entering data, or prefix entries with an apostrophe to force text treatment.
  • Countries without postal codes (e.g., Hong Kong, Ireland): Use "00000" as a placeholder — leaving the field blank causes an error.
  • Military addresses (APO/FPO/DPO): City should be APO, FPO, or DPO. State should be AA, AE, or AP. A ZIP code is required.

Tip: Shippo validates addresses during import, but catching formatting issues before upload saves time. For more on how address validation prevents costly shipping errors, see why address verification matters.

Weight units

Shippo accepts oz, g, lb, and kg (spelled exactly that way, lowercase). The unit must be consistent with the value: a 16 oz package and a 16 lb package are very different labels. Lock your weight unit column to a single unit across the entire file, and double-check that your source system exports in the unit you expect.

Common upload errors and how to fix them

ErrorCauseFix
Entire file fails to uploadTrailing space in a column header (e.g., "Name " instead of "Name")Trim all header cells — no spaces after the text
Tracking numbers appear in scientific notation on exportExcel reformats long numbersOpen exported file in Google Sheets instead of Excel
"Recipient email invalid" errorPlaceholder text (e.g., "N/A") entered in the email fieldUse a real email address — your own if the customer's isn't available
Orders import but weight is blankWeight unit column missing or mismatchedAdd both a weight column and a weight_unit column
ZIP code errors for New England statesExcel stripped the leading zeroReformat ZIP column as text; re-enter affected ZIP codes
File fails on a specific rowBlank row or special character (apostrophe, ampersand) in that rowDelete blank rows; strip special characters from address fields

Test with a small batch first. Before uploading a 500-row file, upload five rows. If the mapping is off or a column is formatted incorrectly, you'll catch it on row one instead of troubleshooting hundreds of failed records.

How to buy labels in bulk after importing

Once your orders are imported, go to the Orders tab and use the checkboxes on the left to select the orders you want to ship (up to 100 at a time). Click Buy Labels to open the batch purchase panel.

From the batch panel you can set a ship date, add signature confirmation or insurance, and apply a single service level across all selected orders. If you'd rather compare rates first, Shippo shows discounted rates across 40+ carriers for each order, so you can pick the cheapest or fastest option per shipment before committing. These rates are lower than what you'd pay at the post office or a carrier's retail counter.

When you're ready, click Purchase and Shippo generates all the labels at once. You'll get a single PDF you can send straight to your printer. If you have more than 100 orders, repeat the process with the next batch. For high-volume days, printing labels in the same order as your packing list helps avoid mismatched labels and packages at the packing station.

Industries that run on CSV shipping

The businesses that use CSV shipping most heavily have one thing in common: their orders originate outside a connected storefront.

Dental and orthodontic labs. Dental labs ship impression cases, crowns, aligners, and appliances back to the clinics that ordered them, often daily, to a consistent set of addresses that doesn't change much week to week. A saved CSV template with the lab's regular recipients, pre-populated with standard package weights, turns a morning's worth of manual label creation into a two-minute upload.

Pharmacies and medical suppliers. Mail-order pharmacies and home health equipment providers ship to patients from internal dispensing systems, not Shopify stores. Their systems export patient shipment data as a file that goes into Shippo, and the pharmacy doesn't need to re-enter a single address by hand.

Print shops and direct mail. A print shop fulfilling a client's direct-mail campaign already has the mailing list in a spreadsheet, because that list is the campaign. The same file that defines who gets the mailing becomes the CSV that generates the labels, with no separate data entry step.

Wholesale distributors. B2B distributors receive orders through email, EDI, or their ERP system, not a consumer storefront. At the end of each day, they export that day's orders, upload the file to Shippo, and buy all the labels in one batch. The process takes a few minutes instead of a full afternoon of manual label creation.

Once you've saved a column mapping, what used to be an afternoon of manual data entry turns into a few minutes of work on any recurring schedule. If you're shipping physical goods and managing orders in a spreadsheet, Shippo gives you discounts from 40+ carriers and a batch label tool designed for exactly this workflow. Sign up for Shippo and try it with your first CSV.

Frequently asked questions

Can I save my column mapping for future CSV uploads?
Yes. After you map your columns to Shippo fields during the first upload, you can save the mapping as a named template. On every subsequent upload from a file with the same column structure, Shippo applies the saved mapping automatically, so there's no manual re-mapping needed.

What happens if some orders fail to import?
Shippo sends an email after every upload with a count of successful and failed rows, plus a specific error message for each failed row. Fix the errors in your file and re-upload just the corrected rows — there's no need to re-upload the whole thing.

Is there a limit to how many orders I can import at once?
You can import a large number of orders per CSV file. For very large lists, consider splitting into smaller batches to keep uploads manageable. For buying labels, you can select and purchase up to 100 orders at a time from the Orders page.

Do I need a store integration to use Shippo?
No, CSV import is a standalone feature. Sign up, upload a CSV, and start buying discounted labels without connecting a store or setting up an integration.

Can I compare carrier rates for orders imported via CSV?
Yes. After importing, you can review rate options across Shippo's carrier network before purchasing. This lets you choose the most cost-effective service level for each order or apply a consistent service level across the whole batch.

My platform has a Shippo integration — should I still use CSV?
If the integration is working well and you want orders to flow automatically, keep using it. But CSV is a useful fallback when you want to batch-process a specific subset of orders, the integration is delayed, or you're handling a one-time bulk shipment outside your normal workflow. Since your platform already exports CSV, the extra step is minimal.

Tags:
No items found.

Looking for a multi-carrier shipping platform?

With Shippo, shipping is as easy as it should be.


  • Pre-built integrations into shopping carts like Magento, Shopify, Amazon, eBay, and others.
  • Support for dozens of carriers including USPS, FedEx, UPS, and DHL.
  • Speed through your shipping with automations, bulk label purchase, and more.
  • Shipping Insurance: Insure your packages at an affordable cost.
  • Shipping API for building your own shipping solution.

Stay in touch with the latest insights

Be the first to get the latest product releases, expert tips, and  industry news to help you save time and money on shipping.

Loading...

Recommended Articles

Most Popular