Skip to content

Invoice Collection

Overview

Invoice Collection is where you bill business (B2B) customers for orders they placed with Invoice as the payment method. When a customer chooses Invoice at online-ordering checkout, the order is placed without payment — it lands in the status Awaiting Invoice and waits here. This page lets you group a company's open Invoice orders and send them a single Stripe invoice to collect payment later.

Key Purpose: Collect payment for deferred ("pay by invoice") orders by sending customers a Stripe invoice and tracking it through to paid.

Note: This is distinct from Billing (where Upvendo bills you, the merchant, for your own subscription). Invoice Collection is you billing your B2B customers.

Purpose

This page lets you see which companies have unbilled Invoice orders, send them a consolidated Stripe invoice with a due date, and follow each invoice through Sent and Paid states.

Key Concepts

  • Invoice Order: An online-ordering order placed with the Invoice payment method. No payment is taken at checkout; the order is recorded with status Awaiting Invoice and waits here to be billed.
  • Consolidated Invoice: All open (Awaiting Invoice) orders for the same company are combined into one Stripe invoice when you send it.
  • Days Until Due: The payment term on the invoice (default 14 days, allowed range 1–90).
  • Tabs: The page has three tabs — Open (companies with unbilled orders), Sent (Stripe invoices issued, awaiting payment), and Paid (settled invoices).
  • Invoice Blocked: A company (Mplus relation) can be flagged as invoice-blocked. Sending an invoice to a blocked company is prevented, and a blocked company cannot place new Invoice orders at checkout. The flag is set on the customer's detail page, not here — see Actions.

