Subscription_billing_attempts/failure with payment_provider_is_not_enabled on dev store

Hi Shopify Support,

We’re testing subscription recurring billing on store: mealapp-test.myshopify.com.
Our app successfully triggers Shopify bulk billing charge, and Shopify returns a bulk job ID, but billing attempts fail with:

  • errorCode: payment_provider_is_not_enabled

  • errorMessage: Payment provider is not enabled on the shop

Evidence

  • Bulk charge accepted log:

  • shopifyBulkJobId: gid://shopify/Job/565f36ee-9d6c-439c-8459-4c0a31fee4d1

  • Billing attempt status endpoint result:

{
“success”: true,
“found”: true,
“contractId”: “gid://shopify/SubscriptionContract/22985474132”,
“shop”: “mealapp-test.myshopify.com”,
“status”: “FAILURE”,
“sourceTopic”: “subscription_billing_attempts/failure”,
“billingAttemptId”: “gid://shopify/SubscriptionBillingAttempt/83749077076”,
“errorCode”: “payment_provider_is_not_enabled”,
“errorMessage”: “Payment provider is not enabled on the shop”
}
Store/payment context

  • Development store

  • Bogus Gateway enabled in Settings → Payments

  • Contracts show customer payment method on contract details

    Please confirm whether this store/payment setup supports subscription renewal billing attempts, and what exact payment-provider configuration is required to avoid payment_provider_is_not_enabled for subscriptionBillingCycleBulkCharge / recurring subscription charges.

The Bogus Gateway is the catch here. It supports one-time checkout payments but doesn’t support subscription recurring billing. Shopify’s subscription billing engine needs a payment provider that has been explicitly enabled for recurring charges, and the Bogus Gateway isn’t one of them, regardless of what shows in Settings → Payments.

For testing subscription renewal billing on a dev store you have two options:

Option 1: Use a real payment provider in test mode
Stripe, Braintree, and a handful of others support recurring billing and have sandbox/test modes. Add one of these to your dev store instead of the Bogus Gateway, run through the checkout with a test card, and the resulting payment instrument will be eligible for recurring charges. Billing attempts should then go through.

Option 2: Use Shopify Payments in test mode (if available on your store)
If your dev store is on a plan that supports Shopify Payments, enable it and turn on test mode (Settings → Payments → Manage → Test mode). Shopify Payments does support subscription billing. Use the published test card numbers to create contracts.

A few things worth confirming on the contract side:

  • The SubscriptionContract must have a ACTIVE status, and the CustomerPaymentMethod attached to it must itself be valid (not expired or revoked). Even with a capable gateway, a stale payment method will produce a different error, but it’s worth ruling out.

  • When you call subscriptionBillingCycleBulkCharge, the returned Job ID confirms the job was accepted, not that the charges succeeded. You’re already polling the billing attempt status correctly, so that part looks fine.

The payment_provider_is_not_enabled error is specifically Shopify telling you the gateway attached to the contract’s payment method doesn’t have recurring billing enabled at the provider level. Swapping to a recurring-capable gateway in test mode should clear it.

Thank you very much @software-clever

You are very welcome