Webhooks
Swirepay can notify your backend over HTTPS when important lifecycle events occur—for example when a payment succeeds, fails, is refunded, when a dispute opens, when transfers move between states, or when inventory records change. Configure endpoints and which events you care about in the dashboard.
Technical details for HTTP headers, verifying signatures, and sample JSON payloads are in Webhook delivery & payloads.
Configure webhooks in the dashboard
- Sign in to the Swirepay dashboard.
- Open Developer → Webhooks.
- You will see webhooks already configured for your account (if any).
Create a webhook
- Click Add Webhook.
- In the modal, fill in:
| Field | Purpose |
|---|---|
| Webhook URL | HTTPS endpoint where Swirepay POSTs JSON payloads for subscribed events. Must be reachable from our servers. |
| Alert email | If delivery fails (timeouts, non-2xx responses, etc.), we can notify this address so you can investigate. |
| Secret | Shared secret used to sign each payload; your listener verifies authenticity using HMAC (see API docs). Store this securely. |
| Active events | Checkboxes for each event type you want on this endpoint—for example successful payments, declines, refunds, transfers, contacts, inventory, and more. |
| Mode | Toggle whether this webhook receives test or live events (aligned with test vs live API keys). |
| Enable | Toggle to activate or pause delivery without deleting the webhook. |
- Select Create to save.
You can maintain multiple webhooks—for example separate URLs or event sets for sandbox vs production workloads.
Webhook event types
Each event name appears in the dashboard when you subscribe to webhooks and is echoed in the x-swirepay-event HTTP header on deliveries (see Webhook delivery).
Payment Center
Subscriptions, invoices, payouts, payments (authorize / capture / fail / refund / dispute), payment links, payment success aggregate, and customers.
SUBSCRIPTION_INCOMPLETESUBSCRIPTION_PAIDSUBSCRIPTION_ACTIVESUBSCRIPTION_FAILEDSUBSCRIPTION_UPDATEDINVOICE_PAIDPAYOUT_PROCESSEDPAYMENT_AUTHORIZEDPAYMENT_FAILEDPAYMENT_CAPTUREDPAYMENT_REFUNDPAYMENT_DISPUTE_CREATEDPAYMENT_DISPUTE_WONPAYMENT_DISPUTE_LOSTPAYMENT_DISPUTE_CLOSEDINVOICE_CREATECUSTOMER_CREATECUSTOMER_UPDATEPAYMENT_LINK_PAIDPAYMENT_SUCCEEDED
Inventory
INVENTORY_ITEM_ADDINVENTORY_ITEM_UPDATEINVENTORY_ITEM_DELETEINVENTORY_ORDER_PAIDINVENTORY_ORDER_REFUND
Transfer Center
Contacts, funding sources, transfers, and vendor invoices.
CONTACT_CREATECONTACT_UPDATE— see sample payload (marketplace contact verification)CONTACT_DELETEFUNDING_SOURCE_CREATEFUNDING_SOURCE_UPDATEFUNDING_SOURCE_DELETETRANSFER_SCHEDULEDTRANSFER_PROCESSINGTRANSFER_SUCCEEDEDTRANSFER_CANCELLEDTRANSFER_DECLINEDVENDOR_INVOICE_PAID
The JSON body always relates to the underlying resource (for example a payment session, transfer state, or contact). Exact fields depend on the product surface and API version—use x-swirepay-event to branch your handler and refer to sample payloads for Payment Center examples and CONTACT_UPDATE for marketplace contact verification.
See also
- Webhook delivery & payloads — headers, signature verification, examples
- Guides introduction — Payment Center
- Guides introduction — Transfer Center