Offering net-30 or net-60 to wholesale customers is easy. Keeping track of which of those invoices have gone past due is where it gets slippery — because the due date you care about lives in a few different places in Shopify, and sometimes nowhere at all. This guide walks through where terms live, how to read a due date, and how to surface the overdue ones.
A lot of merchants still believe B2B payment terms require Shopify Plus. Since April 2026 that is no longer true — B2B companies, company locations, payment terms and payment reminders are available on Basic, Grow and Advanced as well as Plus; only the Starter and Retail plans are left out. If you held off on using native terms because you thought you needed Plus, you probably do not.
A due date only exists when a payment term is attached to the order. There are three ways that happens:
If none of these happened — you just marked an order "pending" and emailed the customer — then Shopify holds no due date at all for it. That is the single biggest reason net-terms tracking quietly breaks: half your invoices have a real due date and half do not.
Open an order with terms attached and the payment section shows the term and the resulting due date. For an order without terms, there is nothing to read, so you fall back to the arithmetic: due date = order date + the term you agreed. For net 30 that is 30 days after the order (or after the invoice date, if you invoice separately). Keep the agreed term written down somewhere per customer, because Shopify cannot tell you a term it was never given.
order date + term if not.If you add a payment term to a company today, it applies to new orders, not the ones already sitting unpaid. Those older orders still have no attached due date, so they will not show a due date even though you "have terms." Track them by the agreed term manually until they clear.
If you never attached a term, you are inferring the due date. Before you send a firm "you're overdue" message, be honest that the date is inferred — a softer "is this one still open on your side?" collects just as well and does not risk accusing a good customer who was never given a hard due date.
A net-terms customer who pays by bank transfer or cheque can leave the order reading "pending" forever. Reconcile those promptly, or your overdue list will keep flagging invoices that were actually paid weeks ago.
The tracking only helps if it is regular. A weekly pass — pull the unpaid orders, compute or read the due dates, flag and sort the overdue ones — is enough for most wholesale operations. The moment it becomes a monthly scramble in a spreadsheet is the moment invoices start slipping through.
Disclosure — this is my app. Doing the weekly pass by hand got repetitive, so I built a small, read-only Shopify app that does it automatically: Basis Receivables.
It reads your B2B companies, orders and payment terms and shows which invoices are overdue and by how long — grouped into current, 1-30, 31-60, 61-90 and 90+ days, per company. It also covers unpaid orders you raised from draft orders, so customers who are not set up as B2B Companies are not left out, and when an order has no agreed due date, the reminder it drafts on the paid plans becomes a payment query rather than asserting it is late. It is read-only — no write access, so it cannot change an order, a price or a customer — and it keeps no database: it stores no order or customer record. The free tier shows the full report for up to five companies and five unpaid invoices outside Companies.
Yes — payment terms are part of Shopify's B2B features and, since April 2026, are available on the Basic, Grow and Advanced plans as well as Plus (not on Starter or Retail). A term can sit on a B2B company, an order, or a draft order.
If the order has terms attached, the due date is shown on the order's payment section. If it has no terms, Shopify has no due date, so you infer it from the order date and the term you agreed.
Filter to unpaid orders, compute or read each due date, and flag the ones where today is past the due date. Sort by days overdue to see which are most at risk.