Vaendora Payment Gateway

Description

Vaendora Payment Gateway helps Nigerian WooCommerce merchants accept securely verified bank-transfer payments and understand the Gross Profit behind every sale.

Payments are verified automatically, orders update without manual bank-alert checks, and merchants can enter product cost prices to see Cost of Goods Sold, Gross Profit and margins directly inside WooCommerce Analytics.

Profit reporting covers orders processed through Vaendora, giving merchants a clear view of the sales, costs and margins that Vaendora has verified.

Profit Analytics includes orders paid through Vaendora only. Orders processed through other gateways remain in WooCommerce’s normal reports but are excluded from Vaendora’s cost and profit calculations. This makes Gateway Coverage — the share of your sales processed through Vaendora — visible at a glance, giving you a clear incentive to consolidate.

Payments

  • Instant Verification — Payments are verified within seconds of transfer
  • No Card Required — Customers pay via direct bank transfer
  • Lower Fees — More cost-effective than traditional card payments
  • Nigerian Banks — Supports all major Nigerian banks
  • Automatic Order Updates — Orders are marked as paid automatically
  • Secure Hosted Flow — Customers complete payment on Vaendora’s secure page
  • Test Mode — Simulate payments without real money during setup
  • HPOS Compatible — Fully compatible with WooCommerce High-Performance Order Storage

Profit Analytics

  • Cost Price fields — Enter cost prices on products and individual variations
  • Bulk and CSV cost management — Update many costs at once or import via CSV
  • Cost snapshots — The cost at the time of sale is saved permanently; changing a product’s price never rewrites historical profit
  • Cost of Goods Sold (COGS) — Calculated per product, per order, and per period
  • Gross Profit and Gross Margin — Available at product, order, and revenue level
  • Analytics Products — Cost, Gross Profit, Margin and Profit Status columns inside the native WC Analytics Products table
  • Analytics Orders — Cost, Gross Profit, Margin and Profit Status columns inside the native WC Analytics Orders table
  • Analytics Revenue — Cost, Gross Profit, and Margin columns inside the native WC Analytics Revenue breakdown table (daily, weekly and monthly groupings)
  • Vaendora Analytics page — Dedicated Products and Revenue reports under WooCommerce Vaendora Analytics
  • Gateway Coverage — See what percentage of your total WooCommerce sales are processed through Vaendora
  • Cost Coverage — See what percentage of Vaendora sales have complete cost information
  • Missing-cost warnings — Products without a cost price are flagged with a direct link to fix them
  • Refund adjustments — Full and partial refunds automatically reverse the corresponding COGS and revenue
  • CSV exports — Download profit data for Products and Revenue from the Vaendora Analytics page

How Payments Work

  1. Customer selects “Bank Transfer (Instant Verification)” at checkout
  2. Customer is redirected to Vaendora’s secure payment page
  3. Customer transfers the exact amount with the provided reference
  4. Vaendora verifies the payment instantly
  5. Your WooCommerce order is automatically marked as paid

Requirements

  • WooCommerce 7.0 or higher
  • A Vaendora merchant account (Sign up here)
  • PHP 7.4 or higher

External Services

This plugin connects to the Vaendora API to process payments on behalf of the store owner. The service is required for the plugin to function.

Service: Vaendora Payment API (api.vaendora.com)

What it is:
Vaendora is an AI-powered business system built for Nigerian entrepreneurs who need more structure, clearer control, and smarter support as they sell, manage, and grow.

It gives small and growing businesses a professional place to sell, payment and order records, customer management, shipping support, content and visibility tools, AI-powered customer support, business insights, and money clarity, all in one connected system.

Vaendora is built for Nigerian SMEs that are ambitious but stretched, where the owner is often managing customers, payments, stock, orders, content, and business decisions manually. At the centre of the platform is Vaera, the AI intelligence inside Vaendora, helping the business respond, create, analyse, monitor, and keep moving with less daily pressure on the owner.

Vaendora exists to help Nigerian businesses move from manual hustle to structured growth.

What data is sent and when:

  • At checkout, when a customer places an order using this payment method, the following order details are sent to api.vaendora.com: order ID, order total (in kobo), customer name, customer email, a callback URL for payment notifications, and a return URL to redirect the customer after payment.
  • When the customer returns to the store after completing a transfer, the payment reference is sent to api.vaendora.com to confirm the payment status.

Service provider: Vaendora (by Junn Digital)

  • Terms of Service: https://vaendora.com/terms
  • Privacy Policy: https://vaendora.com/privacy

No data is sent to api.vaendora.com unless a customer actively chooses the Vaendora bank transfer payment method and places an order.

Installation

  1. Install through the WordPress plugins screen.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.
  3. Go to WooCommerce -> Settings -> Payments -> Vaendora.
  4. Click “Login to Vaendora” or “Create Account” to get your API keys.
  5. Enter your API Key and Webhook Secret.
  6. Enable the payment method and save.

