Skip to main content

Exceptions

An exception is an audit finding — Upwell’s way of flagging that something about an invoice doesn’t line up and a person should look at it. Exceptions are what stand between an invoice and approval: a clean invoice sails through, one with an open exception waits.

What raises an exception

Every invoice is audited as it’s ingested and matched. On the payables side that means checking a carrier invoice against its bill; on the receivables side it means checking a customer invoice against what’s required to send it. Anything that doesn’t reconcile — a mismatch, a missing document, a failed match — becomes an exception.
Exceptions exist on both sides. Carrier-invoice (AP) exceptions like a total-amount mismatch or a missing POD, and customer-invoice (AR) exceptions like a missing invoice copy or BOL, are both surfaced the same way. The audit rules that generate them are configurable per account, so the exact set an account sees varies.

The lifecycle

(The Vocabulary page carries this list in its generated form.) An exception moves through a small set of statuses: OPEN and IN_PROGRESS are the two “still needs attention” states — they’re what hold an invoice back. The rest mean the finding is no longer standing in the way.

Common exceptions

A representative sample of what Upwell flags (not exhaustive — the active set depends on your account’s audit rules):

How exceptions affect approval

Open and in-progress exceptions are the gate on approval — but the exact rules differ by side: Carrier invoices (AP):
  • Auto-approval skips any carrier invoice with an open or in-progress exception entirely — no override.
  • Manual approval can override open exceptions to approve anyway — with one exception: Carrier Pay Frozen can never be overridden and must be cleared first.
Customer invoices (AR):
  • Approval can likewise proceed over open exceptions with an explicit override, but there’s no Carrier Pay Frozen carve-out (that’s a payables hold). There’s no carrier-invoice-style auto-approval on the AR side.
For the approval paths in full — manual, auto-approval, and the external request-for-approval — see How carrier invoices get approved; for the lifecycle and API signals, see Knowing when a carrier invoice is processed. Over the API, a carrier invoice exposes its open findings as the exceptions field — a comma-joined string (e.g. "INVOICE AMOUNT MISMATCH"), empty when clean.
Don’t judge exceptions until ingestion has run. A brand-new invoice always shows matching findings (“no matching shipment / bill”) that clear on their own once matching completes — see the lifecycle guide.
For how exceptions are surfaced and worked in the app, see Carrier invoice audit. For the objects referenced here, see the data model.