Recently we created some payment methods via customerPaymentMethodRemoteCreate
. The payment methods were coming from Stripe where a valid payment method existed but it wasn’t attached to a Stripe customer. Shopify clearly allowed me to create the payment method and has access to all the card info (ex: gid://shopify/CustomerPaymentMethod/f6a0fb5245518bdacf06bbd64c83c60c
) but when a billing attempt is triggered for a subscription with this customer payment method (gid://shopify/SubscriptionContract/189413851223
) the billing attempt fails with a CUSTOMER_NOT_FOUND
error.
This payment method has been charged successfully many times in Stripe and Shopify allowed me to create the payment method in Shopify Payments so I’m curious if there’s some change that can be made on Shopify’s side to allow these payment methods to work. We have a merchant trying to migrate thousands of subscriptions on to Shopify but this is obviously a blocker for them as the vast majority of their payment methods are in this same situation.
Any help would be greatly appreciated!!
Thanks 
Hey Brian.
I’ve taken a look at this payment method, and it’s really odd. We have been able to use the provided credentials to fetch some data from Stripe (e.g. display digits).
But as you pointed out, when trying to charge this card, Stripe is responding with that error code you’re seeing. They also provided this URL as documentation for the error response.
Something I found odd was that this customer’s Stripe id has the prefix gcus_
, while usually those seem to have the prefix cus_
.
Have you tried reaching out to Stripe? I’m not sure there’s much we can do on our end, unfortunately.
Thanks for the quick response @Diego_Lippel!
These customers had their payment methods stored in Stripe by a different platform and it appears that they stored them without creating customers so in Stripe they appear as guest customers (meaning they don’t actually have a customer connected and therefor there is no customer Id). The only way to create a payment method via Shopify GQL (createRemoteCard) is by providing a stripe customer id and optional payment method id. When we created these we provided the customer ids that you’re seeing (not really valid ids) and a valid payment method id.
However it’s clear that the other platform had been charging and recharging these payment methods.
I’m curious if it’s possible that you could somehow feature flag this merchant into a special case where the customer Id is not passed when trying to create the payment in Stripe because as you can see the payment method is there but by providing an invalid customer Id it’s causing the request to fail.
Thanks again!
We do not have that mechanism available. I think the best recommendation at this stage might be to ask buyers to update their payment methods with the merchant.
1 Like