Skip to content

Entering a Bill

A bill records a purchase your company has received but has not paid yet: a supplier's invoice for materials, a subcontractor's monthly progress billing, a utility statement. Entering the bill puts the cost in the right accounts (and, for construction work, on the right job and cost code) on the date you incurred it, and adds what you owe to accounts payable until you pay it.

Enter a bill when you will pay the vendor later. If you have already paid (by check, card or bank transfer at the time of purchase), record an expense instead.

Before You Begin

The New Bill Form

The New Bill form before anything is entered, with its main parts numbered
Figure 3-12 The New Bill form, ready for a new bill.
  1. Vendor: who sent the bill. Type to search; only active vendors are listed.
  2. Date: the bill date. It is the accounting date of the cost and of the amount owed. It starts as today.
  3. Terms and Due Date: the payment terms work out the due date from the bill date. You can change either one.
  4. Reference: the vendor's own invoice number, shown on the bill so you can match it to the vendor's paperwork.
  5. Job Costing, Commitments and Retainage: switches that add job, commitment and retainage columns to the lines. They appear only when Jobs & Costing is turned on (and, for retainage, a Retainage Payable account is set up).
  6. Lines: what the bill is for, one row per account (and job) charged.
  7. Memo and Attachments: an internal note and the vendor's PDF or photo.
  8. Total, Save Draft and Post Bill: the running total and the two ways to finish.

Step by Step

Enter the Details

  1. Open Vendors & Bills → Bills and click New Bill.
  2. In Vendor, start typing the vendor's name and choose it from the list. Structally fills the first line's Account with the account used on this vendor's last bill, if there is one. If the vendor has an issued commitment, Structally also turns on Commitments and Job Costing (see Matching a Commitment and Holding Retainage).
  3. Set Date to the date on the vendor's invoice.
  4. Check Terms. It starts with your company's default terms (Net 30 in the sample company), and choosing a vendor does not change it, so pick the terms printed on the vendor's invoice if they differ. Due Date follows the terms; you can also type a due date directly.
  5. In Reference, type the vendor's invoice number.
  6. Optionally choose a Location for the whole bill.

Enter the Lines

  1. On the first line, choose the Account to charge: an expense account such as 6010 — Office Expense, a direct cost account such as 5040 — Materials, or an asset account for something you will capitalize. Accounts Payable, retainage accounts and WIP accounts are not offered.
  2. Type a Description (optional, but it appears in reports) and the Amount.
  3. Optionally choose a Class for the line.
  4. Click Add Line for each additional account or job; the trash icon removes a line. Lines total and the footer Total update as you type.
An overhead bill for office supplies with one line on account 6010
Figure 3-13 A one-line overhead bill from Paperworks Office Supply.
  1. The vendor, chosen from the list.
  2. The vendor's invoice number in Reference.
  3. The account charged, 6010 — Office Expense.
  4. The line amount.
  5. Lines total adds up every line.

Finish: Save Draft or Post Bill

  • Click Save Draft to keep the bill without touching your books. Drafts show the status Draft in the Bills list and are counted on the Home dashboard under Needs Attention. You can change anything on a draft except the vendor.
  • Click Post Bill to record it. Posting adds the bill to accounts payable and writes its journal entry. A posted bill cannot be edited; to correct one, void it and enter it again (see Posting, Editing, and Voiding Bills).

Structally confirms with a message such as Bill BILL-2026-000141 saved as a draft. or Bill BILL-2026-000141 posted to accounts payable. and opens the bill. Bill numbers are assigned automatically as BILL-year-sequence.

Coding a Bill to a Job

Tick Job Costing to charge a bill line to a job. The lines gain Job, Cost Code, Cost Type and Split columns.

A materials bill coded to job J-1034, cost code 06-100 and cost type MAT
Figure 3-14 A materials bill coded to a job, cost code and cost type.
  1. Job Costing turned on. Ridgeline Lumber Supply has an issued purchase order, so Commitments came on as well; leave a line's Commitment empty when the purchase is not under a commitment.
  2. Job: the job the cost belongs to. Active jobs are listed, plus jobs that are (On Hold) or (Closed).
  3. Cost Code: the work category. The list shows only the codes assigned to the chosen job.
  4. Cost Type: labor, materials, subcontract, equipment and so on.
  5. Split: share one line among several jobs or cost codes.
  1. Tick Job Costing.
  2. On each job-cost line, choose the Job, then the Cost Code and the Cost Type. A direct cost line that names a job needs both a cost code and a cost type.
  3. Overhead lines (rent, office supplies) can stay without a job, unless your company requires job coding on that account in Job Costing Settings.

Jobs on hold or closed

You can still charge a job that is On Hold or Closed, but you must type an Adjustment Reason on the line to explain the late cost.

Splitting a Line

Tick Split on a line to divide its amount among allocation rows (up to 20), each with its own job, cost code, cost type, description and amount. Use it when one line of a vendor's invoice covers more than one job or phase.

