Donations

Raise money with a donation campaign page, one-off or monthly gifts, receipts and supporter records.

A campaign is a draft until you publish it; changes to a live campaign are drafted and published again. Gifts, supporters, receipts and statements can be read and exported. The SDKs do not wrap these endpoints yet: call them over HTTP with your key.

Keys and scopes

A secret key, or a restricted key with the donations scope.

Create and publish a campaign

bash
curl -X POST https://api.watenga.africa/v1/merchant/donations \
  -H "Authorization: Bearer $WATENGA_SECRET_KEY" \
  -H "Watenga-Version: 2026-10-29" \
  -H "Content-Type: application/json" \
  -d '{"name":"School roof","currency":"USD","goal_amount":"5000.00","suggested_amounts":["10.00","25.00","50.00"],"allow_recurring":true}'

curl -X POST https://api.watenga.africa/v1/merchant/donations/{id}/publish \
  -H "Authorization: Bearer $WATENGA_SECRET_KEY" \
  -H "Watenga-Version: 2026-10-29"

Read the gifts

The fee a donor chose to cover is shown with the gift and is never part of the gift itself.

bash
curl https://api.watenga.africa/v1/merchant/donations/contributions/list \
  -H "Authorization: Bearer $WATENGA_SECRET_KEY" \
  -H "Watenga-Version: 2026-10-29"

Webhook events

EventWhen
donation.receivedA gift was paid

Each event carries the object in data.object; verify the signature first (Webhooks).

Test it

Use a test secret key (sk_test_…): it never moves money. Pay with the test cards and wallet numbers, and receive the webhooks on your machine with watenga listen --forward-to http://localhost:3000/webhooks (CLI).