For M&E, research and NGO teams
Pay respondents airtime the moment they finish.
Set a campaign budget. We send the airtime on every completed response — with the controls research teams need: one payout per phone, an IP throttle, a network match, and a per-campaign payout report your funder will accept.
Two ways to pay out
Pick whichever fits your survey platform. Most teams use both.
Option 1
Server webhook
KoboToolbox · SurveyCTO · Google Forms · your own stack.
Your survey platform POSTs to your campaign's payouts endpoint with the respondent's
phone and a unique completion id. We verify the HMAC signature, debit the campaign
budget, and send the airtime. Idempotent on completion_id, so retries
are safe.
$ curl -X POST https://jusa.localhost.co.zw/api/v1/campaigns/12/payouts \ -H "X-Campaign-Signature: sha256=<hex>" \ -H "Content-Type: application/json" \ -d '{ "completion_id": "kobo:5f3b2a1e", "phone": "0772279099", "metadata": {"enumerator": "TM"} }' # → { "status": "success", "amount": "1.00", "currency": "USD", "order_ref": "a41cbde2…" }
Option 2
One-time voucher links
For when the platform can't capture a phone number.
Mint a pool of voucher tokens before the survey starts. Put
https://jusa.localhost.co.zw/campaigns/claim/<token> on the
"thank you" page. Respondents enter their own phone on the public claim page and we
send the airtime. Each token works once.
Use this for Google Forms, printed paper surveys, or enumerator devices on unstable internet — anywhere the phone number can't reach us reliably.
Fraud controls, on by default
Survey incentive fraud is real. We block what we can, flag what we can't, and give you the export to follow up on the rest.
- One payout per phone per campaign — duplicate attempts are recorded, not paid.
- Network match — restrict a campaign to Econet, NetOne or Telecel only.
- IP throttle — a payout ceiling per hour from one IP; anything over it goes to the review queue.
- Auto-stop when the campaign budget is spent. No surprise overspend.
- Held-for-review queue for anything throttled or suspicious.
Setting up a campaign
Step 1
Top up the wallet. Pay with EcoCash, OneMoney or card. Every payout comes out of that balance.
Step 2
Create the campaign in the dashboard: budget, payout amount per respondent, and the rules above.
Step 3
Hook it up. Configure the webhook in your survey platform, or mint a batch of vouchers.
Step 4
Watch the dashboard. Spend so far, recent payouts, and anything flagged as a duplicate.
Step 5
Export the report. A CSV a funder will accept: respondent count, total paid, breakdown by network.
What happens when one fails
If the network rejects a recharge, the campaign budget is refunded automatically and the payout shows as failed with the reason. If the network takes a moment to confirm, we keep checking every couple of minutes and settle it either way — a respondent is never paid twice for one completion.