Setting up a webhook endpoint
- Go to Dashboard → Webhooks → Add Endpoint
- Enter your HTTPS URL
- Select the event types you want to receive
- Copy the signing secret
Verifying webhook signatures
Every Monigo webhook includes aX-Monigo-Signature header. Verify it before processing the request.
Event types
Payment
Invoice
Customer
Usage — org level
Fired once per organization per period (daily at 08:00 UTC, weekly on Mondays, monthly on the 1st).Usage — per customer
Fired once per customer that had non-zero activity in the period. Sent at the same time as the org-level events.Subscription
Event payload reference
All webhooks are delivered asPOST requests with Content-Type: application/json. The body is a JSON object whose shape depends on the event type.
payment.success / payment.failed
The payload mirrors the raw event received from your payment provider (Paystack, Flutterwave, or Monnify).
payout.success / payout.failed / payout.reversed
The payload mirrors the raw payout event from your payment provider.
invoice.finalized
invoice.paid
invoice.voided
customer.wallet.topped_up
customer.payment_method.expired / customer.payment_method.expiring_soon
usage.daily
usage.weekly
usage.monthly
customer.usage.daily / customer.usage.weekly / customer.usage.monthly
subscription.suspended
subscription.usage_cap_reached
Fired the first time a customer’s usage crosses the included_units threshold on an overage or cap-priced plan within the current billing period. Fires at most once per subscription per billing period.
Retries
If your endpoint returns a non-2xx status, Monigo retries up to 5 times with exponential backoff:
After 5 failed attempts, the delivery is marked as
failed and no further retries occur. You can manually retry from the dashboard.

