Webhooks Overview
Receive real-time status updates from Payzava
Payzava sends webhook callbacks to your server whenever a payment, payout, or refund status changes.
When callbacks are sent
Payzava sends a POST request to your callback_url whenever the
status of a transaction changes. This happens for:
- Payment status changes (e.g.,
Processing→Completed) - Payout status changes
- Refund status changes
Callback format
Callbacks are sent as a POST request to your callback_url with
status information passed as query parameters:
POST https://yourserver.com/webhooks/payzava?transactionId=txn_abc123&status=Completed
Query parameters
| Parameter | Description |
|---|---|
transactionId | The transaction/payout/refund ID |
status | The new status value |
Status values
| Status | Description |
|---|---|
Processing | Transaction is being processed |
Completed | Transaction was successful |
Cancelled | Transaction was cancelled or failed |
Responding to callbacks
You must respond with a 200 OK status code within 5 seconds.
If your server does not respond in time, the callback will time out.
HTTP/1.1 200 OK
Callbacks may fire multiple times
Payzava may send the same callback more than once. Your callback handler must be idempotent — processing the same callback twice should not cause duplicate actions.
Recommended pattern
- Receive the callback
- Respond with
200 OKimmediately - Call the retrieve endpoint to verify the current status
- Process the status change based on the retrieve response
Callback timeout
The callback timeout is 10 seconds. If your server does not respond within this window, the callback is considered failed.
Important
Note:
A failed callback does not affect the actual transaction. The payment, payout, or refund will still proceed normally. Always verify status via the retrieve endpoint.