Skip to main content
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

1

Open the plugin installer

In your WordPress admin, go to Plugins → Add New.
2

Find Moment Payments

Search for Moment Payments in the plugin directory, then click Install Now.
3

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.

Configure the plugin

1

Open the Moment Payments settings

Go to WooCommerce → Settings → Payments, then select Moment Payments.
2

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_…).
3

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.
4

Test the connection

Click Test Connection to confirm your Secret Key can reach the Moment API.
5

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

1

Customer places an order

The plugin creates a Moment payment session for the order total and redirects the customer to the hosted checkout page.
2

Customer pays on the hosted page

Card, EFT, and wallet details are entered on Moment’s secure pages. No card data touches your store.
3

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.
1

Switch to test keys

In the plugin settings, use your test API keys (sk_test_… and pk_test_…).
2

Place a test order

Add a product to the cart, go to checkout, and choose Moment as the payment method.
3

Pay with a test card

On the hosted page, use one of the test cards to simulate a success or a decline.
4

Check the order status

Confirm the order updates in WooCommerce to match the result of the payment.

Go live

1

Swap in your live keys

Replace the test keys with your live Secret Key, Public Key, and Webhook Signing Secret.
2

Register your production webhook

Add your live store’s webhook endpoint (https://yourstore.com/?wc-api=moment_webhook) in your Moment account.
3

Serve your store over HTTPS

Moment requires HTTPS for live webhook delivery. Make sure your store has a valid certificate.
4

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

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.
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.
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.
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.