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

# Vodacom M-Pesa (DRC)

> What Vodacom M-Pesa supports today, and why it cannot be configured through Settings → Payments.

# Vodacom M-Pesa (DRC)

`VODACOM_MPESA` collects through Vodacom's M-Pesa Open API for the Democratic
Republic of the Congo: a customer-to-business request is pushed to the payer's
M-Pesa wallet, and the payer approves it on their handset.

The backend country catalog offers it for the **Democratic Republic of the
Congo (CD)** only.

<Warning>
  **This version has no credential form for Vodacom M-Pesa.** The gateway
  appears in the country catalog, but **Settings → Payments** renders no fields
  for it, so there is no supported way to enter or verify its credentials.

  Do not select Vodacom M-Pesa for an account that is not already running on it.
  In DR Congo, [PawaPay](/billing/payment-gateways/pawapay) and
  [Orange Money](/billing/payment-gateways/orange-money) are both configurable
  today.

  If an existing account already runs on it, contact support before changing
  anything.
</Warning>

## What the integration needs

Documented for support and upgrade planning, not as an instruction to set these
another way.

| Value         | Notes                                                                  |
| ------------- | ---------------------------------------------------------------------- |
| API key       | Secret. From the Vodacom M-Pesa Open API portal.                       |
| Public key    | Handled as a secret. Used to encrypt the session key on every request. |
| Merchant code | The short code money is collected into.                                |
| Currency      | Optional. Resolves to `CDF` unless `USD` is explicitly configured.     |

Requests go to Vodacom's production Open API host for DRC. There is no sandbox
switch — a session key is fetched, encrypted with the public key, and used to
authorize each request.

## How a payment would complete

<Steps>
  <Step title="Session">
    Centipid Billing fetches a session key and encrypts it with the configured
    public key.
  </Step>

  <Step title="Request">
    A customer-to-business payment is pushed to the payer's normalized DRC
    M-Pesa number for the merchant code.
  </Step>

  <Step title="Authorization">
    The payer approves the prompt on their handset.
  </Step>

  <Step title="Confirmation">
    Vodacom's response description is recorded against the transaction, and the
    payment settled from the outcome.
  </Step>
</Steps>

## Troubleshooting

| Symptom                                                                            | What it means                                                | What to do                                                         |
| ---------------------------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------ |
| Vodacom M-Pesa has no fields in Settings → Payments                                | Expected — there is no credential component in this version. | Use PawaPay or Orange Money, or contact support.                   |
| *"Vodacom M-Pesa credentials are incomplete. Please update the payment settings."* | The API key, public key, or merchant code is missing.        | Contact support. They cannot be entered through the interface.     |
| *"Unable to authenticate with Vodacom M-Pesa. Please try again."*                  | The session key could not be obtained.                       | Contact support — a rotated API key is the usual cause.            |
| *"Vodacom M-Pesa session encryption failed."*                                      | The stored public key could not encrypt the session key.     | Contact support; the public key is malformed or truncated.         |
| *"Unable to connect to Vodacom M-Pesa. Please try again later."*                   | The request could not connect.                               | Check outbound connectivity from the application host, then retry. |

For the gateways that are configurable today, see
[Payment gateways](/billing/payment-gateways/index), and for their fields, the
[credential reference](/billing/payment-gateways/credentials-reference).
