Esc

↑↓ move↵ openIndex · Pagefind
Accounting / Accounts receivable and customer receipts

Accounts receivable and customer receipts

Invoice customers, take and deposit receipts, hold unapplied cash, issue credit memos, and work collections.

Preview

Partly in the app today. Items marked Planned are not built yet.

On this page

Accounts receivable (AR) is in company Accounting. Project Financials payment applications and the project cash ledger remain separate: a certified owner pay app becomes an AR invoice only when someone bills it in accounting, and it never posts a receipt.

Customers

AR has five tabs: Invoices, Receipts, Customers, Deposits and AR aging. The invoice list filters by text, status, customer, project, invoice dates, overdue and disputed, sorts by date, due date, amount or number, exports the filtered list to CSV, and submits, approves or posts the checked invoices (each one goes through the same checks as on its own page). The Customers tab lists every customer billed in your permitted entities with its open current and retained balance. AR aging buckets open invoices by due date (or invoice date) as of any date, shows disputed amounts in their own column, states whether the subledger ties to the AR and retainage receivable control accounts, and links each customer to its detail and to the export.

Invoice and receipt screens show account, project, cost code, entity, customer and user names rather than record numbers. Each invoice line links to its revenue account’s ledger and to its project.

A company party is offered as an AR customer unless its accounting profile marks it as not a customer. The profile can hold payment terms, a credit limit and a billing contact. When an invoice leaves the due date blank, the due date is the invoice date plus the profile’s terms (net 30 without terms).

Invoices, sales tax and credit memos

Open Accounting > Accounts receivable to prepare an invoice for an allowed entity and customer. A separate authorized reviewer approves it; an authorized user posts it. Invoice lines support current and retained amounts.

A revenue line can carry a sales tax code. Each tax component is computed on the line amount, rounded to the cent, credited to the component’s tax liability account and billed in current AR; tax is never held as retainage. If a tax code’s rates change between entry and posting, posting stops and the invoice must be re-entered.

Contractor sales and use tax

Whether a contractor charges the owner sales tax depends on the job’s state and contract type. Give a job a tax profile (state, lump-sum or separated contract, and its tax codes) and the invoice follows the state’s rule:

  • Consumer states (for example California, where contractors are consumers of the materials they install): an invoice line on the job that carries a sales tax code is refused. California fixtures are the exception, because the contractor is the retailer of fixtures it furnishes and installs; mark the line’s tax category as fixture. To charge tax anyway, enter a tax override reason; the invoice records it and the independent approver accepts it at approval.
  • Retail-sale and gross-receipts states (for example Washington, where building for consumers is a retail sale): an invoice billed from a certified pay app carries the job’s job-site sales tax code on each billed line. A manual invoice line without tax gets a warning.
  • Exempt owners: record the owner’s exemption or resale certificate for the state, with its expiry. While it is valid, pay-app invoices carry no tax and a manual line with tax is refused like a consumer-state job. After it expires, tax applies and the invoice shows a warning.

A state that has no encoded rule, or whose rule has not yet been checked against the state’s own regulations (today only California and Washington are), cannot be given a profile; the error names the setup gap instead of guessing. Exemption certificates are only checked on jobs that have a tax profile, because the profile supplies the state: on other jobs, check the customer’s certificate yourself before charging tax. Bills on consumer-state jobs default use tax on untaxed material lines (see accounts payable).

On a posted invoice, Release retainage drafts a retainage release invoice for the amount you enter and Issue credit memo drafts a credit memo against its open current AR; both settle the invoice’s receivable lines in order and then follow the normal approval path. A credit memo goes through the same approval and posting path. Each line names the account it debits and the posted receivable line (current or retainage) it credits, and cannot exceed that line’s open amount. Its reason decides the accounts: a return debits revenue; a write-off or discount can also debit an expense account (bad debt, discounts) or an allowance; a tax adjustment debits a sales tax liability account. A credit memo line on current AR can carry the sales tax code of the line it credits, which debits the tax back to the liability and credits AR for the amount plus tax. Credit memos hold no retainage and are not receivables themselves.

An invoice that has not been posted (draft, pending approval or approved) can be cancelled with a reason. It keeps its content for the record, frees its source reference, and releases its pay app so the pay app can be edited and billed again. Cancelling an approved invoice needs approver rights.

When a pay app is billed in accounting, the invoice is due by the owner’s payment terms and is booked in the entity the project is assigned to. If its invoice is later reversed, the pay app can be corrected and billed again; the new invoice is linked as the reversed invoice’s correction. The bridge recomputes the G702 from the pay app: line 1 is the original schedule of values, line 2 the prime contract’s executed change orders, previously stored materials stay in column F at the stored retainage rate until installed, and line 7 is checked against the pay app’s previous certificate. The schedule of values must total line 3, so a pay app on a contract with executed change orders whose scope is not on its schedule of values is refused. A mismatch is refused with the reason. A certified pay app that bills nothing does not hold up the next one, and a negative pay app is billed as a credit memo against the earlier pay-app invoices.

