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
-
Create a mandate
Send the amount, interval and description for a customer’s phone number.
-
The customer approves
They see it in their wallet and approve it with their PIN.
-
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.