Failed BillingAttempts due to internal/Shopify issues still show up on customers' bank transactions

Over the past year, the number of SubscriptionBillingAttemptErrorCodes has steadily increased to include non-billing errors and as of the 2024-07 version with the new INSUFFICIENT_INVENTORY error code it’s almost as likely that a billing attempt fails without ever actually needing or trying to charge a credit card.

In theory that’s not a problem (its actually nice that it’s growing in complexity), unfortunately Shopify seems to be running the auth on customers’ cards regardless of whether or not there will be a Shopify/internal reason for the billing attempt to fail.

Example:

  • Subscription contract has a line with negative inventory on a product that tracks inventory and doesn’t allow continuing to sell

  • Billing attempt is created for subscription contract

  • Shopify does a pre-auth on the customer’s credit card (this shows up in the customer’s bank generally as a “Pending” transaction)

  • Shopify fails the billing attempt with the INSUFFICIENT_INVENTORY error code

  • Shopify never completes the transaction on the card so the customer isn’t charged

This means that customers could end up with multiple “pending” transactions showing up in their bank. Most consumers will look at that and think that they’ve been charged multiple times. But even if its only one pending transaction, its a bad look since no order is being created.

Since Shopify has the ability to know if errors like INSUFFICIENT_INVENTORY (errors that are unrelated to charging a payment method) are happening, wouldn’t it make a lot more sense not to do the authorization on the customers’ bank until you know those internal errors are not going to happen?

Thanks for your help!

Hey Brian - our product team is currently looking into this issue. I’ll keep an eye on their progress and report back.

1 Like

Hi @Brian_Singer, I can confirm this issue is also resolved as part of the solution for this query: [BUG] Subscriptions with deleted products get inconsistent INSUFFICIENT_INVENTORY billing failures

Many thanks,

Paul

2 Likes