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
- Connect via Stripe OAuth from Settings → Integrations → Stripe
- Verify webhook endpoints appear in Stripe Dashboard → Developers → Webhooks
- Configure donor-matching rules (email-first by default)
- Set receipt and acknowledgment preferences
- Map Stripe metadata fields to restricted funds
- Run a test-mode charge and confirm donation record and receipt
- 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
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.
Source: Stripe Pricing — US
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