Agencies and freelancers who hire subcontractors, purchase software for client projects, or buy media and vendor services face a billing question every cycle: how do you invoice clients for costs you paid out of pocket? The answer depends on whether you're passing costs through at cost, with a markup, or bundling them into a retainer — and each model has different accounting and tax implications.
This guide covers the three passthrough models, how to tag and track costs by client in ExpenseBot, how to build a consolidated invoice, and the tax trap that catches many first-time agency operators: passthrough revenue is still income, even when the net is zero.
What Passthrough Billing Is (and Isn't)
Passthrough billing means invoicing a client for costs you incurred on their behalf — subcontractor fees, ad spend, software licenses, hosting, production costs — on top of or separately from your own labor or management fees.
What it is: a billing mechanism for recovering project costs. You pay a vendor, track the cost, and include it on the client's invoice. The client ultimately bears the vendor cost; you're the intermediary who manages the relationship and payment.
What it isn't: a tax-free pass-through in the IRS sense. The full billed amount runs through your revenue line — even at exact cost. The accounting treatment is revenue + offsetting expense = zero net income, but gross revenue goes up. This matters for several practical reasons:
- GST/HST/VAT thresholds: in Canada, the $30,000 small-supplier threshold for mandatory GST/HST registration (as of the 2026 tax year) is based on gross taxable supplies, not net income. Passthrough revenue counts toward the threshold.
- Loan qualification: gross revenue is used in small business loan applications. Higher gross revenue (even from passthroughs) can help.
- 1099-K and platform reporting: if you receive client payments through Stripe or PayPal that include passthrough amounts, the 1099-K shows the full gross — you need the corresponding expense records to reconcile.
Three Models: At-Cost, Cost-Plus, and Bundled
At-cost passthrough: you charge the client exactly what you paid the vendor, no markup. Common for media buying at agencies that earn their margin on management fees, and for subcontractor costs where the client is aware of the underlying rates. Net income effect: zero (revenue = expense). Gross revenue increases.
Cost-plus: you add a markup percentage to vendor costs before billing. The standard for creative agencies is 15–20% on out-of-pocket vendor costs. For media buying, 15% above net cost is traditional. The markup percentage is ordinary taxable income on Schedule C. Your contract should specify the markup rate — undisclosed markups on passthrough costs erode trust when clients eventually compare invoices to vendor receipts.
Bundled: vendor costs are included in a fixed monthly retainer — the client pays one amount that covers your labor, overhead, and estimated vendor costs. This simplifies billing but creates a reconciliation question: what happens when actual vendor costs are higher or lower than estimated? Most bundled agreements have a cap on vendor costs or a true-up at quarter-end.
Choose the model that fits your client relationship and the predictability of your project costs. At-cost is cleanest for audit transparency. Cost-plus reflects your value as a vendor manager. Bundled works best for ongoing retainers with stable cost structures. If you run several clients this way, the agency workflow overview shows how the tagging and billing pieces fit together.
Tagging Costs in ExpenseBot by Client Project
The foundation of clean passthrough billing is tagging every vendor cost to the correct client project as you incur it — not at invoice time.
In ExpenseBot, use the Tags system to create a tag for each active client. Name the tag with the Client – Name convention — for example Client – ACME or Client – Smith. The prefix matters: the invoice builder identifies which of your tags represent billable clients by looking for that Client – prefix, so a tag named just ACME-Q2-Website won't be recognized as a client to bill. When a vendor receipt is scanned or a subcontractor invoice arrives in Gmail, tag it to the client immediately. The tag carries through to:
- The per-client expense report (pull at any time to see costs to date)
- Profit by client — ask for it in the ExpenseBot AI chat ("profit by client") to get revenue, tagged costs, and margin ranked per client
- The reimbursable expense invoice builder (pull tagged costs into an invoice)
For recurring vendor costs (monthly software subscriptions for a client, weekly subcontractor invoices), set up the tag once. ExpenseBot's recurring expense tracker can auto-tag expenses from known senders so the cost is attributed to the right client without manual tagging every cycle.
Critical habit: tag at receipt time, not at billing time. At the end of a three-month project, a pile of untagged vendor receipts is a billing accuracy and dispute risk. Tag immediately — it takes five seconds per receipt.
Building a Consolidated Client Invoice
A consolidated invoice for an agency client typically has three sections: your labor or management fee, vendor/subcontractor costs (passthrough), and third-party fees (Stripe processing, platform fees, etc.).
Structure that works for client AP departments:
- Labor / management fee section: your hours, description of deliverables, rate, total. This is your margin-generating line.
- Vendor costs section: each passthrough item as a separate line with vendor name, description, amount (+ markup if applicable). Attaching or referencing original vendor receipts here prevents disputes.
- Third-party fees: Stripe processing, platform commissions, or any other administrative costs you're rebilling. These are often small but add up over a multi-month project.
- Subtotal, tax (if applicable), total due.
In ExpenseBot: open the Bill Client tool, select the client tag and date range. Tagged expenses appear as selectable line items. Add your labor fee manually. The tool generates a consolidated invoice with all line items and the correct tax calculation if you're GST/HST or VAT registered.
Before you send: ask the ExpenseBot AI chat for profit by client for this client to verify the margin is what you expected. If vendor costs ran higher than projected, now is the time to catch it — before the invoice goes out or after, depending on your contract terms.
For a reusable month-to-month structure you can hand a retainer client, see our freelancer monthly invoicing template.
Applying a Markup in the Invoice Builder
The cost-plus model above only pays off if you actually apply the markup at billing time. The Bill Client tool has a markup field built for exactly this. The flow:
- Select the client tag and the billing period.
- Choose which tagged costs to include — each row is individually selectable.
- Set the markup percentage. It's a single whole-invoice percentage (0–100%) applied to the subtotal of the costs you included — not a per-row rate. If you need different markups on different costs, run them as separate invoices or fold the difference into a line item.
- Add your labor or management fee as its own line item.
- Generate the invoice.
The accounting note that connects back to the tax section below: the markup is ordinary taxable income. The invoice shows the marked-up amount as your revenue, while the original vendor receipt stays in your books as the expense — and the difference between them is your margin. Record both sides.
The Tax Trap — Passthrough Revenue Is Still Income
This is the most common accounting mistake for first-time agency operators: they treat passthrough costs as "not really income" and don't record them on Schedule C.
Here's what actually happens on your tax return:
You billed a client $10,000: $4,500 your labor, $4,500 subcontractor costs (at-cost), $500 markup on those subcontractor costs. How Schedule C sees this:
- Revenue (Line 1): $10,000
- Contract labor expense: $4,500 (deductible)
- Net taxable from this project: $5,500 ($4,500 labor margin + $500 markup)
If you accidentally omit the $4,500 passthrough from revenue: Revenue = $5,500, same expense of $4,500 = $1,000 net. You've understated income by $4,500. When a 1099 or payment record shows $10,000 received, the IRS sees a $4,500 gap.
If you accidentally omit the expense but report the revenue: Revenue = $10,000, no expense = $10,000 taxable. You've overpaid taxes by roughly $1,350 (30% tax rate on $4,500).
The correct move: record both sides. Every dollar you collect goes in revenue. Every dollar you pay a vendor or subcontractor goes in expenses. They offset for at-cost passthroughs; the markup is your taxable profit.
Estimates — confirm with your tax professional.
Passthrough Costs and Sales Tax: GST/HST, VAT, and US Sales Tax
Sales tax on rebilled costs is where agencies get tripped up most, and it works differently in each jurisdiction. The short version by region:
Canada (GST/HST): if you're registered, you charge GST/HST on the full invoice — including the rebilled vendor costs. The GST/HST you paid on the original vendor receipt is claimable as an input tax credit, so the two approximately offset. Remember that the registration threshold is measured on gross taxable supplies, so passthrough revenue counts toward it — the same point the intro section makes about the $30,000 threshold.
UK / EU (VAT): the single most-misunderstood distinction is disbursement vs. recharge. A true disbursement — a cost you paid as your client's agent, in their name, passed on at exactly cost — is outside the scope of your VAT. A recharge — a cost you contracted for yourself and then re-bill — carries your VAT on the full amount. Most agency passthroughs (software, subcontractors, and hosting bought in the agency's own name) are recharges, not disbursements. HMRC applies specific conditions before a cost qualifies as a disbursement, so confirm with your accountant before treating anything that way.
United States: services are generally not subject to sales tax in most states, but rebilled tangible goods can be — and it's state-dependent. Treat this as a question to ask your accountant for the states you operate in, not something to answer from a blog post.
For the mechanics of putting the tax on the invoice itself, see our GST/HST and VAT invoice guide.
Estimates — confirm with your tax professional.
Subcontractor Invoices and 1099-NEC
For payments made in the 2026 tax year, the reporting threshold rose from $600 to $2,000 (the One Big Beautiful Bill Act, 2025; the figure is inflation-adjusted from 2027 onward). So if you pay a subcontractor $2,000 or more in the 2026 calendar year for services, you're required to file a 1099-NEC (Nonemployee Compensation) by January 31 of the following year. The January 31 deadline is unchanged. Note the threshold governs whether you must file the form — the subcontractor still owes tax on every dollar earned regardless, and payments made in 2025 fall under the old $600 rule.
Who gets a 1099-NEC:
- Individual freelancers and contractors
- Sole proprietors
- Single-member LLCs (taxed as sole proprietor)
Who doesn't get a 1099-NEC:
- Corporations (including S-corps and C-corps) — with one exception: attorneys
- Partnerships that are not providing professional services
- Payments via credit card or payment network (Stripe, PayPal) — the card processor handles reporting on 1099-K
- Payments for products, software, or non-service purchases
Collect W-9 forms before paying: get a W-9 from every subcontractor before the first payment. The W-9 gives you their legal name, TIN, and business type — everything you need to prepare the 1099 in January without chasing them.
Tracking in ExpenseBot: subcontractor invoices received via Gmail are scanned and logged as expenses. Tag each to the relevant client, and ask the AI chat for profit by client to see subcontractor costs by client at a glance. At year-end, filter by "Contract Labor" category to identify every subcontractor who may have crossed the $2,000 threshold for the 2026 tax year.
Estimates — confirm with your tax professional.
For the agency management overview, see the agencies solution. For billing clients for combined labor and passthrough costs, see bill client invoice. For the Schedule C guide to deducting contract labor and vendor costs, see Schedule C expense guide.
Frequently Asked Questions
Are passthrough costs taxable income for my agency?
Yes — even if you pass costs through at exactly what you paid, they run through your books as revenue AND expense. The net taxable income is zero (cost equals revenue), but your gross revenue increases. This matters for loan applications, GST/HST threshold calculations, and 1099 reporting. If you add a markup, the markup is ordinary income on Schedule C. Both sides must be recorded for accurate financial statements.
When do I owe a subcontractor a 1099-NEC?
For payments made in the 2026 tax year, when you pay any individual, sole proprietor, or single-member LLC $2,000 or more in a calendar year for services. The threshold rose from $600 to $2,000 under the One Big Beautiful Bill Act (payments made in 2025 and earlier still use the $600 rule; the figure is inflation-adjusted from 2027). File 1099-NEC by January 31 of the following year. You don't owe 1099-NEC to corporations (including S-corps), for product/software purchases, or for payments via credit card (those are reported by the card processor on 1099-K). Get a W-9 from every contractor before paying them. Estimates — confirm with your tax professional.
How do I invoice a client for costs I paid to multiple vendors?
Tag all costs to the client's project in ExpenseBot as you incur them. At billing time, run a per-client expense report for the billing period and create a consolidated invoice with each vendor cost as a separate line item. Add your labor or management fee as additional line items. The per-client P&L view shows you the margin before you send the invoice.
What's a reasonable markup on vendor passthrough costs?
Industry norms vary by sector: creative agencies typically mark up out-of-pocket vendor costs 15–20%, media buying is traditionally 15% above net cost, IT and consulting passthroughs run 10–20%. Whatever markup you charge, document the rate in your contract so clients aren't surprised. Undisclosed markups on passthroughs can damage client trust and in some agency agreements are contractually prohibited.
How does ExpenseBot help with agency billing?
The client tag system assigns every receipt and expense to a client. Ask the AI chat for 'profit by client' to get revenue, expenses, and margin per client as a ranked list. You can export a tagged expense list as the basis for your consolidated invoice, or use the Bill Client invoice builder to generate an invoice directly from tagged costs — with a whole-invoice markup percentage, manual line items, payment terms, and country-aware tax labelling. Subcontractor invoices received via Gmail are scanned and auto-tagged once you set up the client tag.
What's the difference between at-cost passthrough and a markup?
At-cost: you bill the client exactly what you paid the vendor ($500 vendor cost → $500 on client invoice). Net income from this line item is zero; gross revenue increases by $500. Cost-plus: you add a margin ($500 × 1.15 = $575 on client invoice). The $75 markup is ordinary taxable income. Both are legitimate; the choice depends on your contract terms and relationship with the client.
How do I handle passthrough expenses for Canadian clients with GST/HST?
If you're GST/HST-registered, you charge HST on the full invoice amount — including rebilled vendor costs. Even if the original vendor receipt included HST (which you can claim as an input tax credit), you still charge HST to the client on the full rebilled amount. The ITC and the output tax approximately offset each other. The GST/HST and VAT invoice guide on our blog covers the calculation. Estimates — confirm with your tax professional.
What's the difference between a disbursement and a recharge for VAT?
A disbursement is a cost you paid as your client's agent, in their name, which you pass on at exactly cost — it's outside the scope of your VAT. A recharge is a cost you contracted for yourself and then re-bill, which carries your VAT on the full amount. Most agency passthroughs (software, subcontractors, and hosting bought in the agency's own name) are recharges. HMRC applies specific conditions to disbursement treatment, so confirm with your accountant before treating anything as a disbursement. Estimates — confirm with your tax professional.
Should I show passthrough costs as separate line items or bundle them into one "expenses" line?
Separate line items, with vendor name and description. Client AP departments approve faster when they can match a line to a purchase order or a vendor they recognize. A single bundled "expenses: $4,500" line is the most common trigger for a payment delay and a back-and-forth email thread. Bundling also makes it harder for you to reconcile the invoice against your own tagged expense records later.
How do I track which passthrough costs have already been billed to a client?
The invoice builder doesn't mark individual rows as billed or unbilled — billing is period-based. You avoid double-billing by tagging every cost to the client as it lands, then selecting only the rows for the current billing period when you generate an invoice. Keeping each client's billing periods clean (bill through a cutoff date, then start the next period from there) is what prevents a cost from being billed twice or missed entirely across a multi-month project.
Do I need a W-9 from a subcontractor I paid through PayPal or Stripe?
Card and payment-network payments are reported by the processor on a 1099-K, so you generally don't file a 1099-NEC for them. But collect the W-9 anyway — payment method can change mid-relationship, and reconstructing a contractor's legal name and TIN in January is far harder than asking up front.
Can I charge a markup on passthrough costs without telling the client?
Legally, generally yes if your contract doesn't prohibit it. Practically it's the fastest way to lose a client who eventually sees a vendor invoice. Many agency agreements — media buying especially — explicitly require passthroughs to be billed at cost with the fee disclosed separately. Put the markup rate in the contract.
