Stripe Webhooks

Written by Nick Miles

Last published at: January 14th, 2021

Overview

CommunitySuite uses Stripe webhooks to process and record payments made from the Donation Portal, and to initiate the real-world transfer of money from Stripe to your bank account. In this article we'll show you how to enable/disable the web-hooks in your Stripe Payment Processor and explain how they work.

Please note that Stripe webhooks only apply to your Live site- they do not apply to your Sandbox site. 

  1. Log in to CommunitySuite and select Payment Processors from the Home page.
  2. Select Stripe.
  3. You should now be on the Stripe Payment Processor page, where you will see the Payment Processor, and Stripe Webhooks windows.

Please note that your payment processor must have a Live Secret Key, Live Publishable Key, Cash Receipt Account, and Deposit Account. Please speak with your CSM if you are missing any of these fields.

About the Webhooks

In the Stripe Webhooks window you'll see two webhooks: Public Donation Webhook and Transfer/Payout Webhook.

Public Donation Webhook

This webhook tells Stripe how to "call" CommunitySuite when a credit card payment is processed.

The Public Donation webhook must be enabled in order to process and record payments made from the Donation Portal.

How it works:

  1. When a donor clicks Pay With Credit Card in the Donation Portal, CommunitySuite "calls" Stripe and records a payment intent.
  2. The user is then taken to Stripe to enter their credit card information and "Pay".
  3. Shortly after the credit card transaction is processed in Stripe, Stripe will "call" CommunitySuite to let the system know whether or not the transaction was successful. Successful transactions will appear on the Donations page under Undeposited and Recent Donations.

Warning

There are a handful of scenarios where a transaction may process in Stripe, but not record back to CommunitySuite. This can result in the transaction appearing as Unpaid in CommunitySuite, even though it was successfully processed in Stripe.

Please see Unpaid Stripe Transactions below for more information

Transfer/Payout Webhook

This webhook is used by CommunitySuite to automatically record the real-world transfer of money from Stripe to the associated bank account at your bank.

The Transfer/Payout webhook is not required, but we highly recommend that you enable it. 

Enable Stripe Webhooks


Public Donation Webhook

  • Existing Users
    • No action needed.
  • New Users
    1. Click Setup in the furthest column on the right.
      • Please note that you will not have the option to Setup until your Stripe keys are added to your Stripe payment processor in CommunitySuite.
    2. In the Status column, click Enable.

Transfer/Payout Webhook

  • New and Existing Users
    1. Click Setup in the furthest column on the right.
      • Please note that you will not have the option to Setup until your Stripe keys are added to your Stripe payment processor in CommunitySuite.
    2. In the Status column, click Enable.


Unpaid Stripe Transactions

The Unpaid Stripe Transactions window shows any Stripe transaction (successful or unsuccessful) that was recorded in Stripe, but has not recorded back to CommunitySuite yet. This can happen if there's a communication failure between CommunitySuite and Stripe at any point between when Stripe records a payment intent (this is when the user clicks Pay with Credit Card), and when a user enters their credit card information and clicks Pay in Stripe.

There are a number of scenarios that can cause this, but but here a few of the most common:

  • A user gets to the Stripe payment screen, but uses the web browser's back button to return to the checkout screen (before clicking Pay in Stripe).
    • If a user needs to return to the checkout screen in the Donation Portal, they should use the back arrow in the upper-left corner of the Stripe payment screen.
  • A user gets to the Stripe payment screen, and closes the payment screen.
  • The Donor leaves the Stripe payment screen open for an extended period of time and the connection times out.
  • The Donor's internet connection fails while entering their credit card information (before they click Pay).

It's important to note that any Stripe transaction that's initiated from CommunitySuite will show as Unpaid for a short amount of time (while CommunitySuite and Stripe communicate), however, this should only last a few seconds under normal circumstances. What this section is referring to are Stripe transactions that have been "stuck" for extended periods of time (24 hours or more). 

Review and Fix Unpaid Stripe Transactions

Once a payment is processed in Stripe, Stripe will attempt to "call" CommunitySuite so CommunitySuite can record the transaction. If the first attempt fails, Stripe will try again every hour after. If a Stripe transaction continues to be Unpaid, you can navigate to Stripe to review the transaction and "re-call" the transaction.

  1. Click Dashboard next to the specific unpaid Stripe transaction.
  2. You will now be on the Stripe payment page where you can review the transaction and "re-call" it if necessary.