Ssentezo Developers
Sandbox and production use the same API host. The organization status, SANDBOX or LIVE, is the environment. This portal does not simulate a successful payment when a call fails.

E-commerce ยท WordPress

WooCommerce Beta

Beta mobile-money checkout for classic WooCommerce and Checkout blocks, with status-API confirmation.

Version0.1.2
CompatibilityWordPress 6.4+, WooCommerce 8+, PHP 8.1+.
InstallDownload the ZIP from this page and upload it in WordPress. WordPress.org submission is a later release.
Sourceintegrations/woocommerce-ssentezo
LicenseGPL-2.0-or-later, so it can be reviewed for WordPress.org later.
SandboxSettings default to sandbox and do not start a payment. The production host is refused. Another host requires an operator attestation that its payment mode was verified independently. A test phone number is not that attestation. Live mode requires a separate confirmation. The balance connection test does not start a payment and does not reveal the organization mode.

Download ssentezo-wallet.zip

Supported in this version

  • Classic checkout and Cart/Checkout blocks
  • Mobile-number field for payment prompts
  • Sandbox or live credentials
  • Mobile-money collection
  • Server-side status verification
  • Order status updates
  • Duplicate callback protection
  • Sandbox mode blocks the production host

Install

  1. Download ssentezo-wallet.zip and upload it in WordPress.
  2. Open Settings, Ssentezo Wallet. Leave Sandbox selected. Enter a staging base URL, the API user, and the API key, then run Test connection.
  3. Open WooCommerce, Settings, Payments, and enable Ssentezo Wallet. The API key is not entered on that screen.
  4. Use a shop currency of UGX. Sandbox checkout stays disabled until the sandbox-host box is checked, and then accepts only 256770000001, 256770000002, 256770000003, and 256770000004.

Checkout

Classic checkout and the WooCommerce Cart and Checkout blocks collect a Ugandan mobile number. The plugin calls POST /api/deposit and sets the order to on hold. The thank-you page says the payment is not confirmed. A callback to /wc-api/ssentezo_wallet, and a poll about every ten minutes, both call POST /api/get_status/{externalReference}. The order is paid only when that call returns HTTP 200, SUCCEEDED, the same reference, currency UGX, and the same amount. A cancelled or refunded order is not reopened. There is no timeout status, so a pending payment is not failed by the clock.

Troubleshooting

  • A reused external reference is rejected. Each attempt adds a new reference.
  • Pending stays on hold. The plugin does not turn a pending payment into a failure on a timer.
  • Customer-facing errors do not include the API body. Details go to the WooCommerce log source ssentezo-wallet without the API key.

WordPress.org submission is not part of this beta.