Campay Woocommerce Payment Gateway

Description

CamPay is a Cameroonian fintech service of TAKWID GROUP, running since January 2021. It lets businesses and organisations collect and send money online, mainly through MTN Mobile Money and Orange Money.

This plugin adds CamPay as a payment method to WooCommerce.

How customers pay

  • Mobile Money: at checkout the customer chooses CamPay, enters their 9-digit MTN or Orange number, places the order and approves the payment on their phone with their PIN. To approve a pending payment they can dial 126# (MTN) or #15050# (Orange). The order times out after a few minutes without confirmation.
  • Debit or credit card: the customer clicks “Click here to pay using a credit or debit card” and pays on a secure CamPay page. Cards are only offered when you enable them and card payments are activated on your CamPay account.

Features

  • MTN Mobile Money and Orange Money, with phone number validation
  • Debit and credit card payments on the secure CamPay page
  • Test mode with the CamPay demo environment
  • Store currency in FCFA (XAF), or in US dollars or euros converted to XAF with your own rates
  • Webhook secured with the CamPay Webhook Key, to record payments confirmed later
  • Real CamPay API errors in the WooCommerce logs and as private notes on the order
  • Translations: English (GB, US) and French

Requirements

  • WooCommerce installed and active
  • PHP 8.1 or greater
  • A CamPay account and app: sign up on campay.net (or demo.campay.net to test)
  • For card payments: card payments activated on your CamPay account

External services

