How to Build an Invoice System on WordPress
There’s no other way to say this – I’m impressed. WordPress has become so much more than just a “blog platform” these days, and the extent of what’s possible is nothing short of incredible.
In other words, if you need a tool to create/manage invoices and project quotes, and then let your clients pay for them straight from your site, then you’ll find this guide very interesting.
In it, you will learn why handling your invoices through WordPress can be a good idea, what’s WordPress’ advantage over solutions like FreshBooks, who should use WordPress for invoices, and lastly, how to build an invoice system on WordPress using your current website.
Let’s get this going:
Why handle invoices through WordPress
I need to confess something…
I’ve been a FreshBooks person for years now.
I’ve used it almost exclusively for creating and sending out my invoices, and also for keeping an eye on my business’ overall finances and cash flow.
What’s great about FreshBooks is that you don’t need to worry about any technical stuff that goes into working with invoices. You just create an invoice based on a template and send it out within minutes.
But there are some downsides:
Chief of them, it’s a paid solution. The cheapest plan is $15 a month, and it only allows you to keep up with 5 active clients. Expanding it to 50 clients (the most suitable plan for most users) costs $25 a month. So for example, if you work with 10 clients, your yearly FreshBooks budget is $300. And let’s set something straight, this isn’t cheap!
Also, there’s the issue of outsourcing all your invoices to a third-party company. When it’s all said and done, albeit a respected company, FreshBooks is still a third-party to whom you’re sending all your crucial financial information. Depending on your own level of confidence with such a thing, this might not be perfect.
In comparison, you get these benefits once you build your own invoice system on WordPress:
- You have everything under control inside your main WordPress dashboard.
- You have access to the source code of the invoice system in case you need any custom mod.
- There are no limits as to how many clients you can have and how many invoices you can create.
- You are free to use any branding you want on the invoices, including a complete white label.
- It’s free – no monthly bills to keep the invoice system running.
But, not to make it too fairytale-like, there are also downsides:
- You rely on your web server to handle not only the website but also the invoicing module. If the server goes down, this might mean trouble for your financial records.
- Your financial records are vulnerable to WordPress bugs and attacks.
- If you don’t have SSL enabled on the site, clients might not want to go through with their payments (if you have payment methods integrated into the invoice).
In the end, setting up an invoice system on WordPress is a solution worth considering if you are okay with these downsides, and if you tend to use the site a lot on a daily basis.
A setup like that can be particularly handy for freelancers, WordPress developers working with multiple clients, designers, artists, writers, and anyone else offering their services over the internet.
How to build an invoice system on WordPress
I’m sure this won’t surprise you, but you need a plugin.
There’s a handful of popular solutions available, and we looked into many of them in one of the previous posts on the blog.
With that being said, today (and going into 2017), the plugin that we think is the best and the easiest to use in this department is Sliced Invoices. And it’s also free, which is always nice!
In a sentence, Sliced Invoices is a complete invoicing solution for WordPress that allows you to create professional quotes and invoices, and then send them to clients, along with integrated online payment options.
Here’s how to get the plugin working:
1. Install and activate Sliced Invoices
This one is basic. Under the hood, Sliced Invoices works like any other WordPress plugin. You can get it either from here, or just by typing “Sliced Invoices” on your wp-admin’s plugin install page:
Important info about the plugin:
- The main Sliced Invoices plugin is free. It has all the basic features that you need to create invoices, send them to clients, and let them pay via PayPal.
- There are paid add-ons available, which further extend the capabilities of this invoice system on WordPress. However, getting any of them isn’t mandatory for the plugin’s core functionality to work.
2. Set up the plugin
Right after the installation, you can go into the main settings panel. It’s in Sliced Invoices / General Settings:
The biggest strength of Sliced Invoices, in my opinion, is that it only requires minimal setup before you can use it to send out your first invoice. Most of what you’re going to be doing is just reviewing the default settings and making sure that everything is in order, with only occasional modifications.
The settings you should look into:
The things to set:
- the start and end of the fiscal year,
- pre-defined line items – a great way to speed up the process of creating invoices.
This is where you can customize your invoice system on WordPress with your company logo, set your business name, address, and the other info that you think should appear on your invoices.
Going through this tab is optional – as Sliced Invoices can work perfectly well on the default settings – but it’s still good to have a quick look there and adjust some of the fine details (like the numbering sequence of your quotes).
This is where you can adjust things like the numbering sequence, invoice prefix, default due dates, and your terms and conditions.
This tab is key for your invoice system on WordPress to operate properly.
The main things you need to do here is set your default currency and configure the online payment options that you want to use.
By default, Sliced Invoices allows you to add your bank details (just to let your clients know how they can pay for the invoice manually), and you can also use PayPal. All the plugin needs for the latter is your PayPal API username and password (important; those are not your main PayPal user credentials; you need to go to PayPal and activate the API access for your account; here’s how).
If you want to extend your payment options to other gateways, you can get the Stripe and Braintree extensions ($30 each). Stripe is an extension particularly worth considering if you want to accept credit card payments.
The other tabs in the settings panel aren’t mandatory to go through, but I do encourage you to have a look there and see what’s possible anyway.
3. Create your first invoice
Sliced Invoices adds two new sidebar sections into your wp-admin panel:
As you can see, one of them for quotes, the other for invoices. They both operate basically the same way, so let’s focus on Invoices for the purpose of this guide.
What you’ll see when you go there is a standard WordPress listing (just like the one for pages or posts). To create an invoice, click on “Add New Invoice”:
Sliced Invoices keeps the settings to a minimum, hence making the whole experience easy to grasp. Here’s the invoice creation screen:
- Title – optional. You don’t need to set a title, but it’s going to make your work easier further down the road when you have more invoices in the database.
- Description – optional. If you set a description, it will appear on the final invoice.
- Line Items. This is the main part. Sliced Invoices allows you to add multiple items, use any of your pre-defined items, set quantities and individual descriptions for each. Basically, everything you could ever need.
- Terms and Conditions – optional.
- Invoice Details. This is where you can add a client, and then fill out the details of the invoice such as the currency, payment methods available, tax rates.
- Publish. This is where you save your invoice and make it available.
If you come back to the main listing, you’ll see the new invoice there. At this point, you can send it to a client via email:
(The way those emails look is adjustable in the settings as well.)
Upon receiving that email, the client is going to be able to go to your site and pay for the invoice through the payment methods that you’ve enabled.
Once the payment is completed, you’ll see that in the listing:
And that’s basically it. Simple, right?
Once you have a handful of invoices created/sent/paid, you can go into the reports section to see how you’re doing (Sliced Invoices / Reports):
Working with quotes
As I mentioned, the Quotes section works much like Invoices. The UI is very similar, and the quotes behave very much the same.
Plus, the cool thing here is that you can build new invoices based on the quotes that you have sent earlier.
Okay, so the aforementioned Stripe and Braintree extensions are just a small part of what’s available in this invoice system on WordPress. Just to give you a better overview, here’s the rest:
- Better URLs – use prettier URLs on your invoices.
- Client Area – enable a secure area for your clients to view their invoices (something like user profiles for clients).
- Deposit – create deposit invoices (handy when doing freelance work). With this extension, you can first request a client to pay a deposit, and then send them a balance invoice once the job is done.
- Discounts and Partial Payment.
- PDF and Email – enable PDF downloads of your invoices.
- Recurring – turn any invoice into a recurring one.
- Secure – enable secure links for your invoices.
- Easy Translate – handy if you need your invoices not in English.
- Gravity Forms and WooCommerce integration.
Is Sliced Invoices for you?
That would be a tough question if it wasn’t for the fact that Sliced Invoices is a free plugin.
I mean, even if it turns out that it’s not perfect for your needs, you still lose nothing just by testing it out for a week or two. The setup takes literally 5 minutes, and there are no hidden costs if you’re okay with using PayPal only.
So my advice is to just go ahead and test it for yourself. There’s a high chance you won’t be needing things like FreshBooks once you see what Sliced Invoices can do.
(On a personal note; I’m seriously considering moving all my invoices from FreshBooks to Sliced Invoices at this point.)
But what do you think? Is Sliced Invoices a viable FreshBooks alternative? Are you ready to try it out and set up your own invoice system on WordPress?