← Back to help center

Troubleshooting

This guide covers common issues you may encounter with GiveFlow and how to resolve them.

Donations not appearing

Symptoms: A donor completes a payment, but the donation does not show up in the GiveFlow dashboard.

Likely cause: The donation was taken in test mode. Test donations are hidden by default and never counted in your totals.

Solution:

  1. Go to GiveFlow > Donations and turn on Show test donations.
  2. If the donation appears there, it was a test donation. The list tells you how many test donations are hidden whenever the toggle is off.
  3. Check whether test mode is on in GiveFlow > Settings > Payments, and turn it off when you are ready to take real money.

Dashboard totals always exclude test donations, so a test donation never shows there even with the list toggle on.

If the donation is missing from the list entirely, the payment provider may never have told GiveFlow about it. Check the gateway’s own delivery log: Stripe under Developers > Webhooks, PayPal on the webhook you added to your REST app. Then see Webhooks.

Offline donations are different. They are never confirmed automatically, so they stay pending until someone opens the donation in GiveFlow > Donations and chooses Mark as paid.

Emails not sending

Symptoms: Donors do not receive confirmation emails or receipts after donating.

Likely cause: Your from email address is not properly authenticated, or your server cannot send mail.

Solution:

  1. Go to GiveFlow > Settings > Emails.
  2. Verify your From email address is correct and uses your domain.
  3. Set up SPF and DKIM records for your domain. These DNS records prove to email providers that your server is authorized to send email from your domain.
  4. Consider using a dedicated email delivery service (such as Amazon SES, Mailgun, or Postmark) via a WordPress SMTP plugin.

The same screen has a Send a test email card. Use it to confirm mail leaves your server at all, and check the spam folder as well as the inbox. You can also resend a receipt from any paid donation under GiveFlow > Donations.

Stripe connection issues

Symptoms: GiveFlow says it could not verify your keys when you save them in GiveFlow > Settings > Payments.

Likely cause: The keys belong to the wrong mode, or your server cannot reach Stripe.

Solution:

  1. Check that you pasted both the publishable key and the secret key, and that they came from the mode you are saving them under. Test keys belong under Test keys, live keys under Live keys.
  2. Check that your server can make outbound HTTPS requests to api.stripe.com. GiveFlow verifies every key with Stripe before it saves it, so a blocked request looks like a bad key.
  3. If you use a firewall or security plugin, ensure it is not blocking requests to Stripe’s API.
  4. Confirm your site loads over HTTPS with a valid SSL certificate. The Setup tab flags this too.

PayPal connection issues

Symptoms: GiveFlow says PayPal rejected the credentials when you save them in GiveFlow > Settings > Payments.

Likely cause: The credentials belong to the other environment, or your server cannot reach PayPal.

Solution:

  1. Check that you pasted both the client id and the secret. GiveFlow refuses the save when either is empty.
  2. Check the environment. Sandbox and live are separate apps at developer.paypal.com and separate PayPal systems, so sandbox credentials saved under Live credentials are rejected. GiveFlow exchanges the pair for a token with PayPal before it stores them, so a mismatch is caught at save time rather than at the first donation.
  3. Check that your server can make outbound HTTPS requests to api-m.paypal.com for live and api-m.sandbox.paypal.com for sandbox. A blocked request comes back as a transport error and reads like a bad credential.
  4. A rejected save leaves the credentials you already had in place, so the mode keeps working on the old pair while you sort it out.

If the PayPal card says Ready but no PayPal buttons appear on your form, check that Enable the PayPal gateway is on, and check the currency. PayPal is offered only in the currencies it settles in, and HUF and TWD are not among them.

Stripe webhook failures

Symptoms: Payments are processed in Stripe, but donation statuses do not update in GiveFlow.

Likely cause: Webhooks from Stripe are not reaching your site, or signature verification is failing.

Solution:

  1. Review the Stripe dashboard under Developers > Webhooks for delivery errors and HTTP status codes. This is where you can see whether the events left Stripe and what your site answered.
  2. Verify your site is publicly accessible (not behind HTTP authentication or a maintenance mode plugin).
  3. Go to GiveFlow > Settings > Payments and check the webhook signing secret for the mode you are in. GiveFlow registers the endpoint on your Stripe account when you save your keys, but on a site Stripe cannot reach you have to add the endpoint in Stripe yourself and paste its signing secret here.
  4. Remember there is a separate signing secret for test and live. Without the live one, live webhooks are rejected.