This plugin connects to the CamPay API (https://www.campay.net, or https://demo.campay.net in test mode) to process payments. It is required for the gateway to work.

  • Authentication: when the checkout is displayed with card processing enabled, and when an order is paid, your App Username and App Password are sent to get an access token.
  • Card availability: when the checkout is displayed with card processing enabled, the plugin asks CamPay whether cards are activated on your account.
  • Mobile Money payment: when a customer places an order, the amount in XAF, the customer’s phone number, a description (site address and order number) and a unique reference are sent. The payment status is then checked until it is confirmed.
  • Card payment: when a customer pays by card, the amount in XAF, a description, the order number and the return address on your store are sent to create the payment page. The customer enters card details on the CamPay page, not on your site.
  • Webhook: CamPay calls your store when a transaction is completed; the call is checked with your Webhook Key.

CamPay is provided by TAKWID GROUP: terms and conditions, privacy policy. API documentation: CamPay API.

Screenshots

Installation

  1. In your WordPress dashboard go to Plugins > Add New, search for “Campay Woocommerce Payment Gateway”, then click Install and Activate. WooCommerce must be installed and active.
  2. Go to WooCommerce > Settings > Payments and open CamPay.
  3. Tick “Enable CamPay Payment Gateway” and set the title and description customers see at checkout.
  4. Tick “Enable Test Mode” to use the CamPay demo environment, or untick it for real payments. Demo and live apps have different credentials.
  5. Enter the App Username and App Password of your CamPay app (found in your CamPay dashboard).
  6. In your CamPay dashboard, set the Webhook URL of your app to the “webhook url” shown in the settings, and paste the app’s Webhook Key into “Webhook Key”.
  7. Optional: tick “Enable Credit Card processing for payment”.
  8. Optional: if your store currency is USD or EUR, tick the matching conversion and set its rate to XAF.
  9. Save changes.

FAQ

Where do I find my App Username, App Password and Webhook Key?

Log in to your CamPay dashboard, open your app and look under the app keys. The demo site (demo.campay.net) and the live site (campay.net) have different apps and credentials.

Why don’t customers see the card option?

Check that card processing is ticked in the CamPay settings and that card payments are activated on your CamPay account (contact CamPay if not). The card option only appears for accounts allowed to accept cards.

Which currencies are supported?

CamPay charges in FCFA (XAF). With a store currency in USD or EUR, enable the matching conversion and set your rate.

Where can I see what went wrong with an order?

The real CamPay error (HTTP status and response, without your password) is added as a private note on the order and logged in WooCommerce > Status > Logs, source “campay”. Private notes and logs are only visible to shop managers and administrators.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Campay Woocommerce Payment Gateway” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.2.6

  • New: CamPay is available in the WooCommerce checkout block (Gutenberg), with the same Mobile Money number field and card button as the classic checkout. The classic checkout still works.
  • New: compatibility declared with the checkout block and with High-Performance Order Storage (HPOS)
  • Fix: a JavaScript error on checkout pages without the classic checkout form
  • Fix: a failed Mobile Money payment now returns an explicit failure, so the checkout block shows the error to the customer

1.2.5 – 2026-09-15

  • Security: the webhook and card return no longer trust the order reference, status or amount sent in the URL. The transaction is checked with the CamPay API and must belong to the order, have the order’s amount and be successful; only CamPay orders can be changed and paid orders are never changed again. Credit: kta1kri
  • Fix: EUR orders without a set conversion rate were sent with an amount of 0
  • New: real CamPay API errors in WooCommerce > Status > Logs (source “campay”) and as private order notes
  • New: callbacks (webhook and card returns) and successful CamPay transactions are logged too (source “campay”)
  • New: checkout logos at a fixed size, with the Visa / Mastercard logo when card payments are available
  • New: redesigned payment processing window, always centered; for card payments it tells the customer they are being redirected to CamPay
  • Fix: after a failed card payment, placing the order again with Mobile Money started a card payment
  • New: phone number field with the +237 prefix
  • Fix: a refused card payment page no longer leaves the customer stuck; CamPay’s message is shown
  • Fix: internal order notes were sent to customers
  • Fix: waiting for a Mobile Money confirmation could end in a “maximum execution time” fatal error and block the customer’s other requests
  • Faster checkout: the card availability check is cached

1.2.3 – 2025-12-16

  • Security: fix for CVE-2025-12883

1.2.2 – 2025-09-12

  • Card payments re-instated, only for accounts allowed to accept card payments

1.2.1 – 2025-03-01

  • Webhook added

1.2 – 2024-11-18

  • Card payment removed

1.1.9 – 2024-07-17

  • Fix: card payment timeout redirection

1.1.8 – 2024-05-31

  • Fix: PHP notice

1.1.7 – 2024-05-04

  • Fix: card payment failure redirect
  • Tested on WordPress 6.5 and WooCommerce 8.7.0

1.1.6 – 2023-11-16

  • French (fr_FR) translation
  • Fix: translation bug

1.1.5 – 2023-04-11

  • Support for WordPress 6.2; labels updated

1.1.4 – 2023-02-20

  • CSS update

1.1.3 – 2022-11-25

  • Translation ready, English (GB) translation
  • Tested on the latest version of WordPress

1.1.2 – 2022-07-14

  • Credit or debit card payment option added

1.1.1 – 2022-06-04

  • Fix: SSL bug in live mode preventing transactions from starting

1.1.0 – 2022-05-17

  • Payment modal HTML and JavaScript only loaded on the checkout page

1.0.9 – 2022-05-17

  • jQuery replaced by JavaScript to open the pending transaction modal

1.0.8 – 2022-05-01

  • Fix: modal bug on checkout

1.0.7 – 2022-04-09

  • Fix: checkout page bug

1.0.6 – 2022-04-03

  • Payment processing message added

1.0.5 – 2021-10-10

  • Manual USD and EUR support: activate US dollars and euros in the settings (default rates 550 for USD and 650 for EUR)
  • Automatic conversion removed

1.0.4 – 2021-09-27

  • Token error display updated

1.0.3 – 2021-09-18

  • Number field CSS updated

1.0.2 – 2021-08-06

  • Currency conversion
  • Fix: place order button disabled when another payment method was selected
  • The gateway is only loaded when WooCommerce is active

1.0.1 – 2021-08-03

  • Plugin renamed to Campay Woocommerce Payment Gateway
  • Number field updated (pattern validation and text field type)

1.0.0 – 2021-03-09

  • First release