Payment gateways
GiveFlow supports four payment gateways: Stripe and PayPal for online payments, Offline for manual payments, and Sandbox for testing. You configure all gateways from the Payment gateways tab in GiveFlow settings.
Test mode vs live mode
GiveFlow has an organization-wide test mode toggle in the Payment gateways tab. When test mode is on, no real payments are processed. Use test mode to verify your setup before going live.
When the organization-wide toggle is on, the Sandbox gateway becomes available. Stripe and PayPal keep working too: a test donation runs against your test keys, so you can pay it with a Stripe test card or a PayPal sandbox account.
Stripe
Stripe is the primary online payment gateway. You connect it with your own Stripe API keys, so donations are charged directly on your account and pay out to your bank.
Adding your Stripe keys
- In your Stripe dashboard, go to Developers, then API keys.
- Copy the publishable key (
pk_test_…) and the secret key (sk_test_…). - Go to the Payment gateways tab in GiveFlow settings and open the Stripe card.
- Paste both into the Test keys section and choose Save and verify.
- Repeat with your live keys (
pk_live_…andsk_live_…) when you are ready to take real donations.
GiveFlow checks the keys with Stripe before saving them, so a mistyped or mismatched key is caught straight away. Secret keys are encrypted before they are stored and are never shown again.
Webhooks
Webhooks tell GiveFlow when a payment succeeds, fails or is refunded, so donation statuses stay in sync even if the donor closes their browser during payment. When you save your keys, GiveFlow registers its webhook endpoint on your Stripe account automatically.
On a local or private site Stripe cannot reach your server, so add the endpoint yourself in the Stripe dashboard and paste the signing secret into the Stripe card. There is a separate signing secret field for test and for live.
GiveFlow subscribes to these events:
payment_intent.succeeded,payment_intent.processing, andpayment_intent.payment_failedfor one-time donationscharge.refundedfor refundscharge.dispute.funds_withdrawnandcharge.dispute.funds_reinstatedfor disputesinvoice.payment_succeededandinvoice.payment_failedfor recurring donationscustomer.subscription.deletedfor canceled subscriptionsaccount.updatedfor account changes
GiveFlow also acts on account.application.deauthorized when Stripe sends it.
Supported payment methods
Stripe supports a wide range of payment methods:
- Card (Visa, Mastercard, American Express, and others)
- SEPA Direct Debit
- iDEAL
- Bancontact
- Apple Pay
- Google Pay
GiveFlow places no country or currency restriction on Stripe, so Stripe decides which of these methods a given donor is offered. Both one-time and recurring donations are supported.
Google Pay needs no setup and appears as soon as your Stripe account supports it. Apple Pay first needs Apple to verify that you own the domain. The Stripe card shows the domain to register. Add it in Stripe under Settings, then Payment method domains, paste the contents of the domain association file Stripe gives you into the Stripe card, and choose Enable Apple Pay. Until Apple verifies it, the Apple Pay button does not show.
PayPal
PayPal is the second online gateway. You connect it with credentials from your own PayPal REST app, so donations are paid into your own PayPal account. Donors can pay with PayPal, Venmo, Pay Later, or a card.
Adding your PayPal credentials
- At developer.paypal.com, go to Apps and Credentials and create a REST app. Sandbox and live are separate apps, so each needs its own credentials.
- Copy the client id and the secret.
- Go to the Payment gateways tab in GiveFlow settings and open the PayPal card.
- Paste them into the Sandbox credentials or Live credentials section and choose Save and verify.
GiveFlow checks the credentials with PayPal before saving them. Secrets are encrypted before they are stored and are never shown again.
PayPal webhooks
GiveFlow does not create the PayPal webhook for you. Copy the webhook endpoint shown in the PayPal card, add it as a webhook in your PayPal app, subscribe it to the payment and subscription events, then paste the webhook id back into the same credentials section. PayPal cannot verify an event without that id, so every incoming event is rejected until it is saved.
Until a webhook id is saved, PayPal is offered for one-time donations only. A recurring donation is charged the moment the donor approves it, and the webhook is the only thing that records that first payment, so GiveFlow leaves recurring out rather than take a payment it cannot record.
GiveFlow acts on these events:
PAYMENT.CAPTURE.COMPLETED,PAYMENT.CAPTURE.DENIED, andPAYMENT.CAPTURE.DECLINEDfor one-time donationsPAYMENT.CAPTURE.REFUNDEDfor refunds of one-time donationsBILLING.SUBSCRIPTION.ACTIVATED,BILLING.SUBSCRIPTION.CANCELLED, andBILLING.SUBSCRIPTION.EXPIREDfor recurring donationsPAYMENT.SALE.COMPLETEDfor recurring renewals
Supported currencies
PayPal settles in a fixed set of currencies and rejects anything outside it, so GiveFlow offers PayPal only when the donation currency is one of these:
AUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, ILS, JPY, MXN, MYR, NOK, NZD, PHP, PLN, SEK, SGD, THB, USD.
HUF and TWD are PayPal currencies but are not on this list, because PayPal rejects the decimal amounts GiveFlow sends for them. Stripe has no such restriction.
Offline donations
The Offline gateway lets you accept donations by cash, check, bank transfer, or other manual methods. No external payment service is required.
Setting up offline donations
- Go to the Payment gateways tab in GiveFlow settings and open the Offline donations card.
- Turn on Enable offline donations.
- Enter your instructions. GiveFlow emails them to the donor as soon as they submit an offline donation.
- Optionally, fill in the bank details template. It is emailed alongside the instructions, and the
{amount},{reference}and{donor_name}placeholders are filled in for you.
Confirming offline payments
Offline donations are not automatically confirmed. When the money arrives, open the donation in GiveFlow > Donations and choose Mark as paid. The same action is available as a row action on the donations list.
Until confirmed, the donation remains in a pending state. Offline donations are one-time only, because there is no stored payment method to charge again.
Sandbox gateway
The Sandbox gateway is a test-mode-only gateway designed for development and testing. It does not process real money.
How the Sandbox gateway works
- It only appears when the organization-wide test mode toggle is on. Per-form test mode flags that form’s donations as tests but does not add the Sandbox gateway to the form.
- It auto-confirms every donation immediately.
- It exercises the full donation pipeline, including emails and receipts.
When to use the Sandbox gateway
Use the Sandbox gateway to:
- Preview the complete donation flow without connecting Stripe or PayPal
- Test email templates and receipt generation
- Verify form behavior and redirect logic
- Train staff on the donation management workflow
For more details on testing workflows, see Test mode and sandbox.