A 3,480.00 materials line split into 2,480.00 of rough carpentry and 1,000.00 of finish carpentry
Figure 3-15 One line split between two cost codes on the same job.
  1. Split ticked on the line.
  2. The first allocation: 2,480.00 to 06-100 Rough Carpentry.
  3. The second allocation: 1,000.00 to 06-200 Finish Carpentry.
  4. The running check. Remaining must reach 0.00. Use Add Allocation for more rows.

The allocations must add up exactly to the line amount. Each allocation posts as its own journal line, so job cost reports show each job and cost code separately.

Matching a Commitment and Holding Retainage

When a bill is for work under a subcontract or purchase order, match each line to the commitment line it bills. Matching keeps the commitment's Billed to Date and Remaining current, and carries the commitment's job, cost code, cost type and retainage percentage onto the bill.

A Precision Drywall bill matched to subcontract SC-2025-000008 with 10 percent retainage
Figure 3-16 A subcontractor bill matched to its subcontract, holding 10% retainage.
  1. Commitments turned on. Structally does this for you when the vendor has an issued commitment.
  2. Commitment: the commitment line being billed. The list shows the commitment number, line, cost code, cost type and the amount remaining.
  3. Job, Cost Code and Cost Type are filled from the commitment and locked while the line is matched.
  4. Amount: Structally proposes the whole remaining amount; replace it with this bill's amount.
  5. Retainage: the commitment's retainage percentage, with the amount held shown beside it.
  1. Choose the vendor. If it has issued commitments, Commitments and Job Costing turn on, and only that vendor's commitment lines can be chosen.
  2. In Commitment, choose the commitment line. Structally fills the job, cost code, cost type, description (if empty), the amount remaining and the retainage percentage.
  3. Check the line's Account. Matching a commitment does not choose it: Structally may already have filled it from the vendor's last bill, but for a new vendor you must pick the cost account, such as 5030 — Subcontractors. Otherwise the bill is refused with This field is required.
  4. Change Amount to the amount on the vendor's invoice.
  5. If the bill holds retainage, make sure Retainage is ticked and check the percentage on each line. A line that holds retainage must have a job.

The footer then shows both the Total and the Amount Due (the total less the retainage held):

The form footer showing Total 26,400.00 and Amount Due 23,760.00
Figure 3-17 Total and amount due on a bill with retainage.
  1. Total: everything the vendor billed. This is the cost to the job.
  2. Amount Due: what you pay now. The retained part is paid later through a retainage release.

When a Bill Goes Over the Commitment

When you post, Structally compares each matched line with what is left on its commitment line. What happens next depends on the Commitment Overruns setting in Job Costing Settings:

Setting What Happens When a Line Is Over
Warn (the default) The bill posts. The amount over is recorded on the line and appears in commitment and job cost reports.
Block Posting is refused with a message such as Line 1 exceeds commitment SC-2025-000008 line 1 by 1,250.00. A Company Admin or Accountant then sees Post Over the Commitment?, can type an Override Reason and click Post Anyway. Other users ask one of them, or amend the commitment first.

Adding a Vendor While You Enter a Bill

You do not have to leave the bill to add a missing vendor.

  1. In Vendor, type the new vendor's name. The list starts with + Add New followed by what you typed.
  2. Click + Add New. The New Vendor panel opens with the name filled in.
  3. Complete Name (required) and any of Code, Primary Contact, Phone, Email, Billing Address and Terms, then click Create Vendor. The panel closes and the new vendor is selected on the bill.
The vendor picker filtered by "Pre", showing + Add New Pre and Precision Drywall
Figure 3-18 The vendor list filtered as you type.
  1. An existing vendor that matches what you typed.
  2. + Add New opens a short form to create the vendor.
The New Vendor panel with Name, Code, contact, billing address and terms fields
Figure 3-19 The New Vendor panel opened from the bill.

Accounts, payment terms, classes and locations can be added the same way from their own pickers, if your role allows creating them. Complete the vendor's other details later on its page (see Managing Vendors).

Field Reference

Field Description Required Example
Vendor The vendor who sent the bill. Active vendors only. Cannot be changed after the first save. Yes Precision Drywall
Date Bill date and accounting date. Must be after the Books Closed date to post. Yes 10/20/2026
Terms Payment terms used to work out the due date. Starts with the company default. No Net 30
Due Date When payment is due. Drives the Overdue status and the AP Aging report. No 11/19/2026
Reference The vendor's invoice number, shown on the bill. The Bills list searches by bill number and vendor name, not by reference. No PD-1107
Location A location for the whole bill, for reports by location. No North
Job Costing Shows the job, cost code, cost type and split columns. No Ticked
Commitments Shows the Commitment column for matching lines to subcontracts and purchase orders. No Ticked
Retainage Shows the Retainage percentage column. No Ticked
Account (line) The account charged. Not Accounts Payable, a retainage account or a WIP account. Yes 5030 — Subcontractor Costs
Job, Cost Code, Cost Type (line) Where the cost belongs in job costing. A job-coded direct cost needs all three. With job costing J-2004 · 09-100 · SUB
Commitment (line) The commitment line this bill line bills. No SC-2025-000008 · 1
Description (line) What the line is for. No Drywall, level 2
Amount (line) A positive amount with up to two decimals. Yes 26,400.00
Retainage (line) Percent of the line held back, from 0 to 100. No 10.00
Split (line) Divides the line among allocation rows. No Ticked
Adjustment Reason (line) Why a cost goes to an on-hold or closed job. For on-hold or closed jobs Late delivery invoice
Class (line) A class for the line, for reports by class. No Commercial
Memo An internal note shown on the bill. No Drywall progress, level 2
Attachments PDF, image, Word or Excel files, up to 5 MB each and 3 per bill. No PD-1107.pdf

