WooCommerce: 5 Must-Knows to Develop a Payment Gateway From an API

A payment gateway is a system developed to enable payment of goods and services for both offline and online merchants. It makes sure that there exists a smooth passage of all transactions through encryption of confidential information. It acts as the link between a buyer, a bank, and an online shop.

Online stores try their best to sell as many products as possible to their customers. WooCommerce comes with built-in functionality and features such as store management and payment options that merchants need to get their stores up and running.

A shop using the WooCommerce plugin is the payment portal while the bank is the payment processor. The payment gateway receives data from the buyer and redirects it to the right payment processor depending on the method of payment that the buyer chooses.

So, let’s see what’s required from a technical and legal point of view before writing a single line of code.

Why Build Your Own Payment Gateway

There are tens if not hundreds of payment gateways that have already been developed and that can be connected to an online store. For instance, when it comes to payments, WooCommerce has built-in payment options such as PayPal and Stripe. It also allows customers to pay for products through bank transfer as well as Cash on Delivery.

These payment gateways are secure and easy to use. This explains the reason why most online stores use the WooCommerce plugin when setting up their stores.

However, these payment gateways might come with limitations especially for businesses that need to have total control over their payment processing. Such businesses need a payment process that they can change when they want to, making sure that it meets their needs. They, therefore, develop their own payment gateway integrated with WooCommerce.

It is these businesses that have now employed the use of API Gateways, as defined in this article, when developing their own payment system. This way, they have total control over the entire payment process and can add or remove anything that they want from the process.

But before coding your own payment gateway from an API, you need to read the following technical and legal requirements.

1. Infrastructure Setup

One needs to first make a decision on whether to set up their own server or host the payment gateway on a third-party server. Setting up your own server might give you more control, but you will be forced to maintain a data center among other complications. Using a third-party service such as AWS might be the better option.

2. Payment Processor Integration

Integrating with a payment processor means that you talk to a financial institution or a company that handles online payments. This is mostly done by banks and other payment systems such as Mastercard, Visa, and American Express among others. 

For successful integration, you need to take the payment processor’s API documentation and make sure that you implement it as required. You then develop a third-party API for your clients to use when sending payments and receiving payment statuses. You need to make sure that this API integrates well with the WooCommerce plugin. 

3. Customer Base Management

You will need a system to manage your customers. This might require you to develop a CRM or implement one. Make sure that you take one that makes it easy for you to keep your client data, manage transactions and control your account managers.

4. Implementing Tokenization

One of the things that you need to be very careful about when building your own payment gateway is security. For instance, you need to make sure that credit and debit card information is not kept on the store’s server, but on the gateway side.

Implementing tokenization helps one to make sure that WooCommerce does not store sensitive information especially during recurring purchases from buyers. It employs the use of a token in place of the debit/credit card number. This token is the one used by the online shop.

5. Getting EMVCo Certificate and Applying for PCI

EMV (Europay, Mastercard, and Visa) is an international standard that governs transactions that use a bank card with a chip. One should get in touch with EMVCo to apply for a certificate.

Finally, you will need to apply for a PCI. This is a standard whose main aim is to reduce fraud by the use of a number of rules governing all applications working with credit or debit cards. For you to be approved, you need to order for a PCI audit, which is quite expensive and should be done at least once every year.


Even though we have a number of popular WooCommerce payment gateways that one can use today, some companies prefer developing their own gateways.

This is not an easy process and it requires a lot of resources and time and one has to make sure that they have all it takes to come up with a payment gateway that meets all the set standards. 

However, once the payment system is set up and running well, you can be assured of having full control over your transactions and over how the payment gateway operates.

Related content

  • WooCommerce: Disable Payment Gateway by Country
    You might want to disable PayPal for non-local customers or enable a specific gateway for only one country… Either way, this is a very common requirement for all of those who trade internationally. Here’s a simple snippet you can further customize to achieve your objective. Simply pick the payment gateway “slug” you want to disable/enable […]
  • WooCommerce: Disable Payment Gateway for Specific User Role
    You may want to disable payment gateways depending on the logged in user role. For example, you may want to disable PayPal for user role “subscriber” or enable a specific gateway for user role “customer”. All you need is to paste the following code in your functions.php or to install a super simple plugin. Enjoy!
  • WooCommerce: Add Checkout Fee for a Payment Gateway (e.g. PayPal)
    Here’s a simple PHP snippet to add a fee to the checkout for every payment or for a specific payment gateway. Please do remember that for certain payment gateways such as PayPal, adding checkout fees is currently against their Terms of Service so make sure to check this first. As usual, this needs to be […]
  • WooCommerce: Disable Payment Gateway For Specific Shipping Method
    Today we take a look at the WooCommerce Checkout Page and specifically at how to disable a payment gateway (for example PayPal) when a specific shipping method is selected (e.g. “local_pickup”). Specifically, you will learn how to “get” the selected shipping method on the go (thanks to “sessions”), and also how to “unset” a payment […]
  • WooCommerce: How to Disable PayPal on Orders Above $100
    This is a cool function you can apply to any payment gateways for any order threshold. for example, you may want to disable bank transfers if orders are below $10, or disable PayPal payments if orders are above a certain cart total. Here’s what I did.

Rodolfo Melogli

Business Bloomer Founder

Author, WooCommerce expert and WordCamp speaker, Rodolfo has worked as an independent WooCommerce freelancer since 2011. His goal is to help entrepreneurs and developers overcome their WooCommerce nightmares. Rodolfo loves travelling, chasing tennis & soccer balls and, of course, wood fired oven pizza. Follow @rmelogli

Leave a Reply

Your email address will not be published. Required fields are marked *