billable.dev

How to Invoice as a Freelance Developer

By Mark Fulton · 2026-08-08 · 5 min read

How to Invoice as a Freelance Developer

Invoicing is the least interesting part of freelancing and one of the most consequential. A sloppy invoice doesn't just look unprofessional — it gets stuck in a finance queue, generates back-and-forth email, and delays your money. The good news: doing it well is mostly a checklist. Here's the whole process, from before the project starts to the moment the payment lands.

Before the work: agree on the billing mechanics

Most invoicing problems are created before the first line of code. When you scope the project, nail down four things in writing (an email thread counts):

  1. The rate and model. Hourly or fixed-price, and the number. If you're unsure which model fits, we wrote a whole piece on hourly vs fixed-price billing.
  2. The billing cadence. Weekly, biweekly, monthly, or per-milestone. Shorter cycles mean smaller invoices, faster feedback if something's wrong, and less exposure if a client stops paying.
  3. Payment terms. Net 14 is a reasonable default for freelancers. Net 30 is common at larger companies; longer than that deserves pushback or a deposit.
  4. Who receives the invoice. Ask literally: "What name, entity, and email should invoices go to, and do you need a PO number?" One question, asked once, prevents a resend on every invoice.

If the client is a company of any size, also ask whether they use a vendor portal. Some accounts-payable departments only pay invoices submitted through their system, and finding that out on day 40 of net 30 is painful.

Net terms, and the ceiling you may not know you have

Terms Typical use Notes
Net 7–14 Freelance default The work is already delivered; you're not financing inventory
Net 30 Corporate standard Often a genuine AP-process constraint. Trade it for a deposit
Net 45–60 Large enterprise You are lending interest-free. Price it in
Net 90+ Rare, and worth refusing Never accept alongside milestone-free scope

If you or your client are in the EU, that bottom row has a legal ceiling on it. Directive 2011/7/EU requires businesses to pay within 60 days unless a longer term is expressly agreed and isn't grossly unfair — and caps public authorities at 30 days. Long terms in the EU are a negotiated exception, not a default a client can simply assert.

Building the invoice itself

An invoice needs to answer three questions instantly: who is this from, what is it for, and how much by when. That maps to a standard structure:

  • Your details — name or business name, email, address.
  • Client details — the paying entity, as they specified.
  • Invoice number and dates — a sequential number, the issue date, and a concrete due date.
  • Line items — descriptions of the actual work, with hours and rates for hourly work or milestone amounts for fixed-price.
  • Totals — subtotal, any tax with a proper label, the final amount.
  • Payment instructions — how to pay and any terms about lateness.

The line items deserve the most care because they're what the approver reads. "Development services — 32 hours" invites questions. "Aug 4–8 — payment webhook integration: retry logic, signature verification, staging deploy (14 hrs)" answers them. Your git history is genuinely the best source material here; it's a timestamped record of what you actually did. We built Billable's git log import around exactly that idea, and there's a fuller breakdown of every field in what belongs on a software development invoice.

When to send it

Send the invoice the day the billing period ends or the milestone ships. Not next week — that just adds days to your effective payment time, since net terms count from the issue date. Attach the PDF to a short email that repeats the essentials in the body: invoice number, amount, due date. Finance people triage by inbox preview; make theirs easy.

Two small habits that pay off:

  • Keep numbering strictly sequential. INV-0007 follows INV-0006 even across clients. Gaps and duplicates cause real confusion during tax season and look odd in an audit.
  • Keep copies you control. A folder of PDFs plus a JSON or spreadsheet record of amounts and statuses. If you use the Billable generator, the save list and JSON export cover this — everything stays in your browser.

Following up without being weird

A polite system beats ad-hoc nagging:

  • Due date minus 3 days (for larger invoices): a one-line "heads up, INV-0012 is due Friday" note. Optional but effective with slow-moving AP departments.
  • Due date plus 1–3 days: a short, friendly nudge. Most late payments are process failures, not decisions — the invoice is sitting in someone's queue. Assume good faith, ask if they need anything from you.
  • Two weeks late: firmer, still professional. Reference the agreed terms and any late-fee clause. Pause new work if the amount is significant; "I'll resume when the outstanding invoice is settled" is a complete sentence.

The follow-up tone is easier to keep professional when the paperwork is airtight — which is the quiet reason to get all the earlier steps right. There's a deeper dive on this in getting paid on time.

The parts people forget

Taxes. Depending on your country you may need to charge VAT/GST, include a tax ID on the invoice, or issue invoices in a specific format. This varies too much to summarize honestly — a one-hour session with an accountant when you start freelancing is cheap insurance.

Currency. Bill in the currency you agreed on, and say it explicitly on the invoice. "1,500" means different things in different countries; "USD $1,500.00" doesn't.

Records of the agreement. Keep the email or contract where the rate and terms were agreed, next to the invoices. If a dispute ever happens, the invoice plus the agreement is your whole case.

A workflow that takes ten minutes a month

Once the pieces are in place, invoicing compresses to almost nothing: pull up last period's invoice, duplicate it, update the line items (or paste in your git log and let the tool group your commits by day), check the dates, print to PDF, send. Ten minutes, done properly, every time.

That's the entire skill. Not glamorous — just a checklist executed consistently, which is more than a surprising number of freelancers manage, and which clients quietly notice.


Billable is a free, client-side invoice generator for developers. Your data stays in your browser.