Developers bill in one of three ways: hourly with a timesheet, by sprint or milestone against a fixed scope, or on a monthly retainer for maintenance. Clients who are not technical need the invoice to name what was built in plain words, not ticket numbers alone. This template has a line per feature or sprint with the ticket reference in brackets, hours where relevant, and third-party costs (hosting, APIs, licenses) separated from your fees.
Free, fillable, US Letter. No email, no sign-up. Fill in your details once. For each invoice change the client, the period or milestone and the lines.
What the PDF looks like. The hints in the line table show the lines a developer typically bills; type over them.
“#412, #418, #420: 14 h” means nothing to the client's finance person. “Checkout flow: address validation and order confirmation emails (#412, #418), 14 h”.
If the retainer includes 10 hours, show hours used this month and hours carried or expired, or the client assumes unlimited.
Hosting, API usage and licenses passed through need the service, the period and the amount, with the provider invoice available.
Lines a typical job produces. Labor and materials are separate, and anything already paid is a negative line so the total is the balance due.
| Description | Qty × rate | Amount |
|---|---|---|
| Sprint 4 (Mar 2–13): checkout flow, address validation and order confirmation emails (#412, #418) | 22 h × $110.00 | $2,420.00 |
| Sprint 4: admin dashboard, order export to CSV (#420) | 9 h × $110.00 | $990.00 |
| Bug fixes and code review, logged in timesheet | 4.5 h × $110.00 | $495.00 |
| Pass-through: hosting (Mar) and transactional email API (Mar), provider invoices attached | 1 | $63.40 |
| Deposit received Feb 1 | −$1,500.00 | |
| Total due | $2,468.40 | |
Avo keeps your clients and your usual line items, so the next invoice is three taps. Your first three documents are free, full-quality PDF, no watermark. Premium from $59.99/year if you invoice often.

Scan the code with your iPhone camera to open Avo in the App Store, or email yourself the link.
Hourly with a timesheet for open-ended or maintenance work; fixed milestones for defined scope where the client wants a known price. Many projects use a deposit plus milestones for the build and hourly afterward. The invoice should say which applies to each line.
Lead with what the client can recognize (“checkout flow with address validation”) and put ticket numbers or commit ranges in brackets. The finance person approves the plain description; the product owner checks the references.
One line with the month, the hours included, the hours used and what happens to the remainder (carried or expired), plus the flat fee. Work beyond the retainer goes on separate hourly lines at the agreed rate.
Small developers usually pass them through at cost on separate lines with provider invoices available, or have the client pay the providers directly. If you add a management fee, state it as its own line.
On payment, stated in the terms: repository access or a deployment on receipt of the milestone payment. For retainers, the client usually owns the repository from the start and the terms cover access instead.