Invoice Ninja vs Wave for Freelance Developers
By Mark Fulton · 2026-09-25 · 11 min read

Pick Wave if you're a US or Canadian freelancer who wants free invoicing and free bookkeeping in one hosted app, and you'll mostly get paid by card. Pick Invoice Ninja if you have five clients or fewer (its hosted Free plan covers that), if you bill clients by ACH, if you work from outside the US and Canada, or if you want to self-host the whole thing on your own server. The deciding number for most developers is the bank payment fee: on a $3,000 invoice paid by ACH, Wave charges $30, while Invoice Ninja connected to Stripe costs $5. On card payments the two are within a dollar of each other.
Both tools call themselves free, and both are, in different ways. Wave is free because it earns money on payment processing and its Pro plan. Invoice Ninja is free because its hosted plan caps you at five clients and its code is available to run yourself. Those two business models explain almost every difference below.
Every price and fee here was read from each company's own pricing or support page in September 2026. Plans change, so check the current page before you commit.
How do Invoice Ninja and Wave differ at the free tier?
Start with what $0 actually buys.
Wave Starter is $0 and lets you create unlimited estimates, invoices, bills and bookkeeping records. There's no client cap. The catch is in how invoices leave the app. According to Wave's own support article on its regional changes, sending invoices and reminders through Wave is now part of the online payments feature or the paid Pro plan. On Starter without payments turned on, you can still share an invoice as a PDF or a link, but Wave won't email it for you. Automatic late payment reminders, bank transaction import and removing Wave branding from the footer are Pro features. Pro costs $19 a month or $190 a year.
Invoice Ninja Free is $0 for up to 5 clients with unlimited invoicing. Inside that cap it's surprisingly complete: recurring invoices and auto-billing, deposits and partial payments, online payment gateways, a client portal, projects with billable time tracking, and expense tracking. What it leaves out: auto payment reminders, REST API access, custom invoice design and removing Invoice Ninja branding. Those arrive with Ninja Pro at $14 a month or $140 a year, which also lifts the client cap to unlimited. Enterprise starts at $18 a month and adds team users, bank sync and e-invoicing over PEPPOL.
So the free tiers fail in opposite directions. Wave's free plan has no client limit but does less for you. Invoice Ninja's free plan does more but stops at your sixth client.
What does each charge to collect a $3,000 invoice?
Here's the math that decides it. One invoice, $3,000, paid online. Wave rates come from its payments and pricing pages. Invoice Ninja doesn't process payments itself; you connect a gateway such as Stripe, PayPal, Square or GoCardless, so the fee is your gateway's. The Invoice Ninja column uses Stripe's published US pricing because it's the most common choice.
| On one $3,000 invoice | Wave Starter | Wave Pro ($19/mo) | Invoice Ninja Free + Stripe |
|---|---|---|---|
| Subscription | $0 | $19/mo or $190/yr | $0 (up to 5 clients) |
| Card fee (Visa, Mastercard) | 2.9% + $0.60 = $87.60 | 2.9% + $0 = $87.00 (first 10 card payments a month) | 2.9% + 30¢ = $87.30 |
| Amex fee | 3.4% + $0.60 = $102.60 | 3.4% + $0 = $102.00 (first 10) | Stripe's standard card rate |
| International card | Not listed for non-Amex | Not listed | +1.5% = $132.30 total |
| ACH / bank payment fee | 1% = $30.00 ($1 minimum) | 1% = $30.00 | 0.8%, capped at $5 = $5.00 |
| Payout time | 1 to 2 business days (card), 1 to 7 (bank) | Same | Depends on your Stripe settlement timing; first payout 7 to 14 days |
| Self-host option | No | No | Yes, free under the Elastic License |
| Data export | CSV or XLS accounting files, customers, vendors | Same | CSV via reports, plus full backups |
| Where you can use it | Businesses in the US and Canada | Same | Anywhere your gateway supports |
A few things jump out.
Card fees are a wash. $87.60 against $87.30 is thirty cents. Wave Pro's discount only removes the $0.60 fixed part, and only on your first ten card transactions a month. On a $3,000 invoice that saves you sixty cents, which won't pay for a $19 subscription. If you choose Wave Pro, choose it for the reminders and bank import, not the card rate.
ACH is where the gap opens. Wave's bank payment fee is a flat 1% with a $1 minimum and no cap on its pricing page, so it grows with the invoice. Stripe's ACH Direct Debit is 0.8% with a $5 cap. On a $3,000 invoice that's $30 against $5. On a $10,000 invoice it's $100 against $5. For developers, whose invoices tend to be large and whose clients are often companies happy to pay by bank, this is the single biggest line in the comparison. If you want the full picture on moving clients to bank payments, see how freelancers accept payments by ACH and card.
Invoice Ninja lets you pass the fee on. Each gateway in Invoice Ninja has a Limits/Fees tab where you can add a percentage or flat fee to invoices paid by a given method, and an option that grosses the fee up so you receive the full invoice total. Card surcharging rules vary by state and card network, so check what's allowed where you and your client are before you switch it on.
Wave's payments need approval. Wave's pricing FAQ says online payments are subject to eligibility criteria, including identity verification and a credit review, and that it may hold funds during a risk review. Stripe runs its own checks too, so neither is instant, but know that "free" on Wave assumes you're approved for payments.
Is self-hosting Invoice Ninja worth it for a developer?
First, a precise label. Invoice Ninja's GitHub repository describes it as source-available, released under the Elastic License 2.0, not an OSI open-source license. For your own billing that distinction barely matters. The license's main limit is that you can't offer the software to third parties as a hosted or managed service, and you can't circumvent its license key functionality. Running it for your own freelance business is fine.
What you get by self-hosting: according to the repository, all Pro and Enterprise features from the hosted app are included in the source-available code, so there's no five-client cap. Removing Invoice Ninja branding from the client-facing parts costs $40 a year as a white-label license.
What it costs you is operations. The self-host docs list PHP 8.2 with a long list of extensions, MySQL, nginx or Apache with HTTPS, a cron entry that fires the Laravel scheduler every minute, and a queue worker. There are official Docker images and one-click installers (Softaculous, Cloudron, YunoHost) that shorten setup. None of them remove the ongoing jobs: updates, backups, TLS renewal, and making sure outgoing email actually reaches client inboxes.
Here's a quick test for whether self-hosting pays off:
- Yes, self-host if you already run a VPS or home lab with backups, you have more than five clients, and $140 a year for Ninja Pro feels like paying for something you could run yourself.
- Yes, self-host if data residency matters to a client contract and you need invoices on a server you control.
- No, use hosted if you have five or fewer clients. The hosted Free plan gives you nearly everything at $0 with nobody paging you when the database fills up.
- No, use hosted if a missed recurring invoice would hurt you more than $140 a year. A silent cron failure means retainer invoices that never send, and you find out when a client doesn't pay.
The honest math: a small VPS costs money every month, and your hour of maintenance is worth more than the difference. Self-hosting wins on control and on the client cap, not usually on price.
What happens if you bill from outside the US or Canada?
This settles the question for a lot of readers before fees matter at all. Wave's own partnership page states plainly that Wave serves US and Canadian businesses, and points everyone else to Zoho Books. Its support article explains the history: in November 2020 Wave shifted to focus exclusively on the US and Canada and discontinued product and customer support for users elsewhere. Existing accounts outside those countries can still create invoices and keep books, but they can no longer send invoices or reminders through Wave, and Wave says that may change in the future.
So if you're a developer in the UK, the EU, Australia, India or anywhere else, Wave isn't a real option in 2026.
Invoice Ninja has no such limit. It supports a long list of gateways, including Stripe, PayPal, Mollie, GoCardless and regional providers, and on Enterprise it adds e-invoicing over the PEPPOL network, which matters in countries moving to mandatory e-invoices. If you bill international clients, pair this with how to invoice international clients for currency, tax ID and payment method details.
One more wrinkle for US and Canadian developers with foreign clients: Stripe adds 1.5% for international cards and 1% if currency conversion is required. A client in Germany paying a USD invoice by card costs you more than a domestic client, on either platform's rails. Bank transfers often come out cheaper for cross-border work.
Which one fits which kind of freelancer?
Here's the verdict, by situation.
Pick Wave if:
- You're based in the US or Canada.
- You want invoicing and bookkeeping in one place, and you'll hand your accountant Wave reports at tax time.
- Most clients pay by card, or your invoices are small enough that a 1% ACH fee doesn't sting.
- You have many small clients, so a five-client cap would bite immediately.
Pick Invoice Ninja if:
- You have five or fewer clients (hosted Free), or you'll pay $14 a month or self-host for more.
- Your clients pay large invoices by ACH, where a $5 cap beats 1%.
- You work outside the US and Canada.
- You want recurring invoices and auto-billing without paying for them.
- You want an API, or the option to move the whole system onto your own server.
Pick neither yet if: you send a few invoices a month, write each one by hand, and don't need software to chase or charge anyone. A generator does that job without an account.
That last case is more common than it sounds. Recurring billing, auto reminders and card-on-file charging are the real reasons to adopt invoicing software, and if you need none of them, you're adopting a login and a data silo for nothing. Invoice generator or invoicing software walks through that decision in four questions.
What about data portability?
Worth checking before you commit to either, because switching later is where tools show their hand.
Wave's Data Export (Business settings, then Data Export) emails you a link to accounting files in XLS or CSV: journal entries and transactions, bill items, customers and vendors, plus a ZIP of receipt images. The link is live for 24 hours, and Viewer and Editor roles can't export. Individual invoices can also be printed or exported one at a time from the invoice list.
Invoice Ninja exports CSV from any report, with columns you choose, and can email a full system backup. It also imports from other tools: its docs list direct importers for FreshBooks, Invoice2go, Invoicely, Zoho and Wave. For Wave, you upload your clients and accounting files and it maps them. That makes the Wave to Invoice Ninja direction the easier move of the two.
Whatever you use, keep your own copy. The IRS says in its small business recordkeeping guidance that you must keep records as long as needed to prove the income or deductions on a tax return. A vendor's export button is not a retention policy. Download your invoices at least once a year. This is general information, not tax advice.
FAQ
Is Invoice Ninja really free?
Yes, within limits. The hosted Free plan is $0 for up to 5 clients with unlimited invoices, and it includes recurring invoices, auto-billing and online payments. Past five clients you need Ninja Pro at $14 a month or $140 a year. The self-hosted version has no client cap and costs nothing to license, but you pay for the server and the upkeep, plus $40 a year if you want the branding removed.
Can I use Wave outside the US and Canada?
Not really. Wave states that it serves US and Canadian businesses and refers everyone else to Zoho Books. Accounts created before the 2020 change still open, but users outside the two countries can no longer send invoices or reminders through Wave, and product support there was discontinued.
Can I move my invoices from Wave to Invoice Ninja?
Yes. Invoice Ninja's import page has a Wave option: export your customers and accounting files from Wave's Data Export, upload them to Invoice Ninja, and it maps the records. Check a few invoices by hand afterward, since multi-line invoices and payment status are the fields most likely to need cleanup.
Which is better for recurring retainer invoices?
Invoice Ninja, for most developers. Recurring invoices and auto-billing a saved card or bank account are included on the Free plan, with frequencies from daily to every three years. Wave supports recurring billing with automatic payments too, but it's tied to online payments or the Pro plan, and its ACH fee of 1% adds up on a monthly retainer. For how to structure the retainer itself, see how to invoice retainer clients.
Not ready to pick a platform?
You don't have to choose today to get paid this week. Billable is a free invoice generator built for developers: no account, nothing stored on a server, and it can turn a git log into line items. Generate the invoice free and put your Stripe payment link or bank details in the notes. If you'd rather keep the whole workflow account-free, free invoice generators with no signup compares the options.