Skip to main content
app developmentmobilefreelanceinvoicing tips

How to Invoice as an App Developer: Milestones, Stores, IP

Bill a mobile app build by milestone, keep store accounts and fees in the client's name, cap post-launch support, and tie code ownership to final payment.

InvoiceQuickly Team··Updated ·14 min read

Mobile app projects break most simple invoicing advice. Work is spread across iOS, Android and a backend. The release depends on Apple and Google review, which you do not control. And the client's real deliverable, an app live in two stores under their own name, needs accounts, fees and credentials that someone has to own. A good app invoice answers three questions for the client's finance team: what was delivered and can be tested, what extra was approved, and what costs are being passed through.

This guide covers milestone schedules, store accounts and fees, a worked four-milestone example with a change order, post-launch support billing and code ownership. For quoting the project in the first place, see how to price mobile app development. If you mainly build websites, the web developer invoicing guide covers hosting, domains and launch-day billing instead.

EngagementHow to invoice itWhat usually goes wrong
Fixed-price MVP or v1Milestones tied to testable builds and store submissionA milestone "done" with no build the client can install
Time and materials (T&M) with a capEvery two weeks or monthly: hours × rate, with a not-to-exceed (NTE) totalHours exceed the cap with no warning
Sprint-based agile teamA flat fee per sprint, invoiced after the sprint reviewSprint fee billed while the client is blocking the work
Post-launch support retainerMonthly, with included hours, hours used and overageRetainer treated as unlimited bug fixing
Store submission onlyA flat fee per release per storeRepeated review rejections absorbed for free

What milestones should an app developer invoice against?

Use milestones the client can check without trusting your word. "Backend 60% done" cannot be verified; "build 0.4 on TestFlight with sign-up, booking and payment flows" can. A four-step schedule fits most fixed-price builds:

  1. Discovery and prototype approved. Requirements, user flows and a clickable prototype signed off. This invoice also covers the time you hold for the project.
  2. Feature-complete test build. Installable builds on Apple's TestFlight and Google Play internal testing, with the agreed features working.
  3. Store submission. Release candidates submitted to both stores. Bill on submission rather than approval, because review time and outcomes are outside your control; your contract can then say what rework after a rejection is included.
  4. Launch and warranty close. The app is live and an agreed bug-fix window (often 30 days) has ended. Holding back a final share until this point is what clients usually ask for, and it gives them a reason to report bugs promptly.

Write the acceptance test into the contract for each milestone ("approved in writing, or no written objection within 5 business days of delivery"), so an invoice cannot stall because nobody got around to testing the build.

Who pays for the App Store and Google Play accounts?

The client should, and the accounts should be in the client's name. Apple's Developer Program costs 99 USD per membership year, and an organization that enrolls must be a legal entity, must have a D-U-N-S Number, and must be enrolled by someone with "the legal authority to bind your organization to legal agreements" (Apple Developer: Enrollment, accessed October 2026). Google Play charges "a US$25 one-time registration fee" and offers personal and organization account types (Play Console Help: Get started with Play Console, accessed October 2026).

Publishing a client's app from your own developer account makes you the publisher of record, and moving an app between accounts later is extra work. Ask the client to enroll and invite you to their team instead. If you do pay a fee or a cloud bill on their behalf, put it on the next invoice as a reimbursed line at cost with the receipt attached, never folded into a development line. The same goes for third-party services the app needs (cloud hosting, crash reporting, push notification or map APIs): ideally the client holds those accounts and cards too, so nothing breaks if you part ways.

Worked example: a fixed-price app in four milestones

Hypothetical example; the price and rate are illustrative inputs, not market data. A freelance developer quotes $36,000 to build an iOS and Android booking app with a small backend for a mobile dog-grooming startup. The contract sets four milestones (15%, 35%, 30%, 20%), each invoice due in 14 days, a change-order rate of $120 an hour, and a 30-day warranty after launch. Partway through, the client approves change order CO-02: appointment reminder push notifications, estimated at 22 hours.