For more details, see Webhooks.

PayPal webhook failures

Symptoms: PayPal shows the payment, but the donation does not update in GiveFlow. PayPal reports 400 responses for its deliveries.

Likely cause: No webhook id is saved for that mode, or PayPal cannot reach your site.

Solution:

  1. GiveFlow does not create the PayPal webhook for you. Copy the webhook endpoint from the PayPal card in GiveFlow > Settings > Payments, 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.
  2. Check the mode. Sandbox and live are separate apps with separate webhooks and separate ids. The PayPal card warns you when a mode has credentials saved but no webhook id.
  3. PayPal has no signing secret. GiveFlow verifies each event by calling PayPal back with the webhook id, so incoming webhooks need outbound HTTPS to PayPal as well. With no webhook id saved, or when PayPal does not confirm the signature, GiveFlow answers 400 and does nothing else.
  4. Verify your site is publicly accessible, and that your server or hosting firewall allows POST requests to /giveflow/v1/webhooks/paypal.
  5. For a delivery PayPal reports as 200, open it and read the response GiveFlow returned. It names the event type GiveFlow saw and whether GiveFlow handled it.

While a mode has no webhook id saved, PayPal is offered for one-time donations only. The recurring option comes back as soon as you save the id.

PayPal donation stays pending

Symptoms: A donor finishes in PayPal, but the donation sits in Pending or Processing instead of turning paid.

Likely cause: PayPal has the money and the event that settles it has not arrived, or the event arrived and was refused.

Solution:

  1. For recurring, PayPal takes the first payment the moment the donor approves, and GiveFlow books it from the opening PAYMENT.SALE.COMPLETED event. The signup donation stays pending until that event lands, so confirm the webhook id is saved for the mode. If the event arrives before GiveFlow has finished recording the subscription, GiveFlow asks PayPal to redeliver, and the payment appears once a later attempt succeeds.
  2. For one-time donations, a capture PayPal holds rather than completes, such as an eCheck or a payment under review, moves the donation to Processing instead of failing it. PayPal settles it later, and the PAYMENT.CAPTURE.COMPLETED event finishes it in GiveFlow.
  3. Check that the mode matches. GiveFlow acts on an event only when the gateway, the mode and the amount agree with the donation, so an event signed with sandbox credentials will not confirm a live donation, and a capture for a different amount is refused. In that case PayPal sees a 200 and the donation is left alone.
  4. If the money is in your PayPal account and the donation is still pending or processing, open it in GiveFlow > Donations and choose Mark as paid.

Donation form not loading

Symptoms: The page where you placed a donation form shows a blank area or a loading spinner that never completes.

Likely cause: A JavaScript conflict with another plugin or theme, or the form’s campaign is not open for donations.

Solution:

  1. Confirm both the donation form and its linked campaign are set to Published status, and that a campaign with a schedule is inside its start and end dates. GiveFlow renders nothing at all when the campaign is not taking donations.
  2. Open your browser’s developer console (F12) and check for JavaScript errors.
  3. Deactivate other plugins one at a time to identify conflicts.
  4. Switch to a default WordPress theme temporarily to rule out theme conflicts.

Missing required blocks error

Symptoms: The form builder shows an error about missing required blocks when you try to publish a form.

Likely cause: Your donation form is missing one or more blocks that GiveFlow requires for a valid form.

Solution:

  1. Open the form in the form builder.
  2. Read the error message to identify which blocks are missing.
  3. Add the required blocks to your form layout.
  4. Save and publish the form again.

Every donation form must include an Amount block, a Name block and an Email block. The form builder checks for those three before it lets you publish.

General tips

  • Check the error log. Go to GiveFlow > Tools > Logs to see what GiveFlow could not finish. You can filter the entries by source, and clear the log once you have dealt with them.
  • Check test mode. Many issues come down to test mode being on when you expected live, or the other way round. Verify which mode is active in GiveFlow > Settings > Payments.
  • Clear caches. If you use a caching plugin, clear your page cache and object cache after making changes to GiveFlow settings.