How To Make An Invoice Gateway For Your WooCommerce Store (In 30 Seconds)

Invoice Gateway WooCommerce

There are several reasons why you might want an Invoice payment gateway for your WooCommerce store.

It might be as simple as being able to offer your customers better payment terms so they don’t have to pay cash right away.

You may even run a business that only invoices customers, in which case, you currently have no option within WooCommerce to do that and communicate this option with your online customers.

Whatever your reason is, this guide will take you through how to quickly create an Invoice payment gateway for WooCommerce in two ways.

Method #1: Use Invoice Gateway for WooCommerce (Free Plugin)

WooCommerce Invoice Gateway Plugin

The easiest and most efficient way to create an invoice gateway in WooCommerce is by using a little free plugin we created, aptly called Invoice Gateway for WooCommerce.

Download the plugin (search via your Plugins->Add New menu or upload it manually) and you’ll be given a new payment gateway option.

This lets you easily enable a payment option called “Invoice” which allows the order to go through and puts the order in processing status.

You then invoice your customer manually (via your accounting software usually).

Once paid, record the invoice number in the order in the new Invoice Number field, then mark the order Completed and your customer will get the usual email from WooCommerce which now also includes the invoice ID.

It also has the ability to record Purchase Order numbers on the checkout which can be very handy for wholesale orders.

Method #2: Create An Invoice Payment Gateway Using Cash On Delivery (Without A Plugin)

WooCommerce Invoice Gateway

Creating a really basic “Invoice” gateway is easy and you can do it yourself without the help of a plugin.

There’s no code involved and it’s basically just a process of renaming one of the existing un-used payment gateways.

Typically on most WooCommerce sites, you won’t be using the “Cash On Delivery” payment gateway. This is a bit of an antiquated relic and I’m not sure why it’s even in the core of WooCommerce. Thankfully it is because we can use it for our Invoice gateway instead.

Follow these steps:

Step #1: Login to your WordPress dashboard

Step #2: Navigate to WooCommerce->Settings

Step #3: Click on the “Checkout” tab at the top of the page

Step #4: Down the bottom of this page, you will see a table with all your installed Payment Gateways. Click on the “Cash On Delivery” one:

How To Create Invoice Gateway WooCommerce

Step #5: Once you’ve clicked on the “Cash On Delivery” payment gateway you will see the settings page for it.

Rename the Title of the gateway to “Invoice” or similar:

Invoice Payment Gateway WooCommerce

You might also like to adjust the description to let your customers know what they can expect.


Here’s how it looks on the front end:

WooCommerce Invoice Gateway Front End

Want to hide your new Invoice Gateway from retail customers but show it to wholesale customers?

One of the biggest reasons we came across this method of building an Invoice Gateway for WooCommerce was that our Wholesale Prices plugin users wanted a way to provide an invoice gateway to their wholesale customers, but only make it visible for wholesale users and not regular customers.

In Wholesale Prices Premium one of our most popular features is the ability to control what payment gateways your wholesale customers are allowed to use.

The way you hide your invoice gateway from retail customers and make it visible for wholesale customers is by keeping the gateway disabled.

You do that by not checking the first checkbox on the settings page for the payment gateway.

This then results in your normal customers not being able to see it (because it’s disabled) and your wholesale customers being able to see and use it (because Wholesale Prices Premium enabled it for those users).


