Webhook Source IPs
If you restrict inbound traffic by IP address, allowlist the following Payfonte webhook source IPs for each environment.Why Webhooks Matter
Real-Time Updates
Get payment updates without polling every transaction.
Reliable Completion
Confirm final status (
success or failed) before fulfilling orders.Operational Safety
Handle retries with idempotent processing to avoid duplicate fulfillment.
Webhook Payload Fields
Sample payload:
payment.completed
Signature Verification (Required)
Every webhook includes:- Header:
x-webhook-signature - Value:
sha512HMAC digest of raw request body, signed with yourclient-secret
client-secret from Settings -> Security -> API Keys and Webhooks.
Idempotent Processing Pattern
1
Acknowledge fast
Return HTTP
200 quickly to prevent unnecessary retries.2
Check duplicates
Use
reference + status (or a delivery identifier if available) to detect
already-processed events.3
Verify transaction when needed
For critical flows, verify payment status from your backend before final
fulfillment.
4
Apply state transition safely
Ensure business actions (for example order fulfillment) run once per final
success.
Webhook URL Priority
Payfonte uses webhook URLs in this order:- Webhook URL passed in the checkout/direct-charge request (
webhook) - Webhook URL configured on the provider integration
- Webhook URL configured in dashboard settings
Common Issues
Related Docs
Standard Checkout
Redirect flow with webhook completion.
Direct Charge API
Direct charge flow and action handling.
Authorization
Credential and header requirements.