Skip to content

WooCommerce plugin Stable

The official Zayono WooCommerce plugin lets you accept Mobile Money + cards through the native WooCommerce checkout, with no coding.

Installation

From the WordPress admin

  1. Plugins → Add → search for "Zayono"
  2. Click "Install now" → "Activate"

Manually

bash
# Download the latest release
wget https://github.com/zayono/zayono-woocommerce/releases/latest/download/zayono-woocommerce.zip

# Unzip into the plugins folder
unzip zayono-woocommerce.zip -d wp-content/plugins/

Then activate from Plugins → Installed Plugins.

Configuration

  1. WooCommerce → Settings → Payments → enable "Zayono"
  2. Click "Configure"
  3. Fill in:
  4. Save.

Webhook configuration

On app.zayono.com → Developers → Webhooks:

  1. Click "Add a webhook"
  2. URL:
    https://your-store.com/?wc-api=zayono_webhook
  3. Events: tick at least payment.successful and payment.failed
  4. Click "Create", copy the secret (shown once) and paste it into the WooCommerce config.

Customer flow

  1. The customer adds products to the basket and goes to the WooCommerce checkout
  2. They pick "Zayono" as the payment method
  3. Click "Order" → redirect to the Zayono hosted page
  4. The customer picks their operator (MTN, Orange, Moov, etc.), enters their number, confirms
  5. On success → redirect to the WooCommerce confirmation page + the order moves to processing
  6. On failure → redirect to the WooCommerce basket with the error message

The final status is updated automatically via webhook — you have nothing to do.

Supported currencies

The plugin detects the WooCommerce currency and forwards it to Zayono. Supported currencies:

  • XOF (Benin, Togo, Senegal, Mali, Côte d'Ivoire, Burkina Faso, Niger)
  • XAF (Cameroon, Congo, Gabon)
  • GHS (Ghana)
  • KES (Kenya)
  • NGN (Nigeria)
  • ZAR (South Africa — Paystack cards and EFT)
  • GNF (Guinea — Mobile Money via Magma OnePay)
  • USD, EUR (international cards via Stripe; crypto settlement in USD/EUR via Coinbase Commerce)

If the WooCommerce currency matches no available operator, Zayono will show "No payment method available" — enable a compatible gateway from your dashboard.

Sandbox testing

  1. Configure the plugin in "Sandbox" mode
  2. Create a test order (amount ≥ 200 XOF — PayDunya sandbox minimum)
  3. At checkout, use:
    • MTN BJ Sandbox: +22961000000
    • Orange CI Sandbox: +22507000000
    • Other test numbers: see Test numbers

Sandbox transactions are visible on app.zayono.com → Transactions in sandbox mode.

Customisation

Payment method title

php
add_filter('zayono_payment_method_title', function ($title) {
    return 'Pay with Mobile Money';
});

Description under the title

php
add_filter('zayono_payment_method_description', function ($desc) {
    return 'MTN, Orange, Moov, Wave, M-Pesa and more.';
});

Restrict by country

php
add_filter('zayono_supported_countries', function () {
    return ['BJ', 'CI', 'SN', 'TG']; // UEMOA only
});

Troubleshooting

SymptomLikely causeAction
"Zayono" doesn't show at checkoutWooCommerce currency not supportedCheck the currency (XOF by default)
Webhook never receivedWrong webhook URLURL must be exactly ?wc-api=zayono_webhook
Invalid signature in logsWebhook secret out of syncRegenerate the secret on the Zayono dashboard + paste again in WC
Payment stays "Pending"Webhook blocked by firewallMake sure your server accepts inbound HTTPS POSTs from the public internet (no IP filtering by default)
500 at checkoutCache plugin too aggressiveDisable cache on /?wc-api=*

PHP logs: wp-content/plugins/zayono-woocommerce/debug.log (if WP_DEBUG_LOG=true).

Zayono API logs: app.zayono.com → Developers → API logs.

Support

Official Zayono API documentation