Bulk Import

CSV Upload
for Bulk Shipments

Create dozens or hundreds of shipments at once by uploading a simple CSV file. No API integration required — just a spreadsheet.

How It Works

Three steps to bulk shipping

Perfect for businesses that manage orders in spreadsheets, ERPs, or any system that can export CSV.

1

Prepare Your CSV

Export your orders into a CSV with recipient name, address, city, province, and postal code. Add optional fields like phone, quantity, or notes.

2

Upload & Review

Upload the file from your Weels dashboard. We’ll validate every row, show you zone pricing, and flag any errors before you confirm.

3

Labels Generated

Confirm and all shipments are created instantly. Download labels, print them, and your packages are ready for pickup.

Features

Built for Volume

Up to 100 Shipments Per Upload

Import up to 100 shipments in a single CSV file. Need more? Upload multiple files back-to-back.

Row-by-Row Validation

Every row is validated before creating shipments. Missing fields, bad postal codes, or out-of-zone addresses are flagged with clear error messages.

Automatic Zone & Price Matching

Each postal code is matched to the correct delivery zone and priced automatically. Volume discounts are applied if you qualify.

Bulk Label Download

After import, download all labels at once as a combined PDF. Print and attach — packages are pickup-ready.

Age & ID Verification

Add age verification (18+/19+/21+), signature required, or identity verification per row or as a default on your account.

Draft & Estimate Mode

Preview pricing and validate your file before committing. Fix any errors, then import when you’re ready.

CSV Format

Column Reference

Your CSV needs a header row. Column names are case-insensitive.

Column Required Description
destination_fname Yes Recipient first name
destination_lname No Recipient last name
destination_address1 Yes Street address
destination_address2 No Unit, suite, or apartment number
destination_city Yes City (e.g. Toronto, Mississauga)
destination_province No Province code (defaults to ON)
destination_postalcode Yes Canadian postal code (e.g. M5V 1J2)
destination_phone No Recipient phone for SMS tracking notifications
destination_email No Recipient email for tracking updates
qty No Number of identical packages (defaults to 1)
weight Yes Package weight in lbs
width Yes Package width in inches
length Yes Package length in inches
height Yes Package height in inches
reference No Internal reference or order number
order_num No Customer-facing order number (printed on label)
age_verification No 0, 18, 19, or 21 — minimum age for ID check
signature_required No 1 to require signature on delivery
identity_verification No 1 to require government ID verification at delivery
fragile No 1 to flag the shipment for fragile handling
delivery_date No Requested delivery date (YYYY-MM-DD)

Multi-Package Shipments

The base columns (qty, weight, width, length, height) define your first package type. To add additional distinct package sizes in the same shipment, use prefixed columns with incrementing numbers:

Package Columns
Package 1qty, weight, width, length, height
Package 2pkg2_qty, pkg2_weight, pkg2_width, pkg2_length, pkg2_height
Package 3pkg3_qty, pkg3_weight, pkg3_width, pkg3_length, pkg3_height
Package npkgn_qty, pkgn_weight, pkgn_width, pkgn_length, pkgn_height

No limit on package types. Extra package columns are optional — only include them if a shipment has multiple distinct package sizes. Use qty to specify multiples of the same size.

Example

Sample CSV File

Five example rows covering common scenarios. Download the template and fill in your own data.

#destination_fnamedestination_lnamedestination_address1destination_address2destination_citydestination_postalcodedestination_phoneqtyweightwidthlengthheightreferenceage_verificationsignature_requiredidentity_verificationfragilenotespkg2_qtypkg2_weightpkg2_widthpkg2_lengthpkg2_height
1JaneDoe250 Yonge StSuite 300TorontoM5B 2L7647-555-020012.512108ORD-10010000Standard delivery
2BobWilson55 Commerce Valley DrMarkhamL3T 7N9905-555-030025.0161412ORD-100219100Age-restricted product
3AliceChen789 Dundas St WSuite 200MississaugaL5B 1T6416-555-040011.510133ORD-10030110Legal docs — verify ID
4SarahPark30 Eglinton Ave WUnit 12North YorkM2N 5S3647-555-050013.0141410ORD-10040001Fragile — glass items
5DavidLee1200 Bay StTorontoM5R 2A5416-555-060018.0201814ORD-10050001Multi-package order12.010106

Scrolls horizontally — all columns are included in the download.

Download Template CSV
Row 1 — Standard
Row 2 — Age verify + signature
Row 3 — ID verification
Row 4 — Fragile
Row 5 — Multi-package
Upload

Where to Upload

1

Log in to Your Dashboard

Go to weels.ca/account and select your organization.

2

Open Create Shipment

Click Create Shipment from the sidebar or top navigation.

3

Switch to CSV Import

Click the Import CSV tab at the top of the shipment form. Drag and drop your file or click to browse.

4

Review & Confirm

Check the preview table for errors. Fix any flagged rows, then click Import All to generate labels.

5

Download & Print Labels

Download all labels as a combined PDF. Print, attach, and your packages are ready for same-day pickup.

Pricing

Free Upload. Pay Per Delivery.

CSV Upload
Free
Delivery From
$16/pkg
Per Upload
100 rows max

Standard per-package pricing applies. Upload as many files as you need. No monthly fees, no minimums.

FAQ

Common Questions

What format does the CSV need to be in?

Standard CSV (comma-separated values) with a header row. Column names are case-insensitive. At minimum you need: destination_fname, destination_address1, destination_city, and destination_postalcode.

How many shipments can I upload at once?

Up to 100 rows per CSV file. Need more? Just upload multiple files back-to-back. There’s no daily limit.

Can I preview before creating shipments?

Yes. The import tool shows a full preview with zone matching, pricing, and validation errors. You can fix issues before confirming the import.

What if a row has an error?

Rows with errors (missing address, out-of-zone postal code, etc.) are flagged and skipped. Valid rows are imported normally. You can fix and re-upload the failed rows.

Can I set age verification per row?

Yes. Add an age_verification column with values 0, 18, 19, or 21. You can also set a default on your account that applies to all shipments.

Can I ship multiple different-sized packages in one row?

Yes. The base columns (weight, width, length, height) define your first package. To add more, use prefixed columns like pkg2_weight, pkg2_width, pkg3_weight, etc. — no limit on package types. Use qty / pkg2_qty to send multiples of the same size.

Can I export from Google Sheets or Excel?

Absolutely. In Google Sheets, go to File → Download → CSV. In Excel, use Save As → CSV (Comma delimited). Just make sure the header row matches our column names.

Ready to Ship in Bulk?

Create your free Weels account and start importing shipments via CSV today.