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:
- Put the deposit terms in the quote, not in a follow-up conversation. A deposit that was part of the price the customer approved isn’t a surprise. One that arrives after the handshake feels like one.
- Collect it against a signed contract. E-signed approvals give you a dated record of exactly what was agreed before any money moved, which matters far more on the one job in forty that goes sideways than it does on the other thirty-nine.
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:
- The amount due, not just the project total. After a deposit and a progress payment, “Total: $14,000” is the wrong number to put in the biggest font.
- Line items in the customer’s vocabulary. “R&R 24 LF crown” means nothing to a homeowner. “Replace crown molding, dining room” does.
- A real due date. “Upon receipt” is not a date and gets treated accordingly.
- Both card and bank transfer on the bigger invoices. In Sesklo, turn on bank transfer in your payment settings and customers can pay larger invoices — $500 and up by default — by ACH on the web. The processing fee they pay is 0.8%, capped at $5, against roughly 3% by card, and it applies automatically when they choose bank. The trade-off is that bank payments take a few extra days to reach you. Apple Pay and Google Pay appear on their own on devices that support them.
- Your business name, and a sequential invoice number. Sesklo’s own invoice numbers run in one sequence across the whole platform, so a customer never sees the same Sesklo number from two different providers — a small thing that quietly signals you’re not making this up as you go.
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:
- A late-fee term in the contract. Enforceable only if it’s in what the customer signed, and limits on what you can charge vary by state.
- Your lien deadlines. Mechanics-lien notice and filing windows are state-specific and often short. Know yours now; don’t research them in week nine of a nonpayment. That’s a conversation for an attorney licensed where you work, not a blog post.
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:
- Is invoicing in the base plan, or does it unlock at a higher tier?
- What does per-user pricing do at your real crew size, including the office person and the seasonal helper?
- What comes out of each payment and each payout? On Sesklo, each payout to your bank carries Stripe’s payout fee of 0.25% + $0.25, passed through at cost with no markup; optional instant payouts cost 1% with a $0.50 minimum. Every vendor has some version of this line. Find it.
- Can you leave with your records? Invoice history is accounting data, not marketing data.
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
- Quote it itemized, with the deposit and any progress stages written into the price the customer approves.
- Get the quote e-signed before material is ordered or a crew is scheduled.
- Bill the deposit off the signed contract.
- Progress-invoice at each milestone the customer can see.
- Send the final invoice before you leave the driveway — not Sunday night, when your memory of the extras has already faded.
- Let the overdue reminder handle the first round of follow-up.
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.
