> ## Documentation Index
> Fetch the complete documentation index at: /llms.txt
> Use this file to discover all available pages before exploring further.

# WordPress

> Accept mobile money payments on any WordPress site with the Simiz plugin — no WooCommerce required.

The Simiz WordPress plugin lets you accept mobile money payments on any WordPress site without WooCommerce. Use shortcodes to embed payment forms or the REST API for custom AJAX-based payment flows.

## Prerequisites

| Requirement   | Minimum version                              |
| ------------- | -------------------------------------------- |
| WordPress     | 6.0                                          |
| PHP           | 8.1                                          |
| Simiz account | [Create one free](https://simiz.io/register) |

<Warning>
  This plugin is for WordPress sites **without** WooCommerce. If you use WooCommerce, see the [WooCommerce integration](/en/integrations/woocommerce) instead.
</Warning>

## Installation

<Steps>
  <Step title="Download the plugin">
    Download the Simiz for WordPress plugin from your [Simiz dashboard](https://dashboard.simiz.io/plugins).

    You'll receive a `.zip` file named `simiz-wordpress.zip`.
  </Step>

  <Step title="Upload and activate">
    1. Go to your WordPress admin panel
    2. Navigate to **Plugins > Add New > Upload Plugin**
    3. Select the `simiz-wordpress.zip` file and click **Install Now**
    4. Click **Activate Plugin**
  </Step>

  <Step title="Configure the plugin">
    1. Go to **Settings > Simiz Payments**
    2. Enter your API key and webhook secret
    3. Select your environment (Sandbox or Production)
    4. Save your settings
  </Step>
</Steps>

## Configuration

Navigate to **Settings > Simiz Payments** in your WordPress admin.

| Setting            | Description                                     |
| ------------------ | ----------------------------------------------- |
| **Environment**    | Sandbox or Production                           |
| **API Key**        | Your Simiz API key for the selected environment |
| **Webhook Secret** | Webhook signing secret from the Simiz dashboard |
| **Success URL**    | Page to redirect to after successful payment    |
| **Cancel URL**     | Page to redirect to after cancelled payment     |

### Webhook URL

The plugin registers a webhook endpoint at:

```
https://your-site.com/wp-json/simiz/v1/webhook
```

Copy this URL into your Simiz dashboard under **Settings > Webhooks**.

## Shortcode usage

Embed a payment button or form anywhere on your site using the `[simiz_payment]` shortcode.

### Basic usage

```
[simiz_payment amount="5000" currency="XAF"]
```

### Full parameters

| Parameter     | Description                                  | Default            |
| ------------- | -------------------------------------------- | ------------------ |
| `amount`      | Payment amount in the smallest currency unit | Required           |
| `currency`    | Currency code (XAF, XOF, etc.)               | Store default      |
| `description` | Payment description                          | "Payment"          |
| `button_text` | Text displayed on the pay button             | "Pay Now"          |
| `success_url` | Redirect URL after success                   | Plugin default     |
| `cancel_url`  | Redirect URL after cancel                    | Plugin default     |
| `class`       | CSS class for the button                     | `simiz-pay-button` |

### Examples

```
[simiz_payment amount="10000" currency="XAF" description="Event ticket" button_text="Buy Ticket"]

[simiz_payment amount="25000" currency="XOF" description="Consultation fee"]
```

## REST API

For custom AJAX-based payments, the plugin exposes a REST endpoint:

```
POST /wp-json/simiz/v1/create-payment
```

### Request body

```json
{
  "amount": 5000,
  "currency": "XAF",
  "description": "Custom payment",
  "customer_email": "customer@example.com",
  "metadata": {
    "order_id": "12345"
  }
}
```

### Response

```json
{
  "transaction_id": "txn_xxxxxxxxxxxx",
  "checkout_url": "https://checkout.simiz.io/txn_xxxxxxxxxxxx",
  "status": "created"
}
```

## Supported payment methods

| Method           | Type         | Status      |
| ---------------- | ------------ | ----------- |
| Orange Money     | Mobile Money | Available   |
| MTN Mobile Money | Mobile Money | Available   |
| Wave             | Mobile Money | Coming Soon |
| Moov Money       | Mobile Money | Coming Soon |

## Supported currencies

| Currency                  | Code | Countries                                                                   |
| ------------------------- | ---- | --------------------------------------------------------------------------- |
| Central African CFA Franc | XAF  | Cameroon, Central African Republic, Chad, Congo, Equatorial Guinea, Gabon   |
| West African CFA Franc    | XOF  | Benin, Burkina Faso, Ivory Coast, Guinea-Bissau, Mali, Niger, Senegal, Togo |

## Webhooks

| Event                   | Action                                                      |
| ----------------------- | ----------------------------------------------------------- |
| `transaction.created`   | Payment recorded as **Pending**                             |
| `transaction.completed` | Payment marked as **Completed**, success callback triggered |
| `transaction.failed`    | Payment marked as **Failed**                                |
| `transaction.cancelled` | Payment marked as **Cancelled**                             |
| `transaction.expired`   | Payment marked as **Expired**                               |
| `refund.created`        | Refund initiated                                            |
| `refund.completed`      | Refund recorded                                             |
| `refund.failed`         | Refund failure logged                                       |

## Test mode

1. Go to **Settings > Simiz Payments**
2. Set the environment to **Sandbox**
3. Enter your sandbox API key (`smz_test_*`)
4. Save changes

The plugin connects to `sandbox.api.simiz.io` and no real money is charged.

<Card title="Full sandbox documentation" icon="flask" href="/en/guides/sandbox-testing">
  See all test numbers and scenarios in the Sandbox Testing guide.
</Card>

## Troubleshooting

<Tabs>
  <Tab title="Shortcode not rendering">
    **Solutions:**

    * Ensure the plugin is activated
    * Check that the shortcode parameters are valid
    * Verify there are no JavaScript errors on the page
    * Clear your WordPress cache
  </Tab>

  <Tab title="REST API returns 401">
    **Solutions:**

    * Verify your API key is correct
    * Check that the WordPress REST API is not blocked by a security plugin
    * Ensure permalinks are set to a non-plain structure
  </Tab>

  <Tab title="Webhooks not received">
    **Solutions:**

    * Verify the webhook URL in the Simiz dashboard
    * Ensure your site is publicly accessible
    * Check that no security plugin is blocking POST requests to the REST API
  </Tab>
</Tabs>

## Next steps

<CardGroup cols={2}>
  <Card title="WooCommerce Integration" icon="cart-shopping" href="/en/integrations/woocommerce">
    Need e-commerce? Use the WooCommerce plugin instead.
  </Card>

  <Card title="Webhook Verification" icon="shield-check" href="/en/core-concepts/webhooks/overview">
    Learn about webhook configuration and signature verification.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference">
    Explore the full Simiz API.
  </Card>

  <Card title="Support" icon="headset" href="https://support.simiz.io">
    Need help? Contact our support team.
  </Card>
</CardGroup>

## Changelog

<Accordion title="Version history" defaultOpen>
  | Version | Date       | Changes                                                    |
  | ------- | ---------- | ---------------------------------------------------------- |
  | `1.0.0` | 2026-03-01 | Initial release — mobile money payments, webhooks, sandbox |
</Accordion>
