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

# Direct Mobile Money Charge

> Directly collect payment from a mobile money wallet.

The Direct Charge API allows you to initiate a mobile money collection without needing a hosted checkout page. This is ideal for mobile apps or custom checkout flows where you handle the user interface.

### Authentication

Include your **Secret Key** in the `Authorization` header as a Bearer token.

### Request Body

#### Customer Information

<ParamField body="firstname" type="string" required>
  Customer's first name.
</ParamField>

<ParamField body="lastname" type="string" required>
  Customer's last name.
</ParamField>

<ParamField body="email" type="string" required>
  Customer's email address for notifications and receipts.
</ParamField>

<ParamField body="phone" type="string" required>
  Customer's phone number with country prefix (e.g., `237612345678`).
</ParamField>

#### Payment Details

<ParamField body="amount" type="string" required>
  Amount in smallest currency unit (e.g., "5000" for 5000 XAF).
</ParamField>

<ParamField body="currency" type="string" default="XAF">
  The currency code. Currently supports `XAF` (Cameroon, etc.) and `XOF` (Senegal, Ivory Coast, etc.).
</ParamField>

<ParamField body="country" type="string">
  ISO 2-letter country code (e.g., `CM`, `CI`, `SN`, `GH`, `KE`).

  **Recommended to omit**: If omitted, the system automatically detects the country based on the phone number prefix. Only provide if you want to enforce a specific country.
</ParamField>

<ParamField body="network" type="string">
  Mobile network operator code. Common values: `MTN`, `ORANGE`, `AIRTEL`, `MPESA`, `VODAFONE`.

  **Recommended to omit**: If omitted, the system automatically detects the operator based on the phone number pattern.
</ParamField>

<ParamField body="description" type="string" required>
  Brief description of the charge, displayed to the customer.
</ParamField>

<ParamField body="merchant_reference" type="string" required>
  Your unique order reference for internal tracking.
</ParamField>

#### Configuration

<ParamField body="fee_bearer" type="string" default="merchant">
  Who pays the transaction fees:

  * `merchant`: Commission is deducted from your balance.
  * `customer`: Fee is added to the amount the customer pays.
</ParamField>

<ParamField body="redirect_url" type="string">
  The URL to redirect the customer to after payment completion (if applicable).
</ParamField>

<ParamField body="metadata" type="object">
  Custom JSON object for storing your own data with this transaction.
</ParamField>

### Response

<ResponseField name="id" type="string">
  Unique identifier for the transaction.
</ResponseField>

<ResponseField name="payment_ref" type="string">
  PaveWay's unique public reference for this transaction (e.g., `PWG_...`).
</ResponseField>

<ResponseField name="status" type="string">
  Current status of the charge. Usually `pending` immediately after request, until the user processes the USSD prompt.
</ResponseField>

<ResponseField name="amount" type="string">
  The amount being charged.
</ResponseField>

<ResponseField name="currency" type="string">
  The currency code.
</ResponseField>

<ResponseField name="network" type="string">
  The detected mobile network operator (e.g., `MTN`, `ORANGE`).
</ResponseField>

<ResponseField name="message" type="string">
  A descriptive message for the user, usually instructing them to check their phone.
</ResponseField>

<ResponseExample>
  ```json theme={null}
  {
    "status_code": 200,
    "response_type": "success",
    "data": {
      "id": "658dc...",
      "payment_ref": "PWG_abc123",
      "status": "pending",
      "amount": "5000",
      "currency": "XAF",
      "payment_method": "mobile_money_franco",
      "network": "MTN",
      "message": "Payment processing. Please check your phone for the USSD prompt."
    }
  }
  ```
</ResponseExample>
