Run your own billing and reconciliation from the shipments export

Created by Kevin Hinton, Modified on Wed, 24 Jun at 12:02 PM by Kevin Hinton

Applies to: All tiers, most useful for 3PLs billing their clients  ·  Last reviewed: 2026-06-24

What this is

CanShip's shipments detail export gives you the raw shipment facts in a clean, client-neutral format, so you can run your own billing or reconciliation downstream. It exports as CSV or XLSX, and both use the same column set.

How to do it

  1. Go to Reports > Shipments to open the Shipments Report.
  2. Choose your date range (Today, This Week, This Month, Last Month, or a custom From / To) and a client if you want to scope it.
  3. Click Export and choose Detailed, in CSV or Excel. (A Summary export is also offered, for period totals rather than per-shipment rows.)

What is in the file

One row per shipment. A multi-shipment order produces multiple rows. The columns use snake_case headers in a fixed order, so a spreadsheet or script can read them the same way every time. Highlights:

  • Identifiers: shipment_id, tracking_number, order_id, and order_number. For manual orders, order_number falls back to the order number rather than exporting blank, so references are never empty.
  • Client: stable client_id plus the human-readable client_name, so each 3PL can map to its own internal codes.
  • Dates: ship_date is stamped in your company's local business date, so an order labelled late in the evening bills with the correct day rather than slipping to the next.
  • Counts: units, picks, and distinct SKUs, for pick-and-pack billing and audit.
  • Status: voided labels are included and clearly flagged, so you can reconcile what actually shipped versus what was cancelled.
  • Carrier and cost: carrier, service, cost, and an explicit currency (CAD), with the cost left empty rather than zero for manual labels that had no captured cost.
  • Destination: the full ship-to address fields.

Why it works that way

CanShip is multi-tenant: every 3PL has its own clients, codes, and contract rules. The export deliberately avoids any one 3PL's conventions and exposes stable identifiers and plain names instead, so you map them to your own billing system on your side.

What can go wrong

  • A cost column is empty. Manual labels with no captured cost export an empty cost, not a zero. Treat empty as "no carrier cost recorded," not free.
  • A row is a voided label. Filter on the status column so you bill shipped rows only.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article