Lipa mdogo mdogo for tours, flights, events

Reserve now.
Pay gradually.
Escrow protected.

Ahadi Pay sits between your checkout and your customer's wallet. Installment reservations — with automatic escrow, M-Pesa collection, and guaranteed refunds — in one API.

Platform fee

5%

Refund trigger

Automatic

Integration time

~30 min

Payment rail

M-Pesa + Card

How it works

Four steps to installment payments

01

Register and get keys

Sign up, create an app, get test API keys immediately. No approval needed to start building.

02

Register your product

Call POST /products with price, deposit percent, and refund policy. Get back a product_id. Store it on your item.

03

Add Ahadi Pay at checkout

Drop in the widget script. Call AhadiPay.open() when the customer selects installment payment. The widget handles the rest.

04

React to webhooks

Listen on your webhook endpoint. Create locked tickets on deposit, unlock on full payment, handle cancellations automatically.

Integration

Register a product,
get a product ID.
That's the integration.

Your event, flight, or hotel lives in your database. We never store your domain data. You pass us price, deposit percent, and refund policy. We give back a product_id. That single ID is the bridge between your system and ours.

See full API reference →
import requests

# Register a ticket type as a product
product = requests.post(
    "https://api.loniwacapital.com/ahadipay/v1/products",
    headers={"X-Api-Key": "sk_live_..."},
    json={
        "name": "VIP Ticket — Jazz Festival",
        "industry_type": "events",
        "price_cents": 800000,
        "deposit_percent": 40,
        "max_reservations": 200,
        "refund_policy": {
            "deadline_minutes": 43200,
            "refundable_percent": 80,
            "release_percent": 15,
        },
    }
).json()

# Store product["id"] on your ticket type
print(product["id"])  # prod_8f3k2jx

Platform

Everything handled for you

Escrow-backed installments

Every payment is split into protected and released portions. Customers get guaranteed refunds on cancellation. Merchants get immediate partial release.

Plug in with three lines

One script tag. One API call per product. One webhook endpoint. Your existing checkout stays untouched — Ahadi Pay appears as an additional payment method.

M-Pesa native

STK push fires the moment a customer reserves. The entire installment lifecycle runs over M-Pesa. No card infrastructure needed.

Automatic money movement

Every payment is split, held, and released automatically. On full payment, escrow releases instantly. On cancellation, refund fires without human intervention.

Any reservation-based industry

Events, flights, hotels, training courses, travel packages. If money changes hands before a future service, Ahadi Pay fits.

Real-time webhooks

payment.received, reservation.cancelled, reservation.expired. HMAC-signed. Retry with exponential backoff. You react, we handle the rest.

Industries

Any industry. One integration.

Events & ticketing

Jazz festivals, conferences, comedy shows

Training & courses

Bootcamps, certifications, workshops

Travel packages

Safari packages, holiday bundles

Flights

Advance seat reservations

Hotels

Future-date room reservations

Any future delivery

If you deliver later, Ahadi Pay fits

Escrow model

Every payment, split three ways

On a KES 8,000 ticket with 80% refundable and 15% release — every payment is split automatically.

80%

Held in escrow

15%

Released to merchant

5%

Platform fee

Start building in minutes.
Go live when ready.

Test keys are instant. Live keys require a webhook URL and one click. No approval process. No waiting.