Bills
Bills track what you owe vendors from capture through payment. Enter them manually, forward them by email, or extract them with AI — then move each bill to Paid while DayZero posts the AP journal entries that keep aging accurate.
Key capabilities
- Multiple entry paths: manual draft, AI extraction from documents, bulk CSV import, or auto-created from a purchase order/transfer
- Six-state lifecycle (draft, forecasted, received, partially_paid, paid, canceled) with capability gating per state
- One-time and recurring bill types, with recurring templates that auto-generate future bills
- Partial payments that track the amount paid and a live remaining balance, flipping status to Partially Paid then Paid
- Vendor credits applied against a bill to reduce the net balance due alongside cash payments
- AP aging report bucketed by vendor (Current, 1-30, 31-60, 61-90, 91+ days past due)
- Bill metrics (total due, total balance due) across all open bills
- Bank-transaction payment matching with confidence scoring, plus split one payment across many bills
- Contract comparison that stamps each bill with a contract-match status (feeds AP approval)
- Three-way match (PO ↔ receipt ↔ invoice) with quantity/price variance flags on PO-sourced bills
- Document attachments (PDF/image) kept on the bill for the audit trail
- Optional payment-method label (Wire Transfer, ACH, Check, Credit Card) for reporting
- Automatic AP approval assignment when the workflow is enabled
How it works
A bill is created, optionally routed for approval, marked received (posting to AP), then paid down by one or more transactions until the balance is zero.
flowchart LR
create["Create (manual / AI / CSV / PO)"] --> draft["draft / forecasted"]
draft --> received["received (posts to AP)"]
received --> partial["partially_paid"]
partial --> paid["paid"]
received --> paid
draft --> canceled["canceled"]How to use it
- Open Bills under the Payables sidebar group.
- Click New Bill to enter one manually, or use the Bill Inbox to convert an emailed/AI-extracted draft.
- Pick the vendor, enter the amount, expense account (ledger), bill number, and dates (received and due).
- Save — a received bill posts its journal entry and starts showing in AP aging; a draft waits until you mark it received.
- To pay, open the bill and use Record Payment, choosing the matching bank transaction and amount. Partial amounts are allowed.
- Use the search and filter controls to narrow by vendor, status, payment method, or linked journal entry.
- Review the AP aging view regularly to catch overdue balances before late fees hit.
Pro tips
- Recording a payment requires a real bank transaction — DayZero links the bill to that transaction's journal entry rather than inventing cash movement, so reconcile your bank feed first.
- Removing a payment only un-links the transaction; it never deletes the bank transaction, and the bill's status recalculates back to Received or Partially Paid.
- Use payment matching to auto-find likely payments, then bulk-approve the high-confidence suggestions instead of matching by hand.
- Split a single bank payment across several bills with the batch process — it validates the total against the transaction's unallocated balance before creating any payment, so an over-allocation fails cleanly.
- The payment-method label is informational only — it never touches the ledger, so it stays editable even after a bill is paid.
- Bills that come from a purchase order carry a three-way match status; Quantity variance or Price variance means "ordered ≠ received ≠ billed" and is worth investigating before paying.
- Keep vendor contracts current — contract-match status drives whether AP approval auto-approves or escalates.
In-depth guide
Lifecycle & balances
- Edit / delete / cancel — allowed only while in Draft, Forecasted, or Received.
- Payments — accepted only in Received or Partially Paid.
- Remaining balance — the bill amount minus payments applied (cash side).
- Balance due — also subtracts applied vendor credits and is 0 for Paid or Canceled.
- Overdue — true when the bill is unpaid and its due date is in the past.
Accounting impact (double-entry)
- Mark received (or create as received with an expense account): Debit the chosen expense ledger, Credit Accounts Payable.
- Record payment: Debit Accounts Payable, Credit Cash. When payments reach the bill amount, status flips to Paid.
- Cancel: status moves to Canceled and any associated journal entries are removed.
Journal entries are only created when the business has the ledger integration enabled.
AI bill capture (OCR / extraction)
- Inputs — AI extraction accepts pasted text, PDFs, images, Excel, or a multi-bill CSV and returns draft bills for review before anything is created.
- Auto-matching — fuzzy-matches vendor and expense ledger from extracted bill data; low-confidence matches stay in review.
- On approval — reviewed drafts are created as received bills so they post a journal entry immediately.
- Inbox flow — see AP Emails and AP Automation & Bill Capture.
Payment matching
- Scan — payment matching surfaces likely links between unallocated outgoing bank transactions and open bills.
- Suggestions — each suggestion has a confidence score; accept individually, auto-match high-confidence pairs, or bulk-approve the strong matches.
- Accepting — creates the real payment and updates the bill.
- Payment priority — the AI payment-priority utility can rank which open bills to pay first.
Related features & AP approval
- Trigger — on creation and on receipt, DayZero calls the AP approval trigger.
- Workflows — when automatic assignment and a published workflow are present, the bill's amount and contract-match status are read to assign it to auto-approve, operations, or advisor + owner tiers — see AP Approval Workflow.
- Downstream — bills also feed AP aging, cash forecasting, and (when sourced from inventory) the PO/transfer three-way match.
Edge cases
- A bill can exist without a vendor — useful for quick drafts, but contract matching and approval assignment need a vendor.
- Bulk CSV import creates entries as Draft, Forecasted (when marked for approval), or Received (when marked create-as-received, which requires a resolvable expense account per row).
- Force-deleting a bill with payments removes the link records but not the underlying bank transactions.