FAQ

Do I need a Vaendora account?

Yes, you need to create a free Vaendora merchant account at app.vaendora.com to get your API keys.

What are the fees?

Vaendora charges a 1.5% (+VAT) transaction fee, capped at ₦1,800.

How long does payment verification take?

Payments are typically verified within seconds of the bank transfer being completed.

Can I test before going live?

Yes. Use Test Mode with your test API keys to simulate payments without real money.

What banks are supported?

Vaendora supports all major Nigerian banks including GTBank, Access Bank, First Bank, UBA, Zenith Bank, Moniepoint and many more.

Is this plugin compatible with WooCommerce High-Performance Order Storage (HPOS)?

Yes. The plugin declares full compatibility with HPOS (also known as Custom Order Tables).

What is Vaendora Profit Analytics?

It lets you enter the cost price of your products and see Cost of Goods Sold (COGS), Gross Profit and Gross Margin directly inside WooCommerce Analytics — on the Products, Orders and Revenue pages — without leaving the reports you already use.

Where do I enter product costs?

Cost prices are entered from WooCommerce Products, including individual variations. You can also update many costs at once via the bulk-edit interface or import them all at once using a CSV file.

Does Profit Analytics include orders from Paystack or other payment gateways?

No. Profit figures are calculated only for successfully verified orders processed through Vaendora. Orders paid via other gateways remain visible in WooCommerce’s standard reports but are excluded from Vaendora’s cost and profit calculations.

Does changing a product’s cost price change old profit reports?

No. Vaendora saves the cost price at the moment of each sale (a “cost snapshot”), so historical profit figures remain accurate even when product costs change later.

Does it calculate Net Profit?

No. It calculates Gross Profit based on product revenue and Cost of Goods Sold. Operating expenses such as rent, salaries and advertising are not included — this is Gross Profit only.

What is Gateway Coverage?

Gateway Coverage shows the percentage of your total WooCommerce sales that were processed through Vaendora. A lower number means some sales are going through other gateways and are therefore not included in your profit report.

Reviews

There are no reviews for this plugin.

Contributors & Developers

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

Contributors

Changelog

1.6.7

  • Updated: Plugin description, short description, and FAQ rewritten to reflect Profit Analytics as a core feature alongside payments. Tags updated (naira profit analytics). Tested up to WordPress 7.0.2 and WooCommerce 10.9.4. Fixed typos in External Services section.

1.6.6

  • Fixed: Analytics Revenue table profit columns (Cost COGS, Gross Profit, Margin) now populate correctly instead of showing dashes. Two bugs resolved: (1) the PHP REST extender route regex was missing /reports/ so it never fired for the Revenue stats endpoint; (2) Vaendora fields were injected at the interval root instead of inside interval.subtotals, where WC Admin builds Revenue table rows from. The JS Revenue filter now reads via item.subtotals || item for forward-compat.

1.6.5

  • Fixed: Analytics Products, Orders, and Revenue columns no longer stay stuck on . Root cause was an async fetch-and-rerender architecture that stored profit data in plain JS objects (non-reactive) and relied on a fake core/notices notice to trigger a React re-render — unreliable in practice. Profit data is now injected server-side by PHP directly into the native WC Analytics REST responses (rest_post_dispatch), so the JS filter reads values synchronously from reportTableData.items.data without any secondary fetch.
  • Fixed: Date range parser now checks window.location.search before window.location.hash, supporting WooCommerce Analytics 10.x which stores route params in the query string. Revenue panel navigation listener also covers popstate in addition to hashchange.
  • Added: Vaendora_Analytics_REST_Extender class — hooks into /wc-analytics/reports/products, /wc-analytics/reports/orders, and /wc-analytics/revenue/stats to inject vaendora_* profit fields into each response item.

1.6.4

  • Fixed: Reverted order date filter from date_paid back to date_created. On real HPOS-enabled stores wc_get_orders() with a date_paid range returned no results despite the field being set, causing all Analytics columns to go blank. Because the Vaendora checkout creates and pays the order within the same flow, date_created is effectively the same moment and is consistently queryable across all supported WC configurations.

1.6.3

  • Fixed: Profit data queries now filter by payment date (date_paid) instead of order creation date (date_created), aligning results with WooCommerce Analytics which also groups by payment date. Orders created in one period but paid in another now appear in the correct period on both the Vaendora Analytics page and the native Analytics columns.

1.6.2

  • Changed: WooCommerce sidebar menu item and page title renamed from “Vaendora Profit” / “Vaendora Profit Analytics” to “Vaendora Analytics”.

