---
updatedAt: 2026-10-19T10:09:02.000Z
agentTools:
  projectIndex: https://developer.flutterwave.com/llms.txt
---

# Zambia Mobile Money

Learn about Mobile Money support in Zambia

This payment method enables you to collect payments from Zambian customers using mobile money. It is available to all Zambian merchants by default.

> 📘 Approval Required
>
> For non-Zambian merchants, Kindly request this feature on your account via [email](mailto:hi@flutterwavego.com) .

<br />

# The Process

To successfully collect a ZMW mobile money payment, you'll need to take these steps:

1. Initiate the payment using the customer's information (`phone_number`, `network`, `fullname` and `email`) and transaction details like the amount and unique reference.
2. Prompt the customer to authorize the payment on their mobile devices.
3. Receive callbacks or webhooks and notify the customer about the final transaction status.

<br />

## Initiating the Payment

To create a mobile money charge for a customer in Zambia, you'll need the customer’s valid `phone_number` along with the following required parameters:

* `amount`
* `currency`
* `network`
* `email`
* `tx_ref` (Unique transaction reference)

You can also specify additional details, such as the customer's `fullname` and custom `meta` information. For more information, see the [endpoint documentation](/v3.0.0/reference/charge-via-zambia-mobile-money).

```curl cURL
curl --request POST \
   --url https://api.flutterwave.com/v3/charges?type=mobile_money_zambia \
   --header 'Authorization: Bearer YOUR_SECRET_KEY' \
   --header 'content-type: application/json' \
   --data '{
     "phone_number": "054709929220",
     "network": "MTN",
     "amount": 1500,
     "currency": "ZMW",
     "fullname": "John Doe",
     "email": "jdoe@example.com",
     "tx_ref": "zb_ghsdTHaHcMB"
}

```

<br />

## Handling the Response

The charge response returns a `meta.authorization` object containing the details needed to complete the transaction.

One key detail is the `meta.authorization.redirect` URL. You’ll need to redirect the customer to this URL, where they can authorize the payment before the transaction is finalized.

```json Success
{
    "status": "success",
    "message": "Charge initiated",
    "meta": {
        "authorization": {
            "redirect": "https://checkout-v2.dev-flutterwave.com/captcha/verify/lang-en/150971:44fc7cc57f600b5467a5f2719cc4cece",
            "mode": "redirect"
        }
    }
}

```

## Completing the Payment

To complete a payment, redirect the customer to the payment confirmation URL returned in the payment initiation response. Follow the steps below to confirm the transaction.

### Payment Confirmation Steps

1. After the payment is initiated, the API returns a payment confirmation URL.
2. Redirect the customer to this URL.
3. The customer waits on the confirmation page while the transaction is processed.
4. The final transaction status is displayed once processing is complete.

> 🧪 Testing Tip
>
> In [Test Mode](/v3.0.0/docs/testing#mobile-money), Zambian mobile money payments are automatically authorized after a few seconds.

When the payment is completed, we'll send you a webhook notification. Here's what the payload looks like:

```json Webhook
{
  "event": "charge.completed",
  "data": {
    "id": 8422326,
    "tx_ref": "zm_4353dfdgfGTjsfddfgd",
    "flw_ref": "flwm3s4m0c1741001653154",
    "device_fingerprint": "N/A",
    "amount": 100,
    "currency": "ZMW",
    "charged_amount": 100,
    "app_fee": 5,
    "merchant_fee": 0,
    "processor_response": "Transaction Successful",
    "auth_model": "MOBILEMONEY",
    "ip": "52.209.154.143",
    "narration": "ZWM Employee #2",
    "status": "successful",
    "payment_type": "mobilemoneyzm",
    "created_at": "2025-03-03T11:34:12.000Z",
    "account_id": 43380,
    "customer": {
      "id": 2596836,
      "name": "John Doe",
      "phone_number": "054709929220",
      "email": "user@example.com",
      "created_at": "2025-03-03T11:32:56.000Z"
    }
  },
  "event.type": "MOBILEMONEYZM_TRANSACTION"
}

```

In your webhook handler, you can then verify the payment and credit your customers with whatever they paid for. See our guide to [transaction verification](/v3.0.0/docs/transaction-verification-1) for details.