Stripe Integration Overview Partner Program Application

Secure Donations Online & In-Person

Our donation platform is built on Stripe — Payment Element, Express Checkout (Apple Pay & Google Pay), Link, ACH bank transfers, and Stripe Terminal for kiosk tap-to-pay. Every payment confirmed via Stripe webhooks.

Payment Element Express Checkout Link ACH Stripe Terminal

Donation Amount

$100.00

Secured by Stripe

Express Checkout

or pay another way
•••• •••• •••• ••••
MM / YY
CVC •••

ACH Bank Transfer

Stripe will securely connect to your bank account via Plaid. No routing numbers needed.

Autofill your saved payment info from Link — Stripe's one-click checkout. No re-entering card details across any Link-enabled checkout.

Partner Program

Stripe Partner Program Application

Demonstrating Our Stripe Integration

This page provides a technical overview of how our donation platform integrates Stripe for secure payment collection. We use Stripe-hosted components — Payment Element and Stripe Terminal — ensuring sensitive card data is never handled by our servers. Prepared as part of our Stripe Partner Program application.

Online Donation Flow

Donors visit our public eFund site. Stripe Payment Element offers three payment methods in one seamless UI — card, ACH, and Link — with Express Checkout for one-tap payments.

Express CheckoutOne-tap

Apple Pay & Google Pay

When available on the donor's device and browser, we render Stripe's Express Checkout Element — full-width Apple Pay and Google Pay buttons. No card entry, no form friction. Payment completes in one tap using the device's saved credentials.

Payment ElementCardACHLink

Payment Element — Three Methods in One

If express checkout is skipped, we render Stripe Payment Element — a Stripe-hosted, adaptive UI that presents Card (manual entry), Bank ACH (via Stripe-powered Plaid connection), and Link (Stripe's one-click autofill network). Donors switch between them via tabs. Zero raw card data ever hits our servers.

Webhook Confirmation

Source of Truth

After processing, Stripe sends a signed payment_intent.succeeded or payment_intent.payment_failed webhook event to our backend. We verify the Stripe signature and update the donation record — no status is written before webhook confirmation.

Payment Flow

1

Donor selects amount

Donor visits eFund site, picks a campaign and donation amount.

2

PaymentIntent created

Frontend calls our API; backend creates a Stripe PaymentIntent and returns the client_secret.

3

Stripe UI collects payment

Express Checkout (Apple/Google Pay), or Payment Element (Card, ACH, or Link) captures payment details securely.

4

Stripe processes payment

Stripe handles card network authorization, fraud detection, and bank ACH initiation.

5

Webhook updates status

Stripe fires a signed webhook. Our backend verifies and marks the donation as confirmed.

Kiosk Payment Flow

Physical donation kiosks use Stripe Terminal with the Stripe M2 Reader for contactless NFC tap-to-pay.

Donation Kiosk

Online

$50.00

Selected amount · General Fund

Stripe M2 Reader

Tap, insert, or swipe

Terminal Status

Waiting for tap…
Card detected
Processing…
Payment approved ✓
Powered byStripe Terminal
Stripe TerminalM2 ReaderNFC / Tap-to-Pay

Hardware-Backed In-Person Payments

Our kiosk is connected to the Stripe M2 Reader via Stripe Terminal SDK. Donors tap their card, phone, or smartwatch — Stripe Terminal handles all EMV and NFC cryptography inside the reader's certified hardware. Card data never passes through our app.

Kiosk Flow

1

Donor approaches kiosk

Donor selects a campaign and donation amount on the kiosk touchscreen.

2

PaymentIntent created

Our system creates a Stripe PaymentIntent and registers it with the connected Terminal reader.

3

Donor taps card on M2

Stripe Terminal prompts the donor. The M2 reader reads the NFC signal and encrypts card data in hardware.

4

Stripe Terminal processes

Stripe authenticates, authorizes, and settles the transaction via its Terminal platform.

5

Webhook confirms result

Stripe fires a signed webhook. Our backend updates the kiosk donation status.

Payment Processing Architecture

Stripe webhooks are the single source of truth. Our backend only records a successful donation after receiving and verifying a Stripe-signed event.

Frontend
PaymentIntent
Stripe
Webhook
Backend
Donation ✓

Stripe handles all sensitive payment data inside Payment Element and Terminal — no card data ever reaches our servers.

Every webhook is verified using Stripe's HMAC signing secret before our backend processes the event.

Donation records are updated only after webhook confirmation, keeping records accurate even if a browser closes mid-payment.

Built on Stripe's Secure Infrastructure

Sensitive payment data is always handled by Stripe — never directly by our platform.

🔒
Stripe-Hosted Collection

Payment Element and Stripe Terminal operate inside Stripe's PCI-compliant environment. Raw card numbers never transit our code path.

🪝
Webhook Source of Truth

Final payment status is determined only by Stripe's signed webhook events — verified with Stripe's HMAC signing secret on every delivery.

🛡️
No Direct Card Handling

Our frontend uses Stripe's JS SDK and passes only the PaymentIntent client_secret to Stripe's hosted UI. No card data flows through our app.

📡
Idempotent Processing

PaymentIntents use idempotency keys to prevent duplicate charges even in cases of network retries or client disconnects.

🏧
Certified Terminal Hardware

The Stripe M2 Reader is a Stripe-certified, tamper-resistant device. EMV and NFC card data is encrypted in hardware before leaving the reader.

Accurate Donation Records

Donations are only confirmed after webhook delivery, keeping records accurate across all failure scenarios including browser closure.

Stripe Partner ProgramIntegration Overview

One Unified Payment Infrastructure

Stripe enables our platform to accept online donations via Payment Element, Express Checkout, Link, and ACH — and in-person kiosk donations via Stripe Terminal — through a single, reliable integration with webhook-confirmed accuracy.

Online Payments

  • Express Checkout — Apple Pay & Google Pay
  • Payment Element — Card entry
  • Payment Element — ACH bank transfer
  • Payment Element — Link (one-click)

In-Person Payments

  • Stripe Terminal SDK
  • Stripe M2 Reader
  • NFC Tap-to-Pay / Contactless
  • Webhook-confirmed donation status

This integration overview was prepared for the Stripe Partner Program application.

Scroll to Top

Contact Form

Please enable JavaScript in your browser to complete this form.
Name