Invoice Payment Linking
Link bank transactions directly to invoice payments — especially for wire transfers, checks, and other manual deposits that don't auto-match. Allocate all or part of a deposit to one or more invoices, and each invoice's status advances automatically as it gets paid. A confidence-scored transaction picker surfaces the most likely matches, over-allocation is blocked, and the Cash Receipts tab gives you a weekly deposit-reconciliation view to work through anything still unapplied.
Key capabilities
- Link as Payment from the Transactions drawer — pick an invoice and allocate an amount
- Record Payment modal on the invoice with a scored transaction picker
- A "✨ Recommended" group surfaces the best candidate deposits first
- Split payments: one bank transaction allocated across multiple invoices
- Partial payments: multiple transactions applied to one invoice over time
- Each payment records an allocated amount, a currency, and an effective payment date that can differ from the transaction's date
- Automatic status transitions: open → partially paid → paid
- Over-allocation protection — you can never allocate more than a transaction's unallocated balance
- Allocations are shared with bill payments, so a transaction's remaining balance reflects both
- Posting a payment moves the transaction's journal entry to Accounts Receivable
- Fully paying a Stripe-issued invoice notifies Stripe it was paid out-of-band
- Cash Receipts tab: weekly deposits received vs. applied vs. unapplied, with dismiss/restore for handled rows
How it works
You start from either side — a bank transaction or an invoice — and allocate an amount. DayZero checks the transaction still has enough unallocated balance, creates a payment record, recomputes how much of the invoice is now paid, and flips its status. Fully paying a Stripe invoice also tells Stripe it was settled out-of-band.
flowchart TD
start{"Start from"} -->|"Transaction"| link["Link as Payment"]
start -->|"Invoice"| rec["Record Payment (scored picker)"]
link --> alloc["Allocate amount to invoice(s)"]
rec --> alloc
alloc --> check{"Within unallocated balance?"}
check -->|"No"| block["Blocked: over-allocation"]
check -->|"Yes"| pay["Create payment + post to A/R"]
pay --> status["open > partially paid > paid"]How to use it
- From Transactions: open a deposit and click Link as Payment — choose the invoice and enter the amount to allocate.
- From Invoices: open an invoice and click Record Payment — the picker loads candidate deposits, with the best matches under Recommended.
- Select a transaction; the amount pre-fills to its remaining unallocated balance. Adjust it down for a partial payment.
- Optionally set a Payment Date to override the transaction's date as the effective settlement date, then click Add Payment.
- For a split payment, link the same transaction to several invoices, entering a different amount each time.
- Invoice status updates automatically as payments are linked.
- Use the Cash Receipts tab on the Invoices page to reconcile weekly deposit batches and work through unapplied amounts.
Pro tips
- Let the Recommended group do the work — DayZero ranks likely deposits first, so the right transaction is usually at the top.
- For a check that covers several invoices, record it against each invoice separately; the picker shows the shrinking "Available" balance so you don't over-allocate.
- Set the Payment Date when the deposit cleared on a different day than you're recording it — reporting uses the effective payment date.
- A transaction's unallocated balance accounts for both invoice and bill payments, so a deposit you've partly applied to a bill still shows the correct remaining amount here.
- Use Cash Receipts when a client deposits multiple checks in one bank deposit — see the week's received-vs-applied totals and clear the unapplied list in one pass.
- Dismiss cash-receipt rows you've intentionally left unapplied so the reconciliation list reflects real work remaining; restore them if you change your mind.
In-depth guide
The payment record
Linking creates a payment record — a link between an invoice and a bank transaction. Each record carries:
- An allocated amount
- A currency (defaulting to USD)
- An effective payment date
Because the amount is an allocation rather than the whole transaction:
- One deposit can fund several invoices (split).
- One invoice can be funded by several deposits (partial).
Match suggestions
The picker ranks candidate (transaction, invoice) pairs and surfaces the strongest matches in Recommended, including fuzzy name matching between counterparty and customer. High-confidence matches can auto-link; others appear as suggestions you accept or reject. When one deposit may pay several invoices, DayZero can also suggest split allocations across open invoices for the same customer.
Allocation limits and validation
Before a payment is created, DayZero runs these checks:
- Existence: the business, invoice, and transaction all exist.
- Eligibility: the invoice can still receive payment (it is open or partially paid).
- Unallocated balance: the absolute transaction amount minus everything already allocated to invoice payments and bill payments.
- Over-allocation guard: the action is rejected if your amount exceeds that unallocated balance.
The Record Payment modal mirrors this client-side, pre-filling the unallocated balance and showing an "Available" figure so you rarely hit the error.
Status transitions and accounting impact
After a payment posts, the invoice's total paid is recompared to its total:
- At or above total → fully paid.
- Below total → partially paid.
- Settled through Stripe → paid through Stripe instead.
Two accounting effects follow:
- Linking a payment updates the underlying transaction's journal entry so the cash is recognized against Accounts Receivable.
- If a now-fully-paid invoice was issued through Stripe, DayZero notifies Stripe it was paid out-of-band so the two systems stay in sync.
Cash Receipts reconciliation
The Cash Receipts tab builds a weekly report (default: the last 12 weeks) showing:
- Total deposits received
- How much was applied to invoices and bills
- The unapplied remainder, with a per-transaction list of income that still has an unapplied balance
You can also:
- Drill into a single week's detail.
- Dismiss transactions you've deliberately left unapplied (or restore them later), so the list always reflects the work that genuinely remains.
It's the fastest way to make sure every deposit that hit the bank has been matched to what it paid for.