Learn how to set up and configure webhooks to receive real-time payment notifications from EximPe. This guide covers webhook setup, testing, and best practices for integration.
Webhooks are real-time server-to-server (S2S) notifications that EximPe sends to your backend when important events occur. Unlike browser redirects that can be interrupted, webhooks ensure reliable delivery of payment status updates directly to your server.
Notifications sent directly to your server with automatic retries
Instant notification of payment events as they happen
Works even if customer closes the browser or loses connection
Encrypted and signed for authenticity and data integrity
EximPe sends webhooks for these key events:
When: Customer completes payment
Use Case: Update order status, send confirmation
When: Payment attempt fails
Use Case: Retry payment, notify customer
When: Refund is processed
Use Case: Update inventory, notify customer
When: Merchant account activated
Use Case: Enable payment collection
When: Funds transferred to merchant
Use Case: Update accounting records
Ensure your server has a public HTTPS URL accessible from the internet, a POST endpoint that can receive webhook data, 200 OK response capability, and support for application/json
.
Dashboard Configuration (Recommended)
Manual Setup
Log all incoming requests on your server to monitor webhook delivery
Make a test payment in sandbox environment to trigger webhooks
Verify webhook receipt and processing in your logs
Ensure your endpoint returns 200 OK response codes
EximPe signs each webhook with an HMAC signature to ensure authenticity:
Extract the signature
Extract the signature from the X-Webhook-Signature header in the request
Get your API key
Get your Encryption key
Recreate the signature
Recreate the signature using HMAC-SHA256:
json.dumps()
with sort_keys=True
and separators=(",", ":")
to match EximPe’s formatCompare signatures
Compare signatures - they should match exactly
EximPe implements an automatic retry mechanism to ensure reliable webhook delivery. If your endpoint doesn’t respond with a 200 OK
status code, we’ll retry the webhook delivery according to the following schedule:
Retry Schedule: 1st attempt is immediate, followed by retries at 1 minute, 5 minutes, 15 minutes, and finally 1 hour. After 5 failed attempts, EximPe will stop retrying.
Security Best Practices:
Next Steps: