Payment & Billing Troubleshooting
Resolve payment failures, subscription issues, and billing questions
Payment & Billing Troubleshooting
Money matters! Let's resolve any payment or billing issues quickly so you can focus on growing your business.
💳 Failed Customer Payments
Understanding why payments fail
Common failure reasons and solutions:
Reason | What it means | Solution |
---|---|---|
Insufficient funds | Card doesn't have enough balance | Customer needs to add funds or use different card |
Card expired | Expiration date has passed | Request updated card details |
Do not honor | Bank declined for unspecified reason | Customer should contact their bank |
Fraud suspected | Bank's fraud protection triggered | Customer must authorize with bank |
Incorrect CVC | Security code wrong | Re-enter payment details carefully |
Processing error | Technical issue | Retry in a few minutes |
Setting up smart payment recovery
Automatic retry schedule (recommended):
Day 1: Initial charge
Day 3: First retry (if failed)
Day 5: Second retry + email warning
Day 7: Third retry + urgent notice
Day 10: Final retry before suspension
Enable in Dashboard:
- Settings > Payments > Recovery
- Toggle "Smart Retries"
- Customize email templates
- Set grace period (recommend 10 days)
Helping customers update payment methods
Send this template to customers:
Hi [Name],
Your payment method needs updating. Here's how:
- Log into your account at [site]
- Go to Account > Billing
- Click "Update Payment Method"
- Enter new card details
- Save changes
Your access continues immediately after updating!
Pro tip: Create a video walkthrough showing the exact steps. This reduces support requests by 70%.
🔄 Subscription Issues
Subscription not renewing
Diagnostic checklist:
- [ ] Check subscription status in Stripe Dashboard
- [ ] Verify webhook endpoints are active
- [ ] Look for webhook failures in logs
- [ ] Confirm customer has active payment method
- [ ] Check for subscription pause or cancellation
Fix webhook issues:
-
Test webhook endpoint:
Settings > Integrations > Webhooks Click "Send Test Event" Should return 200 OK
-
Re-sync subscription:
Members > [Customer] > Subscriptions Click "Sync with Stripe" Forces immediate status update
Customer seeing "Payment Required" despite paying
Quick resolution steps:
-
Verify in Stripe:
- Open Stripe Dashboard
- Search customer email
- Confirm payment succeeded
- Copy payment ID
-
Manual sync:
- Dashboard > Members > [Customer]
- Click "Sync Payment Status"
- Paste Stripe payment ID
- Status updates immediately
-
Grant temporary access (while investigating):
- Members > [Customer] > Access
- Click "Override Access"
- Set 24-hour temporary access
- Investigate root cause
Subscription upgrades/downgrades not working
Proper upgrade process:
- Customer selects new plan
- System calculates prorated amount
- Charges or credits difference
- Updates access immediately
If not working:
- Clear browser cache
- Check plan configuration
- Verify Stripe product IDs match
- Test in Stripe test mode first
💰 Refund Management
Processing refunds correctly
Full refund process:
-
In Selgora Dashboard:
Payments > Transactions Find payment > Click "Refund" Select "Full Refund" Add reason (optional) Confirm refund
-
What happens automatically:
- Money returned to customer
- Access revoked (optional setting)
- Email sent to customer
- Analytics updated
- Stripe fee partially refunded
Partial refunds
When to use:
- Customer used part of service
- Negotiated resolution
- Goodwill gesture
How to calculate:
Partial amount = Total × (Days remaining / Total days)
Example: €100 × (20/30) = €66.67 refund
Refund not appearing for customer
Timeline expectations:
Payment Method | Refund Time |
---|---|
Credit card | 5-10 business days |
Debit card | 5-10 business days |
Bank account | 5-10 business days |
Digital wallet | 1-3 business days |
Provide this to customers:
- Refund confirmation number
- Expected timeline
- Bank statement descriptor
- Contact support if not received after timeline
🏦 Stripe Account Issues
Stripe account suspended
Common reasons:
- Incomplete verification
- High dispute rate (>1%)
- Prohibited business type
- Suspicious activity
Resolution steps:
- Check email from Stripe for specifics
- Log into Stripe Dashboard
- Complete requested information
- Provide supporting documents
- Response within 24-48 hours
Payouts not arriving
Payout schedule check:
Stripe Dashboard > Balance > Payouts
Check: Schedule, Bank details, Pending payouts
Common issues:
- Bank account not verified
- Incorrect routing numbers
- Payout schedule set to manual
- Negative balance from disputes
- Country-specific delays
💱 Currency & Tax Issues
Multi-currency problems
Setup checklist:
- [ ] Enable multi-currency in Stripe
- [ ] Configure exchange rates
- [ ] Set settlement currency
- [ ] Update pricing display
- [ ] Test with VPN for different countries
Tax calculation errors
Fix tax configuration:
-
Enable Stripe Tax:
Stripe Dashboard > Products > Tax Toggle "Automatic tax calculation" Add tax registrations
-
Configure in Selgora:
Settings > Payments > Tax Enable "Use Stripe Tax" Map product tax codes Set default tax behavior
-
Test calculation:
- Create test purchase
- Use addresses from different regions
- Verify tax amounts
- Check invoice display
📊 Reporting & Reconciliation
Transaction reports not matching
Reconciliation process:
-
Export from both systems:
- Selgora: Reports > Transactions > Export
- Stripe: Reports > Download
-
Common discrepancies:
- Timezone differences
- Pending vs. completed
- Refunds not synced
- Test mode transactions
-
Fix sync issues:
Settings > Integrations > Stripe Click "Full Reconciliation" Processes last 90 days
Missing transactions
Recovery process:
-
Check filters:
- Date range includes transaction
- Status filter shows all
- No search terms active
-
Manual import:
Payments > Import Upload Stripe CSV Map fields Resolve duplicates
🚨 Urgent Payment Issues
All payments suddenly failing
Emergency checklist:
- Check Stripe status: status.stripe.com
- Verify API keys: Settings > Integrations
- Test mode check: Ensure using live keys
- Rate limits: Check if hitting limits
- Card testing attack: Enable CAPTCHA
Temporary workaround:
- Enable manual payments
- Accept bank transfers
- Provide payment links
- Use backup payment processor
Duplicate charges
Immediate actions:
-
Identify duplicates:
- Check Stripe Dashboard
- Verify amounts and times
- Document charge IDs
-
Refund duplicates:
- Keep original charge
- Refund extras immediately
- Email customer explanation
-
Prevent future occurrences:
- Implement idempotency keys
- Add double-click prevention
- Set up duplicate detection
📝 Best Practices
Preventing payment issues
Daily checks (5 minutes):
- Failed payment report
- Webhook status
- Stripe notifications
Weekly tasks (15 minutes):
- Review dispute alerts
- Check payout schedule
- Update payment recovery emails
Monthly maintenance (30 minutes):
- Reconcile transactions
- Clean up failed subscriptions
- Review payment success rates
- Update tax settings
Customer communication templates
Payment failure notice:
Subject: Action needed: Payment update required
Hi [Name],
Your recent payment of [amount] couldn't be processed.
Common reasons:
• Expired card
• Insufficient funds
• Bank security check
Fix it in 2 minutes:
[Update Payment Button]
Your access continues immediately after updating.
Questions? Reply to this email.
Best,
[Your name]
Successful retry notice:
Subject: ✓ Payment successful - Thank you!
Hi [Name],
Good news! Your payment has been processed successfully.
Amount: [amount]
Next billing: [date]
No action needed - your access continues uninterrupted.
Best,
[Your name]
🆘 Need More Help?
For payment emergencies:
- Email: payments@selgora.com
- Priority: SCALE+ plans get 2-hour response
- Include: Transaction ID, error messages, screenshots
Stripe support:
- Dashboard: support.stripe.com
- Phone: Available for urgent issues
- Chat: 24/7 for technical problems
Remember: Payment issues are stressful for customers. Respond quickly, be understanding, and provide clear solutions!
Was this article helpful?
Your feedback helps us improve our content