Integrating Connect
Collecting Form Data
DAFpay can auto-populate the donor contact fields or your platform can pass donor information directly into the onDonationRequest.
Option 1: Express Checkout
Chariot offers “Express Checkout” where the Chariot Connect modal pulls the donor’s name, email, phone and address information from their account with the DAF provider. This allows for “one-click” checkout experiences and removes the need for a donor to fill out a lengthy form before making a DAF donation. The user always has the ability to review their information and make changes before submission.
Placement Requirement
DAFpay’s Express Checkout feature only works when the button is placed at the top of a donation form (before the donor’s contact details are collected).
Automatically Active
No action is required to enable Express Checkout. If no donor information is provided in the onDonationRequest, the contact fields will be automatically populated from the DAF provider.
To test the Express Checkout functionality, visit https://secure.dafpay.com/demo and ensure the “Express” toggle is enabled, which will place DAFpay at the top of the form, ahead of the contact fields.
Donation Amount
If your platform opts for Express Checkout, you will still need to utilize the onDonationRequest to pass in the amount from your donation form to the DAFpay modal. See below for a list of potential onDonationRequest parameters that can be utilized (even when Express Checkout is active).
Option 2: Pre-Populated Data
You can pass form information to Chariot before launching a Connect session.
To provide this information, leverage the onDonationRequest
function from the Chariot element.
Leveraging The onDonationRequest
If DAFpay (or other payment options) appear after the amount and contact fields on your donation form, ensure that the collected information is passed into the onDonationRequest. This will allow the fields to be properly recorded by Chariot’s system and displayed correctly on the DAFpay modal.
Avoid Asynchronous Actions
If your platform performs something asynchronously during the onDonationRequest, there can be a disconnect between the user clicking the button and the modal actually launching. As a result, the browser will flag DAFpay as a popup and block it from launching.
The given donation data must match the following schema to be accepted by Chariot:
Data Validation
To prevent request failures, any inputs exceeding the maximum allowed length will be automatically truncated.
Popular Parameters
- Metadata: Allows you to associate the payment or session with any data in your system (i.e., Form ID, Campaign Name).
- Anonymous: Indicate if a donor has chosen to give anonymously on your donation form so the donation can be properly anonymized by the DAF provider.
Disabling Connect
To prevent the DAFpay button from launching until form validation is performed, pass false
to the onDonationRequest.
Capturing Grant Intents
When a user completes a Chariot Connect session you will receive a grant intent.
Create Grant Route
After you submit your own donation form, do not forget to call the Create Grant API to complete the transaction.
Most workflows proceed as follows:
- Listen for the
CHARIOT_SUCCESS
event to receive the grant intent after a Chariot Connect session.- If you would like to collect any additional information from the user (i.e., Fee Coverage Prefences) you can do so at this step. However, if the Chariot Connect session is the last step in your donation form this is not necessary.
- Submit your own donation form before converting the grant intent into a completed grant.
- Have your backend call Chariot’s Create Grant API to complete the grant (and capture the grant intent).
Submitting your own donation form before calling Chariot’s Create Grant ensures consistency between your system and Chariot. See Loading Screen section below.
Response Objects
Exit Reasons
Donation Amount Changes
Accounting For Changes Within a Session
Please note that the donation amount passed into DAFpay from your platform may change within the DAFpay modal for various reasons. To ensure accuracy, always use the information provided in the onSuccessMetadata from Chariot when calling the Create Grant route.
If a donor tries to submit a grant request for an amount that exceeds their current account balance, Connect will alert the donor and suggest the donor to adjust the donation amount to the available account balance.
Additionally, if a Donor Advised Fund platform has a minimum donation requirement, Connect will alert donors of this requirement and suggest the donor to alter the donation size to match the minimum threshold for submission.
Loading Screen
Occasionally, there may be a delay between clicking “Donate” on DAFpay and being redirected to the organization’s confirmation page. To provide an intuitive user experience, make sure to implement an intermediary loading screen to notify the donor that their gift is being processed and that they should avoid navigating away from the page during this time.
This loading screen should be displayed between the time you receive the CHARIOT_SUCCESS
event and the time your systems have successfully processed the grant by calling the Create Grant route.
Unintegrated DAF Providers
Unintegrated Grants represent a donors intention to donate from a DAF provider that DAFpay is not yet integrated with.
Unintegrated grants will be marked with an unknown
status.
- Use the List Unintegrated Grants API to access details such as gift amount, DAF provider name, and donor information.
- You can simulate the Unintegrated Grants flow on our demo page by selecting The Boston Foundation.
Opting Out of Unintegrated Grants
If your platform does not want to support unintegrated grants, DAFpay can redirect donors back to your donation form to select a different payment method (if the donor chooses an unsupported provider). Please let the Chariot team know if you would like to disable Unintegrated Grants for your platform.
If unintegrated grants are enabled, the modal automatically closes after the user enters their donation information allowing you to record the gift intent in your system. When the modal closes, the CHARIOT_EXIT
event will fire with the exit reason UNINTEGRATED_GRANT_CONFIRMED
.
Unintegrated Grants Confirmation Page
In the thank you page for unintegrated grants you should render the data provided from CHARIOT_EXIT
(tracking ID, nonprofit EIN, nonprofit name, and link to the DAF provider) so the donor is aware of the remaining steps to complete their donation. Make sure to offer the ability for a donor to copy the tracking ID (including the “Tracking ID” prefix) directly on your confirmation page.
DAFpay will also send an email directly to the donor reiterating the instructions.
Recurring Donations
Recurring donations are a powerful way to generate consistent revenue streams for nonprofits and they make up a large majority of the DAF grants that are distributed to charity each year. Chariot enables a donor to not only initiate a one-time grant, but also allows donors to initiate MONTHLY
recurring grants through their Donor Advised Fund.
Managing Recurrence Schedule
When a recurring donation is made via DAFpay, it indicates that the donation was set up as a monthly recurring donation. However, the actual recurrence is managed by the DAF provider. If the donor wishes to cancel or modify the recurrence, they must do so through their DAF provider portal. As a result, Chariot is not notified when a recurrence is canceled or updated. Therefore, we only record the initial grant with a monthly frequency and do not create a new grant each month in our system.
When a user completes a Chariot Connect session for a recurring donation, instead of receiving a grantIntent
as part of the CHARIOT_SUCCESS
event, you will receive a recurringGrantIntent
.
After you submit your own donation form, don’t forget to call the Create Recurring Grant API to complete the transaction.
Create Recurring Grant API
If your platform enables recurring donations through Chariot, you will need to differentiate which of Chariot’s APIs you use to capture the donation based on the information of the CHARIOT_SUCCESS
event.