Solid Rubrick For Paid Members

I’m having a hard time nailing down v2 API calls and logic that I can reliably get a list of all Paid users and deciphering all the mutations of users. For example:

  1. what qualifies a paying member that should have access. Currently I have been using status - active_patron and current_entitled_amount_cents > 0 but thats got it nuances as well.

  2. multiple “paid” members missing tiers.

  3. There’s a mystery Free tier I didn’t create.

  4. There’s several permutations of situations that make it difficult to know whose paid at the moment and thier tier. Missing tiers, meets criteria of paid member but billing date is in past, null status, etc.

Ultimately I’m trying to create a sync mechanism that I can integrate with memberpress for memberships, we currently use code bard pro plugin and pmpro but are migrating to memberpress and patreon access and memberpress access out the box seems to AND not OR with patrons.

The best way to determine if someone’s a member is by looking at thepatron_status attribute on the member resource. Active members will have this field set to active_patron. Additionally you might want to check the associated tiers with each membership in case you want to know to which tier the user is pledging to.

As for free tier - this is automatically created / available for every creator and there is no way to disable it.

what I currently use is status = active_patron, payment != decline and currently_entitled_amount_cents > 0

  • seems status isn’t reliable enough to report as I see some active without tiers
  • seems Paid isn’t enough on its own as active and Paid could have a date of months ago since paid.
  • currently entitled amount cents is probably one of the most solid as if it’s not > 0 then its for sure not a paying customer.

Just feels like a simple question like how do I pull only the paying customers would be a simple API call with filters but alas I have read forum after forum and the API docs don’t even list the response fields types or possible values so it’s hard to derive what’s the right formula.

I did find out as you mentioned the free tier is a tier provided by patreon they make and is usually assigned via join for free button, if you have a old member (2020) and they stop paying the tier is just “-”.

So far all the users line up but the logic I had to create for several edge cases felt unnessesary.

seems status isn’t reliable enough to report as I see some active without tier

I don’t have enough information about your integration, but there can be cases when a user has an active membership (patron_status=active_patron) without having a tier. One of these cases is when a tier is deleted. There can be also cases when a pledge does not have specific tier and user is pledging custom amount.

Without more data it’s difficult for me to guess what state this user is in.

seems Paid isn’t enough on its own as active and Paid could have a date of months ago since paid.

I’m not sure what attribute are you referencing, I’m guessing you meant last_charge_status? if that’s the case - yes it can be Paid with a payment being from few months ago, this field indicates the status of the last payment.

patron_status is the best way to verify if someone has an active membership or not. You might need to decide how to handle cases when no tier is associated with the membership.

I’m working on a WordPress Patreon Sync Tool for MemberPress subscriptions so there is integration with MemberPress and Patreon/Code Bard Plugin. Finished last night and things have been rock solid with most edge cases solved. I think the missing tier issue, custom pledges, and having to dig deeper into the member data took the longest to tease out what I needed. Basically I pull a list of active members, verify the campaign tier, see if they are on a current billing cycle, create a user, link to patreon account, map to MemberPress subscription tier, then create subscription and transaction data for the user from Patreon member data. The cron sync and update records, dates, payments, etc. or you can do a full or incremental sync manually. Then I added instrumentation to true up the numbers and make sure everything is the same on the WordPress and Patreon and you can see historical data. This way you can manage your members on both Patreon and MemberPress natively in MemberPress.

The client has had Patreon since less than the first million users so the data quality and flow has some interesting edge cases that people after 2023 (free tier introduced) probably never have to deal with either.

I’m still not 100% sure what happens to someone who ends payment on atier vs someone who signs up for free tier, does paid → non paid become free or “-” for the tier. I will ask the client also about if they have deleted tiers in the past. When that happens does the tier just got to “-” or do they get rehomed to "Free”?