Admin guide
Platform integrations
Configure real messaging and consented WAAFI/EVC subscription collection. Always start in sandbox and never store credentials in source control.
API-free payments
- 1In Admin → Integrations → API-free payments, enter an EVC Plus number, ZAAD number, bank details, or cash instructions.
- 2Set the shop's agreed amount, use collection day 31 for month end, and leave automatic WAAFI collection off.
- 3The daily billing job sends a private announcement with the amount and payment instructions before it is due.
- 4After checking that funds arrived, use Admin → Payments → Record Payment and save the transaction reference. This advances the subscription and closes its reminder.
WhatsApp Cloud API
- 1Create a Meta app with WhatsApp and connect your WhatsApp Business Account.
- 2Create a permanent system-user access token and copy the Phone number ID.
- 3Enter the token, number ID, test recipient, and supported Graph API version in Admin → Integrations.
- 4Save, enable, and use Test. Approved templates may be required for business-initiated production messages.
Telegram Bot
- 1Create a bot with @BotFather and keep its token secret.
- 2Have the recipient message the bot first, or add it to the target group.
- 3Enter the token and numeric chat ID, then save and test.
- 4For inbound webhooks, configure Telegram's secret token and verify its request header.
WAAFI / EVC Plus
- 1Register a WaafiPay merchant and obtain sandbox Merchant UID, API user ID, API key, and base URL.
- 2Configure and enable WAAFI in Admin → Integrations.
- 3Set each shop's agreed monthly amount in Admin → Payments.
- 4Use the green phone action, enter the consented payer number and period, confirm authorization, then request payment.
- 5Only an APPROVED result is recorded as paid; references are idempotent to prevent duplicate monthly charges.
Automatic monthly collection
- 1Edit a shop's agreed amount, add the consented payer phone and day 1–31 (use 31 for month end), then enable automatic collection.
- 2Set CRON_SECRET in production.
- 3Schedule a daily POST to /api/cron/waafi-collections with Authorization: Bearer <CRON_SECRET>.
- 4The job posts a targeted reminder announcement three days before collection and attempts each opted-in subscription at most once per billing month. Shops with no agreed amount remain free.
WAAFI webhook
- 1Register https://YOUR_DOMAIN/api/webhooks/waafi with WaafiPay.
- 2Save the returned HMAC secret in the WAAFI configuration.
- 3The endpoint verifies signature, timestamp, reference, amount, and currency before recording approval.
Production safety
Only charge a number whose owner agreed to the amount and billing period. Keep evidence of recurring authorization and provide a clear cancellation process.