Developers

Recurring payments for ViPPi customers.

Offer subscriptions and instalments. Each customer approves the mandate in their wallet, and you get a webhook for every payment.

POST /v1/mandates
{
  "customer": "+260971234567",
  "amount": { "value": "150.00", "currency": "ZMW" },
  "interval": "monthly",
  "description": "Gym membership"
}

→ 201  { "id": "mdt_8Q2K", "status": "pending_approval" }
→ webhook  mandate.approved
→ webhook  payment.succeeded

ViPPi APIs

Two APIs, one set of keys, one sandbox.

  • Private preview

    Recurring Payments API

    Mandates, schedules, retries and webhooks for subscriptions and instalments. Covered on this page.

    How mandates work
  • Coming soon

    Payments API

    Checkout sessions, payment links and full or partial refunds for online payments.

    See Online Payments

How mandates work

  1. Create a mandate

    Send the amount, interval and description for a customer’s phone number.

  2. The customer approves

    They see it in their wallet and approve it with their PIN.

  3. You get paid on schedule

    Each payment triggers a signed webhook to your server.

What’s in the API

  • REST + OAuth 2.0

    JSON over HTTPS with client credentials.

  • Signed webhooks

    For mandate approval, payments, failures and cancellations.

  • Test environment

    Test wallets and simulated approvals.

  • Cancel and pause

    Customers stay in control. You get notified of every change.

The API is in private preview. Request access and we’ll contact you.

Running a business rather than writing code? See what recurring payments do for you. Recurring payments for business

Build with ViPPi

Tell us what you’re building and we’ll set up a test account.