Webhooks notify your backend when payments, virtual-account credits, invoices, and subscription events change.
Use webhooks for real-time updates, but always design your integration so it can recover by calling the relevant verify or list endpoint.
Endpoint Requirements
Your webhook endpoint should:
- Accept
POSTrequests. - Accept
Content-Type: application/json. - Respond with a
2xxstatus after successful processing. - Be reachable over HTTPS.
- Process events idempotently.
Recommended Processing Flow
- Receive the webhook.
- Verify the signature if signature headers are enabled for your account.
- Store the event ID or transaction reference before processing.
- Ignore duplicates you have already processed.
- Verify the payment or transfer state from the API when the event affects value delivery.
- Update your internal order, wallet, invoice, or subscription state.
Events To Expect
Common event families include:
| Event Family | Use For |
|---|---|
charge.* | Transaction and virtual-account collection updates. |
invoice.* | Subscription invoice lifecycle and payment results. |
subscription.* | Subscription lifecycle changes such as active, past due, cancelled, or completed. |
Reconciliation
Webhooks can arrive more than once or arrive before your customer returns to your site. Use Kyshi references and IDs as stable reconciliation keys.
