How contractors accept credit card payments online in 2026 (Stripe Connect, honest fee math)
Most contractor invoicing apps add 1 to 2 points on top of Stripe's standard 2.9% + 30¢ by sitting between you and the merchant relationship. On a $20,000 pool draw, that markup is $200 to $400 per invoice. Here is how the math actually works, what Stripe Connect changes, and how online card payment compresses a contractor's AR cycle from weeks to days.
The fee math contractors don't see
Most contractors I talk to know that card payments cost something. Most have no idea what the actual rate is on the invoices they send through their app. The number that appears on their statement is just "fee," lumped into a single line item, and it almost never matches Stripe or Square's published rate.
That gap is the markup. Here is what is actually happening behind the scenes when you accept a card through one of the major contractor apps:
- The customer pays the invoice. Their card is charged.
- Stripe (or whoever the underlying processor is) takes their cut. Standard rate is 2.9% + 30¢ for online card-not-present.
- The SaaS company takes their cut on top of Stripe's. This is usually 0.5% to 2%, depending on the company.
- The remainder is deposited to the SaaS company's account or directly to you, depending on the model.
The two main models for how the money flows:
Model A: Merchant-of-record SaaS (the markup model)
The SaaS company is the merchant of record. Customers see the SaaS company's name on their card statement, not yours. The money lands in the SaaS company's account first, then gets forwarded to your bank, usually with a 1 to 3 day delay. The SaaS company adds 0.5% to 2% on top of Stripe's standard rate as a "platform fee" or "convenience fee." Many companies charge a separate per-transaction fee on top of that.
This is the model most legacy contractor SaaS uses. It is simpler for the SaaS company because they handle one merchant relationship instead of letting every customer set one up. It is more expensive for the contractor.
Model B: Connected accounts via Stripe Connect (the direct model)
The contractor is the merchant of record. The SaaS company hands the contractor a managed onboarding flow that creates a Stripe account in the contractor's legal name, linked to the contractor's bank. The contractor's name is on the customer's card statement. The money lands in the contractor's bank in 2 business days (Stripe's default for new accounts is sometimes 7 days for the first few payouts, then 2). The contractor pays only Stripe's standard rate. No platform markup.
This is what Workhand uses. It is what Square does when you connect a Square account to most newer invoicing tools. It is what Shopify Payments does when you sell on Shopify. The model is well established. It just was not common in legacy contractor SaaS because the older companies built their payments stack before Stripe Connect existed.
The honest comparison
| App | Card rate (approx, 2026) | Markup over Stripe | Deposit speed |
|---|---|---|---|
| Workhand (Stripe Connect) | 2.9% + 30¢ | None | 2 business days |
| Jobber Payments | 2.9% + 30¢ (Connect-style) | None on standard. Add-ons priced separately. | 2 business days |
| Housecall Pro Pay | ~2.59% to 3.5%, plan-dependent | 0 to ~0.6% depending on plan | 2 business days, faster with premium plan |
| JobNimbus payments | ~3.0% to 3.5% | ~0.5% | 1 to 3 business days |
| Buildertrend Payments | ~3.49% + 30¢ | ~0.5% to 0.6% | 2 business days |
| QuickBooks Payments | 2.99% (online), 2.5% (in-person) | None on standard plan | 1 to 2 business days |
| Square Invoices | 3.3% + 30¢ (online) | n/a (Square is the processor) | 1 to 2 business days, instant with fee |
Numbers above are based on publicly listed rates and reports from contractors as of early 2026. Rates change. Some apps have premium plans that reduce the markup if you pay more in subscription. Always verify the current rate on the app's pricing page before committing.
What that markup costs you in real dollars
Let me make this concrete with three example contractors.
- Single-truck pool service guy, $80K/year revenue, 60% on cards. Card volume around $48,000. At 2.9% (Stripe direct), card fees are $1,392/year. At 3.49% (markup model), $1,675/year. Difference: $283. Not life-changing. Convenience can outweigh.
- Mid-size pool builder, $400K/year, 70% on cards. Card volume $280,000. At 2.9%, fees are $8,120. At 3.49%, fees are $9,772. Difference: $1,652. That is real money. About 4 months of a Workhand subscription.
- Larger pool builder, $1.2M/year, 80% on cards. Card volume $960,000. At 2.9%, fees are $27,840. At 3.49%, fees are $33,504. Difference: $5,664. That is a part-time employee for 2 months.
The breakeven is around $30,000 to $50,000 in annual card volume. Below that, the markup is small enough that you can pick on convenience. Above that, the math starts mattering.
If you do not know what your current effective card rate is, log into your invoicing app's payment dashboard and pull last month's payments report. Add up the gross charged and the net deposited. The gap divided by gross is your real card rate. Most contractors are surprised by that number.
What Stripe Connect is, plainly
Stripe Connect is Stripe's product for software companies that want to let their users accept payments without the software company becoming the merchant. It exists because the alternative (Stripe routing all payments through the SaaS company's own Stripe account) creates a bunch of problems: the SaaS company has to handle tax reporting for every user, the customer sees the SaaS company's name on their card statement, and the SaaS company is on the hook for chargebacks.
Connect solves this by letting each user (each contractor, in our case) have their own Stripe account, set up through a managed onboarding flow inside the SaaS app. The SaaS company never holds the money. The contractor's name is on the customer's statement. Tax reporting (1099-K) comes from Stripe directly to the contractor.
Two flavors of Connect
Stripe Connect has multiple variants. The two relevant ones for contractor apps:
- Express accounts. Stripe-hosted onboarding, Stripe-hosted dashboard. The contractor logs into Stripe directly to see their payments. This is the lighter-touch variant. Workhand uses Express.
- Custom accounts. The SaaS company builds the whole dashboard themselves. Stripe is invisible to the contractor. This is heavier to build but lets the SaaS hide Stripe entirely. Some larger contractor apps use Custom.
From a contractor's perspective, the difference is mostly cosmetic. With Express, you see "Stripe" in places. With Custom, you only see the SaaS brand. Fees are the same.
Why the older contractor apps didn't use Connect
Stripe Connect launched in 2014 and was production-ready around 2016. Most of the big contractor SaaS companies (Jobber, Housecall Pro, JobNimbus, Buildertrend) launched their payments products before that, so they built on the older "platform as merchant" model. Migrating to Connect is a significant engineering project and they have not all done it. Jobber has migrated. Others have hybrid setups. A few are still fully on the older markup model.
Workhand launched in 2025, so we got to start fresh on Stripe Connect Express. No legacy stack to migrate. That is one of the few advantages of being late.
What onboarding looks like (5 minutes, SSN or EIN, bank)
Here is what the contractor actually has to do to start accepting cards through Stripe Connect inside Workhand. The process is similar in any Connect-based contractor app.
What you need on hand
- Legal name and date of birth of the business owner.
- SSN (sole prop) or EIN (LLC, S-corp, C-corp). Plus the last 4 of SSN for the responsible owner, even on LLCs.
- Business name (DBA or legal entity) and address.
- Bank account for deposits. Routing number and account number. Stripe verifies this with either two micro-deposits over 2 business days or instant verification through Plaid.
- Phone number for SMS verification.
- Industry code (MCC). Stripe sets this automatically based on what the SaaS company configured. For contractor apps it is typically 1520 (general contractors) or 1711 (special trades) or 1799 (special trade contractors NOT elsewhere classified). You do not have to pick this yourself.
The flow, step by step
- In Workhand, tap "Set up payments" in settings.
- You are redirected to a Stripe-hosted onboarding page (Express).
- Enter business type, legal name, address, EIN or SSN.
- Enter the responsible owner's name and last 4 of SSN.
- Connect your bank account, either by typing routing and account numbers (2 day micro-deposit verification) or by signing in with Plaid (instant).
- Verify your phone with an SMS code.
- You are returned to Workhand. Payments are now active on your invoices.
Total time, end to end, for most contractors: 4 to 8 minutes. The bank verification can hold things up if you go the micro-deposit route (2 business days for the deposits to land in your bank, then you confirm the amounts in Stripe). Plaid is instant if your bank supports it (most major US banks do).
What can go wrong
A few common snags I have seen with new contractor signups:
- Name mismatch. The name on the bank account has to match the legal entity. If your bank is in your personal name but you set up the Stripe account as an LLC, Stripe will reject the payout. Fix: either change the entity type or open a business bank account in the LLC name.
- EIN not yet active with IRS. If you got your EIN last week, Stripe sometimes cannot verify it for a few business days. Wait it out.
- Identity verification flagged. About 1 in 30 contractors get pulled for additional verification (driver's license photo, sometimes a selfie). Annoying but usually resolves in a day.
- First payout delayed. Stripe holds the first few payouts on new accounts for 7 days (instead of the standard 2) until they have processed a few transactions. After 3 to 5 invoices paid, you move to the standard 2 day schedule.
How card payment changes the AR cycle
The fees matter. But the bigger story is how online card payment changes the time from invoice sent to money in your bank. This is where most contractors find the real value, separate from the fee math.
The mail-in check cycle (what most contractors do today)
Typical timeline for a paper invoice on a residential job:
- Day 0: Job finished. You hand the customer a written invoice or email a PDF. Customer says "I'll mail you a check."
- Day 1 to 7: Customer puts the invoice on the kitchen counter. Forgets about it for a week.
- Day 8 to 14: Customer writes the check, puts it in an envelope, drops it in the mail.
- Day 15 to 20: Check arrives at your office. Sits in the inbox for a day or two.
- Day 21 to 25: You deposit the check. Bank holds it for 2 business days.
- Day 27 to 30: Funds available in your account.
Average from invoice to usable cash: 21 to 30 days. This is the AR cycle a lot of contractors have lived with for years and just accept as how it works.
The online card cycle
Same job, with a "Pay now" button on the invoice:
- Day 0, 3:05pm: You finish the job, tap "Send invoice." Customer gets it on their phone.
- Day 0, 5:30pm: Customer pays with a card from their couch.
- Day 2: Funds available in your bank (Stripe's standard 2 day payout).
Average from invoice to usable cash: 0 to 2 days. For a contractor running on a thin working capital cushion, this is night and day. You are no longer floating $40,000 to $80,000 of receivables at any given time, which means you can take on more jobs without needing a line of credit.
What the data actually says
Across the contractors using Workhand, the median time from invoice sent to paid for card invoices is currently 4 hours. For ACH invoices, 1.2 days. For invoices marked "pay by check," 14 to 22 days. The card option compresses the cycle by 90% or more. The "Pay now" button matters more than people expect.
Even at the higher 3.49% rate of a markup-model app, card payment is usually worth it on the AR-cycle math alone. At 2.9% direct, it is overwhelmingly worth it. The only argument against is the customer who sees a card surcharge added to the invoice, which is a separate discussion.
Surcharges and convenience fees
Some contractors pass the card fee to the customer as a "convenience fee" or "card surcharge." This is legal in most US states (24 states allow it as of early 2026, the rest have rules around how it must be disclosed). Stripe lets you add a surcharge line at checkout. The trade-off is that customers sometimes balk and switch to ACH or check to avoid the fee. About 30 to 50% of customers will switch, in my experience. The other half pays the surcharge without comment.
Personal recommendation: do not surcharge on residential jobs under $5,000. Absorb the 2.9% as a cost of doing business and bake it into your pricing. On commercial or larger residential jobs, a 3% surcharge is more common and less likely to lose the sale.
Tax handling and the 1099-K question
The thing that confuses a lot of contractors when they switch from a markup-model app to a Connect-based app is the tax reporting. Worth understanding before you switch.
1099-K basics
A 1099-K is an IRS form that payment processors send to anyone who received over $5,000 in card or ACH payments in the year (the threshold dropped from $20,000 / 200 transactions in earlier years, and may continue to change). The form reports your gross card payment volume to the IRS. You include it in your tax return.
In the markup model, the SaaS company is the merchant of record, so the SaaS company gets the 1099-K from Stripe and then has to forward it to you (or issue you their own 1099-K). In the Connect model, Stripe issues the 1099-K directly to you, because you are the merchant. The SaaS company is not in the loop.
What this means in practice
- You get the 1099-K from Stripe directly in late January or early February, by mail and in your Stripe dashboard.
- The number on the form is gross card volume, before Stripe's fees. Your taxable income is less than that, because the fees are a business expense. Your CPA knows this.
- The 1099-K is also reported to the IRS, so make sure your tax return matches. If you got a 1099-K for $87,000 and your reported revenue is $40,000, you will get a letter.
- If your business is structured as an LLC taxed as an S-corp, the 1099-K goes to the LLC, not to you personally. Make sure Stripe is set up with the LLC EIN and not your personal SSN.
What you should ask your CPA
Before tax season the year you start accepting cards, bring three things to your CPA:
- The 1099-K from Stripe (or the SaaS company).
- An annual report from your payment dashboard showing gross volume, fees, and net deposited. Workhand exports this as a CSV in 2 taps.
- The reconciliation between your QuickBooks (or whatever books you keep) and the 1099-K. The two should add up.
Most CPAs handle 1099-K reporting without breaking a sweat. If yours seems confused, find a different CPA. This is not exotic anymore.
When the markup model is fine, and when it isn't
I want to be honest about this rather than just pitch Workhand. The markup model is not evil. It just has a cost, and the cost matters at scale.
When the markup model is fine
- You do less than $30K/year in card volume. The annual difference is under $300. Pick on convenience and feature set.
- You really love a specific app's other features. If Jobber's scheduling or Housecall Pro's dispatching is worth a lot to you, the payments markup is a small tax to pay for those features.
- You already have a markup-model app and switching costs would eat the savings. Migration time has a real cost.
When the markup model is not fine
- You do more than $100K/year in card volume. The annual delta starts being $500 to $2,000+. That money is yours.
- You are starting fresh and have not committed to a tool yet. Pick the model that does not bake markup into your AR forever.
- You are doing larger commercial jobs. A single $40,000 invoice at 3.5% costs $1,400 in fees. At 2.9%, it costs $1,160. $240 per invoice adds up.
The Workhand pitch, plainly
Workhand uses Stripe Connect Express. Your card rate is 2.9% + 30¢ per online card payment. ACH is 0.8% capped at $5. Deposits in 2 business days to your bank. 1099-K from Stripe, not from us. We charge $0, $34.99, or $89.99 a month flat for the software. We do not take a cut of your payments. Our incentive is to keep you on the subscription, not to skim transactions.
The trade-off is that you have to do the 5 minute Stripe onboarding and provide your SSN or EIN. The markup-model apps avoid this by being the merchant themselves. Some contractors prefer that. Most prefer the lower rate.
Accept cards at Stripe's actual rate. $34.99 a month flat.
14-day free trial, no credit card to start. Stripe Connect onboarding takes 5 minutes. Deposits to your bank in 2 days. No platform markup.
Try Workhand freeCommon questions
"Can my customers still pay by check or ACH?"
Yes. Workhand invoices have card, ACH, and "I'll send a check" as customer options. ACH through Stripe is 0.8% capped at $5, which is cheaper than card for any invoice over $625. For large commercial draws, push customers to ACH if you can. Most are happy to do it once they see the math.
"What about chargebacks?"
Because you are the merchant of record, chargebacks are your responsibility. Stripe handles the process (notification, response window, dispute submission), but if you lose, the money comes from your account. In contractor work, chargebacks are rare (under 1 in 500 in our experience), and the most common reason is a customer disputing scope rather than non-delivery. Document scope with signed change orders and dated photos, and you will almost always win the dispute.
"Do you support Apple Pay and Google Pay?"
Yes, both. The invoice payment page detects the customer's device and shows the appropriate one-tap option. Apple Pay adoption among residential customers is high (we see roughly 40% of card payments come through Apple Pay on the invoice page).
"What's the difference between Stripe Connect and just using my own Stripe account?"
If you set up your own Stripe account separately and try to wire it into a contractor app, the integration is usually messy or impossible (the app expects to manage the connection). With Stripe Connect, the contractor app handles the onboarding flow but the resulting account is yours, in your name, with your bank. Functionally it is the same Stripe account, just provisioned through the contractor app rather than directly. You can log into the Stripe dashboard at any time with the credentials you set up during onboarding.
"What if I already have a Stripe account from another business?"
You can connect an existing Stripe account during Workhand onboarding. Caveat: the legal entity has to match. If your existing Stripe is set up under a different LLC, you cannot reuse it for a different business. Start a new Connect account in that case.
"Does QuickBooks see these payments?"
Yes, if you have QuickBooks Online connected to Workhand. Each paid invoice syncs to QBO with the payment marked, the fee broken out as an expense, and the net deposit reconciled. Your bookkeeper sees a clean line item, not a "Stripe deposit" they have to investigate.
"What about international cards or international customers?"
Stripe handles non-US cards at a slightly higher rate (typically 3.9% + 30¢ for non-US cards, plus 1% for currency conversion). For US contractors with mostly US customers, this rarely matters. For someone doing work in border regions or for snowbird customers paying with a Canadian card, factor in the higher rate.
The bottom line
Accepting card payments online is now the right call for almost every contractor doing more than 4 invoices a month. The AR cycle compression alone is worth it. The choice is which payment model to use, and that comes down to fees.
If you are happy with your current invoicing app and your card volume is under $30K a year, do not switch on the basis of payment fees alone. The savings are not worth the migration.
If your card volume is over $50K a year, or you have not committed to an app yet, look at the underlying payment model. Stripe Connect Express (Workhand, Jobber, a few others) puts you in the merchant seat at the standard Stripe rate. The older platform-as-merchant model (some configurations of Housecall Pro, JobNimbus, Buildertrend) marks up the rate by 0.5% to 1%, which becomes real money at scale.
Whatever you pick, accept cards. The "we only take checks" era is over for residential customers under 60, and the AR cycle math heavily favors getting paid in 2 days instead of 21.
Got a payment workflow I didn't cover? Send a note. Also worth reading: our FAQ, the phone-invoicing guide, and the QuickBooks alternatives writeup.