Route

  • Backoffice Route: /invoice-collection
  • Permissions: view-invoice-collection to view; manage-invoice-collection to send invoices (and to set a company's invoice-blocked flag).
  • Visibility: The page is only available to Mplus-connected merchants. The navigation entry is shown when the tenant-level invoice_collection_enabled feature flag is true — which it is when any location has the Invoice payment method enabled (online_ordering_setting.payment_methods.invoice_enabled) or the Mplus integration has already recorded Invoice transactions.

Actions

Send an Invoice (Open tab)

The Open tab lists each company that has one or more orders in Awaiting Invoice (company name, Mplus relation number, VAT number, open-orders count, oldest order date, total outstanding). Click Send Invoice on a row to open the Send Invoice dialog, set Days Until Due (default 14), and confirm. The system bundles all of that company's open orders into a single Stripe invoice, finalizes and sends it, and the orders move off the Open tab. (If the company is invoice-blocked, the send button is disabled.)

Block a company from Invoice payments

The invoice-blocked flag is not set on this page. Open Customers → [customer] → detail and use the Block Invoice payments switch in the right-hand panel. It requires the manage-invoice-collection permission and a customer linked to an Mplus relation (an unlinked customer is rejected). That same customer detail page also carries per-customer Invoice tabs (invoice orders, sent invoices, paid invoices), which need view-invoice-collection.

Track Sent Invoices (Sent tab)

The Sent tab lists each issued Stripe invoice that is awaiting payment — one row per invoice (company, relation number, VAT number, Stripe invoice ID, sent date, total billed). The Stripe invoice ID links to the hosted Stripe invoice when a hosted URL is available.

Review Paid Invoices (Paid tab)

The Paid tab lists settled invoices (company, relation number, VAT number, Stripe invoice ID, sent date, paid date, total paid). This tab is server-paginated and supports a date-range filter and free-text search (company name / VAT / Stripe invoice ID).


Fields

Days Until Due

  • ID: days_until_due
  • Type: Number
  • Default: 14
  • Validation: Integer, 1–90 (clamped client-side and validated server-side).
  • Impact: Sets the payment term (days_until_due) on the Stripe invoice.

Open Orders Count

  • ID: open_orders_count
  • Type: Number (read-only)
  • Impact: How many of the company's Awaiting Invoice orders will be combined into one invoice.

Total Outstanding

  • ID: total_outstanding
  • Type: Currency (read-only)
  • Impact: The full Upvendo order total (food + tax + transaction fee + delivery) that will be invoiced for that company.

Business Rules

  • Only orders placed with the Invoice payment method appear here. The Invoice payment method is Mplus-only and is enabled per location under Online Ordering → Checkout → Payment methods (invoice_enabled).
  • An Invoice order is placed with status Awaiting Invoice and stays open until it is billed and paid.
  • Sending bundles all the company's Awaiting Invoice orders into a single Stripe invoice; the bundled orders move to Awaiting Payment.
  • Invoices are issued through Stripe (collection_method: send_invoice); the customer is billed the full Upvendo total and funds are routed to the merchant's connected Stripe account.
  • A company (Mplus relation) flagged as invoice-blocked cannot be sent a new invoice and cannot place new Invoice orders at checkout.
  • When the Stripe invoice is paid, the invoice.paid webhook settles the linked orders and the invoice moves to the Paid tab.
  • If a sent Stripe invoice is voided (in Stripe, or by an operator), the invoice.voided webhook returns its orders to Awaiting Invoice so they reappear on the Open tab and can be re-sent, and the invoice itself is marked voided. Orders already Complete are left alone. There is no Voided tab — the invoice simply drops off Sent.

Customer Impact

  • Online Ordering: B2B customers who choose Invoice at checkout do not pay online — their order is recorded as Awaiting Invoice and billed later from this page. (Storefront checkout behavior is not verified in this doc.)
  • Emails: The customer is sent the Stripe invoice; the hosted Stripe invoice page carries the payment link and the due date you set. (Email delivery is handled by Stripe and not verified in detail here.)

FAQs

  • "How do I send my invoices?" → Open Invoice Collection, go to the Open tab, click Send Invoice on the company's row, set the due days, and confirm.
  • "Where do I collect payment for pay-by-invoice orders?" → On the Invoice Collection page. Orders placed with the Invoice method are listed under Open until you send and the customer pays.
  • "How long do customers have to pay?" → Set Days Until Due when sending (default 14, range 1–90).
  • "How do I see which invoices are still unpaid?" → Use the Sent tab; once paid, an invoice moves to Paid.
  • "Why doesn't a company's order show up here?" → It only appears if the order used the Invoice payment method, which is available on Mplus locations that have enabled it.

Troubleshooting

  • No companies on the Open tab → No orders have been placed with the Invoice payment method, or Invoice isn't enabled in your Online Ordering checkout settings.
  • Invoice Collection isn't in my menu → The feature is Mplus-only and the page appears once Invoice is enabled on a location (or Invoice orders already exist) and you hold the view-invoice-collection permission.
  • Can't send an invoice / Send Invoice is greyed out → You need the manage-invoice-collection permission. If the company is invoice-blocked, the send button is disabled — unblock it with the Block Invoice payments switch on that customer's detail page.
  • Customer can't choose Invoice at checkout → Confirm Invoice is enabled for the location and the company is not invoice-blocked.
  • An invoice vanished from the Sent tab → It was voided in Stripe. Its orders are back on the Open tab and can be re-sent; there is no Voided tab to look in.

Assistant Guidance

When answering questions about invoices:

  • Distinguish Invoice Collection (you billing your B2B customers for their orders) from Billing (Upvendo billing the merchant for subscriptions).
  • For "how do I send invoices", route the user to Invoice Collection → Open tab → Send Invoice.
  • Note the Invoice payment method is Mplus-only and must be enabled in Online Ordering → Checkout for orders to appear here.
  • Note invoices are issued via Stripe with a configurable due date (default 14 days, range 1–90).

Relations

Depends On

  • Online Ordering Invoice payment method: Generates the Awaiting Invoice orders billed here (Mplus-only).
  • Stripe: Issues, sends, and tracks the invoices; the invoice.paid webhook drives settlement.
  • Mplus integration / relations: Orders are grouped by the customer's Mplus relation (company / VAT), which also carries the invoice-blocked flag.

Affects

  • Order status: An Invoice order moves Awaiting Invoice → Awaiting Payment (on send) → Complete (on payment). Voiding the Stripe invoice sends any not-yet-Complete orders back to Awaiting Invoice.
  • Payment status: Settling the Stripe invoice marks the linked orders paid and moves the invoice to the Paid tab.