Skip to content

Blog · October 8, 2026

Contractor invoicing software: how deposits, progress invoices, and payment links get you paid faster

Most small contractors don’t have a revenue problem. They have a timing problem: the work is finished, the customer is happy, and the money lands three weeks later — after a text, a re-sent PDF, and a phone call you didn’t want to make. Contractor invoicing software exists to close that gap, and the gap closes in three specific places: the deposit you take before you buy material, the progress invoices you send during a long job, and how little friction stands between your customer and a Pay button.

None of that is the part of the trade anyone trained you on. Here’s what actually moves the date the money shows up.

Why do contractors get paid late?

Usually for one of three reasons: there was no deposit, so you funded the job yourself; everything was billed at the end, so a single invoice carries all the risk; or paying you takes more than about thirty seconds. Late payment is rarely a difficult customer. It’s almost always a billing structure you chose by default.

The first two are cash-flow design decisions you make when you write the quote, not when you send the invoice. The third is a user-experience problem, and it’s the one contractors underestimate most — a PDF attached to an email, with a mailing address for a check, is an invoice that gets opened on a phone, mentally filed under “deal with later,” and genuinely forgotten. Not maliciously. It just never becomes a two-tap task.

Fix all three and you’re not chasing anybody. That’s the whole goal.

How much of a deposit should a contractor ask for?

Enough to cover material and mobilization, not your profit — and never more than your state allows. Deposit limits on residential home-improvement contracts vary widely: some states cap the up-front payment at the lesser of 10% or $1,000, others allow up to a third of the contract, and some set no percentage cap but dictate how you hold or escrow the money. Check your state licensing board before you set a default.

Within whatever your state permits, the reason a flat “I always take 25%” rule gets contractors into trouble is that project values aren’t remotely uniform. Per Sesklo’s cost guides, which track typical project costs across the 50 largest US metros, a roof installation runs from roughly $5,000 at the low end to over $40,000 at the high end — and the typical cost of the same job swings about 53% between the least expensive metro in that set and the most expensive. Siding spans wider still, from roughly $4,000 to about $54,000.

A 25% deposit is about a $1,300 ask on one of those roofs and a $10,000 ask on another. Those are completely different conversations, and only one of them gets a casual yes.

So anchor the deposit to a number you can defend out loud: the material and mobilization cost sitting in your own quote. “The deposit covers the shingles, the dumpster, and the permit — $3,400 of the $14,000” is an easy sentence. “I need a quarter down” invites a negotiation you have no facts for.

Two practical notes:

In Sesklo, once the customer has signed your quote you can send a deposit invoice against it. It starts at 30% of the contract value, and you change the amount to whatever your quote and your state call for — so ordering material isn’t something you float on a personal card.

When should you send a progress invoice instead of waiting?

Any time the job runs longer than you’re comfortable financing. In practice that means more than about two weeks of work, or more material than you’d want sitting on your own credit line. Tie each progress invoice to a milestone the customer can physically see happened — material delivered, rough-in inspected, drywall up — rather than to a calendar date.

Visible milestones don’t get argued with. Dates do. “It’s the 15th” invites a look around the half-finished room; “the rough-in passed inspection yesterday” doesn’t.

The structural piece that makes progress billing painless is keeping the whole job on one running ledger. Sesklo treats each job that way: the quote, the deposit, every progress payment, and the final invoice live on the same record, so what’s been paid and what’s still owed is a number you read rather than a sum you reconstruct from your bank app at 9pm. Invoicing draws against the accepted quote, so the ledger also shows the contract value, what you’ve invoiced so far, and what’s left to bill. Payment requests tied to project milestones are on the Pro plan; on Basic you can still send as many invoices against a job as it needs.

The failure mode to avoid is letting progress billing turn into surprise billing. If you’re going to bill in stages, the stages and their amounts belong in the quote the customer approved. A schedule of values written up front reads as professional. The same schedule produced halfway through reads as a change in the deal.

What makes a payment link actually get clicked?

Three things: the amount due is unmistakable, the line items match what you said out loud, and paying takes one tap with no account to create. An invoice that requires a login, a check, or a trip to the bank sits. An invoice with a card button that works on a phone gets paid the evening it arrives.

Concretely, the invoices that get paid same-day tend to have:

Be straight with customers about what the payment itself costs them. On Sesklo, the customer pays a $1 platform fee plus processing on each invoice payment. (A flat-rate booking works differently: a $5 fee is built into the price the customer sees.) Mentioning it before they see it is thirty seconds that prevents a confused text message later.

How do you chase an overdue invoice without being the bad guy?

Let a system send the first nudge, so the only time you make it personal is when it’s genuinely overdue. Sesklo checks for overdue invoices every day and emails your customer a reminder the first time one goes past due. After that you can send a follow-up by email or text in one tap — at most once a week per invoice — and overdue and open balances show up on your dashboard rather than in the back of your head. A system sending the reminder is also just easier on the relationship than you sending it.

Beyond the reminders, two things are worth having settled before you need them:

What does contractor invoicing software cost?

Invoicing is typically sold one of three ways: bundled into a flat monthly subscription, charged per user per month, or attached to a lead-generation product where the real cost is the per-lead fee. Sesklo is the first kind. Per the contractor pricing page, it’s $49.99 a month on Basic (one user), $99.99 on Pro (one user), and $129.99 on Team (five users included, $15 a month per additional user), with 15% off if you pay annually, a free first month, and no annual contract. There are no per-lead fees. Invoicing and online payments are included from the Basic plan up — they aren’t an add-on.

When you price any of this, including ours, the questions that actually change the number are:

Run the per-user and per-lead models against your own job volume using each vendor’s current pricing page — not a comparison chart someone wrote two years ago, including one of ours.

The sequence, on one job

None of those steps is sophisticated. Doing all six in order is what separates a business that gets paid in days from one that gets paid in weeks, at exactly the same revenue.

If you want to see what that sequence looks like on a single job ledger — deposit, progress payments, and final invoice on one record, paid by card or bank transfer — the walkthrough is at Sesklo’s invoicing page for contractors.