Coming Soon - Webhook functionality is currently in development. This page documents the
planned implementation.
Available Events
Webhooks will be available for these event types:| Event Type | Description | When It Fires |
|---|---|---|
transaction.created | New donation or purchase made | When a supporter completes a transaction |
transaction.updated | Transaction details changed | When a transaction is modified |
transaction.refunded | Transaction was refunded | When a refund is processed |
campaign.created | New campaign created | When you create a new fundraising campaign |
campaign.updated | Campaign details changed | When campaign info is updated |
campaign.published | Campaign goes live | When a draft campaign is published |
contact.created | New supporter added | When a new contact is created |
contact.updated | Supporter info changed | When contact details are updated |
ticket.purchased | Event ticket purchased | When someone buys a ticket |
plan.created | Recurring plan started | When someone sets up recurring giving |
plan.cancelled | Recurring plan ended | When a recurring plan is cancelled |
Webhook Payload
All webhook events will follow this structure:Webhook Events Reference
Transactions
- transaction.created - transaction.updated - transaction.refunded
Campaigns
- campaign.created - campaign.updated - campaign.published
Contacts
- contact.created - contact.updated
Tickets
- ticket.purchased
Plans
- plan.created - plan.cancelled
Retry Behavior
If your endpoint doesn’t respond with a 200 status code, Givebutter will retry:| Attempt | Delay |
|---|---|
| 1st retry | 1 minute |
| 2nd retry | 5 minutes |
| 3rd retry | 30 minutes |
| 4th retry | 2 hours |
| 5th retry | 12 hours |
Troubleshooting
Webhook Not Receiving Events
Webhook Not Receiving Events
Check:
- Endpoint URL is correct and publicly accessible
- Endpoint uses HTTPS (not HTTP)
- Firewall allows incoming requests from Givebutter
- Endpoint responds within 10 seconds
- Selected event types are enabled in Dashboard
Signature Verification Failing
Signature Verification Failing
Check: - Using the correct webhook secret from Dashboard - Computing signature on raw request
body (not parsed JSON) - Using HMAC SHA-256 algorithm - Comparing signatures with timing-safe
equality
Duplicate Events
Duplicate Events
Solution:
Use the event
id to track processed events and skip duplicates:Processing Timeout
Processing Timeout
Solution:
Respond immediately and process asynchronously:
Event-Specific Details
Transaction Events
Transaction webhooks include full transaction details:Campaign Events
Campaign webhooks include campaign state changes:Contact Events
Contact webhooks include supporter information:Ticket Events
Ticket webhooks include purchase and ticket details:Plan Events
Plan webhooks include recurring giving details:Need Help?
Webhook support is coming soon. For early access or questions:- Email: [email protected]
- Subject: “Webhook Early Access Request”
- Include: Your use case and expected webhook volume