InvoiceTriggerLinesAmount
1Prototype approvedMilestone 1, discovery and clickable prototype (15% × $36,000)$5,400.00
Google Play developer registration for the client's organization account, paid on the client's behalf (receipt attached)$25.00
Invoice 1 total$5,425.00
2TestFlight and internal-testing builds 0.4 acceptedMilestone 2, feature-complete test build, iOS + Android + backend (35% × $36,000)$12,600.00
3Release candidates 1.0 (build 27) submitted to both storesMilestone 3, store submission (30% × $36,000)$10,800.00
CO-02, appointment reminder push notifications, approved 14 April (22 hrs × $120)$2,640.00
Invoice 3 total$13,440.00
430-day warranty ends with no open P1 bugsMilestone 4, launch and warranty (20% × $36,000)$7,200.00

The project total is $36,000 + $2,640 + $25 = $38,665. Three habits keep it clean. Each invoice names the build number or release tag, so the client's product owner and accounts team are matching the same thing. The change order is a separate line with its own number and approval date, so the original fixed price stays visibly intact. And the $25 is a reimbursement at cost with a receipt, so it is not mistaken for development work.

After launch the client moves to a support retainer: up to 10 hours a month at $120 an hour, NTE $1,200. In a month with 7.5 hours of work, the invoice says "Support, May 2026: 7.5 of 10 hours used (ticket list attached), 7.5 × $120 = $900.00". When a month approaches the cap, tell the client before you go over, and bill nothing above the NTE without written approval.

How should post-launch work be billed?

Separately from the build, and with limits written down. Three kinds of post-launch work get mixed up:

  • Warranty fixes for defects in what you delivered, within the agreed window. These are already paid for in the final milestone.
  • Maintenance: operating system and SDK updates, library upgrades, renewed certificates, and store policy changes. Apple and Google change their requirements over time, so a build that was compliant at launch may need updating to stay in the stores. This is new work for the client, best covered by a retainer.
  • New features, which are new scope and need a change order or a new estimate.

Bill a retainer monthly in advance, with included hours, hours used and any overage on the next invoice. For T&M work, invoice every two weeks or monthly with the hours, rate and a short list of tickets or pull requests, and show the running total against the NTE cap on each invoice.

When does the client own the code?

Only when the ownership is transferred in writing, which is why it belongs in your contract and on your final invoice. Under US copyright law, work you create as an independent contractor is yours unless it becomes a "work made for hire" or you assign it. A commissioned work is made for hire only if it falls into one of nine listed categories (such as a contribution to a collective work, part of an audiovisual work, or a compilation) and both parties sign a written agreement saying so (17 U.S.C. § 101; U.S. Copyright Office Circular 30, accessed October 2026). Much app code does not fit neatly into those categories, so contracts usually add a written assignment, and a transfer of copyright "is not valid unless" it is in writing and signed by the owner (17 U.S.C. § 204(a), accessed October 2026).

The usual commercial arrangement is that the assignment takes effect when the final invoice is paid in full. Say so in the contract, then repeat it in the final invoice notes: "On payment in full, copyright in the deliverables transfers to the client under section 9 of the agreement dated 3 February 2026." List what is not transferred, such as your own reusable libraries or open-source components under their own licences.

This is general information, not legal advice. Have your contract's IP and payment clauses reviewed for your jurisdiction. Last reviewed: October 2026.

What should an app development invoice include?

On top of the standard fields in what to include on an invoice:

  • The project, the milestone or sprint, and the build number or release tag that proves delivery.
  • The platform on each line (iOS, Android, backend, admin panel) when different people approve different parts of the stack.
  • Change orders as separate lines with their number and approval date.
  • Reimbursed costs at cost with receipts: store fees, cloud bills, device-farm minutes, paid APIs.
  • For T&M, hours × rate, the period covered, and the running total against the cap.
  • The client's PO number, if they use one. Enterprise accounts payable teams often reject invoices without it.
  • The currency, stated on the invoice when the client is in another country. See invoicing international clients.

Which tax forms and taxes apply to app developers?

US business clients will usually ask for Form W-9 before the first payment. For payments made in 2026, a client files Form 1099-NEC for a non-employee only if it pays you $2,000 or more in the year; card and third-party payment network payments are reported on Form 1099-K instead (IRS: Instructions for Forms 1099-MISC and 1099-NEC, accessed October 2026). Sales tax on custom software development and on software delivered electronically varies by state, and custom and off-the-shelf software are often treated differently. Check your state's guidance before adding tax, and see the sales tax nexus guide if you sell into several states.