1.6.1

  • Fixed: Internal order-item meta keys (_vaendora_cost_snapshot, _vaendora_cost_missing) were visible to customers on the order details and thank-you pages; they are now correctly hidden via woocommerce_hidden_order_itemmeta.
  • Fixed: Profit Status showed “Partial” even when every item in the order had a cost snapshot, caused by a strict PHP type comparison (0.0 === 0 is false); changed to loose comparison.
  • Fixed: Native Analytics profit columns (Products, Orders, Revenue table) were permanently stuck on — the Revenue table had a scoping bug that silently swallowed the REST response and never triggered a re-render; Products/Orders now distinguish “still loading” () from “fetch done, no data” ().
  • Fixed: Date filter on the Vaendora Profit Analytics page displayed dates in mm/dd/yyyy (US) format; now correctly uses dd/mm/yyyy via lang="en-GB" on the date inputs.

1.6.0

  • Added: Cost (COGS), Gross Profit, and Margin columns now appear directly inside the native WooCommerce Analytics Revenue breakdown table (the date-grouped table), in addition to the existing Vaendora Profit summary panel.
  • Added: Weekly and monthly Revenue table groupings are supported — daily profit rows are aggregated across each period window automatically.
  • Added: revenueTableCache module-level cache in the JS extension prevents redundant REST fetches when navigating within the Analytics SPA.

1.5.0

  • Added: Profit columns (Cost, Gross Profit, Margin, Profit Status) now appear natively inside WooCommerce Analytics Orders, showing margin per individual order.
  • Added: REST API endpoint /vaendora/v1/analytics/orders returning per-order cost, profit, and margin data.
  • Added: JS bundle updated to register a woocommerce_admin_report_table extension for the Orders report.

1.4.0

  • Added: Profit columns (Cost, Profit, Margin) now appear natively inside WooCommerce Analytics Products and Analytics Revenue pages, powered by a compiled JS extension.
  • Added: REST API endpoints /vaendora/v1/analytics/products and /vaendora/v1/analytics/revenue to serve profit data to the WooCommerce Admin JS app.
  • Added: JS bundle (assets/js/vaendora-analytics.js) built with @wordpress/scripts and enqueued on all wc-admin pages.

1.3.0

  • Added: Vaendora Profit Analytics — dedicated analytics page under WooCommerce Vaendora Profit.
  • Added: Track per-product cost prices and compute gross profit/margin on orders.
  • Added: Revenue summary tab with Vaendora gateway coverage and cost-price coverage stats.
  • Added: CSV export for both Products and Revenue analytics views.
  • Added: Bulk cost-price CSV import/export (Import/Export tab).
  • Added: Cost snapshots — historical record of cost prices at time of order.
  • Added: Partial refund handling that adjusts profit figures proportionally.

1.2.8

  • Fixed: Corrected the External Services disclosure in readme.txt – removed “currency” and “customer phone” which were never sent to api.vaendora.com, and added “return_url” which has always been included in the checkout payload

1.2.7

  • Fixed: Moved inline <style> block from payment-instructions template to enqueued stylesheet (vaendora-frontend.css) per WordPress.org guidelines

1.2.6

  • Fixed: Added == External Services == section to readme.txt documenting the Vaendora API, data sent, and links to Terms of Service and Privacy Policy

1.2.5

  • Fixed: Webhook callback token check is now unconditional – every incoming request must supply the token issued at payment initialisation; requests with a missing or mismatched token are rejected with HTTP 403

1.2.4

  • Updated checkout description and “how it works” copy to bank-transfer-only — card payment references removed from the default gateway description

1.2.3

  • Fixed: Added nonce verification to the order status AJAX endpoint (vaendora_check_order_status) to address WordPress.Security.NonceVerification warning
  • Fixed: Added languages/vaendora-payment-gateway.pot so the Domain Path: /languages plugin header resolves correctly
  • Fixed: Trimmed short description to comply with the 150-character readme limit
  • Fixed: Added phpcs:ignore for SlowDBQuery warnings on wc_get_orders() meta lookup — WC’s order meta table is indexed; not a raw $wpdb query

1.2.2

  • Renamed plugin to “Vaendora Payment Gateway for Nigeria” to comply with WordPress.org trademark guidelines (removed “WooCommerce” from the plugin display name and slug)
  • Updated Text Domain to vaendora-payment-gateway
  • Bumped version to 1.2.2

1.2.1

  • Updated transaction fee description: 1.5% (+VAT), capped at ₦1,500
  • Fixed “Create Account” button URL — now correctly links to the onboarding page

1.2.0

  • Renamed plugin to “Vaendora Payments for WooCommerce (Nigeria)” to comply with WordPress.org trademark guidelines (moved “WooCommerce” to the end with “for” structure)
  • New slug: vaendora-payments-for-woocommerce-nigeria — text domain updated throughout all plugin files
  • Renamed gateway class from WC_Vaendora_Gateway to Vaendora_Payment_Gateway to use a unique prefix (WC is a reserved/common prefix)
  • Added “Requires Plugins: woocommerce” header so WordPress enforces WooCommerce is installed before activation
  • Updated Monnify payment integration: Monnify now handles payment processing; added bank transfer + card payment flows with 30-minute countdown

