What is a webhook?
A Webhook is a developer tool that sends data to a custom app or external system—similar to an API. The main difference is that a webhook sends data when it's available, rather than an endpoint that must be polled to get data.
The Funraise Webhook sends Transaction data to a subscribed url when a Transaction is created or edited. You can use a Webhook to build custom apps or send Transaction data to external systems. At this time, you can only create a single webhook.
Webhooks are commonly used with Zapier or other workflow platforms for no-code automations.
Developers, you'll also be interested in the Funraise API.
Activate a webhook
1. Navigate to Settings > Webhooks
2. Click Webhook Signing Secret actions menu (3 dots) > click Generate
3. Click Edit to configure the Webhook details > click Save
Webhook configurations
Webhook Target URL
This is the URL that will receive the payload.
Contact email
If a webhook fails, we’ll retry the webhook for the next ~24hours. If we’re unable to deliver the payload after this retry period, we’ll send a failure notification to this email address.
Authentication
When you Save a new webhook configuration, we’ll send a request to your target url. In order to authenticate the connection, you must pass back the Signing Secret. If you’re using Zapier, this happens automatically.
For organizations that don’t use Zapier and instead create their own endpoints, the following criteria must be met by the endpoint to successfully create the subscription:
The endpoint must return
x-hook-secretin the response header. This will have been sent to you in the request header of the call that Funraise makes.The endpoint must return status = 200 for successful calls.
Payload
When a Transaction is created or edited, we’ll send the following payload to your subscribed URL. Shown here with example data.
{
"sentAt" : 1599067884009,
"event" : "DONATION",
"data" : {
"id" : 123,
"description" : "Debbie Donor - Funraise 2020-09-02T17:31:20.174045Z",
"memo" : null,
"checkNumber" : null,
"inKindDescription" : null,
"inKindHideAmount" : false,
"anonymous" : true,
"imported" : false,
"offline" : false,
"tags" : "example",
"donationDate" : 1599067880174,
"cretime" : 1599067880174,
"updtime" : 1599067883734,
"note" : null,
"pageUrl" : "https://example.funraise.org/fundraiser/debbie-donor",
"comment" : "This is a comment",
"externalId" : null,
"externalIdSource" : null,
"transaction" : {
"amount" : 51.5,
"sourceAmount" : 51.5,
"currency" : "USD",
"status" : "Complete",
"cardType" : "AMEX",
"lastFour" : "0005",
"billingFirstName" : "Debbie",
"billingLastName" : "Donor",
"billingZip" : "90802",
"paymentMethod" : "card",
"expirationDate" : 1780271999999,
"gatewayType" : "STRIPE",
"gatewayResponse" : "SUCCEEDED",
"transactionId" : "ch_1HMznqEBQNcaXA4c3dpLEyGQ",
"errors" : {
"cvv" : "CVV matches",
"gatewaySpecificResponseFields" : {
"stripe_source_funding" : "credit",
"outcome_network_status" : "approved_by_network",
"outcome_risk_level" : "normal",
"stripe_source_country" : "US",
"stripe_source_fingerprint" : "CyP94pNPlRoqEFvU",
"outcome_type" : "authorized",
"stripe_source_brand" : "American Express",
"outcome_seller_message" : "Payment complete."
},
"message" : "Succeeded!",
"avs" : "Street address and 5-digit postal code match."
}
},
"dedication" : {
"message" : "Thanks Freddy",
"name" : "Freddy Fundraiser",
"email" : "freddie@example.com",
"type" : "in Memory of"
},
"companyMatch" : {
"companyName" : null,
"companyId" : null,
"employeeEmail" : null
},
"utm" : {
"source" : "instagram",
"medium" : "social",
"content" : "square-pool",
"term" : null,
"campaign" : "summer-fundraiser"
},
"subscription" : {
"id" : 26,
"sequence" : 1
},
"pledge" : {
"futurePaymentDate" : null
},
"tip" : {
"amount" : 1.5,
"percent" : 3
},
"allocation" : {
"id" : 1,
"name" : "General Fund"
},
"form" : {
"id" : 3,
"name" : "General Donations"
},
"softCreditSupporter" : {
"id" : 7230,
"firstName" : "Freddie",
"lastName" : "Fundraiser",
"institutionCategory" : "Individual",
"institutionName" : null,
"name" : "Freddy Fundraiser",
"email" : "freddie@example.com",
"donorType" : "RECURRING",
"totalDonationCount" : 3,
"totalDonationAmount" : 137.7,
"recurringStatus" : "Active"
},
"supporter" : {
"id" : 7276,
"firstName" : "Debbie",
"lastName" : "Donor",
"name" : "Debbie Donor",
"email" : "debbie@example.com"
},
"household" : null,
"campaignPage" : {
"id" : "ebc46a72-9a45-47d2-b327-a903fc6bbd2f",
"name" : "Freddie Page",
"shortDescription" : "P2P Example"
}
}
}


