How to Create an Invoice in WordPress (Step by Step)
You don’t need accounting software or a SaaS subscription to send a professional invoice. If you already run a WordPress site, you can create, send, and get paid on invoices directly from wp-admin. Here’s the full workflow using the free PaySlate plugin.
What you need
- A WordPress site (6.4 or newer) on PHP 8.2+
- The PaySlate plugin (free)
- A Stripe or Square account if you want clients to pay online
Step 1: Install PaySlate
In wp-admin go to Plugins → Add New, search for PaySlate, install and activate. No WooCommerce required, PaySlate is standalone (though if you run WooCommerce, PaySlate will reuse its country list and any existing Stripe or Square configuration).
Step 2: Add your client
Create a client record with their name, email, and billing details. Every invoice you send them, and every payment they make, is tracked against this record, so you always know who owes what.
Step 3: Build the invoice
Add line items with quantities and rates. If you want money up front, request a deposit, PaySlate supports partial and deposit payments out of the box, and tracks the remaining balance automatically.
Step 4: Send it
Send the invoice by email straight from WordPress. Your client gets a link, opens the invoice, and pays by card, Stripe and Square are both supported, including Apple Pay and Google Pay. The invoice status updates the moment payment lands.
Why do this in WordPress at all?
Two reasons: cost and ownership. SaaS invoicing tools charge monthly forever; a plugin on your own site doesn’t. And the invoice data, clients, amounts, history, lives in your database, on your server, not in someone else’s walled garden. For the full picture, see our guide to self-hosted invoicing.
For the complete walkthrough of setup, payments, deposits and record keeping, read the WordPress invoicing guide.