Payfonte sends webhook events when disbursement status changes (for exampleDocumentation Index
Fetch the complete documentation index at: https://docs.payfonte.com/llms.txt
Use this file to discover all available pages before exploring further.
processing, success, failed).
Use webhooks as your primary asynchronous disbursement update channel.
Webhook Source IPs
If you restrict inbound traffic by IP address, allowlist the following Payfonte webhook source IPs for each environment.| Environment | Source IPs |
|---|---|
| Production | 49.13.133.127, 49.13.229.61, 194.32.79.135 |
| Sandbox | 49.12.224.228, 49.13.224.113 |
Payload Fields
| Field | Description |
|---|---|
event | Event type (for example disbursement.status) |
clientId | Your Payfonte client ID |
data.status | disbursement status (processing, success, failed) |
data.statusDescription | Provider/platform status detail |
data.reference | Payfonte disbursement reference |
data.externalReference | Merchant-provided reference |
data.providersReference | Provider reference |
data.amount | disbursement amount in minor units |
data.charge | Applied disbursement charge |
data.provider | Provider slug used |
data.transferRecipientId | Recipient identifier |
data.transferRecipientLabel | Human-readable recipient label |
deliveryId | Webhook delivery identifier |
disbursement.status
Signature Verification
Validate webhook authenticity before processing.- Header:
x-webhook-signature - Algorithm:
sha512HMAC of request body using yourclient-secret
Safe Processing Pattern
Check idempotency
Deduplicate by
reference + status (or deliveryId) before applying business actions.Update internal ledger/state
Mark disbursement as final only for terminal statuses and save
statusDescription.Common Issues
| Issue | Likely Cause | Fix |
|---|---|---|
| Duplicate webhook processing | No idempotency handling | Store processed reference/status and skip repeats |
| Signature mismatch | Wrong secret or mutated payload | Use correct client-secret and hash exact request body |
| Missed status updates | Timeout/non-200 responses | Return 200 quickly; move heavy logic to async worker |
| Conflicting disbursement state | Out-of-order processing | Always compare current state before applying updates |
Related Docs
Disbursements Overview
End-to-end disbursement flow and endpoints.
Disbursement Examples
Request/response payload samples.
Authorization Mode
PIN vs Authorization URL configuration.