<head> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "TechArticle", "headline": "5 Common Mollie Subscription Failures on Shopify (And How to Fix Them)", "description": "Comprehensive troubleshooting guide for Mollie subscription issues on Shopify, covering webhook failures, payment method errors, SCA authentication loops, and more.", "author": { "@type": "Organization", "name": "Subora" }, "publisher": { "@type": "Organization", "name": "Subora", "logo": { "@type": "ImageObject", "url": "https://subora.eu/logo.png" } }, "datePublished": "2026-04-17", "dateModified": "2026-04-17", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://subora.eu/blog/mollie-subscription-troubleshooting-shopify" }, "articleSection": "Troubleshooting", "keywords": "mollie subscription issues shopify, mollie webhook errors, shopify subscription troubleshooting, mollie payment failures, shopify mollie integration" } </script> </head>
5 Common Mollie Subscription Failures on Shopify (And How to Fix Them)
Meta Description: Experiencing mollie subscription issues shopify? Learn how to fix webhook failures, payment method errors, SCA authentication loops, status sync problems, and failed renewals with step-by-step solutions.
Introduction: Why Subscriptions Fail (And Why It Matters)
When you're running a subscription business on Shopify with Mollie, every failed payment isn't just lost revenue—it's a potential customer relationship at risk. Subscription failures create a domino effect: missed payments lead to service interruptions, frustrated customers, and ultimately, churn that could have been prevented.
The European subscription market is booming, with local payment methods like iDEAL, Bancontact, and SEPA dominating customer preferences. Mollie has emerged as a critical bridge between Shopify and these regional payment preferences. But this integration, while powerful, comes with its own set of technical challenges that can derail your recurring revenue if not properly managed.
The good news? Most Mollie subscription issues follow predictable patterns. Once you understand the root causes—and the exact steps to resolve them—you can transform these failures from business-threatening emergencies into minor operational hiccups.
In this guide, we'll walk through the five most common Mollie subscription failures on Shopify, complete with real error messages, diagnostic techniques, and actionable fixes you can implement today.
Problem 1: Webhook Delivery Failures
The Symptoms
Your Shopify store and Mollie dashboard are showing different payment statuses. Orders remain in "pending" state indefinitely. Customers report successful payments, but their subscriptions aren't activated. You see errors like:
Failed to call webhook (Got HTTP/1.1 405 Method Not Allowed instead of 20x)Or in your Mollie dashboard:
Webhook delivery failed: Timeout after 5 secondsWhy This Happens
Webhooks are the nervous system of your subscription integration. When a customer completes a payment, Mollie sends a webhook notification to your Shopify store to update the order status. If this communication breaks down, your systems fall out of sync.
Common causes include:
- SSL Certificate Issues: Mollie requires HTTPS webhooks. Self-signed certificates or expired SSL certs will cause immediate failures.
- Response Timeouts: Your webhook endpoint must respond within 5 seconds. Heavy database operations or slow third-party API calls can breach this limit.
- HTTP Method Mismatch: Mollie sends POST requests. If your endpoint only accepts GET, you'll see 405 errors.
- Firewall/Security Rules: Overzealous WAF rules or IP blocking can prevent Mollie's servers from reaching your webhook.
- Localhost Testing: Mollie cannot reach
localhostor private IP addresses. Webhook URLs must be publicly accessible.
Step-by-Step Fix
Step 1: Verify Your Webhook URL
Check your Mollie dashboard under Developers > Webhooks. Ensure the URL:
- Uses HTTPS (not HTTP)
- Is publicly accessible (not localhost)
- Points to the correct endpoint (usually
/webhooks/mollieor similar)
Step 2: Test Response Time
Use curl to test your webhook response time:
curl -w "@curl-format.txt" -o /dev/null -s \
-X POST https://your-store.com/webhooks/mollie \
-d "id=tr_test123"If response time exceeds 4 seconds, optimize your webhook handler:
// Immediate acknowledgment pattern
<?php
// Send 200 response immediately
http_response_code(200);
flush();
fastcgi_finish_request(); // If using PHP-FPM
// Then process the webhook data
$paymentId = $_POST['id'];
processWebhook($paymentId);
?>Step 3: Check Server Logs
Review your server access logs for Mollie IP ranges:
grep "34.85.64.0/18\|35.214.64.0/18" /var/log/nginx/access.logIf requests aren't appearing, check your firewall/WAF settings.
Step 4: Validate SSL Configuration
Test your SSL certificate:
openssl s_client -connect your-store.com:443 -servername your-store.comLook for verification errors. Ensure your certificate chain is complete.
Step 5: Implement Webhook Retry Handling
Mollie retries failed webhooks up to 8 times over 4 hours. Make your handler idempotent:
# Example: Idempotent webhook handler
def handle_webhook(payment_id):
# Check if already processed
if PaymentLog.exists(payment_id=payment_id):
return {"status": "already_processed"}
# Process payment
process_payment(payment_id)
# Log to prevent duplicate processing
PaymentLog.create(payment_id=payment_id, processed_at=now())
return {"status": "success"}Quick Verification Checklist
- [ ] Webhook URL uses HTTPS
- [ ] Response time under 4 seconds
- [ ] Returns HTTP 200 for valid requests
- [ ] Handles duplicate webhook calls gracefully
- [ ] Mollie IPs whitelisted in firewall
- [ ] SSL certificate valid and properly chained
Problem 2: Payment Method Not Available for Subscriptions
The Symptoms
Customers can't see their preferred payment method at checkout. You notice iDEAL, Bancontact, or SEPA options are missing from subscription products. Error messages may include:
This payment method is not available for subscription paymentsOr in the Shopify checkout:
Some payment methods are unavailable for this orderWhy This Happens
Not all Mollie payment methods support recurring payments. While credit cards and SEPA direct debit work for subscriptions, one-time methods like iDEAL require specific configuration or alternative approaches.
The confusion often stems from:
- Method Activation: Payment methods may be active in Mollie but not enabled for subscriptions
- Regional Restrictions: Some methods only support subscriptions in specific countries
- Account Approval: Certain payment methods require Mollie's approval before they appear
- Shopify App Configuration: The connection between Shopify and Mollie may not be syncing payment methods correctly
Step-by-Step Fix
Step 1: Verify Payment Method Compatibility
Check Mollie's official documentation for subscription-supported methods. As of 2025, these methods typically support recurring payments:
[Table: | Payment Method | Subscription Support | Notes | |----------------|---------------------|-------| |...]
Step 2: Activate Methods in Mollie Dashboard
- Log into your Mollie Web App
- Select your organization (top-left)
- Go to Organization settings > Profiles
- Select your web store
- Review payment method status
- Click Activate on methods you need
Step 3: Check Shopify App Settings
If using a Shopify app (like Firmhouse or native Mollie):
- Go to Shopify Admin > Apps
- Open your Mollie subscription app
- Navigate to Payment Methods
- Sync/refresh payment methods from Mollie
- Enable subscription-eligible methods in checkout settings
Step 4: Test Payment Flow
Create a test subscription order:
1. Go to your store frontend
2. Add a subscription product to cart
3. Proceed to checkout
4. Verify available payment methods
5. Complete a test purchase
6. Verify subscription creation in Mollie dashboardStep 5: For Local Methods (iDEAL/Bancontact) Without Native Subscription Support
Consider using a subscription orchestration layer like Firmhouse:
Solution: Firmhouse Middleware
├── Customer pays via iDEAL (one-time)
├── Firmhouse creates mandate
├── Subsequent payments: SEPA Direct Debit
└── Customer experience: SeamlessThis approach lets customers start subscriptions with familiar local methods while using SEPA for recurring charges.
Problem 3: SCA/3D Secure Authentication Loops
The Symptoms
Customers get stuck in repeated authentication screens. They complete 3D Secure, but the payment doesn't process. Errors include:
Authentication required. Please verify with your bank.Or after completing authentication:
Transaction declined: 3D Secure authentication failedWhy This Happens
PSD2 regulations require Strong Customer Authentication (SCA) for most European transactions. While Merchant Initiated Transactions (MITs)—like subscription renewals—should be exempt from SCA, issuing banks can still challenge them.
The authentication loop occurs when:
- Bank Challenges MIT: The customer's bank requests SCA for a recurring payment
- Customer Not Present: The merchant-initiated renewal happens in the background, so the customer can't complete authentication
- Fallback Failures: The retry mechanism doesn't properly handle the authentication requirement
- Mobile Banking Issues: Some bank apps don't handle recurring authentication smoothly
Step-by-Step Fix
Step 1: Implement Smart Retry Logic
Configure your subscription app to handle soft declines differently:
If decline_reason = "authentication_required":
- Don't retry immediately
- Send customer notification
- Provide self-service authentication link
- Schedule retry after customer actionStep 2: Set Up Customer Re-Authentication Flow
Create a dedicated page for customers to re-authenticate:
Email Template: "Action Required for Your Subscription"
─────────────────────────────────────────────────
Hi [Customer Name],
Your bank requires additional verification for your
upcoming subscription payment.
[Authenticate Payment] ← Link to secure re-auth page
This is required by European banking regulations (PSD2).
Your subscription will continue normally after verification.
Questions? Reply to this email.
─────────────────────────────────────────────────Step 3: Configure Dunning for 3DS2 Declines
Set up a specific dunning sequence for authentication failures:
[Table: | Day | Action | Channel | |-----|--------|---------| | 0 | Send re-authentication link | Email + SM...]
Step 4: Pre-Authenticate High-Value Transactions
For high-value subscriptions, authenticate the full amount upfront during signup:
Initial Subscription Setup:
├── Charge: €100 (first month)
├── SCA: Full authentication performed
├── Mandate: Created for recurring
└── Future renewals: MIT exempt (usually)Step 5: Monitor Bank-Specific Patterns
Track which banks cause more authentication challenges:
SELECT
bank_name,
COUNT(*) as total_attempts,
SUM(CASE WHEN status = 'failed_3ds' THEN 1 ELSE 0 END) as auth_failures,
(SUM(CASE WHEN status = 'failed_3ds' THEN 1 ELSE 0 END) * 100.0 / COUNT(*)) as failure_rate
FROM subscription_payments
GROUP BY bank_name
HAVING failure_rate > 10This data helps you proactively communicate with affected customers.
Problem 4: Subscription Status Sync Issues Between Shopify and Mollie
The Symptoms
A customer's subscription shows as "Active" in Shopify but "Cancelled" in Mollie. Orders aren't generating on billing dates. Customers complain about being charged for cancelled subscriptions. Common error patterns:
Status mismatch: Shopify shows active, Mollie shows cancelledOr:
Subscription renewal processed but order not created in ShopifyWhy This Happens
Shopify and Mollie maintain separate subscription records. When the sync mechanism fails, you get two sources of truth that don't agree.
Causes include:
- Webhook Failures: As discussed in Problem 1, missed webhooks cause status divergence
- API Timeouts: Large subscription batches can timeout during sync
- Partial Updates: Network interruptions during status updates leave records in inconsistent states
- Manual Interventions: Manual cancellations in one system but not the other
- App Errors: Bugs in the integration app handling edge cases incorrectly
Step-by-Step Fix
Step 1: Establish a Single Source of Truth
Determine which system owns the subscription state:
Recommended: Mollie as Source of Truth
├── Mollie stores payment mandate
├── Mollie controls billing dates
├── Shopify displays subscription status
└── Sync direction: Mollie → ShopifyStep 2: Implement Status Reconciliation
Run a daily reconciliation job:
def reconcile_subscriptions():
mollie_subs = fetch_all_mollie_subscriptions()
shopify_subs = fetch_all_shopify_subscriptions()
for m_sub in mollie_subs:
s_sub = find_matching_shopify_sub(m_sub.id)
if s_sub is None:
log_missing_in_shopify(m_sub)
create_shopify_subscription(m_sub)
elif s_sub.status != m_sub.status:
log_mismatch(m_sub, s_sub)
update_shopify_status(s_sub.id, m_sub.status)Step 3: Create Manual Override Procedures
Document when and how to manually fix sync issues:
Manual Sync Resolution Protocol:
Case A: Customer cancelled in Mollie, still active in Shopify
1. Verify cancellation in Mollie dashboard
2. Cancel corresponding Shopify subscription
3. Refund any duplicate charges
4. Email customer confirming cancellation
Case B: Renewal processed in Mollie, no Shopify order
1. Check Mollie payment status (paid?)
2. Create Shopify order manually if needed
3. Mark as paid using Mollie transaction ID
4. Fulfill order through normal process
Case C: Subscription active in both, but renewals failing
1. Check mandate status in Mollie
2. Verify payment method hasn't expired
3. Request customer update payment details
4. Monitor next renewal attemptStep 4: Build a Sync Health Dashboard
Monitor these metrics:
-- Daily sync health check
SELECT
DATE(created_at) as date,
COUNT(*) as total_subscriptions,
SUM(CASE WHEN shopify_status = mollie_status THEN 1 ELSE 0 END) as synced,
SUM(CASE WHEN shopify_status != mollie_status THEN 1 ELSE 0 END) as out_of_sync
FROM subscription_status_log
GROUP BY DATE(created_at)
ORDER BY date DESC
LIMIT 30;Alert if out-of-sync percentage exceeds 1%.
Step 5: Implement Event-Driven Sync
Don't rely solely on scheduled syncs. Use webhooks for real-time updates:
// Webhook handler for subscription events
app.post('/webhooks/mollie', async (req, res) => {
const event = req.body;
// Acknowledge immediately
res.status(200).send('OK');
// Process based on event type
switch(event.type) {
case 'subscription.charged':
await createShopifyOrder(event.data);
break;
case 'subscription.cancelled':
await cancelShopifySubscription(event.data);
break;
case 'subscription.payment_failed':
await handleFailedPayment(event.data);
break;
}
});Problem 5: Failed Renewal Payments and Dunning
The Symptoms
Renewal payments fail silently. Customers only find out when their service stops working. You see a spike in involuntary churn. Common errors:
Payment failed: Insufficient fundsPayment failed: Card expiredSubscription paused after 3 failed attemptsWhy This Happens
Payment methods change—cards expire, bank accounts close, funds fluctuate. Without a systematic approach to handling these failures, you lose customers who actually want to continue their subscription.
The root causes are:
- No Dunning Strategy: Failed payments aren't retried or customers aren't notified
- Insufficient Retry Logic: Giving up after one attempt instead of using smart retry schedules
- Poor Communication: Generic "payment failed" emails that don't explain next steps
- No Grace Periods: Immediate service suspension creates panic and cancellations
- Missing Account Updater: Not using card network services to update expired card details automatically
Step-by-Step Fix
Step 1: Implement Smart Dunning Rules
Configure retry logic based on failure type:
[Table: | Failure Reason | Retry Schedule | Customer Notification | |----------------|----------------|-----...]
Step 2: Enable Account Updater Services
Activate automatic card updates through Mollie or your subscription app:
Card Network Account Updaters:
├── Visa Account Updater (VAU)
├── Mastercard Automatic Billing Updater (ABU)
├── Amex Card Refresher
└── Discover Account UpdaterThis can prevent 15-20% of renewal failures before they happen.
Step 3: Create Pre-Dunning Alerts
Notify customers before their card expires:
Email: "Update Your Payment Details"
────────────────────────────────────
Timing: 30 days before card expiry
────────────────────────────────────
Hi [Customer Name],
Your card ending in 4242 expires next month.
To avoid any interruption to your subscription:
[Update Payment Method]
This takes 30 seconds and ensures uninterrupted service.
────────────────────────────────────Step 4: Design a Customer Recovery Portal
Create a self-service page for payment updates:
Recovery Portal Features:
├── One-click payment method update
├── View failed payment history
├── Retry failed payment immediately
├── Update billing address
└── Contact support (if needed)Step 5: Measure and Optimize
Track these dunning metrics:
-- Dunning performance dashboard
SELECT
failure_reason,
COUNT(*) as total_failures,
SUM(CASE WHEN recovered = true THEN 1 ELSE 0 END) as recovered,
(SUM(CASE WHEN recovered = true THEN 1 ELSE 0 END) * 100.0 / COUNT(*)) as recovery_rate,
AVG(days_to_recovery) as avg_recovery_time
FROM failed_payments
WHERE created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY failure_reason;Target metrics:
- Overall recovery rate: >60%
- Soft decline recovery: >75%
- Average recovery time: <7 days
Troubleshooting Flowchart
START: Subscription Issue Detected
│
├─→ Customer can't complete initial subscription?
│ ├─→ Yes: Check Problem 2 (Payment Methods)
│ └─→ No: Continue
│
├─→ Status mismatch between Shopify and Mollie?
│ ├─→ Yes: Check Problem 4 (Status Sync)
│ └─→ No: Continue
│
├─→ Webhook errors in Mollie dashboard?
│ ├─→ Yes: Check Problem 1 (Webhooks)
│ └─→ No: Continue
│
├─→ Customer stuck in authentication?
│ ├─→ Yes: Check Problem 3 (SCA/3D Secure)
│ └─→ No: Continue
│
├─→ Renewal payments failing?
│ ├─→ Yes: Check Problem 5 (Failed Renewals)
│ └─→ No: Check Mollie Support Section
│
END: Issue ResolvedPrevention Checklist
Stop problems before they start with this monthly maintenance routine:
Weekly Tasks
- [ ] Review webhook delivery rate in Mollie dashboard (target: >99.5%)
- [ ] Check for failed webhook deliveries and investigate patterns
- [ ] Monitor subscription status sync health
- [ ] Review payment failure rates by method
Monthly Tasks
- [ ] Reconcile Shopify and Mollie subscription counts
- [ ] Test checkout flow end-to-end
- [ ] Review SSL certificate expiry dates
- [ ] Update dunning email copy based on performance data
- [ ] Check payment method activation status
Quarterly Tasks
- [ ] Full subscription flow audit
- [ ] Load test webhook endpoints
- [ ] Review and update dunning retry schedules
- [ ] Analyze churn reasons (involuntary vs. voluntary)
- [ ] Update SCA handling procedures based on bank changes
When to Contact Mollie Support
Some issues require Mollie's intervention. Contact support when:
Immediate Contact Required
- Payment methods disappear from dashboard after activation
- Webhook failures persist after SSL/timeout fixes
- API returning unexpected errors consistently
- Settlement/payout issues
Information to Provide
When contacting support, include:
Support Ticket Template:
────────────────────────
Issue: [Clear description]
Store URL: [Your Shopify URL]
Mollie Profile ID: [pfl_xxx]
App/Plugin Version: [e.g., Firmhouse 2.3.1]
Error Message: [Exact text]
Steps to Reproduce:
1. [Step]
2. [Step]
3. [Step]
Transaction ID (if applicable): [tr_xxx or sub_xxx]
Relevant Logs: [Attach sanitized logs]
────────────────────────Response Time Expectations
- Critical (payments broken): 4-24 hours
- Standard issues: 1-3 business days
- Feature requests: No guaranteed timeline
Conclusion: From Reactive to Proactive
Subscription failures aren't just technical problems—they're revenue problems. Every webhook timeout, authentication loop, or sync mismatch represents a customer whose trust you're risking.
The good news: with the right monitoring, preventive maintenance, and response procedures, most Mollie subscription issues can be caught early or prevented entirely.
Key Takeaways
- Webhooks are critical infrastructure — Monitor them like you monitor payment success rates
- Payment method availability isn't automatic — Regularly verify what your customers actually see at checkout
- SCA is here to stay — Build customer-friendly re-authentication flows
- Sync issues compound — Reconcile early and often
- Dunning is customer service — Treat failed payment recovery as retention, not collections
Need Help?
If you're struggling with Mollie subscription issues on Shopify, you don't have to solve them alone. At Subora, we specialize in European payment integrations that actually work.
**Book a free subscription audit →**
We'll analyze your current setup, identify failure points, and build a roadmap to subscription reliability that protects your recurring revenue.
Related Resources
- Mollie Webhooks Documentation
- Shopify Subscription API Guide
- PSD2 and SCA Compliance
- Firmhouse Shopify Subscriptions
Last updated: April 2026 | Have questions? [Contact our team](mailto:support@subora.eu)
Subora Team
Subscription operators
Practical notes from the team working on Shopify subscriptions, recurring billing, and subscriber self-service flows.
Relevant product lane
Native Shopify subscriptions for European recurring revenue.
Explore Subora
