Bug: Patreon doesn't recognize US cents value properly on currency change

This is a complex issue to describe but it’s definitely a severe bug affecting the entire platform. Bear with me.

I have a $15 tier. Here’s an example URL I use:

https://www.patreon.com/oauth2/become-patron?response_type=code&min_cents=1500&client_id=X&scope=X&redirect_uri=X

The min_cents parameter is set to 1500 ($15). And it works perfectly for people who pay in USD, but not for people who pay in different currencies.

To explain this, here’s the process:

  1. User clicks on the link and is redirected to Patreon.
  2. Patreon checks if the user has already pledged this sum. If they have, Patreon shows them the “Connect to site” with allow button and then finally sends them to the URL set in redirect_uri.
  3. If they have not pledged, Patreon shows the payment screen.

This redirect process works in all cases besides when the user pays in a different currency. In those cases, they will be stuck on the payment screen.

In my test case, I had a user pledging the $15 tier but paid in pounds. So £11.50.

Here’s their screen:

As you can see on the summary on the right side, they have already pledged this sum (credit matches pledge total), but yet, they are being displayed this screen, when they should have been redirected to redirect_uri. Do you see the problem? This user shouldn’t even have even been sent to the payment page, where they are now stuck. They have already pledged this tier and should have been sent to the redirect url.

When I fetch the member data via the API, everything checks out properly. This user has pledged the correct tier ($15). Meaning, Patreon is not recognizing the currency conversion properly.

I can confirm this because I asked the user (with the $15/£11.50 pledge) to click on a link with min_cents set to 1000 ($10) and it redirected properly.

To test this bug, try this:

  1. Setup a Patreon creator page (using USD as main currency), with a $15 tier.
  2. Pledge this tier using pounds (should be £11.50).
  3. See how Patreon won’t redirect to redirect_uri when it should:
    https://www.patreon.com/oauth2/become-patron?response_type=code&min_cents=1500&client_id=X&scope=X&redirect_uri=X

This is the type of bug that makes perfect sense if you test it yourself.

I am senior level developer so please let me know if you need anything technically from me to test and resolve this bug. Thanks!

Did you or the patron change your currencies at any point?

No, I did not change our currency, and I believe the patron did not change their currency either.

What else do you need to troubleshoot this? Were you able to replicate the bug?

This situation is not reproducable with test accounts (prod). This was an issue in October, but since the fix then, its not.

Do all your patrons experience this? Also, how do these patrons appear in PRM?

It must still be a bug if we just stumble across this issue.

We only launched on Patreon last week, so only got one report so far (which was from the user who paid in pounds). How do you mean, how they appear in PRM? This user is listed there, on the correct $15 tier, but stated in pounds (£11.50).

This user told me they changed their email address (on patreon) after pledging. Not sure if that is something that could be helpful for you when troubleshooting this.

What else do you need from me to replicate this?

Yes, this is likely an issue with the way currency checking is handled during pledge process. This would be better handled by opening a support ticket at Patreon instead of discussing it at the dev forum. If you go to Patreon helpdesk and open a ticket with the exact info in your initial post, that would help.