24 thoughts on “How To Make An Invoice Gateway For Your WooCommerce Store (In 30 Seconds)

  1. Very interesting and ALMOST what I need. I deal with a lot of sporting clubs and there members. While I offer to invoice clubs, I get COD from their members (yes COD, people like to tap their card when the good are delivered).
    What I would also like is to be able to do is add each member by their club, so I can offer coupons to selected clubs and their members. Can your product do this?


    1. Hi Wally,

      Do you offers special pricing to each group of customers? If so then you could create a wholesale role per user group. Using the Invoice Gateway you could do this COD (or you can just use the COD gateway method). The orders get placed online, they pay when they get there and you just go back in and hit completed.

      Any further questions I definitely suggest contacting our pre-sales team.

      Howdy from Brisbane!


  2. Awesome article, great that Wholesale Prices Premium support this without the need for extra plugins. I have implemented the above on one of our sites – works flawlessly

  3. I have changed the COD text to invoice and added this to specific wholesale roles.

    When the payment gateway Invoice is disabled it doesn’t appear for the specific wholesales roles above. When it is enabled it appears for everyone. I can’t figure what I have missed – can anyone help?


  4. Hey Josh,
    I have two questions:
    1- Can we set different pricing for different roles and they just only be able to see their granted price?
    2- How do you import prices per roles? since I have 4000 products in my store, is there any convenient way
    to upload prices per role such as importing a CSV file?

    1. Hey Hamed,

      Yes, you can load different pricing for different roles. Please check the features list here for a full rundown and the KB article here for how it works specifically.

      And yep, we support importing wholesale pricing via CSV. You can use the built-in WooCommerce CSV import/export tool in core. We’re compatible :) You can also use other tools like WP ALl Import if you wish.

      Hope this helps!

  5. When will you be doing an update on the invoice gateway plugin to make sure it is compatible with the latest version of Woocommerce

  6. Hey Josh, great article! I´m about to open an e-commerce store where I will dropship from different art producers from Mexico. Since all of the products vary greatly in size, shape and weight, shipping will be tremendously difficult to calculate beforehand. As I want to achieve the max number of conversions, I thought about solving it with either of these strategies:

    Option 1) I found it will be easier to show customers the Subtotal for their shopping cart and then letting them know they´ll get an invoice for the subtotal PLUS shipping once we confirm the shipping costs of the final package. Hence, they´ll receive an invoice through e-mail which they´ll pay if they agree on the total costs

    Option 2) Charging customers for the products during checkout and later sending them an invoice for the shipping costs only, but obviously leaving a note during Checkout mentioning that the subtotal is only the product price and that the Shipping cost will be charged later on.

    I am really stuck in choosing which one would be better for my conversions and although it might seem obvious I am a bit mentally blocked on the subject. If you could suggest something I would really appreciate it. Thanks a lot, cheers from Mexico!

    1. Hey Carlos,

      You’ll probably find that option 2 would be better for your conversion rates.

      It would be even better though if you can estimate the shipping costs accurately and charge them on the spot. It will be a bit more work for you specifying product weights/cubic dimensions etc but it will more than make up for the labour with the increase sales. You’ll then be able to give them the option of paying on the spot.

      Best of luck!

  7. Josh, thank you so much for your response. I’ll do the effort of calculating the costs beforehand even if it’s arduous. Keep up the great work, definitely looking forward to installing your Wholesale plugin in a few weeks. Cheers!

    1. Hey Jason, planning a small update on that plugin soon, but it hasn’t been updated because it is still compatible and frankly a pretty simple plugin, so not much to do to it. It was well coded originally and hasn’t needed updating.

      As always though, test thoroughly :)

  8. Hi
    I’m searching for pay later solution for wholesale customers.
    My client’s site sell veggies both for retailers and wholesale customers. Her first requirement was being able to select multiple products and visit the shopping cart just upon payment. I saw this is one of your features already, good.
    The wholesale customers enter member section and buys the products in boxes so I thought to make different products altogether, simple solution but here comes the complications. Each wholesale customer has different price agreement depending on quantities, so I thought maybe they can get a personal coupon to get their discount, and when I thought I got away with it she said “some of the customers will pay their orders on the spot and get discount and some will pay periodically, get an automatic shipping certificate, and have their summed bill sent to them on the end of the month, for example.
    My clients payment gateway is already connected to her invoice and accountant so all payments are automated, does this plugin help automating the “pay later” customers?

    1. Hi Yinon, the invoice gateway would let her customers that are on credit terms process an order without paying. If you’re using Wholesale Suite as well for the wholesale side you’ll be able to restrict this payment gateway to a particular wholesale user role (or roles) so that other users can’t select it. Hope this helps!

  9. Is there a way to give credit limits to different customers? For example $1,000 limit of a customer using NET 15.

    1. Hey Diran,

      The Invoice Gateway is a pretty simplistic plugin for allowing the customers to checkout and then you manage the invoicing process outside of Woo. For specific limits and terms you might need to look at a wholesale payment gateway solution (there’s a few around that do this) or manage it separately via your Xero/Quickbooks etc.

      Hope this helps point you in the right direction.

  10. Hi Josh,
    I absolutely love your plugin! They only thing that I would need is to make the “PO Number” required. I have it so only my wholesale customers can use the invoice option but we require that they provide a PO number. I have tried several different filter options to achieve this with no luck. Is this something that you would consider adding as an option or can you tell me how to hook into it to achieve what I am looking for? Thanks again!

    1. Hi Jamie,

      Thanks for the comment. At the moment there isn’t a filter on this field as its loaded onto the page dynamically. There’s a possibility that it might be filterable via WooCommerce itself as they are ultimately the one adding it to the page.

      In the meantime, I’m going to raise this up as a dev ticket. We’ll see if we can add it as a feature or at least via a filter with some custom code. Keep an eye on the plugin’s next release :)

  11. Hi there

    Is there a way to limit invoice payment per product.

    Say I have normal ‘retail’ products and ‘bulk buy’ products.

    Is it possible to have the pay by invoice option available for ‘bulk buy’ products only


Leave a Reply to Hamed Cancel reply

Your email address will not be published.