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
donations scope.Create and publish a campaign
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.
curl https://api.watenga.africa/v1/merchant/donations/contributions/list \
-H "Authorization: Bearer $WATENGA_SECRET_KEY" \
-H "Watenga-Version: 2026-10-29"Webhook events
| Event | When |
|---|---|
donation.received | A 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).