Skip to main content

Webhooks

Learn more

Don't know what a webhook is? Learn more from this What are webhooks? blog post.

Every.org supports using webhooks to get notified when one of your donors completes a donation. After you set up your webhook, we will make a POST request to your webhook endpoint with information about the new donation.

Every.org webhooks come in two flavors - the Nonprofit Donation Webhook and the Partner webhook.

Nonprofit Donation Webhook

The Nonprofit Donation Webhook enables nonprofit admins to get notified every time a donation is made to their nonprofit.

Read more about setting up a Nonprofit Donation Webhook for your nonprofit here.

Partner Webhook

The Partner Webhook enables developers using a Donate Link to get notified every time a donation is completed via their link.

Read more about setting up a Partner Webhook here.

Data format

Requests made by both the Nonprofit Donation and Partner webhooks follow the same 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>
  • partnerMetadata: <Object | undefined>
    • The partner metadata base64 unencoded and json parsed as specified using our Donate link or Donate Button. undefined if not specified.
  • 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>
      • 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.
      • name: <string>
        • The nonprofit's displayable name.
  • amount: <string>
    • Numerical amount in the unit defined by the ISO currency code, represented as a string.
  • netAmount: <string>
    • Net amount of the donation after subtracting third party fees.
  • currency: <string>
  • 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>
  • paymentMethod: <string>
    • The method used to make the payment.

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!"
}