Skip to main content
Monigo sends webhooks to your server when important events occur — invoice paid, payout completed, customer wallet topped up, usage period stats, and more.

Setting up a webhook endpoint

  1. Go to Dashboard → Webhooks → Add Endpoint
  2. Enter your HTTPS URL
  3. Select the event types you want to receive
  4. Copy the signing secret

Verifying webhook signatures

Every Monigo webhook includes a X-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 as POST 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.

Testing webhooks locally

use a tunnelling tool like ngrok and register the public URL in your dashboard.