Implementing Retain with Braintree a payment gateway

If you are managing subscriptions on Braintree , implementing Retain is pretty turn key. However, if Braintree is simply your payment gateway and you are managing subscriptions elsewhere, then we recommend implementing a few additional pieces of Retain to ensure good customer UX.

1. Indicate which charges are recurring vs. one time

When you connect ProfitWell to Braintree, Retain will recognize all of the charges happening inside of Braintree. 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, or adding a description to the charge, so that Retain knows which ones to persue.

Once you add the relevant metadata or description to the charges, let us know and we'll respect those after turning on Retain.

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 Braintree

ProfitWell Retain will nudge your customers to update their payment information and save it back to their profile in Braintree. However, it's imperative that your application and backend is aware of these updates so that your system can stay in sync with these updates and react accordingly.

You can do this by polling for various information using the Braintree API.

1. When a customer updates their payment information, we first create a payment method with the Payment Method: Create request.

2. We then retry the customer for the amount that failed with the Transaction: Sale request.

3. You can hit the Braintree API to query for transactions with status settled  and processor_declined to find which customers succsfully updated their information.

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)