Worked Example: A Subcontractor's Progress Bill

On October 20, 2026, Precision Drywall sends invoice PD-1107 for $26,400.00 of drywall on the Summit Tech Park Office Building (job J-2004), billed under subcontract SC-2025-000008. The subcontract holds 10% retainage.

Item Amount
Work billed this period $26,400.00
Retainage held (10% × $26,400.00) $2,640.00
Amount due to Precision Drywall now $23,760.00

You choose Precision Drywall, match the line to SC-2025-000008 · 1, enter 26,400.00 and keep the 10.00% retainage. The footer shows Total 26,400.00 and Amount Due 23,760.00, as in the figures above. Posting records this entry:

Account Debit Credit
5030 Subcontractor Costs (J-2004 · 09-100 · SUB) 26,400.00
2010 Accounts Payable 23,760.00
2020 Retainage Payable 2,640.00

The full $26,400.00 is job cost on J-2004 now. Only $23,760.00 becomes payable now; the $2,640.00 waits in Retainage Payable until you release it.

The sample company holds a bill just like this one, posted on September 20, 2026: BILL-2026-000133. Its posting entry appears in the next section.

What Happens After You Save or Post

Draft (Save Draft) Posted (Post Bill)
Status Draft Open; later Partly Paid and Paid as you pay it. Overdue is added after the due date.
Journal entry None One balanced entry on the bill date, locked
Accounts payable and the vendor's balance Unchanged Increased by the amount due
Job costs and the commitment's billed to date Unchanged Updated
Can be changed Yes, with Edit Draft (except the vendor) No; void it and enter it again
The draft bill page with its Draft status, Post Bill and Edit Draft buttons
Figure 3-20 A draft bill: nothing has been posted yet.
  1. The Draft status.
  2. Post Bill posts the draft as it stands.
  3. Edit Draft reopens the form.

After posting, the bill page shows what is owed and offers the next steps:

The posted bill BILL-2026-000133 showing retainage held, amount due and open balance
Figure 3-21 A posted subcontractor bill with retainage held.
  1. Retainage Held: the part kept back under the subcontract.
  2. Amount Due: the total less the retainage held.
  3. Open Balance: what is still unpaid.
  4. Pay Bills starts a payment to this vendor (see Paying Bills).
  5. The ⋯ menu holds Void Bill….

The Posting Entry

Open Posting Entry near the bottom of a posted bill to see the journal entry Structally wrote, with the job coding on each cost line:

The posting entry of BILL-2026-000133: debit 5030 26,400.00, credit 2010 23,760.00, credit 2020 2,640.00
Figure 3-22 The posting entry of BILL-2026-000133.

Every bill debits its line accounts and credits Accounts Payable for the amount due. When retainage is held, Retainage Payable is credited for the retained part. A split line posts one debit per allocation.

Review the result on the vendor's page, in the Payables Overview, in the AP Aging report, in the job's Job Costs, and in the commitment's Billed to Date.

Common Mistakes and Troubleshooting

Message or Symptom Why It Happens What to Do
Vendor must be active. The vendor was deactivated. Reactivate it on its page, or choose another vendor.
At least one bill line is required. Every line is empty. Enter an account and an amount on at least one line.
Account 5040 requires job coding. Your settings require a job on this account. Tick Job Costing and choose the job, cost code and cost type.
Job-coded cost lines need a cost code and a cost type. A job was chosen without both codes. Choose a cost code and a cost type, or remove the job.
Cost code 06-100 is not assigned to job J-1036. The code is not assigned to that job. Pick an assigned code, or assign the code to the job first.
Job J-2003 is closed; give an adjustment reason. The job is On Hold or Closed. Type an Adjustment Reason on the line.
Line 1 needs a job to hold retainage. A retainage percentage is on a line without a job. Choose the job, or set the retainage to 0.
Line 1 allocations must equal the line amount. Split rows do not add up to the line. Adjust the allocations until Remaining is 0.00.
Turn on Job Costing or clear the job coding on the lines. Job Costing was unticked while lines still name jobs. Tick it again, or clear the job fields.
Accounting date must be after the company closing date. The bill date is in a closed period. Use a date after the Books Closed date, or ask a Company Admin.
Set up retainage in Job Costing Settings before posting bills with retainage. No Retainage Payable account is set. Ask a Company Admin to set it up, or remove the retainage.
Line 1 exceeds commitment SC-2025-000008 line 1 by 1,250.00. Overruns are blocked and the line is over. Amend the commitment, lower the amount, or have a Company Admin or Accountant post it with an override reason.
A draft bill cannot be deleted. There is no discard button for draft bills. Leave it as a draft (drafts never affect your books) or edit it into the bill you need.