Fundraise Up API and Stripe's Payment Method ID

When processing donations through the Fundraise Up REST API, a crucial component is the Stripe Payment Method ID. This identifier is required to securely process payments and can be obtained or created using Stripe's tools, such as SetupIntents and Stripe Terminal for in-person donations.

The Stripe Payment Method ID represents a supporter's payment details stored securely within Stripe's system. When creating a donation through the Fundraise Up API, including this ID is mandatory to authorize and process the payment.

Limitations and concerns

  • Required for API donations: You cannot process donations through the Fundraise Up REST API without the Payment Method ID.
  • Security compliance: Handling payment methods requires you to adhere to strict security protocols to protect supporter information.
  • Obtaining vs. creating: The Payment Method ID can be obtained from an existing customer in Stripe or created when capturing payment details from a supporter.

Create a Stripe Payment Method ID using SetupIntents

To securely collect and store a supporter's payment information without immediate charging, use Stripe's SetupIntents. This process is recommended for scenarios where you need to save payment details for future use, which you will do through Fundraise Up after collecting the payment method.

High-level steps

  1. Initiate a SetupIntent: Create a SetupIntent object through the Stripe API. This object represents the intent to collect and store the supporter's payment details.
  2. Collect payment information: Use Stripe's secure methods to collect the supporter's payment details. You can do this through Stripe Elements or in-person devices like Stripe Terminal.
  3. Confirm the SetupIntent: After collecting the payment information, confirm the SetupIntent to securely save the payment method in Stripe.
  4. Retrieve the Payment Method ID: Upon successful confirmation, Stripe provides a Payment Method ID, which you will use when creating a donation through the Fundraise Up API.
Do not use PaymentIntents, as they initiate payment processing directly through Stripe. If you use PaymentIntents, supporters might be double-charged: once through Stripe directly and again through the Fundraise Up REST API.

Processing in-person donations with Stripe Terminal

For face-to-face fundraising efforts like events or in-person campaigns, Stripe Terminal allows you to accept physical card payments securely. By integrating Stripe Terminal with Fundraise Up, you can collect payment methods on the spot and process donations efficiently.

Compatible Stripe Terminal devices

Not all Stripe Terminal devices support SetupIntents without triggering a payment. You must specifically use Stripe Smart Terminals, which can collect supporter payment information and generate a Payment Method ID without immediately processing a charge.

Steps for in-person Payment Method collection

  1. Set up the Terminal device: Ensure your Stripe Terminal device is set up and connected to your Stripe account.
  2. Initiate a SetupIntent: Use the Stripe Terminal SDK to create a SetupIntent for the in-person transaction.
  3. Collect payment details: Prompt the supporter to swipe, insert, or tap their card on the Terminal device.
  4. Confirm the SetupIntent: Complete the process to securely store the payment method in Stripe.
  5. Obtain the Payment Method ID: Retrieve the Payment Method ID from the confirmed SetupIntent.
  6. Create the donation in Fundraise Up: Use the Payment Method ID when creating a donation through the Fundraise Up API.

Integrating Payment Method IDs into Fundraise Up API request

Once you have the Payment Method ID, you can integrate it into your donation processing workflow:

  • Prepare your API request: Use the POST /v1/donations endpoint of the Fundraise Up API to create a new donation.
  • Include required information: Provide all necessary details such as supporter information, donation amount, and campaign ID. Ensure that all fields comply with your campaign's requirements to prevent errors.
  • Attach the Payment Method ID: Include the mandatory payment_method property with the Payment Method ID obtained from Stripe.
  • Submit the request: Send the API request to Fundraise Up to process the donation.

Key considerations

  • API permissions: Ensure you have the necessary API keys and permissions from both Stripe and Fundraise Up.
  • Campaign compatibility: Verify that your Fundraise Up campaign supports the currency, frequency, and other parameters that you use in your payload.
  • Data accuracy: Double-check all supporter information and payment details before processing to avoid errors.

Still need help?

Need help with something not covered in Support Center? Connect with a support engineer for more assistance.
Email us