1.1.0

  • Switched payment backend to Monnify for verified bank transfer processing
  • Added card payment option via Monnify checkout embedded URL
  • Added 30-minute virtual account countdown with real-time polling

1.0.17

  • Fixed text domain to match plugin slug for WordPress.org compliance
  • Removed deprecated load_plugin_textdomain() call (auto-loaded since WordPress 4.6)
  • Wrapped all gateway output through proper escaping functions (wp_kses_post, esc_html, esc_url)
  • Replaced debug print_r() calls with wp_json_encode() in logger functions
  • Excluded hidden .gitkeep file from distributable zip
  • Added inline style fallback on checkout logo to ensure correct size in all themes
  • Updated “Tested up to” to WordPress 6.9
  • Bumped version to 1.0.17

1.0.16

  • Added “Settings” link to the plugin row on the WordPress Plugins page, linking directly to the Vaendora gateway settings in WooCommerce

1.0.15

  • Renamed plugin to “Vaendora Woo Payments for Nigeria” for a shorter, clearer identity
  • Updated How It Works description to match the default checkout title “Bank Transfer (Instant Verification)”
  • Updated method title shown in WooCommerce payment settings to match plugin name

1.0.14

  • Replaced placeholder plugin screenshots with real branded artwork for WordPress.org listing
  • Added branded banner images (772×250 and 1544×500) for the WordPress.org plugin directory

1.0.13

  • Added Vaendora V-mark icon displayed next to the payment method at WooCommerce checkout
  • Added “Secured by Vaendora” badge with dark-text logo inside the payment description box
  • Fixed bullet point alignment in the “How it works” list (bullets and text now render on the same line across all WooCommerce themes)
  • Bundled gateway icon and logo images inside plugin assets (no external URL dependency)
  • Defined VAENDORA_PLUGIN_URL and VAENDORA_PLUGIN_VERSION constants for cleaner asset enqueuing

1.0.12

  • Enqueued JavaScript (thank-you page polling, admin password toggle) via wp_enqueue_script instead of inline output
  • Moved all inline CSS to enqueued stylesheets (vaendora-frontend.css, vaendora-admin.css)
  • Replaced error_log() with WC_Logger for proper WordPress debug logging
  • Replaced date() with gmdate() in webhook handler for timezone correctness
  • Updated Contributors field to correct WordPress.org username

1.0.11

  • Updated plugin author to Junn Digital with link to junndigital.com

1.0.10

  • Added live order status polling on the WooCommerce thank-you page so orders update to Processing without requiring a page refresh

1.0.9

  • Removed “Advanced Settings” section and configurable API URL field from plugin settings (was developer-only, not intended for merchants)

1.0.8

  • Fixed: Orders no longer remain stuck in “Pending payment” or get auto-cancelled after a verified payment
  • Fixed: Replaced broken HMAC signature verification with a secure per-payment callback token system
  • Callback token issued by Vaendora at checkout is now stored in order meta and verified when the payment success callback arrives
  • Merchants no longer need to configure a webhook secret in plugin settings

1.0.7

  • Order status now set to “on-hold” (instead of “pending”) at checkout, triggering WooCommerce’s “Customer On-Hold Order” email
  • Bank transfer details (bank name, account number, account name, amount) are now included in the “Customer On-Hold Order” email
  • Thank-you page now displays bank transfer details for unpaid orders
  • Payment page URL stored in order meta for easy access

1.0.6

  • Rebranded plugin to Vaendora WooCommerce Payment Gateway for Nigeria
  • Declared HPOS (High-Performance Order Storage) compatibility for WooCommerce 8+
  • Added uninstall cleanup hook to remove plugin options on deletion
  • Added translation support via load_plugin_textdomain
  • Updated tested-up-to versions for WordPress 6.7 and WooCommerce 9.4

1.0.5

  • Improved webhook signature verification to handle both header and body signatures
  • Added test mode / live mode mismatch detection on webhook callbacks

1.0.4

  • Added password field Show/Hide toggle on the settings page for easier API key entry
  • Improved admin order meta display with verification method and amount

1.0.3

  • Added advanced settings section with configurable API URL for testing environments
  • Improved error handling and logging throughout gateway and API client

1.0.2

  • Added payment reference and verification details to the thank-you page
  • Added WooCommerce order notes on successful payment verification

1.0.1

  • Fixed order status update flow for expired and failed payment callbacks
  • Minor improvements to checkout payment fields display

1.0.0

  • Initial release
  • WooCommerce payment gateway integration
  • Live and Test mode support
  • Webhook handling for automatic order updates
  • Payment reference tracking