Nonprofit Donation Webhook
Learn more
Don't know what a webhook is? Learn more from this What are webhooks? blog post.
The nonprofit donation webhook allows a nonprofit to be notified every time a donation is made.
We will make a POST request to the specified webhook with information about the donation every time a donation is completed*. One common use case for setting such a webhook is to create a custom integration between Every.org and a donor CRM.
- Note: Some types of donations like bank or PayPal take a while to go through, so even if a webhook gets called, the donation may eventually fail.
Setting up your webhook
You can set your webhook URL by editing your organization's profile at
every.org/<organization-slug>/admin/edit
.
Data format
The webhook request will be a JSON-formatted string with the following properties:
chargeId: <string>
- Unique ID to the donation. Matches the “Charge ID” of donations in the nonprofit Admin Dashboard.
partnerDonationId: <string | undefined>
- The partner donation ID as specified using our
Donate link or Donate Button.
undefined
if not specified.
- The partner donation ID as specified using our
Donate link or Donate Button.
partnerMetadata: <Object | undefined>
- The partner metadata base64 unencoded and json parsed as specified using our
Donate link or Donate Button.
undefined
if not specified.
- The partner metadata base64 unencoded and json parsed as specified using our
Donate link or Donate Button.
firstName: <string | undefined>
undefined
if the donor chose not to share this info with the nonprofit.
lastName: <string | undefined | null>
undefined
if the donor chose not to share this info with the nonprofit.null
if the donor has no associated last name.
email: <string | null>
undefined
if the donor chose not to share this info with the nonprofit.null
if the donor has no associated email.
toNonprofit: <object>
- An object with the following properties:
slug: <string>
- The slug that identifies the nonprofit. Every.org
uses the slug to construct the nonprofit's URL as follows:
every.org/<slug>
- The slug that identifies the nonprofit. Every.org
uses the slug to construct the nonprofit's URL as follows:
ein: <string | undefined>
- The nonprofit's EIN.
undefined
if the receiving organization does not have an EIN, as in the case where they are fiscally sponsored.
- The nonprofit's EIN.
name: <string>
- The nonprofit's displayable name.
- An object with the following properties:
amount: <string>
- Numerical amount in the unit defined by the ISO
currency
code, represented as a string.
- Numerical amount in the unit defined by the ISO
netAmount: <string>
- Net amount of the donation after subtracting third party fees.
currency: <string>
- Currency code as defined in ISO 4217
frequency: <"Monthly"|"One-time">
donationDate: <string Date>
- Date that the donation was initiated
publicTestimony: <string | undefined>
- A publicly available comment for this donation written by the donor showing at every.org that can be shared.
privateNote: <string | undefined>
- A private note for the nonprofit written by the donor.
fromFundraiser: <object | undefined>
- An object with the following properties:
id: <string>
- The fundraiser's id.
title: <string>
- The fundraiser's title.
slug: <string>
- The slug that identifies the fundraiser. Every.org
uses the slug to construct the nonprofit's URL as follows:
every.org/<toNonprofit.slug>/f/<fromFundraiser.slug>
- The slug that identifies the fundraiser. Every.org
uses the slug to construct the nonprofit's URL as follows:
- An object with the following properties:
Example request body:
{
"chargeId": "somerandomuuid",
"partnerDonationId": "somerandomuuid",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@emailprovider.org",
"toNonprofit": {
"slug": "givedirectly",
"ein": "271661997",
"name": "Give Directly"
},
"amount": "1000.00",
"netAmount": "970.07",
"currency": "USD",
"frequency": "Monthly",
"donationDate": "2022-02-03T05:00:16.175Z",
"publicTestimony": "I love animals",
"privateNote": "Thank you for the fantastic work!"
}
If you have any questions about the usage of this webhook, please contact team@every.org.