What are webhooks?
FossaPay sends an HTTPPOST request to your configured webhook URL when an event occurs. Webhooks let your server react to checkout payments, deposits, payouts, and other asynchronous activity without continuously polling the API.
Webhook envelope
Delivery headers
Verify signatures
FossaPay currently signs the serializeddata object—not the full webhook envelope—with your webhook secret:
Node.js example
Python example
Safe processing
Acknowledge quickly
Acknowledge quickly
Return an HTTP
2xx response as soon as the signature and basic envelope are valid. Move database updates, emails, and third-party calls to an asynchronous job.Handle duplicate deliveries
Handle duplicate deliveries
Store
eventId with a unique database constraint. If the event has already been processed, return 2xx without repeating fulfillment or crediting.Do not depend on delivery order
Do not depend on delivery order
Use the event’s checkout or transaction identifiers and current status. Your handler should tolerate retries and events arriving later than expected.
Reconcile through the API
Reconcile through the API
If a checkout or payout webhook is delayed, retrieve the resource by its FossaPay ID or your merchant reference before taking action.
Expect retries
Expect retries
Failed webhook deliveries are retried up to five times.
X-Retry-Count is included on retries.Local testing
FossaPay cannot deliver webhooks directly tolocalhost. Expose your local server through a secure HTTPS tunnel and configure the public URL in the dashboard.
Next steps
Webhook Events
View event names and payloads
Checkout Guide
Integrate one-time NGN checkouts
Payouts Guide
Send from your business master wallet

