Invoices

The Invoices page (sidebar → Invoices) is the accounts-receivable view: what buyers and channels still owe you, how overdue it is, and the full detail behind any single invoice.


Overview

Open Revenue → Invoices. The page has four summary cards, an aging chart, and a filterable invoice table; select any row to open its full record. The cards cover every invoice, whatever the date range, while the table starts at invoices issued in the last 90 days. For the money on its way to you — payouts and installments — see Cash & Disbursements.

Invoices page: AR summary cards, aging buckets, and the invoice table

Summary cards

CardMeaning
Total OutstandingSum of unpaid invoice balances, excluding paid, voided, and written-off invoices.
DSODays Sales Outstanding — total outstanding as a share of everything invoiced, expressed in days.
At Risk (90+)Outstanding balance in the oldest aging bucket.
Open InvoicesCount of invoices with a remaining balance due.

Accounts Receivable summary cards with each value circled

Left to right: ① Total Outstanding, ② DSO (in days), ③ At Risk (90+), and ④ Open Invoices (a count, not an amount).

The cards add each invoice’s balance in its own currency without converting it, and show the total in dollars — so when your invoices span more than one currency, the total mixes them.

Aging buckets

The aging chart splits outstanding balances into Current, 1–30, 31–60, 61–90, and Over 90 days. An invoice is included while it is open — anything not paid, voided, or written off.

Aging is computed when you read it, not on a schedule. Every page load works out each invoice’s bucket from its due date against today’s date — days overdue are the whole days since that date, and an invoice with no due date counts as current — unless a bucket is already stored on the invoice, which then takes precedence. The same rule applies to every invoice, whoever owes it. There is no aging job to wait for: once an invoice whose bucket comes from its due date crosses into the next bucket, it shows there the next time you open the page.

Each bar shows the bucket’s total balance and invoice count; Export CSV downloads the underlying invoices (one row each, with the table’s columns and its aging bucket), not the bucket-level totals.

AR aging buckets with the Current and 90+ balances circled

Here the bulk of the balance sits in ① Current (not due), while ② 90+ days overdue isolates the at-risk balance and its invoice count — the same figure surfaced by the At Risk (90+) card.

Working invoices

The invoice table lists the invoice ID, buyer name, channel, issue and due dates, invoice amount, collectable amount, partner fee in dollars and as a percentage, balance due, status, and aging. A column chooser lets you show and hide columns, and the table can be sorted by issue date, due date, collectable amount (which orders by balance due), and partner fee.

To see only the invoices for one agreement, open the entitlement instead: an entitlement’s detail page carries Invoices (n) and Disbursements (n) tabs, each already scoped to that entitlement. Filter by search, status (Open, Draft, Invoiced, Overdue, Partially Paid, Paid, Disbursed, Refunded, Written Off, Voided — no invoice is currently given the Disbursed status), aging bucket, date range, and channel. Search matches the IDs and other values stored on the invoice — invoice, buyer, entitlement, and product IDs, for example — and also the buyer names shown in the table, as a case-insensitive substring.

To inspect a single invoice:

  1. Find the invoice in the table — use search or the status/date/channel filters to narrow the list.
  2. Select View Details on its row.
  3. Review the record — billing and contract terms, financials, and settlement — alongside a lifecycle timeline (issued → payment applied → disbursed/swept → written off).
  4. Select Back to invoices to return to the list.

Invoice detail: billing, contract, financials, and provider references with a lifecycle timeline

The header strip summarizes the invoice at a glance — the circled items below are the invoice ① status (Paid, Invoiced, Overdue, …) and its ② amount, with balance due, amount paid, and aging bucket beside them:

Invoice detail header with status and amount circled

Tax on the invoice detail

Most channels show a single Tax amount on the invoice detail. AWS is the exception — an AWS invoice shows two tax lines, because AWS splits who is responsible for remitting the tax:

LineMeaningCounted in the invoice and collectable amounts?
Tax collected & remitted by marketplaceAWS collected this tax from the buyer and remits it to the tax authority itself.No — informational only.
Tax collected & remitted by sellerTax AWS collects and disburses to you; you are responsible for remitting it onward.Yes — it is included in the invoice amount and in the collectable amount. It is not deducted.

Read the two lines together before reconciling an AWS invoice: only the seller-remitted line is cash that passes through your hands — and because it is already inside the collectable amount, do not subtract it again. At the moment the seller-remitted line shows — instead of an amount (see the caution above).

There is a third AWS tax figure, and it is not on either of those lines. When AWS charges VAT on its own listing fee, the invoice’s marketplace fee carries an incl. $X fee VAT note breaking that amount out. This is tax charged to you on AWS’s fee, not tax on the buyer’s purchase — it is broken out so it can be claimed as recoverable input VAT.

An AWS invoice detail — the Financials panel showing the invoice amount, marketplace fee and collectable amount, followed by the two AWS-only tax lines: tax collected and remitted by the marketplace, and tax collected and remitted by the seller

KPI calculation formulas

Every amount stays in its invoice’s own currency; the cards add them without converting. The list combines the invoices Fours holds with revenue records that have no matching invoice — Stripe included — and AWS sibling rows are aggregated into one invoice, by invoice ID and currency, first. The cards cover all of them, whatever the table’s date range, narrowed only by the channel.

KPIApplies toFormulaCalculation details
Total OutstandingAWS, Azure, GCP, StripeΣ balance due of open invoicesOpen = balance due above zero and not voided or written off. See Balance due below.
DSOAWS, Azure, GCP, Stripe(total outstanding ÷ Σ total of every invoice) × 90The denominator is the total amount of every invoice listed — any date and any status, including paid, voided, and written-off ones. Rounded to two decimals; 0 when there are no invoices.
At Risk (90+)AWS, Azure, GCP, StripeΣ balance due in the Over 90 bucketThe same open invoices as Total Outstanding.
Open InvoicesAWS, Azure, GCP, Stripecount(open invoices)Open = balance due above zero and not voided or written off.
Aging bucketAWS, Azure, GCP, Stripebucketed by whole days since the due dateBuckets: Current (not yet due, or no due date), 1–30, 31–60, 61–90, Over 90. Computed at read time against today’s date, the same way for every counterparty; a bucket already stored on the invoice takes precedence.

Balance due

An invoice from Fours’ own invoice records owes its recorded amount due, and nothing once it is paid, voided, or written off. A revenue record with no matching invoice owes the amount below, never less than zero — and nothing once it is marked paid, voided, or written off:

Channel partnerFormulaIncluded/excluded dataDate, currency, and rounding rules
AWScollectable amount − refund − amount paidRefund = the refund invoice amount recorded on the record, whatever the refund’s status. Amount paid = the larger of the collected and disbursed amounts.In the record’s own currency, unconverted; totals rounded to cents.
Azure, GCP, Stripe(collectable amount, else invoice amount, else disburse amount) − refund − amount paidThe same refund and amount-paid rules as AWS.Same as AWS.

Spotted something wrong or out of date on this page? Tell us and we'll correct it.