DAF Donations
This page describes how to accept Donor Advised Fund (DAF) donations through The Giving Block public API when you are building your native donation form. DAF donations route through Chariot, our DAF payments partner, and land as grants in the nonprofit's account.
Get organizations
Get list of organizations available for donations to store their IDs using GetOrganizationsList API call.
You might need detailed information regarding organization for some reasons, for example to check if DAF donations are enabled or to read the organization's EIN. For such data please use GetOrganizationById API call. Please avoid calling GetOrganizationsList every time.
Enable DAF for an organization
Before an organization can accept DAF donations, it needs to be onboarded to Chariot, our DAF payments partner. The Giving Block API handles this in a single call.
Your API user must have DAF included in its allowedFlows setting to use these endpoints. If it doesn't, please contact [email protected] to request access.
Option 1 β dedicated onboarding endpoint
Use NonProfitDafOnboarding with the organization id in the URL. The Giving Block will:
- Look up the nonprofit in Chariot using the organization's EIN.
- If Chariot already knows the nonprofit and it is DAF-eligible, reuse the existing record.
- If Chariot doesn't know it, register the nonprofit with Chariot.
- On success,
areDafDonationsEnabledis set totrueon the organization automatically.
Response:
{ "onboarded": true }Possible errors:
- 400 β organization is missing a nonprofit tax ID (EIN). Fix the organization first.
- 403 β your API user is not authorized for the DAF onboarding flow.
- 422 β Chariot has determined the organization is not eligible for DAF grants (compliance, IRS status, exclusion list). This cannot be overridden; the organization cannot accept DAF donations at this time.
Option 2 β toggle via update organization
If you'd prefer your normal enable/disable path to trigger onboarding, use UpdateOrganization with:
{ "areDafDonationsEnabled": true }When the flag transitions from false to true, the API performs the same Chariot onboarding described above before persisting the flag. If Chariot rejects the organization as ineligible, the request fails with a 422 and the flag is not written.
Sending { "areDafDonationsEnabled": false } disables DAF for the organization.
Start a DAF donation
DAF donations are handled inside The Giving Block widget via Chariot's DAFpay experience β the donor selects their DAF sponsor (Fidelity Charitable, Schwab Charitable, etc.) and authorizes the grant from within the widget. There is no equivalent to a deposit address for DAF; there is nothing for you to render server-side beyond loading the widget with donationFlow=daf.
If you are building a fully native form without embedding the widget, please contact [email protected] before starting. The direct DAFpay integration has additional requirements and is not part of the public API surface.
Webhook notifications
You can subscribe to sending webhook once a DAF grant is captured. Please see Webhook notifications documentation part for more details.
Await Deposit completed event to send receipt email or perform any other actions. This can be disabled per organization or for your API user. For example, if enabled for your user and allowed by organization, The Giving Block will not send any receipt email to the donor.
DAF donations arrive with paymentType: DAF in the webhook payload β use this to distinguish them from crypto, card, stock, and ACH donations if your integration handles multiple donation types.
Note that DAF grants are not instant. Once captured, the actual money movement from the donor's DAF sponsor to the nonprofit typically takes several business days. The webhook fires when the grant is captured, not when funds settle.
Updated 24 days ago