MonoPay API Documentation

Explore our REST API endpoints below. Expand an item to view request parameters, sample payloads and responses. Use the sandbox to experiment with simulated calls.

Create a new payment request for a mobile wallet, EFT or card. The API returns a payment ID and status.

Parameters
FieldTypeRequiredDescription
amountdecimalYesAmount to charge the customer.
currencystringYesThree‑letter ISO currency (e.g., LSL).
payment_methodstringYesmpesa, ecocash, eft or card.
customer.phonestringYesMSISDN in international format.
customer.namestringNoCustomer's full name.
referencestringNoYour internal reference for reconciliation.
callback_urlstringNoURL to receive webhook notifications.
merchant_idstringYesYour unique merchant identifier issued by MonoPay.
Sample Request
{
  "amount": 50.00,
  "currency": "LSL",
  "payment_method": "ecocash",
  "customer": {
    "phone": "+26650111234"
  },
  "reference": "ORDER-123",
  "callback_url": "https://yourapp.com/webhooks/monopay"
}
Sample Response
{
  "id": "pay_7F3HABCD123",
  "status": "pending",
  "amount": 50.00,
  "currency": "LSL",
  "payment_method": "ecocash",
  "merchant_id": "MERCHANT-001",
  "created_at": "2025-09-24T08:30:00Z"
}

Retrieve the details and current status of a specific payment using its ID.

Parameters
FieldTypeRequiredDescription
idstringYesThe identifier returned when creating the payment.
Sample Response
{
  "id": "pay_7F3HABCD123",
  "status": "success",
  "amount": 50.00,
  "currency": "LSL",
  "payment_method": "ecocash",
  "created_at": "2025-09-24T08:30:00Z",
  "completed_at": "2025-09-24T08:31:12Z"
}

Retrieve a list of mobile wallets and banks currently supported by MonoPay.

Sample Response
[
  {
    "code": "mpesa",
    "name": "M‑Pesa Lesotho",
    "country": "Lesotho"
  },
  {
    "code": "ecocash",
    "name": "EcoCash Lesotho",
    "country": "Lesotho"
  },
  {
    "code": "eft",
    "name": "Lesotho EFT",
    "country": "Lesotho"
  }
]

Retrieve the current balance of a user’s wallet for a given payment method. Not all providers support this operation.

Parameters
FieldTypeRequiredDescription
methodstringYesThe wallet code (e.g., mpesa, ecocash, eft).
accountIdstringYesThe user’s phone or account identifier.
Sample Response
{
  "method": "mpesa",
  "accountId": "+26650111234",
  "balance": 1234.56
}

Sandbox

Use the form below to simulate API calls. The requests are processed locally and return sample data.