Key takeaways
- CSLB caps home-improvement down payments at the lesser of 10% or $1,000, and progress payments cannot exceed work completed; card acceptance does not change that.
- Progress payments in the thousands belong on ACH; cards fit deposits and smaller service tickets, with invoice links replacing keyed-in numbers.
- Faster access to settled funds helps contractors who pay subs and suppliers before the owner pays them.
Contractors payment processing Bay Area firms actually need looks nothing like a retail terminal. A general contractor building ADUs in the Oakland flats and the San Jose suburbs, a kitchen remodeler working the Peninsula from San Mateo to Palo Alto, a roofing or solar company covering Contra Costa, or an electrical sub on a commercial job in SOMA all share the same shape: a few large invoices a month, paid in stages, by owners who have plenty of time and motive to dispute if the project goes sideways. Add California's Contractors State License Board rules about what you can collect and when, and the payment setup becomes part of your compliance program.
The CSLB rules that shape every invoice
For home-improvement contracts, California law caps the down payment at 10% of the contract price or $1,000, whichever is less. Progress payments must be tied to a schedule in the contract and cannot exceed the value of work performed or materials delivered. Contracts above a modest threshold must be in writing with specific notices, and a three-day right to cancel applies to most home-solicited contracts. Swimming pool contracts have their own schedule rules. Commercial work is different and generally not subject to the down-payment cap. None of these are payment-processor rules, but they determine the amounts and timing of what you collect, and an underwriter reviewing a contractor's account will ask how you comply. Confirm the current limits with the CSLB and counsel; the figures here are the ones commonly cited, and they can change.
Matching the rail to the payment
- Deposits. Under the cap, deposits are small enough that cards are fine and convenient. Send a payment link with the signed contract so the homeowner pays from their own device.
- Progress payments. A $28,000 draw on a Berkeley remodel should not go on a card. Interchange alone is a real number at that size, and a card payment carries a chargeback right for months. ACH settles in 1-3 business days, costs a fraction, and has no chargeback mechanism; unauthorized-debit returns exist but are narrower and time-limited.
- Service calls and small jobs. A $650 water-heater swap or a same-day electrical repair is a card-present job if the tech has a mobile reader, and a payment-link job if not.
- Commercial and GC-to-sub payments. ACH or wire, with lien-waiver exchange handled outside the payment rail.
Invoice links instead of clipboards
Contractors historically took card numbers over the phone and wrote them on the estimate. That practice is a PCI problem, a fraud liability, and a dispute loser, since a keyed transaction has no cardholder authentication. An invoicing and payment link flow sends the owner an itemized invoice tied to the contract milestone, lets them choose card or bank account, and returns a record with the payer's own entry. It also gives you a timestamped acceptance that maps to the progress schedule, which is what you need when a dispute arrives.
Winning the dispute on a half-finished project
Contractor chargebacks follow a script: the owner is unhappy with the work or the timeline, disputes the last card payment as "services not rendered" or "not as described," and the network asks you to prove otherwise. The evidence that holds up is the signed contract with the payment schedule, the change orders signed by the owner, dated photos of completed work at each draw, inspection sign-offs from the city or county, and the invoice matching the milestone. Contractors who keep this file as a matter of routine win most disputes. Those who cannot produce a signed change order for the $4,000 extra lose it. Keep card volume on deposits and small tickets, and this stays a rare event rather than a monthly one.
Cash flow between the draw and the payroll
The Bay Area contractor's classic squeeze is paying subs, lumber and permit fees before the owner's draw clears. Card settlement is 1-2 business days and ACH is 1-3, which is fast but not always fast enough on a Friday. Some processors offer faster access to settled card funds for a fee. The instant payouts page explains how that works and what it costs; it is a tool for smoothing timing, not a substitute for getting the progress schedule right in the contract.
Surcharges, pricing and SB 478
Many contractors want to pass card costs to the customer on the occasions they do take a card. Card network rules allow credit surcharges with limits and disclosure, and prohibit them on debit. California's SB 478, effective July 2024, requires advertised prices to include mandatory fees, and state guidance addresses how surcharges fit. A contract that quotes one price and adds a card fee at payment needs careful drafting. Confirm the current rule with counsel, and consider simply pricing the job to include your costs and offering ACH as the no-fee option.
Underwriting a contractor account
Underwriters look at license status on the CSLB site, bonding, average and largest ticket, and the share of revenue you intend to run on cards. A contractor who says "we will put everything on cards" gets more scrutiny and possibly a reserve, because of the delivered-later liability. One who says "cards for deposits and service calls, ACH for draws" reads as lower risk and prices better. Bring a sample contract, your license number and bank statements, and be realistic about volume.
Payment processing for Bay Area contractors works when the rails match the contract: small deposits on cards, draws on ACH, everything by link rather than by hand, and a dispute file built into the job folder from day one.
Ready to get set up with Flux?
Cards, ACH, and stablecoins in one platform, with volume-based pricing. No setup fees or contracts.
Get Started