Skip to main content

GrantPipe + Stripe Integration

Published: Last updated: Reviewed: Sources: stripe.com stripe.com stripe.com support.stripe.com

TLDR

Stripe at 2.2% plus $0.30 is the most cost-effective payment processor for most nonprofits — the operational savings appear in the CRM integration. GrantPipe connects via Stripe webhooks, records every charge as a donation with the correct gross, fee, and net amounts, issues tax receipts automatically, and handles recurring subscriptions as pledge series.

Stripe is the most widely adopted payment processor among mid-market nonprofits that collect online donations directly — not through a dedicated fundraising platform. GrantPipe’s Stripe integration turns every Stripe charge into a complete donor record: gross amount, processing fee, net received, and an automatically issued tax receipt. The integration is webhook-driven, so donations appear in GrantPipe within seconds of payment, not the next morning.

What the integration does

GrantPipe connects to Stripe via OAuth 2.0 Connect. The authorization flow takes under two minutes: click Connect in GrantPipe Settings, authorize on Stripe’s screen, and GrantPipe registers webhook listeners for the events that matter — charge.succeeded, charge.refunded, subscription events, and payment failures.

When a charge.succeeded event arrives, GrantPipe reads the Stripe balance transaction to get the exact gross amount, fee, and net. It creates a donation record with all three figures, matches or creates the donor from the Stripe customer email, and issues a tax receipt from your configured template. The entire process completes automatically.

Recurring subscriptions are tracked as pledge series. Each subscription charge creates a new donation linked to the series, so the donor’s complete recurring history — start date, amount history, any missed payments — is visible in one timeline.

Roadmap status

The Stripe integration is available in GrantPipe as a core payment integration. Stripe is the first payment processor supported given its prevalence among the target customer segment. Additional processors (PayPal, Square) are on the roadmap.

Data flows

  • Stripe charges → GrantPipe donations (real-time via webhook, charge.succeeded)
  • Stripe refunds → GrantPipe donation status (real-time via webhook, charge.refunded)
  • Stripe subscriptions → GrantPipe recurring gift series (real-time via webhook events)
  • Stripe customers → GrantPipe donors (linked on first charge, new donor created if no match)

Setup steps

  1. Connect via Stripe OAuth from Settings → Integrations → Stripe
  2. Verify webhook endpoints appear in Stripe Dashboard → Developers → Webhooks
  3. Configure donor-matching rules (email-first by default)
  4. Set receipt and acknowledgment preferences
  5. Map Stripe metadata fields to restricted funds
  6. Run a test-mode charge and confirm donation record and receipt
  7. Go live; import historical charges via CSV if needed

Common use cases

A mid-sized nonprofit uses Stripe on a custom donation page embedded on their website. Every gift routes to GrantPipe automatically. The development director checks the GrantPipe dashboard each morning to see the previous day’s gifts, donor retention alerts, and any failed recurring charges that need follow-up. Finance sees the same gifts in the accounting sync report with gross, fee, and net broken out.

When a recurring subscription fails, GrantPipe logs the failure on the donor record and sends an alert to the development staff member assigned to major recurring donors. Lapsed-giving follow-up starts the same day — not weeks later when finance reconciles a Stripe export.

Limitations and gotchas

Historical charges processed before the webhook connection was established do not appear automatically. They must be imported via CSV. The Stripe charge export covers up to seven years, and GrantPipe’s import tool maps the standard Stripe CSV columns.

Stripe metadata must be set by your donation form if you want gifts routed to specific restricted funds. Forms that do not pass metadata route gifts to the general operating fund. This is configurable — you can set a default fund per Stripe product ID or simply accept the operating fund default and reclassify via GrantPipe’s batch-edit tools.

Stripe test mode and live mode are separate credential sets. Developers testing against Stripe’s test environment need a test-mode connection in GrantPipe’s development or staging environment.

Pricing implications

Stripe’s nonprofit rate (2.2% + $0.30) requires verification through Stripe’s nonprofit application. The discount applies automatically once verified — no integration changes needed. GrantPipe’s subscription pricing does not change based on Stripe volume. The integration is included with all GrantPipe plans.

Start a free trial

Start a trial.

Free resource

Get the Nonprofit Grant Compliance Checklist

A practical checklist for post-award grant compliance: restricted funds, reporting cadence, audit prep, and common failure points. Delivered by email.

Email is required for delivery. We'll send the resource to your inbox.

Email is required because the download link is delivered by email, not on-page.

Stripe's standard processing rate is 2.9% + $0.30 per successful card charge; verified nonprofits pay 2.2% + $0.30

Source: Stripe Pricing — US

On a $100 donation, the difference between standard (2.9%) and nonprofit (2.2%) Stripe rates is $0.70 per transaction — approximately $700 annually per $100,000 in Stripe volume

Source: Calculated from Stripe published rates

Q&A

What if a donor pays through Stripe but I have not created them in GrantPipe?

GrantPipe creates a new donor record from the Stripe customer data (name and email) automatically on the first charge. If the email matches an existing donor, the Stripe customer is linked to that donor without creating a duplicate.

Q&A

Can I import historical Stripe charges?

Yes. GrantPipe supports a one-time Stripe charge history import via CSV for charges processed before the integration was connected. The import maps Stripe's charge CSV columns to GrantPipe's donation fields and runs the same deduplication logic.

Q&A

How does GrantPipe handle Stripe fees that vary by card type?

GrantPipe reads the fee amount from the Stripe balance transaction associated with each charge. The fee is recorded exactly as Stripe charged it — no estimation. International cards that carry higher interchange fees are recorded accurately.

Frequently asked

Frequently Asked Questions

How does GrantPipe connect to Stripe?
GrantPipe connects via Stripe's OAuth 2.0 Connect flow. You authorize GrantPipe from Settings, and Stripe redirects back with an access token scoped to your Stripe account. GrantPipe registers webhook listeners for charge.succeeded, customer.subscription.updated, and related events.
Does GrantPipe record gross or net donation amounts?
Both. GrantPipe records the gross charge amount as the donation amount, stores the Stripe processing fee separately, and calculates the net received. This keeps your donor records accurate (donors gave the gross amount) while your accounting reflects the net deposited.
How are recurring Stripe subscriptions handled?
Each successful Stripe subscription charge fires a charge.succeeded webhook. GrantPipe records each charge as an individual donation linked to the same recurring gift series, so the donor's giving history shows the full pledge timeline.
What happens if a Stripe charge is refunded?
Stripe fires a charge.refunded webhook. GrantPipe marks the original donation as refunded and queues a void of the associated tax receipt. The refund workflow in GrantPipe guides the user through correcting the donor acknowledgment.
Does GrantPipe support Stripe Checkout or Payment Links?
Yes. Any charge processed through Stripe — whether from Checkout, Payment Links, a custom integration, or directly in the Stripe Dashboard — fires a webhook that GrantPipe records. The source is noted in the donation record.
Can I use Stripe's nonprofit discount rate with this integration?
Yes. Stripe's nonprofit rate (2.2% + $0.30 for qualifying 501(c)(3) organizations) applies at the Stripe account level, not the integration level. GrantPipe records whatever fee Stripe actually charged on each transaction.