Courier statement checkerFree, no sign-up, and your files never leave your browser

Put your courier's statement next to your store's orders. See which delivered orders weren't paid, which were paid short, and which fees are above the rate you agreed.

Your files are read on your device. Nothing is uploaded, stored or sent.

No files to hand? Try it on a made-up month: a Bosta-style statement and a Shopify export.

Download the samples:sample-bosta-statement-made-up.csvsample-shopify-orders-made-up.csv

01Courier statement

No file yet

02Store orders

No file yet

03Agreed fees

From your contract or price list, as the statement shows them (VAT included if the statement includes it). Leave a fee empty to skip its check.

Result

Add the courier statement to see the result. Add the orders export too for the cash checks.

The PDF opens in your browser's print window. Choose "Save as PDF".

How the matching works

  1. Each statement row is matched to an order by tracking number first, then by order number. A leading # and spaces are ignored, so #1001 and 1001 are the same order.
  2. Delivered, not paid: the courier marks a cash order delivered and the cash collected is 0.
  3. Paid short: the cash collected is less than the order total in your export.
  4. Fees above the agreed rate: the shipping fee or the return fee is above the rate you typed, or the COD fee is above your percentage of the cash collected.
  5. Return fee on a delivered order: the courier charges a return fee on an order your store shows as delivered. Customer return pickups are real returns and are left out.
  6. Missing from the statement: an order your store shipped that isn't on the statement. It isn't added to the money to claim, because it may be on next month's statement. Ask the courier about it first.

How to export each file

Bosta statement
Download the month's statement or deliveries report from your Bosta dashboard as Excel or CSV. It needs one row per shipment, with the tracking number, your order reference, the delivery state and the cash collected. The checker looks for the column names Bosta uses, such as Tracking Number, Business Reference, Delivery State and Collected Amount. If your file names one differently, pick it from the list under the file.
Another courier
Choose Other courier, add the statement, and pick the columns from the lists. You need a tracking number or order reference, a delivery status and the cash collected.
Shopify orders
In Shopify admin, go to Orders, then Export. Pick the same dates as the statement and export as CSV. Shopify has no delivered status, so a cash order marked Paid counts as delivered, and Fulfillment Status says it shipped.
WooCommerce or EasyOrders
Export the same month's orders as CSV or Excel with the order number, order total, status and payment method. WooCommerce needs an order export plugin for this.

Worked example on the sample files

The sample files are a made-up month: 24 Shopify orders and a Bosta-style statement with 22 rows. The agreed fees are made up too: 60 EGP a shipment, 30 EGP a return and a 1% COD fee. The checker finds 20 of the store's orders on the statement and 1,954.5 EGP to claim on 10 orders. 1,680 EGP is on 2 orders marked delivered but not paid. 150 EGP is short on 2 orders. 64.5 EGP is fees above the agreed rate on 4 shipments, and 60 EGP is return fees on 2 orders the store shows as paid. Two more shipped orders, worth 1,910 EGP, aren't on the statement at all. They stay out of the claim until the courier says where they are. A customer return pickup and a card-paid order are left alone, as they should be.

Common questions

Is the checker free? Do I need to sign up?

It's free, with no sign-up and no email. Open the page, add your two files and type your agreed fees.

Are my files uploaded anywhere?

No. Your browser reads them on your device, and the check runs there too. Nothing is uploaded, stored or sent. The CSV and the PDF report are made on your device as well.

Which couriers and stores does it read?

It recognises Bosta's statement columns and the order exports of Shopify, WooCommerce and EasyOrders. Any other courier or store works too: choose Other courier or Other store, and pick the columns from the lists under the file.

How are rows matched to orders?

By tracking number first, then by order number. A leading # and spaces are ignored. Rows that match no order are counted under the result, so you can look at them.

Why are missing orders left out?

An order missing from this statement may be on the next one, or still with the courier. The checker lists them with the cash at stake, so you can ask the courier where each one is before you claim it.

How does it know a Shopify order was delivered?

A cash order marked Paid in Shopify counts as delivered, and Fulfillment Status says whether it shipped. If your team marks orders Paid at another point, pick a different status column from the list.

Does it work for stores in Saudi Arabia, the UAE and the rest of the Gulf?

Yes. The amounts say EGP, but the check works the same in any currency. Use one currency in both files and in the fees, SAR or AED for example, and read the result in that currency.

What doesn't it check?

Weight or area surcharges, fees your contract allows that the three fields don't cover, and whether the courier's payouts reached your bank account. Partial deliveries are counted but left out of the cash checks.

Toolbox
All tools and projects