Implementing Retain with Stripe as a payment gateway

If you are managing subscriptions on Stripe (Stripe Billing), implementing Retain is pretty turn key. However, if Stripe is simply your payment gateway and you are managing subscriptions elsewhere, then we recommend implementing a few additional pieces of Retain.

1. Indicate which charges are recurring vs. one time

When you connect ProfitWell to Stripe, Retain will recognize all of the charges happening inside of Stripe. Unfortunately, we won't know which ones are associated with recurring transactions vs. one time transactions. If you have a meaningful volume of one off transactions, you can indicate which ones are recurring by adding some metadata to each charge so that Retain knows which ones to persue.

Once you add the relevant metadata to the charges, let us know and we'll respect those after turning on Retain. More info on adding metadata to Stripe's charges can be found here.

example metadata: IsRecurring=1  on each recurring charge

*This is entirely optional. It may not be great UX for your users who aren't on recurring subscriptiosn to receive Retain's correspondence, so this address that issue.

2. Ensure you're listening to updates in Stripe

ProfitWell Retain will nudge your customers to update their payment information and save it back to their profile in Stripe. However, it's imperative that your application and backend listen to these updates so that your system can stay in sync w/ updates.

You can listen to the following Stripe events using their webhooks to update your side when customers update their information : charge.succeeded charge.failed and customer.source.updated 

More info on Stripe's webhooks here.

3. Stop Retain for a given customer

Each Retain email will have a unsubscribe link in the footer so that users can tell us to stop reaching out to them. However, you can also have Retain stop all further outreach programmatically via API endpoint. or manually via the UI.


How did we do?


Powered by HelpDocs (opens in a new tab)