Selling
Orders and Shipping: From Paid to Delivered
Work the order list, build draft orders and send payment links, ship one order or a whole selection, buy and void postage per parcel, hand over pickup and local-delivery orders, cancel and refund, keep customers updated, and bring your order history over from another platform.
Overview
Every paid order lands in Orders. From there you ship it, your customer is told, and the parcel is tracked until it arrives. Orders, draft orders, returns and shipping are on every plan.
- Ship one order or many. Ship from the order's own page, or select orders on the list and ship them together.
- Postage built in. Connect an EasyPost account once and buy labels for USPS, UPS, FedEx, Canada Post, DHL and more from any order. Shipping from Canada, you can also connect your own Stallion Express or Chit Chats account and compare their rates beside EasyPost's. A label bought by mistake can be voided for a refund.
- Parcels. Split an order into several boxes, each with its own label, origin and packing slip.
- Across borders. A label to another country carries its customs declaration, built from each product's HS code, country of origin and weight, and comes with the commercial invoice to print.
- Customers kept informed. Each customer gets a shipping email with their tracking link and delivery updates as the carrier scans the parcel, sent from your store's own email address. If your store has no email domain of its own yet, the email is not sent: the order's timeline says so and you are told. See Custom domains and branded email.
- History from elsewhere. Import past orders from a CSV so your customer records and reports start complete.
- Business buyers' PO numbers. When a company buyer gives their purchase-order number, it shows on the order, under the order number in the list, and on the packing slip. Search the list by a PO number or a buyer's reference to find the order. See B2B accounts.
- Delivery instructions and gift messages. Shoppers can leave a note for the delivery and tick This is a gift to add a message, which is printed on the packing slip. See Delivery instructions and gift messages below.
- Draft orders. Build an order for a customer, email them a link to pay by card, or mark it paid when they paid in cash or by e-Transfer. See Draft orders below.
- Find an order by its number. Type the order number from a receipt or email, such as #AB12CD34, with or without the #, in the search on the orders list or in the dashboard's search (Ctrl+K or ⌘K).
Before your first label: connect EasyPost and set your address
- Go to Orders → Shipping → Origin and enter the address your parcels leave from. It is printed on every label as the sender.
- Open the Carriers tab. The first card is Labels & tracking (EasyPost). Paste your EasyPost API key (EasyPost dashboard → API Keys), click Save key, then Test connection.
EasyPost bills postage to your own EasyPost account; BestWebby adds nothing to it. If the test says you used a test key, labels bought with it are not real postage. Switch to your production key before you ship.
The other carrier cards on that tab set up the rates shoppers see at checkout. They are separate from buying labels, except the two below.
Stallion Express and Chit Chats
If you ship from Canada with Stallion Express or Chit Chats, connect your own account with either and its rates are offered beside EasyPost's on every order. You can connect one, both, or neither, with or without EasyPost.
- Stallion Express. In your Stallion dashboard, go to Settings → Integrations → API and create a v5 token with the scopes
rates:read,shipments:read,shipments:write,shipments:void,labels:createandtracking:read. Paste it into the Labels & tracking (Stallion Express) card and click Save, then Test connection. - Chit Chats. In Chit Chats, go to Settings → Developer → API Access Tokens and create an access token. Enter your client ID and the token in the Labels & tracking (Chit Chats) card and click Save, then Test connection.
Each company bills the postage to your own account with it: Stallion Express from your Stallion credits, Chit Chats from your Chit Chats account. BestWebby adds nothing to it. The token is stored encrypted, shown masked, and only the store owner can connect, test or Disconnect an account. Disconnecting stops its rates showing; labels already bought stay on their orders but can no longer be voided, reprinted or tracked from here until you connect it again.
What to know about these two:
- They take parcels from Canada only. A parcel leaving from anywhere else is offered EasyPost's rates alone.
- Neither offers an adult (age-checked) signature, so for an age-restricted order that asks for one, their rates are left out with that reason. They are offered only when the label does not ask for one.
- Their Canada Post services are not offered from Canada to the United States, for the reason in Canada Post to the United States below. Your Canada Post to the United States setting is about your Canada Post account in EasyPost and does not change this. Their other services are offered as usual.
- A paused carrier (see Pausing a carrier) is left out of their rates too.
- Chit Chats prices a parcel by its size. Enter the box size in the Fulfil dialog, or give the product its length, width and height when it ships alone; without a size, Chit Chats is not offered for that parcel. It also takes the contents' value in CAD or USD only.
- Their prices include their sales tax, which is what each charges you.
- Address checks (see Checking the address with the carrier) run through EasyPost. Without EasyPost connected, a US address is not checked and the label says Address not verified by the carrier.
- Return labels are bought through EasyPost only.
If you ship to other countries, also fill in Customs declarations on the Origin tab (see Shipping across a border below).
No EasyPost account? Ship without a shipping account
If your store ships from Canada or the United States and the Carriers tab shows a Ship without a shipping account card under Labels & tracking (EasyPost), BestWebby can open an EasyPost account for your store instead of you bringing one. The card is only there while no EasyPost account is connected: a key you pasted is never replaced.
- Check what will be sent to EasyPost to open the account: your business name, your billing email (your sign-in email while the billing email is not verified) and your phone number. If the email or phone is missing, add it to your billing profile first.
- Tick the box to agree, for your business, to EasyPost's Terms of Service and Privacy Policy. Opening the account tells EasyPost that you agreed, so nothing is sent without the tick. Who ticked it, and when, is kept in the audit log.
- Click Open my EasyPost account. The card then says Card needed.
- Click Add a card and enter your card. The form is EasyPost's, run by Stripe: the card goes to EasyPost and BestWebby never sees it. Your bank may ask you to confirm the card.
- If you like, Add funds with a deposit of US$25, US$50, US$100 or US$200, and set Automatic recharge: when your balance falls below the threshold, EasyPost charges your card the recharge amount.
From then on you buy, void and track labels exactly as with an EasyPost account of your own. The card shows your balance as EasyPost reports it, your card, and the card fee EasyPost lists for the account.
- EasyPost bills your card directly, at EasyPost's own pay-as-you-go prices.
- The account is in US dollars, so Canada Post labels are charged in US dollars.
- Labels you void are refunded to your EasyPost balance by EasyPost.
- The account comes with the carriers EasyPost includes on new accounts; they appear in your label rates.
- Only the store owner can open the account, add a card, deposit, change automatic recharge or disconnect, and each is kept in the audit log.
Disconnect stops BestWebby using the account for labels, voids and tracking, and BestWebby does not keep its key. The EasyPost account, its card and its balance stay open at EasyPost: to close it or get a balance back, contact EasyPost. To connect it again, contact BestWebby support.
What shoppers pay for shipping
Checkout charges shipping from the zones and rates on Orders → Shipping → Zones & methods. Each zone lists the countries it covers, or the rest of the world, and the rates you charge there.
- An address one of your zones covers is offered that zone's active rates. The shopper picks one; if they do not, the cheapest is charged.
- An address none of your zones covers cannot be checked out for delivery: the shopper is told there is no delivery option to that address. A zone with no active rate offers nothing, so it refuses its countries too. Pickup still works.
- No active zone at all: every order that needs delivering is taken at $0 shipping. Your get-started checklist, the publish check and the Shipping screen all tell you. To charge nothing on purpose, add a zone with a $0 rate: it is then your choice, and orders are limited to the countries you ship to.
Digital products, services and gift cards are never charged shipping, and neither is an order collected in store.
Zones by province, territory or state
A zone can cover part of Canada or the United States, so Nunavut or Hawaii can have rates of their own. When you add or edit a zone (the pencil beside it), pick Canada or United States under Countries, then pick the Provinces and territories or States the zone covers. Picking none means the zone covers the whole country, which is how every zone made before worked, and those zones match exactly as before.
Checkout picks the zone from the shipping address, most specific first:
- a zone that names the address's province or state;
- otherwise a zone that covers its whole country;
- otherwise your rest-of-world zone.
For example, a Territories zone with Northwest Territories, Nunavut and Yukon, and a Canada zone with no provinces picked: an address in Iqaluit gets the Territories rates, an address in Toronto the Canada rates. With no Canada-wide zone, the rest of Canada falls to your rest-of-world zone, or cannot be checked out for delivery if you have none.
Once a country is split this way, a delivery there needs the province or state. Checkout always asks for it in Canada and the United States. An agent or an API order without one is refused with REGION_REQUIRED rather than charged a guessed rate, and a sale shipped from the register asks you to add it to the address. A product page knows the shopper's country but not their address, so it shows no estimated delivery date for a country you split. The Test calculator has a Province or territory (or State) box so you can check each zone.
City and province from the postal code
When a shopper in Canada or the United States types a whole postal code or ZIP code at checkout, the province or state is filled in for them, and the city too when the postal code names one. The same happens when they add an address to the address book in their account. Only an empty box is filled: a city or province the shopper typed or picked is never changed, before or after. The province is filled as the same code the province list uses, so the shipping zone is found exactly as if the shopper had picked it.
A line under the postal code says Filled from your postal code. with Undo. Undo empties what was filled and leaves those boxes to the shopper for the rest of the form.
- A Canadian postal code we do not know fills in the province from its first three characters, and never a guessed city.
- A code we do not know at all, a code that does not fit the country chosen, or any country other than Canada and the United States fills in nothing.
- The postal code is looked up on BestWebby's own servers, so the address is not sent to anyone else, and nothing about your store is read.
Postal code data: GeoNames, CC BY 4.0, credited on that line at checkout.
Shipping classes
Some products cost more to send: a sofa, a crate of glassware, a battery a courier will not fly. Put them in a shipping class and each rate can charge more for it, or leave it out.
- On Orders → Shipping → Classes, click Add class and give it a name, such as Oversized. Only the store owner can add, rename or delete classes.
- Put products in it: in the product editor under Inventory & shipping → Shipping class, or for many at once, select them in the product list and click Shipping class.
- Under Zones & methods, edit each rate. Shipping classes lists your classes; for each, choose Same rate, Add per order (the amount once when the cart holds the class), Add per item (the amount for each item of the class) or Not offered.
A cart with items of two classes pays both surcharges. A surcharge is added to whatever the rate itself charges, including a live carrier quote and a rate that charges nothing above an order value: that rate still charges the surcharge. A rate that is Not offered for a class is left out for any cart holding an item of that class; if that leaves no rate for the address, the order cannot be checked out for delivery there, and checkout says so. A promotion or flash sale that takes the shipping charge off takes the surcharge off too.
Products with no class, and stores with no class rules, are charged exactly as before. Deleting a class takes its products back to no class and removes its rules. The same rates apply at checkout, in agent and API orders, for orders on account, for sales shipped from the register, in the Test calculator (pick a Shipping class in the cart and how many) and in the product page's estimated delivery date. A draft order's shipping is the amount you type, so classes do not change it.
Estimated delivery dates
Shoppers see an estimated delivery date on product pages, beside each rate at checkout, and in their order confirmation email, for example "Estimated delivery: Wed, Nov 4 – Fri, Nov 6" (in French, « Livraison estimée »). They are always worded as estimates; BestWebby never shows a delivery date as guaranteed.
Set two things on Orders → Shipping → Origin, under Processing time and order cut-off. Only the store owner can change them, and each change is recorded in Settings → Audit log with the old and new values. The line under the fields shows what a shopper ordering now would be told for a 2–4 day rate, before you save.
- Processing time: the working days you need to pack an order before it leaves, from 0 to 30. 0 means it leaves the day it is dispatched. Stores start at 0.
- Order cut-off: orders placed before this time are dispatched the same working day; later orders start the next working day. Stores start at 12:00. It is read in the time of the province in your origin address (Pacific time for British Columbia, Eastern time for Ontario and Quebec, Newfoundland time for Newfoundland and Labrador, and so on, daylight saving time included). With no Canadian province in the origin address, it is read in your store's timezone.
The date is the next dispatch day, plus your processing time, plus the rate's minimum and maximum days in transit. Weekends are never counted, and neither are Canadian statutory holidays: your origin province's holidays for packing, and for transit the federal holidays carriers keep plus the holidays of the shopper's province. A holiday that falls on a weekend is skipped on the working day it is observed. A rate with no minimum or maximum days shows no date at all, so set the days on each rate under Zones & methods.
On a product page, the date is for the cheapest rate with days that you charge for one of that item in the shopper's country. It is not shown when the shopper's country cannot be told, for a country you split into zones by province or state, for a product that is out of stock, made to order, digital or a service, for local delivery (that depends on the shopper's postcode), or while your store is on vacation. The confirmation email counts from when the order is paid, so an order paid later by e-Transfer gets dates from that day.
Pausing a carrier
When a carrier stops collecting for a while (a postal strike, a weather shutdown, a depot that closed), pause it once instead of switching off its rates zone by zone. Go to Orders → Shipping → Carriers and use Pause a carrier at the top: tick the carrier (Canada Post, Purolator, UPS, FedEx, DHL, USPS, Australia Post or Royal Mail), write the reason, and click Save pause. Only the store owner can change it.
While a carrier is paused:
- Checkout does not offer its rates, live or from the published rate table, in any zone. Your other rates are offered as usual.
- If that leaves an address with no shipping option, checkout tells the shopper that delivery there is paused for now and to try again later or use another address, and the order is not taken. Pickup still works.
- Labels are never bought from it: not as the cheapest rate in the Ship dialog, not in Buy labels for many orders, and not for a prepaid return label. A label you ask for from that carrier by name is refused with the reason, and nothing is bought. In a bulk run already under way, an order whose approved rate is from the paused carrier is skipped with the reason; Retry the rest tries it again after you resume.
- The Shipping screen shows a banner on every tab naming what is paused and why, so the pause is not forgotten. Methods of a paused carrier carry a Paused badge under Zones & methods, and the Test calculator leaves them out the way checkout does.
Your zones and methods are not changed, so untick the carrier and save to resume: everything comes back as it was.
The reason is for your team. Shoppers see it only if you tick Also show this reason in the announcement bar when you save, which puts it in the bar at the top of your store, replacing what the bar said. When you resume, Also clear the announcement bar empties it, offered only while the bar still shows the pause reason. Every change to a pause is recorded in the audit log with what it was before and after.
Shipping one order
Open the order and click Ship. In the dialog:
- Compare rates lists the rates for this parcel from every account you connected (EasyPost, Stallion Express, Chit Chats), cheapest first, each naming the account and the carrier, and selects the cheapest. Enter the box size first if you know it: Chit Chats needs it, and the others price with it when it is given. Choose another rate if you like.
- Buy label buys the rate you chose, through the account named, at no more than the price shown: if it has gone up, nothing is bought and the dialog says so. Without comparing, it buys the cheapest rate EasyPost returns, as before. It fills in the carrier and tracking number for you, and Print label opens it.
- Choose what goes in this parcel if you are not sending everything at once, and which of your locations it ships from.
- Mark shipped sends your customer their shipping email with the tracking link.
An order on hold cannot be shipped or have a label bought until the hold is lifted. See Orders on hold below.
Which location ships an order
When you keep stock at more than one location, you choose how an online delivery order picks the location it ships from. Go to Settings → Locations and use Order routing, which only the store owner can change.
Without any rules, each item is taken from your default location first, then from the location that holds the most of it, then from the oldest. That is how every store worked before order routing, and it stays that way until you save rules.
Tick the rules you want and put them in order. The first rule decides; the next one only breaks a tie.
- Keep the order together. A location that holds every item in the order comes first, so the shopper gets one parcel instead of several.
- Closest to the shipping address. The location nearest the shopper comes first, measured between postal codes in Canada and the US. Distances come from GeoNames postal code data (geonames.org), used under the Creative Commons Attribution 4.0 licence. If the shipping postal code is not in that data, this rule is skipped for that order rather than guessed. A location whose own postal code we cannot place comes after every other location for this rule: give each location its postal code and country.
- Your location order. Put your locations in the order you prefer. The first one in the list that holds the items comes first.
When the rules tie, your default location comes first, then the one holding more of the order, then the oldest.
Routing only chooses where stock is taken from. It never sells stock a location does not have: when the first location runs short, the rest of an item comes from the next one in line, and an order your locations cannot fill is handled exactly as before. Some orders are not routed at all:
- Pickup orders always come from the store the shopper chose.
- Items you do not stock by location, where your locations do not account for all of the item's stock, are taken from the overall count as before and play no part in the choice.
- Items your supplier ships for you through the reseller network keep their own rules, and so do sales at the till.
On the order. When every item an order takes from stock comes from one location, the order shows Ships from that location with the reason, and the Ship dialog, Buy label and Buy labels for many orders start from it. Choose Shop origin address or another location in the dialog to send it from somewhere else. When an order's items come from several locations, the order says which, and no single location is chosen for it.
Test routing. Under the rules, enter a shipping postal code and country, and optionally some SKUs with quantities (for example MUG-BLUE x 2, one per line). Test routing shows the location an order to that address would ship from today, why, and how every location ranked, using the rules on the screen whether or not you have saved them. Nothing is reserved.
Checking the address with the carrier
Checkout makes sure an address has the parts its country needs. It cannot tell whether the street exists or whether the postal code belongs to that town, and a label bought for such an address comes back, or the carrier bills you for correcting it. So before a label is bought for a US address, BestWebby asks EasyPost, on your own EasyPost account, whether a parcel can be delivered there.
Addresses outside the US (Canada included) are not checked unless you ask: go to Orders → Shipping → Carriers and tick Also check addresses outside the US with the carrier in Address check (store owner only; the change is in the audit log). With it off, a label to another country is bought exactly as before, with no check and nothing said about the address. EasyPost may charge for international address verification, or refuse it, depending on your EasyPost plan.
For an address that is checked:
- Verified. The label is bought as usual. Under the order's shipping address you see Address verified by carrier.
- The carrier suggests a correction, or cannot verify the address. Nothing is bought. The Ship dialog shows the carrier's reasons in its own words and, when it has one, its corrected address. Then choose:
- Use suggested address: the order's shipping address is replaced with the carrier's version and the label is bought for it, so the customer's emails and any later parcel use it too. Settings → Audit log records which fields changed, and the address it replaced is kept with the order. This works only while the address could be changed by hand (see Changing the shipping address).
- Ship to the address as entered: the label is bought for the address as the customer gave it. Use it when you know better than the carrier, for a new building for example. Your choice is recorded on the order and in the audit log, and you are not asked again about that address.
- EasyPost gives no answer (it is down or too slow, or, for an address outside the US, international checks are not switched on for your EasyPost account). The label is bought anyway, and the order says Address could not be verified with the reason. It is never shown as checked.
The answer is kept with the order, so opening the Ship dialog again, or reviewing orders in Buy labels and then buying them, does not ask EasyPost a second time. Change the address and it is checked again; a check that got no answer is tried again after 15 minutes.
What it costs. The check runs on your EasyPost account and is billed, if at all, under your EasyPost plan, like postage. EasyPost says address checks made with its shipping service come at no extra cost when you buy the label. A check for an order you then do not label, and any check outside the United States if you turn those on (international address verification is a premium EasyPost service that has to be switched on for your account), may be charged or refused depending on your plan; your EasyPost billing page shows what you were charged. BestWebby adds no charge of its own.
Orders on hold
A held order shows On hold at the top of its page, and This order is on hold for review lists every reason it is held, in plain words, each with what to do about it. Until the hold is lifted the order cannot be fulfilled, shipped, handed over for pickup or have a label bought. The reasons you can see include:
- Payment disputed, with the bank's reason: answer the dispute before its deadline (see Disputes).
- A risky order you held, with the reasons the risk check gave (see Fraud protection).
- e-Transfer amount does not match the order total: record the rest when it arrives, or accept an overpayment you sent back.
- Supplier order is over the automatic ordering limit or Supplier credit limit reached: a backorder on a reseller supplier went past the terms the supplier set (see Reseller network).
- Stock could not be set aside after a late payment, or Part of this order could not be reserved again after a late payment (see below).
- Offer or auction price already used by another order, Refund failed at Stripe and Exchange difference unpaid.
More than one reason. An order can be held for several things at once, for example a dispute that opens on an order already held for a supplier limit. Every reason is kept, the first one first, and a new reason never replaces an earlier one.
A hold that lifts itself lifts only its own reason. A dispute closed in your favour (won, or an inquiry closed without becoming a chargeback) takes off the dispute. A corrected e-Transfer takes off the amount mismatch. A supplier backorder released in Reseller network takes off the supplier limit. Undoing an automatic fraud hold takes off that fraud hold. Any other reason still on the order keeps it held, and the page lists what is left. A dispute you lose stays on the order.
Release hold clears every reason at once, so read the list first. Releasing cancels and refunds nothing, and it settles nothing with the bank or a supplier. An exchange replacement waiting for the customer to pay the difference has no Release hold: ship it from the return instead (see Exchanges below).
When a payment arrives late. A card payment can succeed after an earlier attempt on the same order was declined, by which time the order had given back what it set aside: its stock, any supplier backorder, a gift-card amount and a discount use. BestWebby takes them back once. If some of it was taken by another order in between, or taking it back fails twice, the order is held, with the reason, and you get a notification starting A paid order is on hold, which says what is missing. Check stock and any supplier order, then release the hold, or refund the part you cannot send.
Voiding a label
Bought a label for the wrong parcel, service or address? On the order page, each parcel with a label shows Void label. The account that bought the label is asked for the postage back (EasyPost asks the carrier; Stallion Express voids it; Chit Chats takes a refund request), and you can then buy a new label for the same parcel.
- A label can be voided only before the carrier scans the parcel. USPS refunds are accepted within 30 days of purchase, UPS and FedEx within 90. Stallion Express refuses a void once the parcel is on its way, and Chit Chats says some refunds take up to two weeks; either way the postage goes back to your account with them, under their terms.
- The refund is processed by the carrier and can take up to 30 days. BestWebby asks the carrier again every half hour until it answers, and the parcel shows its status: refund requested, refunded or refused. If the carrier refuses, you get a notification, A carrier refused a label refund.
- If you had already marked the parcel shipped, your customer was emailed the old tracking number. Their tracking page shows the new label's number once you buy it.
Shipping across a border
When a parcel leaves one country for another, the carrier needs a customs declaration, and since 29 August 2025 every parcel into the United States is assessed by its HS code, whatever its value. BestWebby builds the declaration for you from your products; EasyPost turns it into the customs form and commercial invoice.
Set up once
- Orders → Shipping → Origin → Customs declarations:
- Signed by: the name of the person who certifies the declarations are true. A cross-border label is refused until this is set.
- Default country of origin: where your goods are made, used only for a product that names no country of its own. Leave it on None unless everything you sell is made in one country. It is never copied from your ship-from address for you.
- If a parcel abroad cannot be delivered: return it to you, or abandon it.
- On each product you ship abroad, open Compliance & customs and enter its HS code (6 to 10 digits, for example 6109.10.00) and its country of origin (2-letter code, for example CA). Its weight comes from the Shipping section. The written origin in Product insights is for your product page and is not used for customs.
There is no default HS code. Classifying a product is your decision, so a product without one cannot be declared.
An HS code must be 6 to 10 digits (dots, spaces and dashes are ignored) and a country of origin a two-letter ISO code. Anything else is refused where you type it, with the field named, rather than at the label.
Filling in many products at once
- Product list: tick the products, then Customs in the bar above the list. Enter an HS code, a country of origin, the CUSMA choice, or any of them; a box left empty keeps each product's own value.
- CSV import (Products → Import): add the columns hs code, country of origin and cusma (yes or no). A blank cell leaves that product's value as it is; a row with a value no customs office reads is skipped and listed with the reason, and the others import. The sample CSV link on the import screen has all three columns. The Export button on the product list writes them as hsCode, originCountry and cusmaQualifying, and the import on the product list reads the file back, so you can fill them in a spreadsheet.
- Connected stores (Products → Import → Marketplace sync): a Shopify sync brings each product's HS code and country of origin from Shopify (where they live on the product's inventory). A WooCommerce sync brings them when the store uses WooCommerce Shipping & Tax, which keeps them on the product. A value the store does not have leaves yours as it is. If Shopify will not give them, the sync still runs and says so.
- API:
hs_code,origin_countryandcusma_qualifyingon products (see the API reference).
Every change to these three fields, from any of these places, is in Settings → Audit log with the old and the new value.
Buying the label
In the Fulfil dialog, Customs details appears for an order going to another country, before you buy. It lists each line as it will be declared: quantity, value (what the customer paid for that line, in the order's currency), weight, HS code and country of origin.
- If a product is missing its HS code, country of origin or weight, Buy label is unavailable and the products to fix are listed, each linking to its editor. Nothing is bought until they are complete.
- The declaration covers only what you put in this parcel, so a split shipment declares each box's own contents.
- Paid orders are declared as merchandise. An order you charged nothing for can be declared as a gift or a sample instead.
- After buying, Print label has Print commercial invoice (or the carrier's customs form) next to it. Print both and attach them to the parcel. They stay on the parcel in the order's Shipments list.
Canada Post to the United States
Since August 2025 Canada Post accepts a parcel for the United States (or Puerto Rico, Guam, the US Virgin Islands, American Samoa or the Northern Mariana Islands) only with a Zonos Declaration ID, a 13-character code that proves the duties were paid in advance. EasyPost has no way to send that code with a label, so for a parcel from Canada to the United States BestWebby never buys a Canada Post label:
- Canada Post rates are left out, and the cheapest of your other carriers is bought. Customs details in the Fulfil dialog says so before you buy.
- In Buy labels for many orders, Canada Post is not offered for those orders, and each one says why under its rate.
- If Canada Post is the only carrier on your EasyPost account that offers a rate, the label is refused with the reason and nothing is bought. Add UPS, FedEx, DHL or another carrier in EasyPost, then buy again.
- At checkout, a shipping method you set up with Canada Post as its carrier, whether it is quoted live or priced from your own rates, is not offered to an address in the United States or those territories, so no customer pays for a Canada Post service you could not then buy a label for. Orders shipped from the register and the Test calculator leave it out the same way. If Canada Post was the only method reaching that address, checkout says the store does not deliver there and the order is not taken.
Parcels inside Canada, and from Canada to other countries, can still go by Canada Post. A prepaid return label from a US customer back to you is bought from the US side and is not affected.
If your Canada Post account in EasyPost has Zonos
Canada Post can take your US parcels when your own Canada Post account, connected in EasyPost, has Zonos duties prepaid set up: EasyPost then gets the Declaration ID from Zonos when it rates Canada Post. Set that up with Zonos and Canada Post first, then go to Orders → Shipping → Carriers and, under Canada Post to the United States, tick My Canada Post account in EasyPost has Zonos duties prepaid set up and click Save. Only the store owner can change it, and the change is kept in the audit log.
- Canada Post rates come back for parcels from Canada to the United States: in the Fulfil dialog, the cheapest-rate choice, a label that names Canada Post, Buy labels for many orders, and return labels. Checkout and the register offer your Canada Post shipping methods to US addresses again.
- Zonos bills you directly for the US duties on each parcel and for its own fee. BestWebby does not collect or remit duties.
- If Canada Post still refuses a label for a duties reason, nothing is bought and you see Canada Post's own message with a reminder to check Zonos on that account. If Zonos is not set up there, untick the setting and buy with another carrier.
- Left unticked, which is how every store starts, Canada Post is never bought for these parcels.
What your customers see
When your origin address is outside the United States and a customer has an order delivered to the United States, checkout tells them, under the total, that import duties, taxes or fees may be collected by the carrier on delivery and are not included in what they pay at checkout. The order confirmation email says the same, in English or French as the customer bought, and so does the page a customer comes back to after paying with PayPal, Klarna, Clearpay or Affirm. Your default shipping policy page has the sentence too. A store shipping from inside the United States, or one with no origin address yet, shows nothing.
With the Zonos setting on, a store shipping from Canada can tick Show US shoppers that duties are prepaid under it. Checkout, the page after an external payment, the order confirmation email and your shipping policy then say instead that import duties on an order delivered to the United States are prepaid by the store, and that on an order worth more than US$800 they may still be collected by the carrier on delivery (Canada Post leaves those to be paid on delivery). Tick it only if every order you send to the United States goes with its duties prepaid: a label from another carrier does not prepay them. It is off by default, and turning the Zonos setting off turns it off too.
Export legend
The declaration states why no export filing was needed, by your origin country's rules:
| From | To | Legend | When |
|---|---|---|---|
| Canada | United States | NDR1 | non-restricted goods for use in the US |
| Canada | anywhere else | NDR2 | the parcel is worth under CAD 2,000 |
| United States | Canada | NOEEI 30.36 | any value |
| United States | anywhere else | NOEEI 30.37(a) | each HS code in the parcel is worth USD 2,500 or less |
Above those amounts you must file before the parcel leaves: in CERS (Canada), which gives you a proof of report number, or in AESDirect (US), which gives you an ITN. Enter that number in Export filing number in Customs details and the label carries it. Restricted or controlled goods need their permit whatever the value. For an order in another currency, the value is converted at a recent rate with a 10% margin, so a parcel near the limit asks for the filing number rather than risk being under-declared.
CUSMA (USMCA)
Tick Qualifies as originating under CUSMA (USMCA) on a product only if you can certify it. When every item in a parcel between Canada, the United States and Mexico is ticked, a FedEx label asks FedEx for a certificate of origin. Other carriers do not produce one; keep your own certification on file.
Shipping many orders at once
On the Orders list, tick the orders you want, or the box in the header for the whole page. A bar appears above the list:
| Action | What it does |
|---|---|
| Mark shipped | Ships every selected order exactly as if you shipped each one on its own page. Held, cancelled or unpaid orders are refused and listed with the reason, and the rest go ahead. You can give one carrier for all of them. Tracking numbers are per parcel, so add those on each order, or use Buy labels. |
| Buy labels | Buys a shipping label for each selected order in one go. See Buying labels for many orders below. |
| Picking list | Downloads a CSV of every line in the selection (order, SKU, product, variant, quantity) for whoever picks the stock. |
| Packing slips | Opens printable packing slips for the selection. |
| Add tags / Remove tags | Tags every selected order, for example wholesale or priority. |
Buying labels for many orders
Select up to 100 orders on the Orders list and click Buy labels. Each label is bought through the account its rate names (EasyPost, Stallion Express or Chit Chats) exactly as Buy label buys one from the Fulfil dialog, so connect at least one first (see Before your first label above).
1. Review. Every order is priced before anything is bought:
- Each order shows where it is going, the parcel weight (from its products' weights, with no box size, the same parcel the Fulfil dialog buys for) and where it ships from. Choose a location under Ship from to send the whole run from one of your locations. Left as it is, an order that order routing sent to a location ships from that location, and every other order from your shop origin (see Which location ships an order above).
- The cheapest rate from all your connected accounts is selected. Pick another carrier or service for any order from its list; a rate from Stallion Express or Chit Chats names that account. The button shows how many labels will be bought and their total. Chit Chats is offered here only for a parcel of one product with its length, width and height set, since a run has no box size.
- Orders that cannot get a label are listed with the reason and left out: not paid yet, already shipped or cancelled, on hold, collected in store, going out on your own local delivery, partly shipped already, already labelled, no complete shipping address, nothing in it that ships, or a product with no weight. A label to another country also needs its customs details (see Shipping across a border).
- Each US address, and others if you turned that on, is checked with the carrier (see Checking the address with the carrier). One it cannot verify, or would correct, is listed with the carrier's reason and left out: open the order, click Ship, Buy label, and choose there. An address the carrier could not answer about is priced as usual, with Address not verified by the carrier under its rate.
- Mark each order shipped once its label is bought is ticked unless you untick it. Each order is then shipped as if from its own page, and its customer gets the usual shipping email with the tracking link. Untick it to buy and print first, then ship each order from its page.
2. Buying. Click Buy labels. The labels are bought in the background, a few at a time, and Orders → Label runs shows the run order by order as it goes. You can close the page; you get a notification, A bulk label run finished, when it is done.
- An order the carrier refuses (an address it cannot deliver to, for example) is marked Not bought with the carrier's reason. The others carry on.
- An order whose address the carrier doubts when the run reaches it is skipped with the carrier's reason. Decide on the order, then Resume (or Retry the rest): an address you chose to ship as entered, or corrected, is bought; one still undecided is skipped again.
- If a rate has gone up since you approved it, or the carrier no longer offers that service, the label is not bought and the order says so. Nothing is spent above the price you saw.
- If your carrier account (EasyPost, Stallion Express or Chit Chats) cannot pay for postage, the run stops at that order and the orders after it are marked as not bought. Add funds or a payment method there, then click Resume.
- Stop stops the run after the labels being bought at that moment. Labels already bought are kept.
- Resume (or Retry the rest on a finished run) tries again for orders that were not bought, and ships bought orders that could not be marked shipped. An order never gets a second label: one this run already labelled is only shipped, and a label bought just before an interruption is picked up rather than paid for again.
3. Printing. Choose 4 × 6 in label printer or US letter, one label per sheet, and tick Packing slip after each label to print each order's slip straight after its label. Download PDF gives one file with every label in the order you reviewed them; Open print view shows the same sheet to print from your browser. A label that is not an image (some carriers return a PDF) or that was voided since is listed at the end of the sheet; print it from its order.
Buying labels for many orders takes the same permission as buying one, and a suspended account cannot buy them. Postage is billed to the account each label was bought through, as for single labels.
Pickup orders
A shopper who chooses to collect in store places a pickup order. Its page shows a Pickup panel in place of the shipping address and Ship:
- Choose the store under Pickup store and click Assign.
- When the order is packed, click Mark ready. The shopper is emailed that it is ready to collect, from your store's own address and in the language they shopped in.
- When they collect it, click Mark collected. The order is complete.
An order on hold must be released before it is handed over. A label cannot be bought for a pickup order. See Buy online, pick up in store.
Local delivery
To deliver orders yourself, add a method of type Own delivery to a zone on Orders → Shipping → Zones & methods. Checkout offers it only when every rule you set is met:
- Min order: the order is at least this amount.
- Delivery postcodes: the shopper's postcode starts with one of the codes you list, one per line or separated by commas.
M5Vcovers M5V 3L9, so you can list whole areas. A shopper who leaves the postcode blank is not offered it. Leave the list empty to offer it to every address in the zone. - Cutoff time and Available days: there is a delivery day within the next week. After the cut-off, today no longer counts.
- Price: One rate charges the same for every address. By distance charges by how far the address is (see below).
Pricing by distance
Choose By distance and add tiers, for example up to 5 km costs 4.00, up to 10 km costs 7.00, up to 15 km costs 10.00. The last tier is the farthest you deliver. Under Measured from, pick the location the van leaves from, or your shipping origin. That place needs a postal code.
Distance is measured in a straight line between the centre of your postal code area and the centre of the shopper's, in Canada and the United States. A postal code is an area, not a door, so each one comes with how far an address in it can be from its centre: about half a kilometre for a city postal code in Canada, more for a rural one, and a few kilometres for a US ZIP code. Checkout never guesses inside that range:
- If the shopper's area falls inside one tier, they pay that tier.
- If it crosses from one tier into the next, they pay the farther tier.
- If it reaches past your last tier, the method is not offered, and checkout asks the shopper to contact you to arrange delivery.
- If their postal code is not known, or is outside Canada and the United States, the method is not offered.
The postcode list, minimum, days and cut-off still apply to a method priced by distance. A method with one rate works exactly as before. If an older method still has a delivery radius, its form says so: that radius never limited who was offered it, and saving the method removes it.
To check an address, open Test calculator and enter its postcode and order value. It lists the methods checkout would offer, and for one priced by distance, the distance it measured and the tier it charged. It also lists any own-delivery method it would not offer, with the reason.
Postal code locations are from GeoNames (CC BY 4.0).
Delivering the orders
The order page shows the day each delivery is for, for example "Local delivery on Thursday, 15 October 2026", worked out from your delivery days and cut-off when the shopper checked out. When you have delivered it, click Delivered locally. The order is marked delivered and the shopper is told; no tracking number is needed.
Orders → Delivery runs lists the local-delivery orders for a day (today unless you pick another date) that have not been delivered yet:
- Under Start from, pick where the van leaves from.
- The stops are listed in nearest-next order: each one is the closest stop not yet visited. This is an estimate, in straight lines between postal code areas, and it does not know the roads. A stop whose postal code is not known goes at the end.
- Click Directions in Google Maps to open the route. Google Maps takes up to 11 places in one link, so a longer run is split into parts.
- Click Print for a paper copy.
An order on hold stays on the sheet, marked, and is left out of the directions and the driver's link.
The driver's link
To let a driver mark stops delivered without a staff login, enter their name under Driver link, choose how long the link works (up to 48 hours) and click Make driver link. Copy the link and send it to the driver; it is shown once. It opens that day's stops, in the run sheet's order, on a phone. For each stop the driver can open directions, take an optional photo (JPEG, PNG or WebP, up to 8 MB) and tap Delivered. The order is marked delivered and the shopper gets the same delivered email as from the order page. Location and camera details are removed from the photo, and only your team can open it.
The run sheet shows each driver link with how many stops are delivered, when and by whom, and the photo. Click Revoke to stop a link working before it expires. Making a new link does not stop an older one.
Delivery instructions and gift messages
At checkout every shopper can leave Delivery instructions, such as a buzzer code or where to leave the parcel (on a pickup order the field is A note for the store), and tick This is a gift to write a gift message. Both are optional, plain text and up to 500 characters each. An order placed on a company's account or by a shopping agent can carry them too.
- On the order. The order page shows them under From the customer. A local-delivery order repeats the instructions beside its delivery day, and for a pickup order they show on the Pickups list and in the hand-over window.
- On the packing slip. The gift message is printed on the slip in a box of its own, and a gift order's slip leaves out the line about the emailed receipt, since the receipt went to the buyer. Delivery instructions are not printed on the slip: it travels inside the parcel, and the instructions are for whoever delivers it.
- In notifications and emails. Your new-order notification says when an order has instructions or a gift message; if you get it by email, the email includes the words. The shopper's receipt repeats what they wrote.
- In exports and the API. Order exports have a column for each (see Exporting orders below), and orders read through the API include
buyer_noteandgift_message. - Erasing a customer clears both from their orders.
Draft orders
A draft order is an order you build for a customer: a sale taken by phone or email, a custom quote, or a sale in person. Open Orders → Draft orders (or Draft orders at the top of the order list) and click New draft order.
- Customer. Choose an existing customer, or type a new email address and a name. An address that already belongs to one of your customers is matched to them.
- Items. Search your products and click one to add it. A product with variants asks which one (size, colour), and the order takes stock from that variant. Leave the unit price blank to charge the variant's price, or the catalogue price; type a price to charge something else. Custom line adds an item that is not in your catalogue, such as engraving or installation: give it a name and a price, and untick Charge tax on this line if it is not taxed. A gift card product is charged at one of the amounts it offers; enter the email address it goes to, with an optional name and message, or leave the address blank to send it to the customer.
- Discount. An amount off, or a percent off, with an optional reason the customer sees. As at checkout, gift cards and Network Search items are never discounted: a percent is of the other items, an amount comes off them (never more than they come to), and a Network Search item is taxed on its full price. A draft with nothing else on it cannot take a discount, and the composer says so.
- Shipping. A name, such as Courier, and the charge. Tick Ship to an address to add where it goes.
- Link payable for. How many days the payment link works, 14 unless you change it (1 to 365).
The total at the bottom updates as you type. Tax is worked out with your tax settings for the shipping address, or for your store's address under Orders → Shipping → Origin when there is none, the same way checkout taxes a cart (with Stripe Tax when you have turned it on). Each product line is taxed by its product's tax category, as checkout taxes it; a custom line is taxed as general goods at your standard rate, the same as a product with no category, and a gift card is not taxed. A customer whose company account is tax-exempt pays no tax. The figure shown as Customer pays is exactly what the payment link charges. If you ask for more units than you have in stock, the composer says so.
Editing a draft
Until you send it, a draft can be changed: click Edit beside it. The composer opens with everything you entered, each line at the price it was drafted at, and Save changes prices it all again, discount, shipping and tax included, the same way as a new draft. A percent discount comes back as the amount it worked out to. The days the link is payable for are counted again from the day you save. Once a draft has been sent its customer may already be paying it, so it can no longer be edited: cancel it and create a new one.
Sending the payment link
Click Send invoice. The customer is emailed a link to a page that lists the items, discount, shipping, tax and total, where they pay by card. The card is taken on your own Stripe account, so connect Stripe under Settings → Payments first. The email goes from your store's own email address; if your store has no email domain of its own yet, or the address is on the do-not-email list, the email is not sent and you are told. The link works either way: Copy link puts it on your clipboard to send yourself. Resend emails the same link again.
When the customer pays, the draft becomes an order in your order list, ready to fulfil, with the customer, address, discount, shipping and tax on it. You get a New order from a draft order notification when it is paid by card, and the customer is emailed the same receipt as a checkout order, from your store's own email address once your email domain is set up. Its stock is taken the moment it is paid. Units you did not have in stock are recorded on the order as a backorder rather than refused, because the customer has already paid. Custom lines are listed in the order's note. Gift cards on it are issued when it is paid, one code per card, and emailed to their recipients the way a card bought at checkout is; a gift card on a company account's draft whose buyer has no email address is paid but not issued, and the order's note says so, so you can issue it from Catalog → Gift cards. Each line of the order keeps the tax category it was taxed under when the draft was made or last edited, even if you change the product's category before the customer pays, so a later edit, exchange or refund of it uses the rate the customer was charged. Drafts made before BestWebby started recording this, and drafts for company accounts, take the product's category when they are paid.
Marking a draft paid
If the customer paid another way, click Mark paid…, choose how (cash, e-Transfer, bank transfer, cheque or other) and say why, for example "Paid cash at the counter" or the e-Transfer reference. The reason is required. The draft becomes an order straight away, its stock is taken, and the payment is recorded as received outside BestWebby, with the reason and your name in the audit log. Only mark it paid once the money has reached you: for an Interac e-Transfer, once it is in your bank (BestWebby is not endorsed by or affiliated with Interac Corp.). Marking paid needs finance access and, if you use two-factor authentication, a code from your authenticator app. Its payment link stops working; a card payment that still arrives for it is refunded automatically.
Draft states
- Open: built, not sent. You can send it, mark it paid, cancel it or delete it.
- Invoice sent: the link is live until the date shown. After that it reads Link expired and cannot be copied or sent again; cancel it and create a new one. The date is counted from the day you made the draft, so an open draft can expire before it is sent too.
- Paid: it is an order. View order opens it.
- Cancelled: the link no longer works. A cancelled draft can be deleted; a sent or paid one cannot.
Drafts made for company accounts are on B2B accounts, not here. See B2B accounts.
Service orders
A service order is an item a customer leaves with you to be repaired or worked on: a bike for a tune-up, a phone with a cracked screen, a watch to be serviced. Open Orders → Service orders to see the ones in hand as a list or as a Board by status, and click New service order to take one in. At the till, Service orders in the bar at the top does the same for the counter.
Taking it in. Choose the customer or type their name, email and phone. Describe the item, its brand, model and serial number, the problem they report and its condition (scratches, missing parts, accessories left with it). A serial number that matches a unit you sold is linked to it, and the service order shows the product, when it was sold and its warranty date. Add a due date and, if you already know it, an estimate. If the customer agrees to texts about the repair, tick the box: it is recorded with your name, and without it they are never texted. Each service order gets a number (SO0001, SO0002 and so on) and a private link to its own page.
Ticket and claim tag. Print ticket prints the intake ticket for the customer, on the till's 80 mm roll or a page: the number as a barcode, the item, the problem, its condition, the estimate, any deposit, the due date, the link to follow it and a line to sign. Print claim tag prints a small label for the item itself with the barcode in large. Scanning either barcode into the search box finds the service order. The search also finds a customer's name, email or phone, a serial number and the item.
Photos. Add photos of the item as it came in. They are kept in your store's private storage, shown to your team only, and never on the customer's page.
The estimate. Enter the amount and what it covers, then click Ask the customer to approve. The customer is emailed (and texted, if they agreed to texts) a link to their page, where they approve or decline it, with their name if they want. An answer given at the counter or on the phone is recorded with Approved in person, Approved by phone or Declined. The answer is for that amount: changing the estimate clears it, and the customer is asked again.
Statuses. A new service order starts in the first status of your list. Statuses… lets you rename them, put them in your order, add your own, and choose which ones email or text the customer when an order moves into them. The defaults are Received, Diagnosing, Waiting for parts, In progress, Ready for pickup, Collected and Cancelled; Received, Waiting for parts and Ready for pickup email the customer, and Ready for pickup also texts a customer who agreed to texts. Collected and Cancelled are set by Check out and Cancel, never picked by hand, and a status with service orders in it cannot be removed. Every move is written to the service order's timeline and to Settings → Audit log with the old and the new status and who made it, and the timeline says whether the customer was emailed or texted, or why not. Emails come from your store's own email address; texts go from your store's number and use your SMS credit.
Parts and labour. Add a part from your catalogue (a product with variants asks which one), at its catalogue price unless you type another. Use it now takes it from stock straight away; Add as estimate lists it without taking anything, and Use takes it later. Parts are taken from the service order's location, or from your default location when the product's stock is kept by location, and a part you do not have enough of is refused with its name. The stock history shows each one as "Service order SO0001". Return puts a used part back on the shelf, exactly where it came from; removing a used part does the same. Gift cards, Network Search items and products that track lots or serial numbers cannot be used as parts. Labour is a description, hours (to the hundredth) and an hourly rate, taxed unless you untick Taxed.
Deposits. Send a pay link emails the customer a link to pay a deposit by card on your own Stripe account (connect Stripe under Settings → Payments first). At the till, Take deposit takes it in cash (rounded to 5¢ if your store rounds cash), on your card terminal, by e-Transfer or another way, into the open drawer, and the shift report counts it as Service order cash. Record a deposit on the dashboard is for money you took outside BestWebby, with a note. A deposit is the customer's money until you check out: your ledger lists it as a service order deposit, not as a sale.
Check out. When the work is done, click Prepare bill. Every part must be used or removed first. The bill is priced the way a draft order is: tax with your tax settings for your store's address (with Stripe Tax when you have turned it on), the customer's tax exemption, and item fees such as eco fees on the parts. Each part is taxed by its product's tax category; labour is taxed at your standard rate unless you marked it not taxed. Any change to the parts or labour afterwards clears the bill, so the customer is never charged for work that changed. Then:
- At the till, Check out takes the balance with the till's tenders into the drawer. The service order becomes a till sale, handed over, with the deposits credited.
- On the dashboard, Check out… records how the balance was paid, with a note, or nothing when the deposits cover it.
- Send balance link emails a link for the balance. When the customer pays it, the order waits in Orders → Pickups to be handed over.
The order lists each part, with the tax and fee lines as billed; labour is listed in the order's note. Its tenders are every payment taken on the service order. Parts already taken from stock are not taken again: cancelling or refunding the order puts them back as for any order. After checkout, refunds go through the order like any other. If more was paid than the bill, give the difference back before checking out.
Giving a deposit back. Under Money, Give back returns a payment: a payment by link back to the card, and cash taken at the till from the till's drawer, each as a whole payment; anything else, all or part of it, is recorded as given back where it was paid. Giving money back needs the refund permission and your two-step code, as any refund.
Cancelling. Cancel service order needs a reason and nothing left paid: give the deposits back first, or to keep a diagnosis fee, add it as labour and check out instead. Used parts go back on the shelf and any open pay link stops working.
The customer's page. The link on the ticket and in every email opens a page with the status and its history, what they told you, the estimate with Approve and Decline, what they have paid and what is due. It never shows your internal note, your team, the photos or anything about your stock. New link makes a fresh link and the old one stops working.
At the till, gift cards and the card reader are not taken for service orders yet: use cash, your card terminal or e-Transfer, or send a pay link. A deposit or check out at the till needs a shift open on that till. Customer emails about service orders are in English.
Tracking and delivery updates
When a parcel has a tracking number from your EasyPost account, BestWebby follows it and updates the shipment as the carrier scans it. A label bought through Stallion Express or Chit Chats is followed through that account, every 30 minutes, the same way. Your customer's tracking link opens a page in your store's branding, and they are emailed when it is out for delivery, waiting for them to collect, delivered, or held up by a delivery problem. These emails, and the tracking page their link opens, are in the language the shopper checked out in. Orders → Shipments lists every parcel with its destination, carrier and expected delivery date.
You can also set a parcel's status by hand on the Shipments tab of Orders → Distribution, choosing from the same steps the tracking page shows (pending, label created, in transit, out for delivery, available for pickup, exception, delivered). Marking the last parcel of an order Delivered marks the order delivered too, just as a carrier update would, so the customer can start a return.
An order's totals
The order page lists the subtotal, discount, fees, shipping and tax, then the order's Total. When a gift card paid for part of it, Paid by gift card and Card, cash or other payment follow, and the two add up to the total. An online order and a till sale read the same way, so a gift card is never shown as taken off a total that already holds it. A gift card amount that could not be collected when a late payment came in shows as Gift card not collected. After an edit, the total is what the order now comes to and Charged is what was paid by card or cash. The customer's receipt prints a till sale's gift card under what was paid.
Cancelling an order
Open the order and click Cancel order. The items go back into stock, except units that have already shipped, and the customer is emailed that the order was cancelled. An unpaid order is cancelled without an email.
If the customer has paid, the dialog offers Refund the remaining amount, ticked by default. Card payments go back to the card, and the cancellation email says the refund was issued. Leave it unticked and the customer stays charged until you refund them; the email then says you will be in touch about any refund. Refunding needs finance access and, if you use two-factor authentication, a code from your authenticator app. If the refund fails, the order is still cancelled and the page says the money did not move. For an order paid by Interac e-Transfer, tick it only once you have sent the money back from your own bank: it records the refund, it does not send it. (BestWebby is not endorsed by or affiliated with Interac Corp.)
Refunding an order
Click Refund on the order page. You can refund an amount, or pick the items to refund. The customer is emailed that the refund was issued. However many partial refunds an order has had, the total never goes above what was paid.
Refunding an amount. Enter the amount, or leave it blank for everything that remains.
- A refund puts back into stock only what never left: units that have shipped stay with the customer. Goods that come back are restocked when you receive the return.
- Partial amounts leave the stock alone. The refund that brings the order to fully refunded puts the unshipped units back, once, leaving out any units an item refund already dealt with.
Refunding items. Under Items to refund, enter how many of each item to refund, and tick Refund the shipping to give the shipping charge back too. The amount fills in for you: the price of those units, less their share of the order's discount, plus their item fees and their share of the tax (tax charged on shipping goes with the shipping). You can type a different amount instead.
- Each item can be refunded only up to the quantity ordered, and the shipping only once. The order page shows how many of each item have been refunded and restocked.
- For each item, choose whether to put the units back in stock. Units that have not shipped yet are ticked: they go back to the location they were taken from, and they are no longer shipped with the order. Units that have shipped are not ticked; tick it only if the goods came back to you. A return you receive restocks on its own, so do not do both. Lot- and serial-tracked units that shipped are restocked through a return, where they can be scanned.
- Units you refund without restocking are written off: a later cancel or full refund does not put them back either.
- Two people refunding the same order at once cannot refund the same units twice: the second refund is refused and nothing is charged back twice.
- A refund of a cancelled order leaves it cancelled and does not restock again.
- Refunds ask for a code from your authenticator app if you use two-factor authentication.
- On an order paid by Interac e-Transfer, a balance the customer later paid by card after you edited the order counts towards the refund limit too. What goes back as an e-Transfer is never more than came in that way; the rest of the refund is store credit. (BestWebby is not endorsed by or affiliated with Interac Corp.)
When a card refund fails afterwards. Stripe accepts a card refund straight away, but the shopper's bank can still turn it down days later, for example when the card was reported lost or the account is closed. The money then comes back to your Stripe balance. When that happens, BestWebby books the refund back in your ledger, makes the amount refundable again, and tells you. An order the failed refund had closed as refunded goes back to the status it had before and is put on hold, because its items were put back in stock when it was refunded: check stock, then refund the shopper another way (store credit, or from your own bank) or release the hold and ship.
Tax with Stripe Tax
Under Settings → Payments → Automatic tax (Stripe Tax) you can have Stripe work out the tax at checkout from the customer's address and the tax registrations in your own Stripe account, instead of your own tax rules. It needs your Stripe account connected, and it runs on that account, under your registrations. While BestWebby has not switched Stripe Tax on for stores, the card says so and checkout uses your tax rules.
When it is on:
- Each item is taxed for what it is. A product with a tax category (basic groceries, prepared food, children's clothing and footwear, printed books, prescription drugs, prescribed medical devices, digital services, professional services, or not taxable) is sent to Stripe with that category's tax code. Any other product is sent by its type: physical goods, digital goods and services each have their own code. Shipping goes as shipping, so Stripe applies each place's rules. A gift card is money, so its sale is not taxed, whatever its category. Checkout, the cart's estimate, draft orders and order edits send the same codes.
- Prices that include tax work the same way: Stripe takes the tax out of the price instead of adding it.
- A pickup order is taxed at the store it is collected from, not at the shopper's address: Stripe is sent the pickup location's address. Your own tax rules do the same, so the store's province or state decides the tax whichever engine runs. A pickup location needs a country, a province or state and a postal code for this; see How a pickup order is taxed.
- If Stripe cannot answer (an outage, or an address too incomplete to tax), checkout uses your own tax rules for that order, so a sale is never blocked.
- Customer tax exemptions are not sent to Stripe. Stripe can only exempt a customer from all tax, not from one tax such as PST, so an order Stripe Tax prices is charged in full. A customer's exemption applies only where your own tax rules price the tax. A company marked tax exempt under B2B still pays no tax at all, as before.
- Paid orders and refunds are recorded in your Stripe Tax. Your Stripe tax reports, the ones you file from, include an order once it is paid, dated when it was paid, and every refund gives its tax back there too: a full refund reverses the whole sale, a refund of items reverses those items (and the shipping, when you refund it), and a refund of an amount reverses that amount across the order. Draft orders and appointment bookings are recorded the same way; their refunds are reversed by amount.
- Recording never holds up a payment. If Stripe refuses or is down, the payment and the refund go through as normal, and BestWebby tries the record again every few minutes, then less often. After three failed tries you get a missing from your Stripe Tax records notification on the order.
- Two cases need you. Stripe keeps a calculation for 90 days, so an order paid later than that cannot be recorded automatically. And a card refund that fails after its tax was already given back cannot be undone in Stripe. In both cases you are notified: record the difference in your Stripe Tax by hand.
Tax with your own tax rules
Without Stripe Tax, tax comes from the rates you set under Tax rules. Each rule charges its rate on everything it covers, unless you give it a different rate for a product tax category. Click Category rates on a rule and enter the percent for each category that is taxed differently; leave a category blank to charge the rule's own rate on it. Not taxable (exempt) products are never taxed unless a rule names a rate for that category.
For your Canadian rules the page offers Canadian category rates: for each rule it recognises (GST at 5%, the HST of Ontario, Nova Scotia, New Brunswick, Newfoundland and Labrador and Prince Edward Island, British Columbia's PST, or a provincial part added to GST), it shows the rates federal and provincial law charge, with Apply to this rule. They come from the Canada Revenue Agency's GST/HST guidance (basic groceries, prescription drugs and listed medical devices are zero-rated; info sheets GI-063 and GI-065 for the point-of-sale rebates of the provincial part on children's clothing and footwear in Ontario, Nova Scotia and Prince Edward Island, and on printed books in Ontario, Nova Scotia, New Brunswick, Newfoundland and Labrador and Prince Edward Island) and British Columbia's PST bulletins 201, 205, 206 and 207. For example, under Ontario's 13% HST, children's clothing and printed books pay the 5% federal part only, and basic groceries pay nothing.
Nothing changes until you click Apply to this rule, and a rate you set yourself is never replaced. A rule the page cannot place (a single blended rate, a rule for one tax class, or Quebec, Saskatchewan and Manitoba, whose provincial rules you set yourself) says why instead of guessing. Prepared food in Ontario is rebated only under $4, which a rule cannot tell from the price, so it stays at the full rate. Check the rates against your own situation; they are a starting point, not tax advice.
The rate a category gets is the same everywhere an order is taxed by your rules: checkout, the cart's estimate, draft orders, the point of sale, exchanges and order edits. On the receipt, a rule charged at two rates (13% on a shirt and 5% on a child's shirt) shows as two lines.
Customer tax exemptions
Some customers do not pay a particular tax: a First Nations customer with a Certificate of Indian Status, a reseller buying for resale in British Columbia, a commercial fishery, a farmer. Add the exemption on the customer's page and it is taken off their purchases: at checkout when they are signed in to your store, on draft orders for them and the orders those become, and at the point of sale.
Each kind of exemption takes off only the taxes it covers, and only where the sale is taxed (the delivery address, or the store for a pickup or a sale at the till). The kinds are the ones Shopify uses, so a store moving over keeps the same words:
| Kind | Takes off |
|---|---|
| Canada status card | The provincial part, in every province: PST, RST, QST, or the provincial part of HST (in Ontario the 8% part of the 13% HST, the point-of-sale relief in the Canada Revenue Agency's info sheet GI-106). GST and the federal part of HST are still charged. |
| Canada diplomat | Manitoba GST and RST; Nova Scotia HST. |
| Reseller | British Columbia PST, Manitoba RST or Saskatchewan PST (one kind per province). |
| Commercial fishery | British Columbia PST, Manitoba RST, Nova Scotia HST, Prince Edward Island HST or Saskatchewan PST. |
| Production and machinery, Contractor, Subcontractor | British Columbia PST or Saskatchewan PST. |
| Ontario purchase | Ontario RST, on a rule of its own. Never the HST. |
| Farmer | Manitoba RST, Nova Scotia HST or Saskatchewan PST. |
| Other | The provincial part, or every sales tax, in the one province you choose. |
- Which of your rules is which tax is read from the rule's Label (GST or TPS, HST or TVH, PST, RST, QST or TVQ), then from how it is set up: a rule for the whole country is GST, a province rule added on top of it is that province's own tax, and a province rule that replaces GST in Ontario, New Brunswick, Nova Scotia, Newfoundland and Labrador or Prince Edward Island is the HST. A province rule that replaces GST anywhere else is one blended rate (GST and PST together) that cannot be split: the exemption is not applied to it, the tax is charged in full, and the till says which rule it could not apply to. Split such a rule into a GST rule and a PST rule to use exemptions with it.
- An expiry date is honoured to the end of that day. An expired or removed exemption takes nothing off.
- Status card relief on goods delivered to a reserve (where the federal part is not charged either) depends on where the goods go, not on who buys them, and is not covered by an exemption here.
- Prices that include tax. When your prices include tax, an exemption does not change what the customer pays: the shelf price is the price, the same rule as a tax-exempt company. Exemptions apply to stores that add tax at checkout.
- What the order keeps. An order sold under an exemption records which one, its province, the number and what it took off. Each tax it removed stays on the order as a line at zero (for the provincial part of HST, a line charged at the federal part), so the tax filing summary can count it. An order edit re-prices the change under the same exemption.
- At the point of sale, tap Tax exempt sale. Pick the customer's exemption on file, or choose a kind and type a card or certificate number for this sale only. A number typed at the till needs a manager: an owner, admin or manager signed in at the till approves it, with their two-factor code if they use one. The till shows what the exemption takes off before you charge, and the sale is on the audit log with the kind, the last four characters of the number and who approved it.
Checking the card or certificate is up to you: BestWebby cannot verify it. Keep the number with your records; the order keeps it for you.
Item fees: eco fees and container deposits
Some products carry a charge on top of their price: an environmental handling fee (EHF, or eco fee) on electronics, tires or paint, or a deposit on beverage containers. Set them up under Finance → Item fees (/tax-rules/item-fees, also linked from Tax rules). For each one you choose:
- The name shoppers see, such as "Environmental handling fee" or "Container deposit", and whether it is a fee or a deposit.
- The amount per unit, or a percent of the price. You set every amount: most provincial programs leave the fee a store shows to the retailer (Ontario's Resource Productivity and Recovery Authority does), and the beverage container deposits of British Columbia, Alberta and Québec follow each province's own schedule. BestWebby charges exactly what you enter and never looks up or changes an amount, so check it against your program and your suppliers.
- The provinces and territories it is charged in. Tick none to charge it everywhere in Canada.
- What it is charged on: products you pick, products in a category, or products with a tag.
- Whether sales tax is charged on it. It starts ticked for a fee and unticked for a deposit, the usual treatment, but it is your call: check with your province or your accountant.
- Whether it counts toward the order value your shipping rates are priced on (a rate that drops to zero over a set amount, for example). Off unless you tick it.
How a fee is charged:
- Only where the goods go in Canada. A delivered order is charged the fees of the province it is delivered to, a pickup order those of the store it is collected from, and a sale at the point of sale those of the register's store (or, for a sale shipped to the customer, of where it is going). An order outside Canada carries no fee.
- Per unit, never discounted. No discount code, bundle, promotion or loyalty points take anything off a fee, and a percent fee is of the item's price before any discount. A gift card never carries a fee.
- Taxed as its own line when you tick sales tax: your tax rules tax it at the standard rate, and Stripe Tax receives it as its own item (a fee you do not tax is sent to Stripe Tax as not taxable, so its records add up to what the customer paid).
- Shown before the customer pays: under the price on the product page ("+ $0.50 Environmental handling fee", and where it is charged), on each item in the cart, at checkout once the address is in, and on the order confirmation, the receipt and the customer's order page. The point of sale shows and prints each fee; draft orders and their payment links include them. Packing slips do not.
- Kept on the order as charged. Each order keeps every fee it charged on its own line: the name, the province, the units, the amount and whether it was taxed. Changing or deleting a fee later never changes an order already placed. The order page lists them under the items.
- Given back with the item. Refunding items gives back those units' fees (half the units, half the fee); a refund of an amount gives fees back in proportion; a return's amount includes the returned units' fees. An order edit that takes units off takes their fees off too, and a product added by an edit takes today's fees.
- Not added to: appointment bookings (a service, not goods), Subscribe & Save renewals (a renewal charges the price the subscriber agreed to), B2B draft orders and quotes, terms invoices, and orders imported or pulled in from a marketplace. Add a line for a fee yourself where one applies.
Reporting. Finance → Tax filing has an Item fees and deposits section for the same period: per fee and province, the units sold, the amount collected, the units returned, the amount refunded and the net to remit, with Download fees CSV. Fees count in the period the order was paid and refunds in the period of the refund, as for tax. Units returned counts refunds of items; a refund of an amount gives fees back in proportion without units.
Tax filing summary
Each order keeps every tax it charged on its own line: GST, PST, QST, HST or a state's sales tax, with the rate, the amount it was charged on and the place it is owed to. They come from your tax rules (each rule's own Label) or, with Stripe Tax, from Stripe's own breakdown; when Stripe gives none, the order keeps its whole tax as one line for the place it was taxed. This is kept for web orders, the point of sale (layaways included), draft orders and the orders they become, appointment bookings, and orders placed by shopping assistants. An order edit moves each tax by its own change.
Finance → Tax filing (/tax-rules/filing, also linked from Tax rules) adds them up for a period, per currency and per tax and jurisdiction: taxable sales, tax collected, tax refunded and net tax. Download CSV gives the same figures as a spreadsheet.
- Sales count in the period they were paid, not the one they were placed in. An order with no payment on record (one billed on terms) counts on the day it was placed, and the page says how many.
- A refund counts in the period it was made. It gives back each tax in proportion to the amount refunded out of what the customer paid, so a partial refund takes off part of each tax and the refunds of an order never give back more tax than it charged. A later refund never changes a period you already filed. A card refund that fails and brings the money back adds that tax back, in its own period. The refund that settles an order edit gives none back, because the edit already changed the order's taxes.
- Test-mode orders are not counted, as on every money screen.
- Exempt sales. A sale under a customer tax exemption counts under each tax it removed: the tax not charged and, when a tax was taken off entirely, the sale itself as an exempt sale rather than a taxable one. The page lists them per tax with each kind of exemption and how many orders, and Download CSV has them in three more columns: Exempt sales, Tax removed by exemptions and Exemption types.
- No split recorded. Orders placed before each tax was kept separately, orders from a quote or a terms invoice, and imported or marketplace orders show as one total per currency under No split recorded. The page never guesses how to split them; use your own records for those.
- Invoices you send from Invoices that never became an order, and a price difference paid on an exchange's invoice, are not in the summary.
- Item fees are not taxes and are not in the tax rows: a taxed fee's tax is, under its tax. The fees themselves are in Item fees and deposits below the tax summary (Item fees).
This is a summary to help you file, not a filed return. BestWebby does not file or pay tax for you. Check the figures against your own records, and your registrations, before you file.
How an order's status changes
Each status belongs to the action that causes it, so the record always matches what happened:
| Status | Set by |
|---|---|
| Processing | Payment, or moving a pending order on |
| Shipped, delivered | Shipping the order (and the carrier's updates), or Delivered locally |
| Ready for pickup, completed | Mark ready and Mark collected on a pickup order |
| Cancelled | Cancel order |
| Refunded | A refund |
| Returned | Marking a shipped, delivered or completed order returned |
An order cannot be moved straight to shipped, delivered or refunded by editing its status. Notes and tracking can still be edited on any order.
Changing the shipping address
On the order page, click Edit beside the shipping address. The address is checked against the same country rules as checkout (for example, a Canadian postal code must look like M5H 1A1), and the change is recorded in the audit log.
You can change it while the order is open (awaiting payment or processing) and before any shipping label is bought for it. Once a label exists, void the label first: a label is printed for one address, and a parcel would go to the old one. Once part of the order has left, the address can no longer be changed. Pickup orders have no shipping address.
Editing an order
A paid order can still change before it has all shipped: the customer wants one more, a different size, or to drop an item. On the order page, click Edit order.
Every line keeps the tax category its product had when it was sold. Editing, exchanging or refunding a line taxes it that way, even if you have since changed the product's category; a line added later is taxed by the category the product has then. Orders placed before BestWebby started recording it have no record and use the product's current category.
- Change a quantity. Type the new number for a line. A line can go down only as far as what has already shipped or been refunded: those units, and anything that came back in a return, are never touched.
- Add products. Search your catalogue and pick a product or variant. It is priced like a draft order line: the variant's own price, else the catalogue price, or type a price of your own.
- Add a custom line. A fee or a service with a name and a price, charged and not taken from stock. A custom line added by an earlier edit can be removed again. Tick Goes in the parcel for something you will pack, like a made-to-order piece or a printed insert: it is printed on the packing slip and pick list until the next parcel leaves, and on that parcel's slip. A fee or a service is never printed.
- Change the shipping. Shipping stays what the customer was charged unless you change it.
Some lines cannot change: items a supplier ships for you, licence keys, gift cards and digital items (they are delivered when the order is paid), and stock you resell from a supplier. An order cannot be edited once everything on it has shipped, after it was cancelled or refunded, while a shipping label is bought for the next parcel (void it first), or if it was imported, sold at the register, billed on terms or is the replacement in an exchange.
Click Review changes to see the order before and after: subtotal, discount, shipping, tax and total, and exactly what will be charged or refunded. Nothing is saved until you click Confirm edit. If a parcel ships, a refund goes through or another edit is saved in the meantime, the edit is refused with nothing changed, and you review it again.
How it is priced. The discount stays with the items it was given on: taking an item off removes its share of the discount, the same share a refund of it would use, and items you add are full price. Tax is worked out again only for what changed, at today's rates and by the same rules as checkout and draft orders; the tax on lines you did not touch stays what the customer paid.
When the order costs more, nothing is charged. The order shows Balance due and the customer gets a payment link to pay the difference by card, on your own Stripe account like a draft order's link. The balance shows on the order until it is paid; from there you can copy the link, send a new one (the link works for 30 days) or click Mark balance as paid for money that reached you another way. Without Stripe connected there is no link: collect the balance and mark it paid. Cancelling the order closes the link.
When the order costs less, the difference first comes off any balance still owed, and the rest is refunded once, the way the order was paid, counting towards the order's refund limit like every other refund. An edit that would give back more than can still be refunded is refused. If the card refund is turned down, the edit stays and the Edits list on the order shows Refund failed with Retry the refund; a retry never refunds twice.
If a refund is interrupted (the server restarts part way through, say), the edit shows Refund in progress. After 15 minutes BestWebby finds out what happened before it does anything: if your records or Stripe show the money went, the edit is marked refunded (with a note if the order's own record needs checking, and you are told); if nothing went, the refund is tried once more. If it cannot tell, or cannot reach Stripe, it is never tried again on its own: the edit keeps a note and you are told within the hour, so you can check the payment in your Stripe dashboard first.
Stock. Units you take off go back to the location they were taken from; units you add are taken from stock, from the order's own store first. Each move is in the stock history. If there is not enough on hand, the edit still goes ahead and the shortfall is recorded as a backorder on the order. Cancelling the order later puts back only what it still holds, so nothing is restocked twice.
What the customer sees. The order page in their account shows the order as it is now: the current quantities, items you took off gone, custom lines you added, the new total, their payments and refunds, and any balance still owed with a button to pay it. Their order history lists the same new total. The receipt they download prints the same lines and total, what they paid towards the order (less what an edit actually refunded) and the balance still due, the same amount the payment link asks for. A refund an edit promised that has not gone out yet (for example Refund failed, waiting for a retry) prints as Refund pending. Packing slips and pick lists list only what is still to ship.
Tick Email the customer a summary of the change to send them what was added and removed, the new total and the payment link or refund, from your store's own address and in the language they ordered in. Every edit is listed under Edits on the order and recorded in the audit log with the lines and totals before and after.
Anyone who can edit orders can change lines when the total stays the same. An edit that changes what the customer pays also needs access to finance, and asks for your two-factor code if you use one.
Importing order history
Moving from another platform? On the Orders list, click Import history and choose a CSV export of your past orders. Shopify and WooCommerce order exports work as they are.
- Check file reads it and shows how many orders will be created, how many are already here, and any rows it could not read and why. Nothing is written yet.
- Import creates them.
Imported orders are history, not sales. They move no stock, charge nobody and email nobody, and they are marked as imported so your reports can tell them apart from orders taken here. Importing the same file twice adds nothing the second time.
The file needs an order id, a customer email, a total and a date column. Currency and status are optional.
Exporting orders
Exporting orders is for the owner, admins, managers and accountants; other roles do not see the Export button. Each export is recorded in the audit log with how many orders it held.
On the Orders list, click Export. Choose a date range and a status if you want them, pick CSV or JSON, and click Download export. Orders come newest first, up to 10,000 in one file; if more match, you are told the file is partial and how many it holds, so narrow the date range and export again for the rest.
Each row has the order's id, date, status, channel, customer, items, subtotal, discount, shipping, tax, gift card, total, currency, payment method, tracking and shipping address. The money columns are in dollars and cents, as they appear on the order. total is what the order recorded: online, what was charged after a gift card; at the till, the whole total with the gift card inside it. The last two columns, order_total (what the order came to) and paid_by_gift_card (what a gift card paid of it), read the same for every channel (orderTotalCents and paidByGiftCardCents in JSON).
The last column, refunded_cents, is how much of the order has been refunded, as a positive number of cents (1250 is $12.50), adding up every refund on the order. A refund does not change an order's total, so this column is how you tell a refunded order from a fully paid one. In a JSON export the same figure is refundedCents. After it come po_number and buyer_reference, empty unless a business buyer gave them (poNumber and buyerReference in JSON), then buyer_note and gift_message, the shopper's delivery instructions and gift message, empty unless they wrote them (buyerNote and giftMessage in JSON). Refunds also appear, as negative amounts, in the ledger export under Finance → Accounting; see Accounting.
Returns
Customers start a return from their account once the order has arrived: it was delivered, it was a pickup order they collected, or it shipped at least 14 days ago (for parcels no carrier reports on). You can also open one for them. Work them in Orders → Returns: approve, mark received, then resolve with a refund to the original payment, an exchange or store credit. With EasyPost connected you can send the customer a prepaid return label once the return is approved. A customer's address in the US, where the parcel starts, is checked with the carrier first, the way an outbound label's is (an address elsewhere only if you turned that on); if the carrier doubts it you choose Use suggested address (for that label only, since the order's address is where it was delivered) or Use the address as entered. BestWebby then follows the return parcel the way it follows your outgoing ones, every 30 minutes: the return shows where the parcel is, and the customer sees the same on their Returns page. When the carrier delivers it you get a notification and the return list says Parcel delivered: inspect it. The return is not marked received for you, and nothing is refunded: open the parcel, check what came back, then click Mark received and resolve the return as usual. If the parcel cannot be tracked (for example, EasyPost was disconnected), the return says why and you are notified once. A return from another country is declared to customs as returned goods, at what the customer paid, and the customer sees Print the customs form too beside their label. Refunds never exceed what was paid, however many partial refunds an order has had.
Receiving a return. Mark received opens Receive the return, with every item on it. Inspect each one and choose where it goes:
- Back on sale puts it back in stock, at the location it came back to (or your default location).
- Damaged — write off keeps it out of stock. Say what is wrong with it; the reason is kept with the return and the stock history.
- Return to vendor keeps it out of stock and adds it to a draft in Catalog → Supplier returns, one per supplier, with the expected credit at the product's cost. Name the supplier. Sending that supplier return later does not take the item out of stock a second time.
- Quarantine holds a lot or serial tracked item off sale until you inspect it, under its lot or serial number. Release it back on sale, or write it off, from the product's lots page (Inventory → Lots) or Serial units. A product that is not lot or serial tracked cannot be quarantined.
An item you leave on Store default follows Received goods default to at the top of Returns: Back on sale (what every store starts with), Damaged — write off or Quarantine. Changing the default needs the settings permission. With Quarantine as the default, an item that is not lot or serial tracked is written off instead, and the return says so. What you choose never changes the refund. The return's details show what each item became, and Settings → Audit log records it with your name. Returns taken at the register follow the same choices.
Exchanges
A customer who asks for an exchange picks what they want instead: another size or colour of the item they are sending back, the same item again (for an item with no options), or anything else your storefront sells, found with a search on the return form. They see roughly how the price compares as they choose. You can send something else than they picked: on the return, click Send something else and choose the product and option.
Before you approve, the return shows exactly what goes out and what the price difference does. The difference compares the item coming back with the replacement at list price, for as many units as are coming back, and the order's discount carries over: a same-price swap costs nothing, as before.
- The replacement costs less. You return the difference, with the tax the customer paid on it. Choose, per exchange, Back to the original payment (a real refund, inside the order's refund limit like every other refund) or As store credit (a gift card code emailed to the customer). If you use two-factor authentication, both ask for your code.
- The replacement costs more. The customer owes the difference plus tax, worked out from your own tax rules for the order's address and the replacement's tax class and tax category, the same way checkout does. Where none of your rules covers that address, the rate the original order was charged is used. BestWebby issues them a store invoice and emails them a link to pay it; the replacement order is created on hold and ships once the invoice is paid. When the payment arrives the hold lifts by itself, you get a notification, and the customer is emailed. The customer can also pay from Returns in their account.
- Ship before payment. If the customer paid you another way, or you trust them to pay, tick Ship it now, without waiting for the payment when you approve, or click Ship without payment on the return later, and say why. The reason, who did it and when are recorded on the return and in the audit log. The invoice stays open, so the customer still owes it. A replacement waiting for payment shows Waiting for the exchange difference on its order page; the order's own Release hold does not release it.
- Cancelling an unpaid exchange. While the customer has not paid, click Cancel exchange on the return and say why. The invoice is voided, so its pay link stops working (a payment page the customer already has open is closed too), the replacement order is cancelled and its stock goes back, and the customer is emailed. Cancelling the replacement order from its own order page does exactly the same. If the customer paid in the meantime, the cancel is refused and the replacement can ship. An exchange still unpaid 30 days after you approved it is cancelled the same way automatically, and you are notified. The return then shows Exchange cancelled unpaid or Expired unpaid; if the item came back, refund or credit the customer from the original order.
A customer can only pay online once Stripe is connected in Settings → Payments. Without it, or for a customer with no email address, approve with Ship it now and collect the difference yourself.
The replacement's stock is taken at approval, from a location where you keep stock by location, and an exchange whose item is out of stock is refused with the return left open. The item coming back goes where you choose when you mark the return received, as with any return. If a card refund of the difference is turned down by the payment processor, the exchange still goes ahead and the return shows Difference refund refused: click Retry the refund, or Give it as store credit instead. A retry never refunds twice.
Exchange emails go out in the language the customer ordered in.