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 pursue.
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= on each recurring charge
*This is entirely optional. It may not be great UX for your users who aren't on recurring subscriptions to receive Retain's correspondence, so this addresses 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.created`
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.