For pay context, the US Bureau of Labor Statistics puts the median annual wage for software developers at $135,980 in May 2025, and notes that its wage data excludes self-employed workers (BLS Occupational Outlook Handbook: Software Developers, accessed October 2026). Divided by 2,080 working hours, that is about $65 an hour of salary. A freelance rate has to be higher, because it also covers your own taxes, equipment, test devices, unbilled sales time and gaps between projects.

How to invoice app work with InvoiceQuickly

You can type or say what to bill ("Invoice Pawsome Mobile Grooming milestone 3, 30% of $36,000, plus change order CO-02, 22 hours at $120, due in 14 days") and InvoiceQuickly drafts the client, lines, rates and terms into an editable invoice that you review before saving. Invoices can have up to 100 lines, so a long ticket list fits.

What helps on app projects:

  • Estimates (Pro): send the milestone plan as an estimate; the client accepts it in their private portal and you convert it to an invoice in one step.
  • Partial payments (all plans): record a payment against an invoice and track the remaining balance.
  • Pro ($9/month): unlimited invoices, email delivery with the PDF attached, a payment link from your own Stripe or PayPal account for the remaining balance, scheduled reminders before and after the due date, a monthly recurring schedule for a fixed retainer fee (one line, the saved tax rate and saved payment terms (30 days by default)), branded PDFs and CSV export. Free covers 5 invoices, 5 clients and 3 AI drafts in total.

What it does not do: there is no connection to Jira or GitHub, and no counter for an NTE cap, so check hours against the cap yourself. Pro does track time (a timer or manual entries) against projects with their own hourly rate, and bills selected unbilled hours into a draft invoice; or keep your own tracker and type the totals. There is no deposit feature, and line amounts cannot be negative, so bill each milestone as its own invoice, as in the example. One tax rate applies per invoice. The editor offers USD, EUR, GBP, CAD, AUD, INR and PKR, and the PDF is in English. See the features overview and pricing.

When this approach is not the right fit

  • You are embedded full-time in the client's team. If they set your hours, supply your equipment and manage your work like staff, the question is whether you are really a contractor; see independent contractor. A monthly T&M invoice may be the simpler honest structure.
  • Agency subcontracting. If you build for an agency that owns the client relationship, you invoice the agency on its terms, often T&M against its PO, and its milestone schedule is not yours to run. See subcontractor invoicing.
  • Revenue-share or equity deals. If part of your pay is a share of app revenue or startup equity, the invoice covers only the cash part. The rest needs a written agreement and probably a lawyer.

Frequently asked questions

Should I bill for App Store and Google Play submission?

Yes, when you do it. Preparing builds, store listings, screenshots, privacy details and review responses is real work. Make submission a milestone or a flat fee per release per store, and say in the contract how many rounds of rework after a review rejection are included.

How do I invoice a client for cloud and third-party costs?

Ideally the client holds those accounts and pays them directly. If you pay on their behalf, add a reimbursed line at cost on the next invoice with the receipt or billing export attached, and keep it separate from development lines. If you add a handling margin, agree it in the contract and say so on the line.

How do I bill a startup with limited runway?

Use small milestones tied to testable builds and short payment terms, such as 7 to 14 days, so you are never far ahead of what has been paid. Ask for the first milestone at the start of the project, and pause work if an invoice goes unpaid, as your contract allows.

When should source code be handed over?

Usually when the final invoice is paid. Give the client access to test builds and a repository they can review during the project, and have the contract say that ownership transfers on payment in full. Repeat that on the final invoice so the trigger is in writing.

Can AI make an invoice for me?

Some invoicing tools draft one from a plain description. InvoiceQuickly turns a typed or spoken description into an editable draft with the client, lines, rates and terms, and nothing is saved or sent until you review it. You still check the milestone percentages, the change orders and the totals.


Start from the app developer invoice template or the mobile app developer invoice template. For milestone wording, see milestone-based invoicing; for retainers, see invoicing retainer agreements. More guides are on the InvoiceQuickly blog. To draft your next milestone invoice, start free.

Editorial team
InvoiceQuickly Team

Practical guidance for freelancers and small businesses creating and managing invoices.

Invoicing best practices for freelancers and SMBsInvoice workflowsAI-assisted invoice draftingSmall business operations

Create your next invoice from one prompt

Describe the client, work, prices, and payment terms. Review every field before you send.

Create a Free Invoice

Related guides

Useful, occasional notes

Get invoicing tips that actually help

Join the InvoiceQuickly update list for practical invoicing advice and product news.

No spam, ever. Unsubscribe anytime.