Billing methods

Each prime contract has a billing method. Progress contracts bill by certified pay app. A contract set to time and material, cost-plus, unit price, GMP or milestone bills through the API (ar/invoices/from_billing): you send the period’s tickets, costs, quantities or accepted milestones, and accounting prices them (markups, not-to-exceed cap, fee and GMP cap, quantity tolerance, shared savings) and creates a draft invoice that follows the normal approval and posting path. Caps count what AR already billed on the contract, not a figure you type; so do the cost-plus fee already billed and each unit-price item’s previous quantity. A T&M ticket or a cost-plus cost already on a live invoice of the contract cannot be billed again, and a contract gets one GMP settlement. A period that would credit the owner is refused; enter a credit memo instead. An invoice made this way cannot be edited: cancel it and bill the period again. A manual invoice cannot bill the owner on the project of a contract that bills by one of these methods.

A final retainage release (one that empties the contract’s open retainage, from a pay app or a retainage release invoice) needs the contract’s closeout documents on file: an approver records the required documents (for example consent of surety, final lien waivers, punch list complete) and those received through the API (PUT ar/prime_contracts/{id}/closeout; GET on the same path lists what is still missing). With nothing recorded, or a required document missing, the release is refused. Partial releases are not gated.

The edit form handles plain standard invoices only. A credit memo, a retainage release, an invoice with sales tax or release lines, and a contract or pay-app billing open with a message instead of the form, so saving cannot drop what the form does not show.

Invoice lines bridged from a pay app carry each schedule-of-values line’s own retainage and a link to that pay-app line. A certified pay app can be downloaded as a G702/G703-style PDF (same math and column letters as the industry form, neutral wording).

Invoice PDF, delivery and finance charges

Any invoice can be downloaded as a PDF. A posted invoice can be sent to the customer’s billing email from its accounting profile; the message carries the invoice figures and the send is recorded in the audit trail.

When the accounting settings set a monthly finance charge rate, a grace period and an income account, a monthly job drafts one finance-charge invoice per customer and entity on open current balances past the grace period. Retainage, disputed invoices and earlier finance charges are excluded. Running it again in the same month creates nothing new, and each draft still needs a second person’s approval before it posts.

Receipts, unapplied cash and deposits

Record receipt lists every open receivable line of the customer, oldest due first, in one grid (up to 200 invoices; fully paid invoices are left out). Auto-apply oldest first fills the grid from the receipt amount, and the running total shows what will stay unapplied. A receipt can have no allocations at all, for a prepayment or deposit. A receipt records the method (check, ACH, wire, card, cash or other), check number and payer. It can allocate current and retainage amounts to eligible posted invoices; any remainder is unapplied cash, credited to the customer deposits liability rather than to AR. Later, an authorized user other than the person who entered the receipt can apply unapplied cash to open invoices (debiting customer deposits) or transfer a receipt’s allocations from one invoice line to another. Each action is its own journal entry and is dated on or after the receipt.

A receipt posted to undeposited funds can be grouped with others into a deposit on the Deposits tab, which posts one bank entry for the batch. Whoever entered a receipt cannot deposit it.

Reversals and returned (NSF) payments

To correct a posted receipt or invoice, use its source reversal and linked correction workflow; an invoice with active receipt allocations or credit memos must be resolved first. Marking a receipt reversal as NSF records a returned payment: the receipt, any later applications of its cash and, if it was deposited, the bank deposit amount are reversed together, so the invoices reopen. A reversal that is not NSF leaves deposited cash in the bank, and its correction receipt cannot be deposited a second time. The reversal date cannot precede the receipt’s later applications or deposit, and closed periods refuse it.

Collections and statements

A posted invoice can be flagged as disputed with a reason. Disputed invoices age in their own column of the AR aging report. Collection notes, with an optional promised date and amount, are kept per customer and invoice and are added from the customer page, which also shows the billing profile (terms, credit limit and contact).

The customer view shows current open balances, including owner-direct payment credits, and links to a printable statement as of any date: open posted invoices, unapplied cash on account and the balance due. Retainage that has not been released is shown separately and is not part of the balance due. AR aging and the AR control tie-out read the AR subledger; unapplied cash sits in customer deposits, not in AR. See Accounting overview.

Keep exploring

Related across os.construction

Run it on your own project.

Start a 14-day free trial. Want a say in what ships next? Join the founding program.

Your role (optional)

14-day free trial. Pricing for paid plans isn't set yet. Talk to us. Already have an account? Sign in →

Ask the OS

Reading this page

Ask anything about this page. Answers use what you're reading as context.

Suggested

    AI · may be imperfect · sample data where shown

    Open file