WooCommerce is a free, open source e-commerce plugin for WordPress that turns a website into a full online store. The Moment Payments plugin connects WooCommerce to Moment so you can accept payments without building an integration yourself.
At checkout, your customer is redirected to a Moment hosted payment page, completes the payment, and returns to your store. Order status is updated automatically from signed webhooks, so there is nothing to poll or reconcile by hand.
What you get
- One-time payments through Moment hosted checkout
- Card, EFT, and wallet payment methods
- Recurring subscriptions with the WooCommerce Subscriptions extension
- Full and partial refunds from the WooCommerce admin
- Support for both block checkout and the classic shortcode checkout
- Signed webhooks with HMAC-SHA256 verification and replay protection
Before you begin
You will need a store that meets these minimums and a Moment merchant account.
The plugin supports the South African Rand (ZAR). If your store uses another base currency, Moment does not appear as a payment option at checkout.
You also need your Moment API keys. See Authentication to understand how test and live keys work. If you do not have keys yet, contact the Moment team.
Install the plugin
Open the plugin installer
In your WordPress admin, go to Plugins → Add New.
Find Moment Payments
Search for Moment Payments in the plugin directory, then click Install Now.
Activate
Once installed, click Activate.
If Moment provided you with a plugin ZIP file, click Upload Plugin on the Add New screen, choose the file, then install and activate it.
Open the Moment Payments settings
Go to WooCommerce → Settings → Payments, then select Moment Payments.
Add your API keys
Under API Credentials, enter your Secret Key (sk_test_… or sk_live_…), Public Key (pk_test_… or pk_live_…), and Webhook Signing Secret (whsec_…).
Register your webhook endpoint
Copy the read-only Webhook Endpoint URL shown on the settings page and register it in your Moment account. It looks like https://yourstore.com/?wc-api=moment_webhook. See Setting up webhooks for details. Test the connection
Click Test Connection to confirm your Secret Key can reach the Moment API.
Enable and save
Tick Enable Moment Payments, set the Title and Description your customers will see at checkout, then click Save changes.
Settings reference
Advanced settings
The defaults are safe for most stores. Adjust these only if you have a specific need.
Debug logs appear under WooCommerce → Status → Logs, tagged with the source moment-payments.
How payments work
Customer places an order
The plugin creates a Moment payment session for the order total and redirects the customer to the hosted checkout page.
Customer pays on the hosted page
Card, EFT, and wallet details are entered on Moment’s secure pages. No card data touches your store.
Moment confirms the result
Moment sends a signed webhook to your store. The plugin verifies the signature and moves the order to the matching status. A paid order becomes Processing or Completed, and a pending method such as EFT is held On hold until it clears.
Refunds
Issue full or partial refunds from the WooCommerce order screen. The plugin sends the refund to Moment and records it on the order. Refunds you issue from your Moment dashboard also sync back to WooCommerce automatically.
Subscriptions
With the WooCommerce Subscriptions extension installed, the plugin handles recurring payments. The first payment runs through the hosted checkout, and renewals are charged automatically without any customer interaction.
Test your integration
Test mode moves no real money, so you can run through the full flow safely before going live.
Switch to test keys
In the plugin settings, use your test API keys (sk_test_… and pk_test_…).
Place a test order
Add a product to the cart, go to checkout, and choose Moment as the payment method.
Pay with a test card
On the hosted page, use one of the test cards to simulate a success or a decline. Check the order status
Confirm the order updates in WooCommerce to match the result of the payment.
Go live
Swap in your live keys
Replace the test keys with your live Secret Key, Public Key, and Webhook Signing Secret.
Register your production webhook
Add your live store’s webhook endpoint (https://yourstore.com/?wc-api=moment_webhook) in your Moment account.
Serve your store over HTTPS
Moment requires HTTPS for live webhook delivery. Make sure your store has a valid certificate.
Confirm your currency
Check that your store currency is set to ZAR.
Live mode moves real funds. Complete your testing in test mode before switching keys.
Troubleshooting
Moment does not appear at checkout
Check that the plugin is activated, the gateway is enabled under WooCommerce → Settings → Payments, a Secret Key is set, and your store currency is ZAR.
Orders stay pending or on hold
Confirm your webhook endpoint is registered in your Moment account and the Webhook Signing Secret matches. Some methods such as EFT stay on hold until the payment clears. Enable Debug logging and review WooCommerce → Status → Logs for verification errors.
Where do I find my API keys?
Your Secret and Public keys identify your Moment account. See Authentication for how test and live keys work. If you do not have keys, contact the Moment team.
A refund needs a captured Moment payment on the order. If the payment is still pending or the order has no Moment payment recorded, the refund cannot be processed. Check the order notes and the WooCommerce logs for the specific error.
Does the plugin support subscriptions?
Yes. Install and activate the WooCommerce Subscriptions extension and the plugin detects it automatically. Initial payments use the hosted checkout, and renewals are charged server side without customer interaction.
Need help?
Reach out to the Moment team if you get stuck or have a question about your integration.