Tom Sailors Contact
Guide · B2B

How to set up net 30 terms at Shopify checkout

Published 2026-08-01 · Updated 2026-08-01

B2B buyers expect to order now and pay on invoice. Shopify has a native answer on Plus and a custom pattern everywhere else — both end with an approved buyer checking out with no card, and everyone else seeing a normal checkout. Which one applies depends on whether you run B2B companies.

Path 1 — native payment terms with B2B companies (Plus)

Shopify Plus B2B models each wholesale account as a company with locations. Payment terms — net 7 through net 90 — attach to the company location; buyers from that company see a pay-later option at checkout that places the order with a due date instead of charging a card. Orders carry their terms in admin, due dates are trackable, and no custom code sits in the payment path. If you're on Plus and can model accounts as companies, this is the answer — the build work is catalog assignment, terms setup, and buyer onboarding, not checkout code.

Path 2 — the gated manual payment method

Stores gating by customer instead of company replicate terms in three pieces.

Piece 1: the approval flag

Credit approval is a business decision recorded on the customer — a b2b_credit.approved boolean metafield plus an approval date, written when your credit process clears the account:

mutation SetApprovalStatus($metafields: [MetafieldsSetInput!]!) {
  metafieldsSet(metafields: $metafields) {
    metafields { id namespace key value }
    userErrors { field message }
  }
}

Piece 2: the payment customization Function

Create a manual payment method named "Net 30 Invoice" in payment settings, then register a payment customization Function that hides it unless the buyer's approval metafield is true. The Function's input query reads exactly what the decision needs:

query Input {
  cart {
    cost { totalAmount { amount } }
    buyerIdentity {
      customer {
        hasTags(tags: ["b2b"]) { hasTag tag }
        metafield(namespace: "b2b_credit", key: "approved") { value }
      }
    }
  }
  paymentMethods { id name }
}

Approved buyers see "Net 30 Invoice" alongside — or instead of — card options; everyone else never sees it. The Function is registered once via paymentCustomizationCreate and runs inside Shopify's checkout, the same mechanism as hiding Shop Pay Installments conditionally.

Piece 3: routing the order

A "Net 30 Invoice" order arrives unpaid. A Shopify Flow rule tags it (net30), notifies accounting, and — if you run an ERP or accounting integration — pushes it for invoice generation. Payment is recorded against the order when the invoice settles, so admin reporting stays truthful about outstanding receivables.

Tell the buyer what's happening

Approved accounts should see the terms stated — a storefront banner reading "Net 30 terms applied — no payment required at checkout, invoice follows fulfillment" on cart and checkout. The confusion cost of a silent no-payment checkout is real support volume.

B2B customers asking to buy on terms?

Email Tom whether you're on Plus with B2B companies or gating by customer, plus how credit approval works today — that decides which of the two paths fits.

Email Tom →