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.